Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib/python3.7/site-packages/logilab/common/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/logilab/common/__pycache__/optparser.cpython-37.pyc

B

�d{T:
�@sTdZddlmZdZddlmZededd�ddlZddlZGd	d
�d
ej	�Z	dS)a�Extend OptionParser with commands.

Example:

>>> parser = OptionParser()
>>> parser.usage = '%prog COMMAND [options] <arg> ...'
>>> parser.add_command('build', 'mymod.build')
>>> parser.add_command('clean', run_clean, add_opt_clean)
>>> run, options, args = parser.parse_command(sys.argv[1:])
>>> return run(options, args[1:])

With mymod.build that defines two functions run and add_options
�)�print_functionzrestructuredtext en)�warnz>lgc.optparser module is deprecated, use lgc.clcommands instead�)�
stacklevelNc@s.eZdZdd�Zddd�Zdd�Zdd	�Zd
S)�OptionParsercOs*tjj|f|�|�i|_d\|_|_dS)N)r�)�optparser�__init__�	_commands�min_args�max_args)�self�args�kwargs�r�I/opt/alt/python37/lib/python3.7/site-packages/logilab/common/optparser.pyr	-szOptionParser.__init__�cCs.t|t�st|t�std��||f|j|<dS)z]name of the command, name of module or tuple of functions
        (run, add_options)
        z<mod_or_funcs has to be a module name or a tuple of functionsN)�
isinstance�str�tuple�AssertionErrorr
)r
�nameZmod_or_funcs�helprrr�add_command2szOptionParser.add_commandcCsDtj�|�td�x*|j��D]\}\}}td||f�q WdS)Nz

commands:z
% 10s - %s)rr�
print_help�printr
�items)r
Zcmdname�_rrrr�print_main_help:szOptionParser.print_main_helpcCst|�dkr|��t�d�|d}|dd�}||jkr�|dkrX|��t�d�n$|jdk	r||dkr||��t�d�|�d�d|j|f|_|j|\}}||_	t
|t�r�td|�n|\}}||�|�
|�\}}|jt|�kr�|jk�s
n|�d�|||fS)	Nrr)z-hz--helpz	--versionzunknown commandz%s %szfrom %s import run, add_optionszincorrect number of arguments)�lenr�sys�exitr
�versionZ
print_version�error�prog�descriptionrr�exec�
parse_argsrr)r
r�cmdZmod_or_fr�runZadd_options�optionsrrr�
parse_command@s0




 
zOptionParser.parse_commandN)r)�__name__�
__module__�__qualname__r	rrr+rrrrr+s
r)
�__doc__�
__future__r�
__docformat__�warningsr�DeprecationWarningr rrrrrr�<module>s