관리-도구
편집 파일: optparse.cpython-39.opt-2.pyc
a �����DOg������������������������@���s���d�Z�g�d�ZdZddlZddlZddlZdd��ZzddlmZmZ�W�n"�e yf���dd ��Zd d��ZY�n0�eZ G�dd ��d e�ZG�dd��de�Z G�dd��de �ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��d�ZG�dd��de�ZG�dd��de�Zdd��Zd d!��Zee d"�fee d"�fee d#�fee d$�fd%�Zd&d'��Zd(d)��Zd*ZG�d+d,��d,�Zd-Zd.ZG�d/d0��d0�Z G�d1d2��d2�Z!G�d3d4��d4e!�Z"G�d5d6��d6e!�Z#d7d8��Z$eZ%dS�)9z1.5.3)�Option�make_option� SUPPRESS_HELP�SUPPRESS_USAGE�Values�OptionContainer�OptionGroup�OptionParser� HelpFormatter�IndentedHelpFormatter�TitledHelpFormatter� OptParseError�OptionError�OptionConflictError�OptionValueError�BadOptionError�check_choicea"�� Copyright (c) 2001-2006 Gregory P. Ward. All rights reserved. Copyright (c) 2002-2006 Python Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. �����Nc�����������������C���s���d|�j�jt|��|�f�S�)Nz<%s at 0x%x: %s>)� __class__�__name__�id��self��r���� /usr/lib64/python3.9/optparse.py�_reprO���s����r���)�gettext�ngettextc�����������������C���s���|�S��Nr���)�messager���r���r���r���\���s����r���c�����������������C���s���|dkr|�S�|S��N����r���)Zsingular�plural�nr���r���r���r���_���s����r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)r���c�����������������C���s ���||�_�d�S�r�����msg�r���r$���r���r���r����__init__h���s����zOptParseError.__init__c�����������������C���s���|�j�S�r���r#���r���r���r���r����__str__k���s����zOptParseError.__str__N�r���� __module__�__qualname__r&���r'���r���r���r���r���r���g���s���r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)r ���c�����������������C���s���||�_�t|�|�_d�S�r���)r$����str� option_id)r���r$����optionr���r���r���r&���u���s����zOptionError.__init__c�����������������C���s ���|�j�rd|�j�|�jf�S�|�jS�d�S�)Nz option %s: %s)r,���r$���r���r���r���r���r'���y���s����zOptionError.__str__Nr(���r���r���r���r���r ���o���s���r ���c�������������������@���s���e�Zd�ZdS�)r���N�r���r)���r*���r���r���r���r���r������s���r���c�������������������@���s���e�Zd�ZdS�)r���Nr.���r���r���r���r���r�������s���r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)r���c�����������������C���s ���||�_�d�S�r���)�opt_str�r���r/���r���r���r���r&�������s����zBadOptionError.__init__c�����������������C���s���t�d�|�j�S�)Nzno such option: %s)�_r/���r���r���r���r���r'�������s����zBadOptionError.__str__Nr(���r���r���r���r���r�������s���r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)�AmbiguousOptionErrorc�����������������C���s���t��|�|��||�_d�S�r���)r���r&���� possibilities)r���r/���r3���r���r���r���r&�������s����zAmbiguousOptionError.__init__c�����������������C���s���t�d�|�jd�|�j�f�S�)Nzambiguous option: %s (%s?)�, )r1���r/����joinr3���r���r���r���r���r'�������s�����zAmbiguousOptionError.__str__Nr(���r���r���r���r���r2�������s���r2���c�������������������@���s����e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd d��Zdd ��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zdd��Zd S�)!r ���Znonec�������������� ���C���s����d�|�_�||�_|d�u�rJzttjd��}W�n�ttfy@���d}Y�n0�|d8�}||�_t|t |d�|d����|�_ |�_d|�_d|�_ d�|�_||�_d|�_i�|�_d|�_d|�_d�S�) N�COLUMNS�P�����������r���z%defaultz%s %sz%s=%s)�parser�indent_increment�int�os�environ�KeyError� ValueError�width�min�max� help_position�max_help_position�current_indent�level� help_width�short_first�default_tag�option_strings�_short_opt_fmt� _long_opt_fmt�r���r;���rE���rA���rI���r���r���r���r&�������s&���� � zHelpFormatter.__init__c�����������������C���s ���||�_�d�S�r���)r:����r���r:���r���r���r���� set_parser����s����zHelpFormatter.set_parserc�����������������C���s&���|dvrt�d|���d|�d�|�_d�S�)N)��� z/invalid metavar delimiter for short options: %r�%s)r@���rL����r����delimr���r���r����set_short_opt_delimiter����s �����z%HelpFormatter.set_short_opt_delimiterc�����������������C���s&���|dvrt�d|���d|�d�|�_d�S�)N)�=rR���z.invalid metavar delimiter for long options: %rrS���)r@���rM���rT���r���r���r����set_long_opt_delimiter����s �����z$HelpFormatter.set_long_opt_delimiterc�����������������C���s"���|��j�|�j7��_�|��jd7��_d�S�r����rF���r;���rG���r���r���r���r����indent����s����zHelpFormatter.indentc�����������������C���s"���|��j�|�j8��_�|��jd8��_d�S�r���rY���r���r���r���r����dedent����s����zHelpFormatter.dedentc�����������������C���s���t�d��d�S��Nzsubclasses must implement��NotImplementedError�r����usager���r���r����format_usage����s����zHelpFormatter.format_usagec�����������������C���s���t�d��d�S�r\���r]����r����headingr���r���r����format_heading��s����zHelpFormatter.format_headingc�����������������C���s.���t�|�j|�j�d�}d|�j�}tj||||d�S�)N����rR���)�initial_indent�subsequent_indent)rC���rA���rF����textwrap�fill)r����text� text_widthrZ���r���r���r����_format_text��s���� �zHelpFormatter._format_textc�����������������C���s���|r|���|�d�S�dS�d�S��N� rQ����rl����r����descriptionr���r���r����format_description��s����z HelpFormatter.format_descriptionc�����������������C���s���|rd|���|��d�S�dS�d�S�rm���ro���)r����epilogr���r���r���� format_epilog��s����zHelpFormatter.format_epilogc�����������������C���sP���|�j�d�u�s|�js|jS�|�j�j�|j�}|tu�s6|d�u�r<|�j}|j�|�jt |��S�r���) r:���rJ����help�defaults�get�dest� NO_DEFAULT�NO_DEFAULT_VALUE�replacer+���)r���r-���Z default_valuer���r���r����expand_default��s����zHelpFormatter.expand_defaultc��������������������s����g�}��j�|�}��j��j�d�}t|�|krBd��jd|f�}��j}nd��jd||f�}d}|�|��|jr����|�}t�|��j �}|�d|d|d�f���|� ��fdd�|dd���D����n|d �d kr�|�d ��d�|�S�)Nr8����%*s%s rQ���z %*s%-*s r���c��������������������s���g�|�]}d���j�d|f��qS�)r}���rQ���)rD���)�.0�liner���r���r���� <listcomp>E��s����z/HelpFormatter.format_option.<locals>.<listcomp>r ������rn���)rK���rD���rF����len�appendru���r|���rh����wraprH����extendr5���)r���r-����result�optsZ opt_width�indent_first� help_text� help_linesr���r���r���� format_option(��s&���� � zHelpFormatter.format_optionc�����������������C���s����|������d}|jD�],}|��|�}||�j|<�t|t|�|�j��}q|������|jD�]8}|jD�],}|��|�}||�j|<�t|t|�|�j��}qXqN|�����|�����t |d�|�j �|�_t|�j|�j�d�|�_ d�S�)Nr���r8���re���)rZ����option_list�format_option_stringsrK���rC���r����rF���� option_groupsr[���rB���rE���rD���rA���rH���)r���r:���Zmax_len�opt�strings�groupr���r���r����store_option_stringsK��s ���� z"HelpFormatter.store_option_stringsc��������������������st���|����rF|jp|j��������fdd�|jD��}���fdd�|jD��}n|j}|j}�jrb||�}n||�}d�|�S�)Nc��������������������s���g�|�]}�j�|��f��qS�r���)rL���)r~���Zsopt��metavarr���r���r���r����a��s����z7HelpFormatter.format_option_strings.<locals>.<listcomp>c��������������������s���g�|�]}�j�|��f��qS�r���)rM���)r~���Zloptr����r���r���r����c��s����r4���)�takes_valuer����rx����upper�_short_opts� _long_optsrI���r5���)r���r-���Z short_optsZ long_optsr����r���r����r���r����]��s������ z#HelpFormatter.format_option_stringsN)r���r)���r*���rz���r&���rP���rV���rX���rZ���r[���ra���rd���rl���rr���rt���r|���r����r����r����r���r���r���r���r �������s ���+ #r ���c�������������������@���s&���e�Zd�Zddd�Zdd��Zd d ��ZdS�)r ���r8�������Nr ���c�����������������C���s���t��|�||||��d�S�r����r ���r&���rN���r���r���r���r&���t��s���� �zIndentedHelpFormatter.__init__c�����������������C���s���t�d�|�S�)Nz Usage: %s )r1���r_���r���r���r���ra���|��s����z"IndentedHelpFormatter.format_usagec�����������������C���s���d|�j�d|f�S�)Nz%*s%s: rQ���)rF���rb���r���r���r���rd�����s����z$IndentedHelpFormatter.format_heading)r8���r����Nr ����r���r)���r*���r&���ra���rd���r���r���r���r���r ���p��s�������� r ���c�������������������@���s&���e�Zd�Zd dd�Zdd��Zdd ��ZdS�)r���r���r����Nc�����������������C���s���t��|�||||��d�S�r���r����rN���r���r���r���r&������s���� �zTitledHelpFormatter.__init__c�����������������C���s���d|���td��|f�S�)Nz%s %s ZUsage)rd���r1���r_���r���r���r���ra������s����z TitledHelpFormatter.format_usagec�����������������C���s���d|d|�j��t|��f�S�)Nz%s %s z=-)rG���r����rb���r���r���r���rd������s����z"TitledHelpFormatter.format_heading)r���r����Nr���r����r���r���r���r���r������s�������� r���c�����������������C���sh���|�d�d������dkrd}nD|�d�d������dkrDd}|�dd���p@d}�n|�d�d��dkrZd}nd}||�|�S�) Nr8����0x����Z0b�0r �������� ���)�lower)�val�type�radixr���r���r���� _parse_num���s����r����c�����������������C���s ���t�|�t�S�r���)r����r<���)r����r���r���r���� _parse_int���s����r����Zintegerzfloating-point�complex)r<����long�floatr����c�����������������C���sF���t�|�j�\}}z ||�W�S��ty@���ttd�|||f���Y�n0�d�S�)Nzoption %s: invalid %s value: %r)�_builtin_cvtr����r@���r���r1���)r-���r�����valueZcvtZwhatr���r���r���� check_builtin���s���� �r����c�����������������C���s:���||�j�v�r|S�d�tt|�j���}ttd�|||f���d�S�)Nr4���z.option %s: invalid choice: %r (choose from %s))�choicesr5����map�reprr���r1���)r-���r����r����r����r���r���r���r������s���� ��r���)ZNOZDEFAULTc�������������������@���s����e�Zd�Zg�d�ZdZdZdZdZdZdZ e e e e ed�Zd Z d d��Zdd ��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��ZeeeeeeegZ d d!��ZeZd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��Z d,d-��Z!d S�).r���)�actionr����rx����default�nargs�constr�����callback� callback_args�callback_kwargsru���r����) �store�store_const� store_true�store_falser�����append_const�countr����ru����version)r����r����r����r����r����r����r����)r����r����r����)r����r����)r����r����)�stringr<���r����r����r�����choice)r<���r����r����r����r����Nc�����������������O���sB���g�|�_�g�|�_|��|�}|��|��|��|��|�jD�]}||���q0d�S�r���)r����r�����_check_opt_strings�_set_opt_strings� _set_attrs� CHECK_METHODS)r���r�����attrs�checkerr���r���r���r&���4��s���� zOption.__init__c�����������������C���s���dd��|D��}|st�d��|S�)Nc�����������������S���s���g�|�]}|r|�qS�r���r���)r~���r����r���r���r���r����K�������z-Option._check_opt_strings.<locals>.<listcomp>z+at least one option string must be supplied)� TypeError)r���r����r���r���r���r����G��s����zOption._check_opt_stringsc�����������������C���s����|D�]�}t�|�dk�r$td|�|���qt�|�dkrd|d�dkrH|d�dksVtd|�|���|�j�|��q|dd��dkr�|d�dks�td|�|���|�j�|��qd�S�) Nr8���z>invalid option string %r: must be at least two characters longr����-r ���zMinvalid short option string %r: must be of the form -x, (x any non-dash char)�--zGinvalid long option string %r: must start with --, followed by non-dash)r����r ���r����r����r����)r���r����r����r���r���r���r����P��s2����������zOption._set_opt_stringsc�����������������C���sv���|�j�D�]F}||v�r*t|�|||���||=�q|dkr@t|�|t��qt|�|d���q|rrt|����}tdd�|��|���d�S�)Nr����zinvalid keyword arguments: %sr4���)�ATTRS�setattrry����sorted�keysr ���r5���)r���r�����attrr���r���r���r����e��s���� �zOption._set_attrsc�����������������C���s2���|�j�d�u�rd|�_�n|�j�|�jvr.td|�j��|���d�S�)Nr����zinvalid action: %r)r�����ACTIONSr ���r���r���r���r���� _check_actionx��s���� zOption._check_actionc�����������������C���s����|�j�d�u�r0|�j|�jv�r�|�jd�ur(d|�_�q�d|�_�n^t|�j�t��rF|�j�j|�_�|�j�dkrVd|�_�|�j�|�jvrrtd|�j��|���|�j|�jvr�td|�j�|���d�S�)Nr����r����r+���zinvalid option type: %rz$must not supply a type for action %r) r����r�����ALWAYS_TYPED_ACTIONSr����� isinstancer����TYPESr ���� TYPED_ACTIONSr���r���r���r����_check_type~��s���� �zOption._check_typec�����������������C���sr���|�j�dkrT|�jd�u�r td|���qnt|�jttf�sntdtt�|�j���d�d��|���n|�jd�urntd|�j��|���d�S�)Nr����z/must supply a list of choices for type 'choice'z1choices must be a list of strings ('%s' supplied)�'r ���z#must not supply choices for type %r)r����r����r ���r�����tuple�listr+����splitr���r���r���r���� _check_choice���s ���� ��� �zOption._check_choicec�����������������C���s\���|�j�|�jv�p|�jd�u}|�jd�u�rX|rX|�jrH|�jd�dd����dd�|�_n|�jd�d�|�_d�S�)Nr���r8���r����r1���r ���)r����� STORE_ACTIONSr����rx���r����r{���r����)r���r����r���r���r����_check_dest���s�����zOption._check_destc�����������������C���s*���|�j�|�jvr&|�jd�ur&td|�j��|���d�S�)Nz*'const' must not be supplied for action %r)r����� CONST_ACTIONSr����r ���r���r���r���r����_check_const���s �����zOption._check_constc�����������������C���s<���|�j�|�jv�r|�jd�u�r8d|�_n|�jd�ur8td|�j��|���d�S�)Nr ���z*'nargs' must not be supplied for action %r)r����r����r����r ���r���r���r���r����_check_nargs���s���� �zOption._check_nargsc�����������������C���s����|�j�dkrrt|�j�s$td|�j�|���|�jd�urJt|�jt�sJtd|�j�|���|�jd�ur�t|�jt�s�td|�j�|���nB|�jd�ur�td|�j�|���|�jd�ur�td|���|�jd�ur�td|���d�S�)Nr����zcallback not callable: %rz3callback_args, if supplied, must be a tuple: not %rz4callback_kwargs, if supplied, must be a dict: not %rz.callback supplied (%r) for non-callback optionz.callback_args supplied for non-callback optionz0callback_kwargs supplied for non-callback option) r�����callabler����r ���r����r����r����r�����dictr���r���r���r����_check_callback���sL���� � ��� ��� �� � �zOption._check_callbackc�����������������C���s���d��|�j|�j��S�)N�/)r5���r����r����r���r���r���r���r'������s����zOption.__str__c�����������������C���s ���|�j�d�uS�r���)r����r���r���r���r���r�������s����zOption.takes_valuec�����������������C���s���|�j�r|�j�d�S�|�jd�S�d�S��Nr���)r����r����r���r���r���r����get_opt_string���s���� zOption.get_opt_stringc�����������������C���s*���|�j��|�j�}|d�u�r|S�||�||�S�d�S�r���)�TYPE_CHECKERrw���r����)r���r����r����r����r���r���r����check_value���s����zOption.check_valuec��������������������s:���|d�ur6�j�dkr����|�S�t���fdd�|D���S�d�S�)Nr ���c��������������������s���g�|�]}�����|��qS�r���)r����)r~����v�r����r���r���r���r������r����z(Option.convert_value.<locals>.<listcomp>)r����r����r����)r���r����r����r���r����r���� convert_value���s���� zOption.convert_valuec�����������������C���s$���|���||�}|��|�j|�j||||�S�r���)r�����take_actionr����rx���)r���r����r�����valuesr:���r���r���r����process��s�����zOption.processc����������� ������C���s@��|dkrt�|||���n$|dkr2t�|||�j���n |dkrHt�||d��n�|dkr^t�||d��n�|dkrz|�|g���|��n�|dkr�|�|g���|�j��n�|d kr�t�|||�|d �d���n�|dkr�|�jp�d }|�jp�i�}|�j|�|||g|�R�i�|���nF|dk�r|����|����n*|dk�r.|� ���|����nt d|�j���dS�)Nr����r����r����Tr����Fr����r����r����r���r ���r����r���ru���r����zunknown action %r)r����r�����ensure_valuer����r����r����r����� print_help�exit� print_versionr@���r����) r���r����rx���r����r����r����r:����args�kwargsr���r���r���r������s4���� zOption.take_action)"r���r)���r*���r����r����r����r����r����r����r����r����r���r����r����r&���r����r����r����r����r����r����r����r����r����r����r'���r����__repr__r����r����r����r����r����r����r���r���r���r���r������sR��� � � r���ZSUPPRESSHELPZ SUPPRESSUSAGEc�������������������@���s^���e�Zd�Zddd�Zdd��ZeZdd��Zdd ��Zd d��Z dd ��Z ddd�Zddd�Zdd��Z dS�)r���Nc�����������������C���s&���|r"|����D�]\}}t|�||��qd�S�r���)�itemsr����)r���rv���r����r����r���r���r���r&���9��s����zValues.__init__c�����������������C���s ���t�|�j�S�r���)r+����__dict__r���r���r���r���r'���>��s����zValues.__str__c�����������������C���s2���t�|t�r|�j|jkS�t�|t�r*|�j|kS�tS�d�S�r���)r����r���r����r�����NotImplemented)r����otherr���r���r����__eq__C��s ���� z Values.__eq__c�����������������C���s6���t�|��D�](}||v�r||�}|d�urt|�||��qd�S�r���)�dirr����)r���r����r����Zdvalr���r���r����_update_carefulK��s ����zValues._update_carefulc�����������������C���s���|�j��|��d�S�r���)r�����update)r���r����r���r���r���� _update_looseX��s����zValues._update_loosec�����������������C���s8���|dkr|���|��n |dkr(|��|��ntd|���d�S�)N�carefulZloosezinvalid update mode: %r)r����r����r@���)r���r�����moder���r���r����_update`��s ����zValues._updater����c�����������������C���s&���t�|��tj|�}|��t|�|��d�S�r���)� __import__�sys�modulesr����vars)r����modnamer�����modr���r���r����read_moduleh��s���� zValues.read_modulec�����������������C���s&���i�}t�t|����|��|��||��d�S�r���)�exec�open�readr���)r����filenamer����r��r���r���r���� read_filem��s����zValues.read_filec�����������������C���s.���t�|�|�rt|�|�d�u�r$t|�||��t|�|�S�r���)�hasattr�getattrr����)r���r����r����r���r���r���r����r��s����zValues.ensure_value)N)r����)r����)r���r)���r*���r&���r'���r���r����r����r����r����r���r��r��r����r���r���r���r���r���7��s��� r���c�������������������@���s����e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zdd ��Zd!S�)"r���c�����������������C���s&���|������||�_|��|��|��|��d�S�r���)�_create_option_list�option_class�set_conflict_handler�set_description)r���r���conflict_handlerrq���r���r���r���r&������s���� zOptionContainer.__init__c�����������������C���s���i�|�_�i�|�_i�|�_d�S�r����� _short_opt� _long_optrv���r���r���r���r����_create_option_mappings���s����z'OptionContainer._create_option_mappingsc�����������������C���s���|j�|�_�|j|�_|j|�_d�S�r���r��rO���r���r���r����_share_option_mappings���s����z&OptionContainer._share_option_mappingsc�����������������C���s���|dvrt�d|���||�_d�S�)N)�error�resolvez$invalid conflict_resolution value %r)r@���r��)r����handlerr���r���r���r�����s����z$OptionContainer.set_conflict_handlerc�����������������C���s ���||�_�d�S�r����rq���rp���r���r���r���r�����s����zOptionContainer.set_descriptionc�����������������C���s���|�j�S�r���r��r���r���r���r����get_description���s����zOptionContainer.get_descriptionc�����������������C���s���|�`�|�`|�`d�S�r���r��r���r���r���r����destroy���s����zOptionContainer.destroyc�����������������C���s����g�}|j�D�]"}||�jv�r |�||�j|�f��q |jD�]"}||�jv�r4|�||�j|�f��q4|r�|�j}|dkr�tdd�dd��|D����|��nd|dkr�|D�]V\}}|�d�r�|j� |��|�j|=�n|j�� |��|�j|=�|j�s�|js�|j j� |��q�d�S�)Nr��z conflicting option string(s): %sr4���c�����������������S���s���g�|�]}|d���qS�)r���r���)r~����cor���r���r���r�������r����z3OptionContainer._check_conflict.<locals>.<listcomp>r��r����)r����r��r����r����r��r��r���r5���� startswith�remove� containerr����)r���r-���Z conflict_optsr����r��Zc_optionr���r���r����_check_conflict���s2���� �� zOptionContainer._check_conflictc�����������������O���s����t�|d�t�r |�j|i�|��}n8t|�dkrP|sP|d�}t�|t�sXtd|���ntd��|��|��|�j�|��|�|_ |j D�]}||�j|<�qz|jD�]}||�j |<�q�|jd�ur�|jtur�|j|�j|j<�n|j|�jvr�d�|�j|j<�|S�)Nr���r ���znot an Option instance: %r�invalid arguments)r����r+���r��r����r���r����r#��r����r����r"��r����r��r����r��rx���r����ry���rv���)r���r����r����r-���r����r���r���r���� add_option���s(���� zOptionContainer.add_optionc�����������������C���s���|D�]}|���|��qd�S�r���)r%��)r���r����r-���r���r���r����add_options��s����zOptionContainer.add_optionsc�����������������C���s���|�j��|�p|�j�|�S�r���)r��rw���r��r0���r���r���r���� get_option��s���� �zOptionContainer.get_optionc�����������������C���s���||�j�v�p||�jv�S�r���)r��r��r0���r���r���r���� has_option��s���� �zOptionContainer.has_optionc�����������������C���sn���|�j��|�}|d�u�r |�j�|�}|d�u�r4td|���|jD�]}|�j�|=�q:|jD�]}|�j|=�qN|jj�|��d�S�)Nzno such option %r) r��rw���r��r@���r����r����r"��r����r!��)r���r/���r-���r����r���r���r���� remove_option��s���� zOptionContainer.remove_optionc�����������������C���s>���|�j�s dS�g�}|�j�D�]}|jtur|�|�|���qd�|�S��NrQ���)r����ru���r���r����r����r5���)r���� formatterr����r-���r���r���r����format_option_help��s���� z"OptionContainer.format_option_helpc�����������������C���s���|��|�����S�r���)rr���r���r���r+��r���r���r���rr���(��s����z"OptionContainer.format_descriptionc�����������������C���s:���g�}|�j�r|�|��|���|�jr0|�|��|���d�|�S�)Nrn���)rq���r����rr���r����r,��r5����r���r+��r����r���r���r����format_help+��s����zOptionContainer.format_helpN)r���r)���r*���r&���r��r��r��r��r��r��r#��r%��r&��r'��r(��r)��r,��rr���r/��r���r���r���r���r���x��s ��� r���c�������������������@���s6���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��ZdS�) r���Nc�����������������C���s$���||�_�t�|�|j|j|��||�_d�S�r���)r:���r���r&���r��r���title)r���r:���r0��rq���r���r���r���r&���6��s �����zOptionGroup.__init__c�����������������C���s���g�|�_�|��|�j��d�S�r���)r����r��r:���r���r���r���r���r��<��s����zOptionGroup._create_option_listc�����������������C���s ���||�_�d�S�r���)r0��)r���r0��r���r���r���� set_title@��s����zOptionGroup.set_titlec�����������������C���s���t��|���|�`d�S�r���)r���r��r����r���r���r���r���r��C��s���� zOptionGroup.destroyc�����������������C���s0���|��|�j�}|����|t�|�|�7�}|����|S�r���)rd���r0��rZ���r���r/��r[���r.��r���r���r���r/��J��s ����zOptionGroup.format_help)N)r���r)���r*���r&���r��r1��r��r/��r���r���r���r���r���4��s ��� r���c���������������� ���@���s^��e�Zd�Zg�Zddedddddddf dd�Zdd��Zdd ��Zd d��Zdd ��Z dOdd�Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��Zd&d'��ZdPd(d)�Zd*d+��Zd,d-��Zd.d/��Zd0d1��Zd2d3��Zd4d5��Zd6d7��Zd8d9��ZdQd;d<�Z d=d>��Z!d?d@��Z"dRdAdB�Z#dCdD��Z$dSdEdF�Z%dTdGdH�Z&dIdJ��Z'dUdKdL�Z(dVdMdN�Z)dS�)Wr���Nr��Tc�����������������C���sr���t��|�|||��|��|��| |�_||�_d|�_d|�_|d�u�r@t��}||�_|�j� |���| |�_ |�j||d��|�����d�S�)NT)�add_help) r���r&���� set_usage�progr�����allow_interspersed_args�process_default_valuesr ���r+��rP���rs����_populate_option_list�_init_parsing_state)r���r`���r����r��r����r��rq���r+��Zadd_help_optionr4��rs���r���r���r���r&������s"����� �zOptionParser.__init__c�����������������C���s.���t��|���|�jD�]}|����q|�`|�`|�`d�S�r���)r���r��r����r����r+��)r���r����r���r���r���r�����s���� zOptionParser.destroyc�����������������C���s���g�|�_�g�|�_|�����d�S�r���)r����r����r��r���r���r���r���r�����s����z OptionParser._create_option_listc�����������������C���s���|�j�dddtd�d��d�S�)Nz-hz--helpru���zshow this help message and exit�r����ru����r%��r1���r���r���r���r����_add_help_option���s�����zOptionParser._add_help_optionc�����������������C���s���|�j�ddtd�d��d�S�)Nz --versionr����z&show program's version number and exitr9��r:��r���r���r���r����_add_version_option���s�����z OptionParser._add_version_optionc�����������������C���s>���|�j�r|��|�j���|r |��|��|�jr.|�����|r:|�����d�S�r���)�standard_option_listr&��r����r<��r;��)r���r����r2��r���r���r���r7�����s���� z"OptionParser._populate_option_listc�����������������C���s���d�|�_�d�|�_d�|�_d�S�r���)�rargs�largsr����r���r���r���r���r8�����s����z OptionParser._init_parsing_statec�����������������C���sL���|d�u�rt�d�|�_n4|tu�r$d�|�_n$|����d�rB|dd���|�_n||�_d�S�)Nz%prog [options]zusage: ����)r1���r`���r���r����r ��r_���r���r���r���r3�����s����zOptionParser.set_usagec�����������������C���s ���d|�_�d�S�)NT�r5��r���r���r���r����enable_interspersed_args���s����z%OptionParser.enable_interspersed_argsc�����������������C���s ���d|�_�d�S�)NFrA��r���r���r���r����disable_interspersed_args��s����z&OptionParser.disable_interspersed_argsc�����������������C���s ���||�_�d�S�r���)r6��)r���r����r���r���r����set_process_default_values��s����z'OptionParser.set_process_default_valuesc�����������������C���s���||�j�|<�d�S�r���)rv���)r���rx���r����r���r���r����set_default��s����zOptionParser.set_defaultc�����������������K���s���|�j��|��d�S�r���)rv���r����)r���r����r���r���r����set_defaults��s����zOptionParser.set_defaultsc�����������������C���s*���|�j�d�d���}|�jD�]}|�|j���q|S�r���)r����r����r����)r����optionsr����r���r���r����_get_all_options��s���� zOptionParser._get_all_optionsc�����������������C���s`���|�j�st|�j�S�|�j���}|����D�]4}|�|j�}t|t�r"|� ��}|� ||�||j<�q"t|�S�r���)r6��r���rv����copyrH��rw���rx���r����r+���r����r����)r���rv���r-���r����r/���r���r���r����get_default_values��s���� zOptionParser.get_default_valuesc�����������������O���s����t�|d�t�r&t|�g|�R�i�|��}nJt|�dkrh|sh|d�}t�|t�sTtd|���|j|�urptd��ntd��|�j�|��|S�)Nr���r ���znot an OptionGroup instance: %rz"invalid OptionGroup (wrong parser)r$��) r����r+���r���r����r����r:���r@���r����r����)r���r����r����r����r���r���r����add_option_group+��s���� zOptionParser.add_option_groupc�����������������C���s0���|�j��|�p|�j�|�}|r,|j|�ur,|jS�d�S�r���)r��rw���r��r"��)r���r/���r-���r���r���r����get_option_group;��s���� �zOptionParser.get_option_groupc�����������������C���s&���|d�u�rt�jdd���S�|d�d���S�d�S�r���)r���argv)r���r����r���r���r���� _get_argsE��s����zOptionParser._get_argsc�������������� ���C���s����|���|�}|d�u�r|����}||�_g��|�_}||�_z|��|||�}W�n6�ttfyx�}�z|��t |���W�Y�d�}~n d�}~0�0�||�}|�� ||�S�r���)rN��rJ��r>��r?��r����� _process_argsr���r���r��r+����check_values)r���r����r����r>��r?���stop�errr���r���r���� parse_argsK��s���� $zOptionParser.parse_argsc�����������������C���s���||fS�r���r���)r���r����r����r���r���r���rP��r��s����zOptionParser.check_valuesc�����������������C���s����|r�|d�}|dkr|d=�d�S�|dd��dkr<|���||��q�|d�d��dkrft|�dkrf|��||��q�|�jr~|�|��|d=�q�d�S�q�d�S�)Nr���r����r8���r ���r����)�_process_long_optr�����_process_short_optsr5��r����)r���r?��r>��r�����argr���r���r���rO����s���� zOptionParser._process_argsc�����������������C���s���t�||�j�S�r���)� _match_abbrevr��)r���r����r���r���r����_match_long_opt���s����zOptionParser._match_long_optc����������� ������C���s����|��d�}d|v�r4|�dd�\}}|�d|��d}n|}d}|��|�}|�j|�}|���r�|j}t|�|k�r�|��t dd|�||d����q�|dkr�|��d�} q�t |d|���} |d|�=�n|r�|��td �|���nd�} |�|| ||���d�S�) Nr���rW���r ���TF�.%(option)s option requires %(number)d argument�/%(option)s option requires %(number)d arguments�r-����numberz%s option does not take a value) �popr�����insertrX��r��r����r����r����r��r���r����r1���r����) r���r>��r����rV��r����Znext_argZhad_explicit_valuer-���r����r����r���r���r���rT�����s6���� ��zOptionParser._process_long_optc�����������������C���s����|��d�}d}d}|dd���D�]�}d|�}|�j�|�}|d7�}|sJt|��|���r�|t|�k�rv|�d||d�����d}|j} t|�| k�r�|��t dd| �|| d����q�| dkr�|��d�} q�t |d| ���} |d| �=�nd�} |�|| ||���|r�q�qd�S�) Nr���Fr ���r����TrY��rZ��r[��)r]��r��rw���r���r����r����r^��r����r��r���r����r����)r���r>��r����rV��rQ���iZchr����r-���r����r����r���r���r���rU�����s<���� ��z OptionParser._process_short_optsc�����������������C���s&���|�j�d�u�rtj�tjd��S�|�j�S�d�S�r����)r4��r=����path�basenamer��rM��r���r���r���r���� get_prog_name��s���� zOptionParser.get_prog_namec�����������������C���s���|��d|�����S�)Nz%prog)r{���rb��)r����sr���r���r����expand_prog_name��s����zOptionParser.expand_prog_namec�����������������C���s���|���|�j�S�r���)rd��rq���r���r���r���r���r����s����zOptionParser.get_descriptionr���c�����������������C���s���|rt�j�|��t��|��d�S�r���)r���stderr�writer����)r����statusr$���r���r���r���r������s����zOptionParser.exitc�����������������C���s(���|���tj��|��dd|����|f���d�S�)Nr8���z%s: error: %s )�print_usager��re��r����rb��r%���r���r���r���r����s����zOptionParser.errorc�����������������C���s"���|�j�r|�j�|��|�j���S�dS�d�S�r*��)r`���r+��ra���rd��r���r���r���r���� get_usage#��s ���� �zOptionParser.get_usagec�����������������C���s���|�j�rt|����|d��d�S��N)�file)r`����printri���r���rk��r���r���r���rh��*��s���� zOptionParser.print_usagec�����������������C���s���|�j�r|��|�j��S�dS�d�S�r*��)r����rd��r���r���r���r����get_version6��s����zOptionParser.get_versionc�����������������C���s���|�j�rt|����|d��d�S�rj��)r����rl��rn��rm��r���r���r���r����<��s����zOptionParser.print_versionc�����������������C���s����|d�u�r|�j�}|�|���g�}|�|�td����|����|�jrZ|�t�|�|���|�d��|�j D�]}|�|� |���|�d��q`|����d�|d�d���S�)NZOptionsrn���rQ���r����) r+��r����r����rd���r1���rZ���r����r���r,��r����r/��r[���r5���)r���r+��r����r����r���r���r���r,��G��s���� zOptionParser.format_option_helpc�����������������C���s���|��|�j�S�r���)rt���rs���r-��r���r���r���rt���X��s����zOptionParser.format_epilogc�����������������C���sn���|d�u�r|�j�}g�}|�jr*|�|����d���|�jrD|�|��|�d���|�|��|���|�|��|���d�|�S�rm���) r+��r`���r����ri��rq���rr���r,��rt���r5���r.��r���r���r���r/��[��s����zOptionParser.format_helpc�����������������C���s ���|d�u�rt�j}|�|������d�S�r���)r���stdoutrf��r/��rm��r���r���r���r����g��s����zOptionParser.print_help)T)NN)r���N)N)N)N)N)N)*r���r)���r*���r=��r���r&���r��r��r;��r<��r7��r8��r3��rB��rC��rD��rE��rF��rH��rJ��rK��rL��rN��rS��rP��rO��rX��rT��rU��rb��rd��r��r����r��ri��rh��rn��r����r,��rt���r/��r����r���r���r���r���r���R��s`���F� " ' 3 $) r���c��������������������sZ�����|v�r��S���fdd�|����D��}t|�dkr6|d�S�|sDt����n|����t��|��d�S�)Nc��������������������s���g�|�]}|�����r|�qS�r���)r ��)r~���Zword�rc��r���r���r�������s��� �z!_match_abbrev.<locals>.<listcomp>r ���r���)r����r����r����sortr2���)rc��Zwordmapr3���r���rp��r���rW��t��s���� rW��)&�__version__�__all__Z __copyright__r��r=���rh���r���r���r����ImportErrorr1���� Exceptionr���r ���r���r���r���r2���r ���r ���r���r����r����r����r����r����r����r���ry���r���r���r���r���r���r���r���rW��r���r���r���r���r����<module>���s^��� �P ���uA�=����&