\z @snddlmZddlmZddlmZmZmZddZGdddeZ dd Z d S) )DistutilsOptionError)map) edit_config option_base config_filecCsJx$dD]}||krt|SqW|j|gkrFt|S|S)z4Quote an argument for later parsing by shlex.split()"'\#)rrr r )reprsplit)argcr /alias.pyshquotes    rc@sfeZdZdZdZdZdgejZejdgZddZ d d Z d d Z d S)aliasz3Define a shortcut that invokes one or more commandsz0define a shortcut to invoke one or more commandsTremoverremove (unset) the aliascCs#tj|d|_d|_dS)N)rinitialize_optionsargsr)selfrrrrs  zalias.initialize_optionscCs;tj||jr7t|jdkr7tddS)NzFMust specify exactly one argument (the alias name) when using --remove)rfinalize_optionsrlenrr)rrrrr#s zalias.finalize_optionscCs |jjd}|jsZtdtdx$|D]}tdt||q6WdSt|jdkr|j\}|jrd}q||krtdt||dStd|dSn2|jd}djtt |jdd}t |j d||ii|j dS) NaliaseszCommand Aliasesz---------------zsetup.py aliasrz No alias definition found for %rr ) Z distributionZget_option_dictrprint format_aliasrrjoinrrrfilenamedry_run)rrrcommandrrrrun+s&         %z alias.runN)rrr) __name__ __module__ __qualname____doc__ descriptionZcommand_consumes_argumentsrZ user_optionsZboolean_optionsrrr$rrrrrs    rcCs{||\}}|tdkr+d}n@|tdkrFd}n%|tdkrad}n d|}||d|S) Nglobalz--global-config userz--user-config localz --filename=%rr)r)namersourcer#rrrrFs    rN) Zdistutils.errorsrZsetuptools.extern.six.movesrZsetuptools.command.setoptrrrrrrrrrrs  4