U e5dw@s,dZddddddddd d d d d ddddgZddlZddlZddlZddlZ ddl m Z m Z dZ dZdZdZdZdZdZGdddeZddZGd ddeZGd!ddeZGd"ddeZGd#ddeZGd$d d eZd%d&ZGd'ddeZGd(ddeZGd)d d eZ Gd*d+d+e Z!Gd,d-d-e Z"Gd.d/d/e"Z#Gd0d1d1e"Z$Gd2d3d3e Z%Gd4d5d5e Z&Gd6d7d7e Z'Gd8d9d9e Z(Gd:d;d;e Z)Gdd?d?e%Z+Gd@ddeZ,GdAd d eZ-GdBdCdCeZ.GdDdEdEe.Z/GdFdGdGe/Z0GdHddee.Z1dS)Iz1.1ArgumentParser ArgumentErrorArgumentTypeErrorFileType HelpFormatterArgumentDefaultsHelpFormatterRawDescriptionHelpFormatterRawTextHelpFormatterMetavarTypeHelpFormatter NamespaceAction ONE_OR_MOREOPTIONALPARSER REMAINDERSUPPRESS ZERO_OR_MOREN)gettextngettextz ==SUPPRESS==?*+zA......Z_unrecognized_argsc@s$eZdZddZddZddZdS)_AttributeHoldercCst|j}g}i}|D]}|t|q|D],\}}|rZ|d||fq6|||<q6|rz|dt|d|d|fS)N%s=%rz**%s%s(%s), )type__name__ _get_argsappendrepr _get_kwargs isidentifierjoin)selfZ type_name arg_stringsZ star_argsargnamevaluer* /usr/lib64/python3.8/argparse.py__repr__ts   z_AttributeHolder.__repr__cCst|jSN)sorted__dict__itemsr%r*r*r+r"sz_AttributeHolder._get_kwargscCsgSr-r*r1r*r*r+rsz_AttributeHolder._get_argsN)r __module__ __qualname__r,r"rr*r*r*r+rks rcCs6|dkr gSt|tkr$|ddSddl}||S)Nr)rlistcopy)r0r5r*r*r+ _copy_itemss   r6c@seZdZd:ddZddZdd ZGd d d eZd d ZddZ ddZ ddZ d;ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9ZdS)rDr1r*r*r+_indentszHelpFormatter._indentcCs"|j|j8_|jd8_dSrQrSr1r*r*r+_dedentszHelpFormatter._dedentc@seZdZdddZddZdS)zHelpFormatter._SectionNcCs||_||_||_g|_dSr-) formatterparentheadingr0)r%rVrWrXr*r*r+rPszHelpFormatter._Section.__init__cCs|jdk r|j|jj}|dd|jD}|jdk rD|j|sLdS|jtk rz|jdk rz|jj}d|d|jf}nd}|d||dgS)NcSsg|]\}}||qSr*r*).0funcargsr*r*r+ sz6HelpFormatter._Section.format_help..z%*s%s:  ) rWrVrT _join_partsr0rUrXrrC)r%r$Z item_helpZcurrent_indentrXr*r*r+ format_helps    z"HelpFormatter._Section.format_help)N)rr2r3rPr`r*r*r*r+rFs rFcCs|jj||fdSr-)rHr0r )r%rZr[r*r*r+ _add_itemszHelpFormatter._add_itemcCs0||||j|}||jg||_dSr-)rTrFrHrar`)r%rXZsectionr*r*r+ start_sectionszHelpFormatter.start_sectioncCs|jj|_|dSr-)rHrWrUr1r*r*r+ end_sections zHelpFormatter.end_sectioncCs$|tk r |dk r ||j|gdSr-)rra _format_text)r%textr*r*r+add_textszHelpFormatter.add_textcCs&|tk r"||||f}||j|dSr-)rra _format_usage)r%usageactionsgroupsprefixr[r*r*r+ add_usages zHelpFormatter.add_usagecCsv|jtk rr|j}||g}||D]}|||q$tdd|D}||j}t|j||_||j |gdS)NcSsg|] }t|qSr*lenrYsr*r*r+r\ sz.HelpFormatter.add_argument..) helpr_format_action_invocation_iter_indented_subactionsr r@rCrEra_format_action)r%actionZget_invocationZ invocations subactionZinvocation_lengthZ action_lengthr*r*r+ add_arguments   zHelpFormatter.add_argumentcCs|D]}||qdSr-)rw)r%rirur*r*r+ add_argumentsszHelpFormatter.add_argumentscCs.|j}|r*|jd|}|dd}|S)N r^)rGr`rMsubstrip)r%rqr*r*r+r`s  zHelpFormatter.format_helpcCsddd|DS)Nr]cSsg|]}|r|tk r|qSr*)r)rYpartr*r*r+r\!sz-HelpFormatter._join_parts..)r$)r%Z part_stringsr*r*r+r_ s zHelpFormatter._join_partscs|dkrtd}|dk r,|t|jd}n|dkrL|sLdt|jd}n|dkrdt|jd}g}g}|D] }|jr||qr||qr|j} | |||} ddd|| fD}|j|jt |t |krd} | ||} | ||} t | | }t | | }dfdd }t |t |d krdt |t |d }|r|||g|||}| |||n |r||g|||}n|g}nZdt |}||}|||}t |d krg}| |||| ||||g|}d |}d ||fS)Nzusage: rNz%(prog)s cSsg|] }|r|qSr*r*ror*r*r+r\Asz/HelpFormatter._format_usage..z%\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+csg}g}|dk rt|d}n t|d}|D]Z}|dt|krn|rn||d|g}t|d}|||t|d7}q.|r||d||dk r|dt|d|d<|S)NrRr~r)rnr r$)partsindentrklineslineZline_lenr| text_widthr*r+ get_linesUs"   z.HelpFormatter._format_usage..get_linesg?rRr^z%s%s )N) _dictr=option_stringsr _format_actions_usager$rBrCrnrIfindallextend)r%rhrirjrkrN optionals positionalsruformatZ action_usageZ part_regexpZ opt_usageZ pos_usageZ opt_partsZ pos_partsrrrrr*rr+rg%sX             zHelpFormatter._format_usagec Cst}i}|D]}z||jd}Wntk r@YqYqX|t|j}||||jkr|jD]}||qh|js||kr||d7<nd||<||kr||d7<nd||<nF||kr||d7<nd||<||kr||d7<nd||<t|d|D]} d || <qqg} t|D]"\} }|j t kr| d| | d krr| | n"| | dd krX| | dn|js||} ||| } ||kr| ddkr| d dkr| dd } | | nf|jd} |jdkrd | } n"||} ||| }d | |f} |jsN||krNd | } | | q6t|ddD]} || g| | | <qhddd| D}d}d}td|d|}td|d|}td||fd|}tdd|}|}|S)Nrz [[]z (()rR|%s%s %s[%s]T)reverser~cSsg|]}|dk r|qSr-r*)rYitemr*r*r+r\sz7HelpFormatter._format_actions_usage..z[\[(]z[\])]z(%s) z\1 (%s)z%s *%sr]z \(([^|]*)\))setindex_group_actions ValueErrorrnaddrequiredrange enumeraterqrr getpopr#_get_default_metavar_for_positional _format_argsnargs!_get_default_metavar_for_optionalr.r$rIrzr{)r%rirj group_actionsZinsertsgroupstartendruirdefaultr| option_string args_stringreopencloser*r*r+rsz                    z#HelpFormatter._format_actions_usagecCsFd|kr|t|jd}t|j|jd}d|j}||||dS)Nz%(prog)r} r~ry)rr=r@rBrC _fill_text)r%rerrr*r*r+rds  zHelpFormatter._format_textc Cs:t|jd|j}t|j|d}||jd}||}|jsV|jd|f}d|}n@t||kr~|jd||f}d|}d}n|jd|f}d|}|}|g}|jr| |} | | |} | d|d| df| ddD]} | d|d| fqn| ds| d| |D]} | || q||S) Nr7rr]z%*s%s z %*s%-*s rrRr^)r?rErAr@rBrCrrrqrn _expand_help _split_linesr endswithrsrtr_) r%ruZ help_positionZ help_widthZ action_widthZ action_headertupZ indent_firstrZ help_textZ help_linesrrvr*r*r+rts8          zHelpFormatter._format_actioncCs|js&||}|||d\}|Sg}|jdkrB||jn4||}|||}|jD]}|d||fq^d|SdS)NrRrrr) rr_metavar_formatterrrrrr r$)r%rurmetavarrrrr*r*r+rr"s     z'HelpFormatter._format_action_invocationcsP|jdk r|jn.|jdk rsz4HelpFormatter._metavar_formatter..z{%s},csttrSf|SdSr-) isinstancetuple)Z tuple_sizeresultr*r+rCs z0HelpFormatter._metavar_formatter..format)rchoicesr$)r%rudefault_metavarZ choice_strsrr*rr+r:s   z HelpFormatter._metavar_formattercCs|||}|jdkr$d|d}n|jtkr.zinvalid nargs valuer~) rrr rr rrrr TypeErrorrr$)r%rurZ get_metavarrZformatsr*r*r+rJs*        zHelpFormatter._format_argscCstt||jd}t|D]}||tkr||=qt|D] }t||dr:||j||<q:|ddk rddd|dD}||d<| ||S)Nr}rrrcSsg|] }t|qSr*r)rYcr*r*r+r\ksz.HelpFormatter._expand_help..) rvarsr=r4rhasattrrrr$_get_help_string)r%ruZparamsr(Z choices_strr*r*r+rbs   zHelpFormatter._expand_helpccs@z |j}Wntk rYnX||EdH|dSr-)_get_subactionsAttributeErrorrTrU)r%ruZget_subactionsr*r*r+rsos  z'HelpFormatter._iter_indented_subactionscCs&|jd|}ddl}|||S)Nr~r)rLrzr{textwrapZwrap)r%rerOrr*r*r+ryszHelpFormatter._split_linescCs,|jd|}ddl}|j||||dS)Nr~r)Zinitial_indentZsubsequent_indent)rLrzr{rZfill)r%rerOrrr*r*r+rs zHelpFormatter._fill_textcCs|jSr-)rqr%rur*r*r+rszHelpFormatter._get_help_stringcCs |jSr-)destupperrr*r*r+rsz/HelpFormatter._get_default_metavar_for_optionalcCs|jSr-)rrr*r*r+rsz1HelpFormatter._get_default_metavar_for_positional)r7r8N)N)rr2r3rPrTrUobjectrFrarbrcrfrlrwrxr`r_rgrrdrtrrrrrrsrrrrrr*r*r*r+rs<   `g/  c@seZdZddZdS)rcs dfdd|jddDS)Nr]c3s|]}|VqdSr-r*)rYrrr*r+ sz9RawDescriptionHelpFormatter._fill_text..T)keepends)r$ splitlines)r%rerOrr*rr+rsz&RawDescriptionHelpFormatter._fill_textN)rr2r3rr*r*r*r+rsc@seZdZddZdS)rcCs|Sr-)r)r%rerOr*r*r+rsz!RawTextHelpFormatter._split_linesN)rr2r3rr*r*r*r+rsc@seZdZddZdS)rcCs>|j}d|jkr:|jtk r:ttg}|js2|j|kr:|d7}|S)Nz %(default)z (default: %(default)s))rqrrr rrr)r%rurqZdefaulting_nargsr*r*r+rs  z.ArgumentDefaultsHelpFormatter._get_help_stringN)rr2r3rr*r*r*r+rsc@seZdZddZddZdS)r cCs|jjSr-rrrr*r*r+rsz:MetavarTypeHelpFormatter._get_default_metavar_for_optionalcCs|jjSr-rrr*r*r+rsz.r*r%namesr*r1r+r"?s zAction._get_kwargscCsttddS)Nz.__call__() not defined)NotImplementedErrorrr%parser namespacevaluesrr*r*r+__call__MszAction.__call__)NNNNNFNN)N)rr2r3rPr"rr*r*r*r+r s6 cs(eZdZdfdd ZdddZZS) _StoreActionNFc sT|dkrtd|dk r,|tkr,tdttt|j||||||||| | d dS)Nrznargs for store actions must be != 0; if you have nothing to store, actions such as store true or store const may be more appropriate nargs must be %r to supply constr)rr superrrPr __class__r*r+rPSs   z_StoreAction.__init__cCst||j|dSr-)setattrrrr*r*r+rpsz_StoreAction.__call__)NNNNNFNN)Nrr2r3rPr __classcell__r*r*rr+rQsrcs(eZdZdfdd ZdddZZS) _StoreConstActionNFc s"tt|j||d||||ddS)Nr)rrrrrrrq)rrrPr%rrrrrrqrrr*r+rPvs z_StoreConstAction.__init__cCst||j|jdSr-)rrrrr*r*r+rsz_StoreConstAction.__call__)NFNN)Nrr*r*rr+rts rcseZdZdfdd ZZS)_StoreTrueActionFNcs tt|j||d|||ddS)NTrrrrrrq)rrrPr%rrrrrqrr*r+rPs z_StoreTrueAction.__init__)FFNrr2r3rPrr*r*rr+rsrcseZdZdfdd ZZS)_StoreFalseActionTFNcs tt|j||d|||ddS)NFr)rrrPrrr*r+rPs z_StoreFalseAction.__init__)TFNrr*r*rr+rsrcs(eZdZdfdd ZdddZZS) _AppendActionNFc sT|dkrtd|dk r,|tkr,tdttt|j||||||||| | d dS)Nrznargs for append actions must be != 0; if arg strings are not supplying the value to append, the append const action may be more appropriaterr)rr rrrPrrr*r+rPs   z_AppendAction.__init__cCs2t||jd}t|}||t||j|dSr-)rrr6r rr%rrrrr0r*r*r+rs z_AppendAction.__call__)NNNNNFNN)Nrr*r*rr+rsrcs(eZdZdfdd ZdddZZS) _AppendConstActionNFc s$tt|j||d|||||ddS)Nr)rrrrrrrqr)rrrPrrr*r+rPs z_AppendConstAction.__init__cCs4t||jd}t|}||jt||j|dSr-)rrr6r rrrr*r*r+rs z_AppendConstAction.__call__)NFNN)Nrr*r*rr+rs rcs(eZdZdfdd ZdddZZS) _CountActionNFcs tt|j||d|||ddS)Nr)rrrrrrq)rrrPrrr*r+rPs z_CountAction.__init__cCs0t||jd}|dkrd}t||j|ddSNrrR)rrr)r%rrrrcountr*r*r+rsz_CountAction.__call__)NFN)Nrr*r*rr+rs rcs.eZdZeedffdd ZdddZZS) _HelpActionNcstt|j|||d|ddSNr)rrrrrq)rrrP)r%rrrrqrr*r+rPs z_HelpAction.__init__cCs||dSr-) print_helpexitrr*r*r+rsz_HelpAction.__call__)Nrr2r3rrPrrr*r*rr+rs  rcs0eZdZdeedffdd ZdddZZS)_VersionActionNz&show program's version number and exitcs$tt|j|||d|d||_dSr)rrrPversion)r%rrrrrqrr*r+rPs z_VersionAction.__init__cCsD|j}|dkr|j}|}||||tj|dSr-)r_get_formatterrf_print_messager`_sysstdoutr)r%rrrrrrVr*r*r+r(s z_VersionAction.__call__)Nrr*r*rr+rs rcsPeZdZGdddeZedddffdd ZddZd d Zd d d Z Z S)_SubParsersActioncseZdZfddZZS)z&_SubParsersAction._ChoicesPseudoActioncs@|}}|r|dd|7}ttj|}|jg|||ddS)Nrr)rrrqr)r$rr _ChoicesPseudoActionrP)r%r(aliasesrqrrZsuprr*r+rP6s  z/_SubParsersAction._ChoicesPseudoAction.__init__rr*r*rr+r 4sr FNc s<||_||_i|_g|_tt|j||t|j|||ddS)N)rrrrrrqr) _prog_prefix _parser_class_name_parser_map_choices_actionsrr rPr)r%rrN parser_classrrrqrrr*r+rP>s  z_SubParsersAction.__init__cKs|ddkr d|j|f|d<|dd}d|krX|d}||||}|j||jf|}||j|<|D]}||j|<qr|S)NrNrr r*rq)rr rr rr r r)r%r(kwargsr rqZ choice_actionraliasr*r*r+ add_parserUs      z_SubParsersAction.add_parsercCs|jSr-)rr1r*r*r+rlsz!_SubParsersAction._get_subactionsc Cs|d}|dd}|jtk r,t||j|z|j|}Wn<tk rv|d|jd}td|}t||YnX||d\} }t |  D]\} } t|| | q|rt | t gt |t |dS)NrrRr) parser_namerz5unknown parser %(parser_name)r (choices: %(choices)s))rrrrKeyErrorr$rrparse_known_argsrr0 setdefault_UNRECOGNIZED_ARGS_ATTRrr) r%rrrrrr&r[msgZ subnamespacekeyr)r*r*r+ros$     z_SubParsersAction.__call__)N) rr2r3r r rrPrrrrr*r*rr+r 2sr c@seZdZdddZdS) _ExtendActionNcCs2t||jd}t|}||t||j|dSr-)rrr6rrrr*r*r+rs z_ExtendAction.__call__)N)rr2r3rr*r*r*r+rsrc@s&eZdZd ddZddZdd ZdS) rrrNcCs||_||_||_||_dSr-)_mode_bufsize _encoding_errors)r%modebufsizeencodingerrorsr*r*r+rPszFileType.__init__c Cs|dkr>d|jkrtjSd|jkr(tjStd|j}t|zt||j|j|j|j WSt k r}z"||d}td}t ||W5d}~XYnXdS)N-rwzargument "-" with mode %r)filenameerrorz$can't open '%(filename)s': %(error)s) rrstdinrrrrrrr OSErrorr)r%stringrer[rr*r*r+rs   zFileType.__call__cCsT|j|jf}d|jfd|jfg}ddd|Ddd|D}dt|j|fS)Nr#r$rcSsg|]}|dkrt|qS)r)r!)rYr'r*r*r+r\sz%FileType.__repr__..cSs$g|]\}}|dk rd||fqS)Nrr*)rYkwr'r*r*r+r\sr)rrrr r$rr)r%r[rZargs_strr*r*r+r,s   zFileType.__repr__)rrNN)rr2r3rPrr,r*r*r*r+rs c@s$eZdZddZddZddZdS)r cKs|D]}t||||qdSr-)r)r%rr(r*r*r+rPszNamespace.__init__cCst|tstSt|t|kSr-)rr NotImplementedr)r%otherr*r*r+__eq__s zNamespace.__eq__cCs ||jkSr-)r/)r%rr*r*r+ __contains__szNamespace.__contains__N)rr2r3rPr0r1r*r*r*r+r scseZdZfddZddZd&ddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZd'ddZddZd d!Zd"d#Zd$d%ZZS)(_ActionsContainercstt|||_||_||_||_i|_|ddt |ddt |ddt |ddt |ddt |ddt |ddt|ddt|dd t|dd t|dd t|dd t|g|_i|_g|_g|_i|_td |_g|_dS)NruZstoreZ store_const store_trueZ store_falser Z append_constrrqrparsersrz^-\d+$|^-\d*\.\d+$)rr2rP descriptionargument_default prefix_charsconflict_handler _registriesregisterrrrrrrrrrr r _get_handler_actions_option_string_actions_action_groups_mutually_exclusive_groups _defaultsrIrJ_negative_number_matcher_has_negative_number_optionals)r%r5r7r6r8rr*r+rPs4 z_ActionsContainer.__init__cCs|j|i}|||<dSr-)r9r)r% registry_namer)rregistryr*r*r+r:sz_ActionsContainer.registerNcCs|j|||Sr-)r9r)r%rCr)rr*r*r+ _registry_get sz_ActionsContainer._registry_getcKs2|j||jD]}|j|kr||j|_qdSr-)r@updater<rr)r%rrur*r*r+ set_defaults&s   z_ActionsContainer.set_defaultscCs8|jD]"}|j|kr|jdk r|jSq|j|dSr-)r<rrr@r)r%rrur*r*r+ get_default/s  z_ActionsContainer.get_defaultcOsD|j}|r&t|dkrH|dd|krH|r:d|kr:td|j||}n |j||}d|kr|d}||jkr~|j||d<n|jdk r|j|d<||}t|std|f|f|}| d|j |j }t|std|f|t krtd |ft |d r:z| |dWntk r8td YnX||S) NrRrrz+dest supplied twice for positional argumentrzunknown action "%s"r%r is not callablez<%r is a FileType class object, instance of it must be passedrz,length of metavar tuple does not match nargs)r7rnr_get_positional_kwargs_get_optional_kwargsr@r6_pop_action_classcallablerErrrrrr _add_action)r%r[rcharsrZ action_classru type_funcr*r*r+rw9s:          z_ActionsContainer.add_argumentcOs t|f||}|j||Sr-)_ArgumentGroupr>r )r%r[rrr*r*r+add_argument_groupls z$_ActionsContainer.add_argument_groupcKst|f|}|j||Sr-)_MutuallyExclusiveGroupr?r )r%rrr*r*r+add_mutually_exclusive_groupqs  z._ActionsContainer.add_mutually_exclusive_groupcCs`|||j|||_|jD]}||j|<q"|jD]"}|j|r8|js8|jdq8|S)NT) _check_conflictr<r containerrr=rAmatchrB)r%rurr*r*r+rNvs      z_ActionsContainer._add_actioncCs|j|dSr-)r<removerr*r*r+_remove_actionsz _ActionsContainer._remove_actioncCsi}|jD].}|j|kr.td}t||j|||j<q i}|jD]D}|j|krn|j|j|j|jd||j<|jD]}||j||<qtqD|jD]&}|j |j d}|jD] }|||<qq|j D]}| || |qdS)Nz.cannot merge actions - two groups are named %r)titler5r8)r)r>rZrrrRr5r8rr?rTrr<rrN)r%rVZtitle_group_maprrZ group_mapru mutex_groupr*r*r+_add_container_actionss0           z(_ActionsContainer._add_container_actionscKs^d|krtd}t||dttfkr2d|d<|dtkrPd|krPd|d<t||gdS)Nrz1'required' is an invalid argument for positionalsrTrrr)rrrr rr)r%rrrr*r*r+rJsz(_ActionsContainer._get_positional_kwargsc Osg}g}|D]n}|d|jkr>||jd}td}t|||||d|jkr t|dkr |d|jkr ||q |dd}|dkr|r|d}n|d}||j}|std}t|||dd}t|||d S) Nr)optionr7zNinvalid option string %(option)r: must start with a character %(prefix_chars)rrRrz%dest= is required for options like %rr%rr]) r7rrr rnrlstripreplacer) r%r[rrZlong_option_stringsrrrZdest_option_stringr*r*r+rKs2         z&_ActionsContainer._get_optional_kwargscCs|d|}|d||S)Nru)rrE)r%rrrur*r*r+rLs z#_ActionsContainer._pop_action_classcCsFd|j}z t||WStk r@td}t||jYnXdS)Nz_handle_conflict_%sz%invalid conflict_resolution value: %r)r8rrrr)r%Zhandler_func_namerr*r*r+r;s   z_ActionsContainer._get_handlercCsLg}|jD]&}||jkr |j|}|||fq |rH|}|||dSr-)rr=r r;)r%ruZconfl_optionalsrZconfl_optionalr8r*r*r+rUs   z!_ActionsContainer._check_conflictcCs6tddt|}ddd|D}t|||dS)Nzconflicting option string: %szconflicting option strings: %srcSsg|] \}}|qSr*r*)rYrrur*r*r+r\ sz<_ActionsContainer._handle_conflict_error..)rrnr$r)r%ruconflicting_actionsrZconflict_stringr*r*r+_handle_conflict_errors z(_ActionsContainer._handle_conflict_errorcCs>|D]4\}}|j||j|d|js|j|qdSr-)rrXr=rrVrY)r%rurarr*r*r+_handle_conflict_resolves   z*_ActionsContainer._handle_conflict_resolve)N)N)rr2r3rPr:rErGrHrwrRrTrNrYr\rJrKrLr;rUrbrcrr*r*rr+r2s$ 5   3($   r2cs6eZdZdfdd ZfddZfddZZS) rQNc s|j}|d|j|d|j|d|jtt|j}|fd|i|||_g|_|j |_ |j |_ |j |_ |j |_ |j |_ |j|_dS)Nr8r7r6r5)rr8r7r6rrQrPrZrr9r<r=r@rBr?)r%rVrZr5rrFZ super_initrr*r+rPs    z_ArgumentGroup.__init__cs tt||}|j||Sr-)rrQrNrr rrr*r+rN5s z_ArgumentGroup._add_actioncs tt|||j|dSr-)rrQrYrrXrrr*r+rY:sz_ArgumentGroup._remove_action)NNrr2r3rPrNrYrr*r*rr+rQs rQcs.eZdZdfdd ZddZddZZS) rSFcs tt||||_||_dSr-)rrSrPr _container)r%rVrrr*r+rPAsz _MutuallyExclusiveGroup.__init__cCs2|jrtd}t||j|}|j||S)Nz-mutually exclusive arguments must be optional)rrrrerNrr )r%rurr*r*r+rNFs   z#_MutuallyExclusiveGroup._add_actioncCs|j||j|dSr-)rerYrrXrr*r*r+rYNs z&_MutuallyExclusiveGroup._remove_action)Frdr*r*rr+rS?srSc s&eZdZddddgeddddddf fdd ZddZd d Zd d Zd dZddZ d@ddZ dAddZ ddZ ddZ ddZddZddZdd Zd!d"Zd#d$ZdBd%d&ZdCd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4ZdDd5d6ZdEd7d8ZdFd9d:ZdGdd?Z Z!S)HrNr%r(Tc  s"tt|j} | ||| | d|dkr6tjtjd}||_||_ ||_ ||_ ||_ | |_ | |_|j}|td|_|td|_d|_dd}|dd|d|krdn|d}|j r|j|d |d d d ttd d |D]<}||z |j}Wntk rYqX|j|qdS)N)r5r7r6r8rzpositional argumentszoptional argumentscSs|Sr-r*)r+r*r*r+identitysz)ArgumentParser.__init__..identityrr%hr7rqzshow this help message and exit)rurrq)rrrP_ospathbasenamerargvrNrhepilogformatter_classfromfile_prefix_charsadd_help allow_abbrevrRr _positionals _optionals _subparsersr:rwrr\r@rrF)r%rNrhr5rlparentsrmr7rnr6r8rorpZ superinitZ add_grouprfZdefault_prefixrWdefaultsrr*r+rPfsJ    zArgumentParser.__init__cs"ddddddg}fdd|DS) NrNrhr5rmr8rocsg|]}|t|fqSr*rrr1r*r+r\sz.ArgumentParser._get_kwargs..r*rr*r1r+r"szArgumentParser._get_kwargsc Ks|jdk r|td|dt|d|ks8d|krht|dd}t|dd}||||_n|j|_|ddkr| }| }|j }| |j ||d||d<||d}|fd gi|}|j||S) Nz(cannot have multiple subparser argumentsrrZr5Z subcommandsrNr]r4r)rsr(rrrrrRrqrr_get_positional_actionsr?rlrhr`r{rLrN) r%rrZr5rVrrjZ parsers_classrur*r*r+add_subparserss$   zArgumentParser.add_subparserscCs$|jr|j|n |j||Sr-)rrrrNrqrr*r*r+rNs zArgumentParser._add_actioncCsdd|jDS)NcSsg|]}|jr|qSr*rrYrur*r*r+r\sz8ArgumentParser._get_optional_actions..r<r1r*r*r+_get_optional_actionssz$ArgumentParser._get_optional_actionscCsdd|jDS)NcSsg|]}|js|qSr*rxryr*r*r+r\sz:ArgumentParser._get_positional_actions..rzr1r*r*r+rvsz&ArgumentParser._get_positional_actionscCs4|||\}}|r0td}||d||SNzunrecognized arguments: %sr~)rrr(r$r%r[rrkrr*r*r+ parse_argss zArgumentParser.parse_argscCs|dkrtjdd}nt|}|dkr.t}|jD]4}|jtk r4t||js4|jtk r4t ||j|jq4|j D] }t||spt |||j |qpz>| ||\}}t|t r| t|t t|t ||fWStk rtd}|t|YnXdSrQ)rrkr4r r<rrrrrr@_parse_known_argsrrrdelattrrexc_infor(r)r%r[rrurerrr*r*r+rs,          zArgumentParser.parse_known_argscs jdk r i jD]R}|j}t|jD]<\}}|g}||d||||ddq2qig}t} t| D]^\}} | dkr|d| D]} |dqq | } | dkrd} n | |<d} || qd |t t d fdd  fd d }  fd d }gd r`t }nd} |krt fddD} |kr| }| kr| qdn| kr҈ |}|| |  qd| }|dg} jD]|}|kr|jr(|t|nT|jdk rt|jtrt|jr|jt|jkrt|j ||jq|r tdd | jD]X}|jr|jD]}|krqqdd|jD}td} |d |qfS)NrR--r%AOr]cs||||}||jk rb||gD]*}|kr6td}t|}t|||q6|tk rx|||dS)Nznot allowed with argument %s)r _get_valuesrrrrrr)ruZargument_stringsrZargument_valuesZconflict_actionrZ action_name)action_conflictsr seen_actionsseen_non_default_actionsr%r*r+ take_action@s    z5ArgumentParser._parse_known_args..take_actioncs~|}|\}}}j}g}|dkr:||dS|dk r||d}j}|dkr|d|kr||g|f|d} | |d}|ddpd} j} || kr| |}| }ntd} t|| |nB|dkr|d} |g}||||fq\ntd} t|| |q|d}|d}|||}||} || }||||fq\q|D]\}}}|||q`| S)NrRrrzignored explicit argument %r)_match_argumentr r7r=rr) start_index option_tuplerur explicit_argZmatch_argumentZ action_tuples arg_countrOcharZnew_explicit_argZ optionals_maprstopr[rZselected_patterns)r&arg_strings_patternextrasoption_string_indicesr%rr*r+consume_optionalUsL       z:ArgumentParser._parse_known_args..consume_optionalcsnj}|d}||}t|D]*\}}|||}||7}||q&t|ddd<|Sr-)_match_arguments_partialziprn)rZ match_partialZselected_patternZ arg_countsrurr[)r&rrr%rr*r+consume_positionalss   z=ArgumentParser._parse_known_args..consume_positionalsrrcsg|]}|kr|qSr*r*)rYr)rr*r+r\sz4ArgumentParser._parse_known_args..z(the following arguments are required: %srcSsg|]}|jtk rt|qSr*)rqrrryr*r*r+r\s z#one of the arguments %s is requiredr~)N)rn_read_args_from_filesr?rrrriterr _parse_optionalr$rrvr@r?r<rrrrrrrrr _get_valuer(r)r%r&rr[rrZ mutex_actionZ conflictsZarg_string_pattern_partsZarg_strings_iter arg_stringrpatternrrZmax_option_string_indexZnext_option_string_indexZpositionals_end_indexZstringsZ stop_indexZrequired_actionsrurrrr*) rr&rrrrrrrr%rrr+rs        J                    z ArgumentParser._parse_known_argsc Csg}|D]}|r|d|jkr*||qzdt|ddJ}g}|D]}||D]}||q\qN||}||W5QRXWqtk rt d}| t |YqXq|Sr) rnr rreadrconvert_arg_line_to_argsrrr*rrr(r)r%r&Znew_arg_stringsrZ args_filearg_liner'rr*r*r+rs    z$ArgumentParser._read_args_from_filescCs|gSr-r*)r%rr*r*r+r!sz'ArgumentParser.convert_arg_line_to_argscCsz||}t||}|dkrldtdttdttdi}||j}|dkrbtdd|j|j}t ||t | dS)Nzexpected one argumentzexpected at most one argumentzexpected at least one argumentzexpected %s argumentzexpected %s argumentsrR) _get_nargs_patternrIrWrr r rrrrrnr)r%rur nargs_patternrWZ nargs_errorsrr*r*r+r$s(    zArgumentParser._match_argumentcsrg}tt|ddD]X}|d|}dfdd|D}t||}|dk r|dd|Dqnq|S)Nrrr]csg|]}|qSr*)rryr1r*r+r\@sz;ArgumentParser._match_arguments_partial..cSsg|] }t|qSr*rm)rYr+r*r*r+r\Ds)rrnr$rIrWrrj)r%rirrrZ actions_slicerrWr*r1r+r:s  z'ArgumentParser._match_arguments_partialc Cs|sdS|d|jkrdS||jkr8|j|}||dfSt|dkrHdSd|kr~|dd\}}||jkr~|j|}|||fS||}t|dkrddd|D}||d}td}|||nt|dkr|\} | S|j |r|j sdSd |krdSd|dfS) NrrR=rcSsg|]\}}}|qSr*r*)rYrurrr*r*r+r\isz2ArgumentParser._parse_optional..)r^Zmatchesz4ambiguous option: %(option)s could match %(matches)sr~) r7r=rnsplit_get_option_tuplesr$rr(rArWrB) r%rrurrZ option_tuplesZoptionsr[rrr*r*r+rJs>              zArgumentParser._parse_optionalc Cs0g}|j}|d|kr|d|kr|jr~d|krB|dd\}}n|}d}|jD],}||rP|j|}|||f}||qPn|d|kr|d|kr|}d}|dd}|dd} |jD]T}||kr|j|}||| f}||q||r|j|}|||f}||qn|td||S)NrrRrr7zunexpected option string: %s)r7rprr= startswithr r(r) r%rrrOZ option_prefixrrurZshort_option_prefixZshort_explicit_argr*r*r+rs:             z!ArgumentParser._get_option_tuplescCs|j}|dkrd}nf|tkr"d}nX|tkr0d}nJ|tkr>d}n<|tkrLd}n.|tkrZd}n |tkrhd}ndd d |}|jr| d d }| d d }|S) Nz(-*A-*)z(-*A?-*)z (-*[A-]*)z (-*A[A-]*)z([-AO]*)z (-*A[-AO]*)z(-*-*)z(-*%s-*)z-*rr]r%) rr rr rrrr$rr`)r%rurrr*r*r+rs(  z!ArgumentParser._get_nargs_patterncCs4|||\}}|r0td}||d||Sr|)parse_known_intermixed_argsrr(r$r}r*r*r+parse_intermixed_argss z$ArgumentParser.parse_intermixed_argsc s|ddD}|r,td|djfdd|jDrHtdzN|j}z|jdkrp|dd|_D] }|j|_t |_|j|_t |_qt| ||\}}D]J}t ||j rt ||j gkrddlm}|d |j |ft||j qW5D]}|j|_|j|_qX|}zJ|D]}|j|_d |_q$|jD]} | j| _d | _q@| ||\}} W5|D]}|j|_qn|jD]} | j| _qXW5||_X|| fS) NcSsg|]}|jttfkr|qSr*)rrrryr*r*r+r\sz>ArgumentParser.parse_known_intermixed_args..z3parse_intermixed_args: positional arg with nargs=%srcs&g|]}|jD]}|kr|jqqSr*)rr)rYrrurr*r+r\s z;parse_intermixed_args: positional in mutuallyExclusiveGroup)warnzDo not expect %s in %sF)rvrrr?rhZ save_nargsZ save_defaultr format_usagerrrrrwarningsrrr{Z save_requiredr) r%r[raZ save_usageruZremaining_argsrrrrr*rr+rs`           z*ArgumentParser.parse_known_intermixed_argscsjttfkr2z|dWntk r0YnX|szjtkrzjrNj}nj}t |t rv |} |n|sjt krjsjdk rj}n|} |nt|dkrjdtfkr|\} |} |njtkrfdd|D}npjtkr@fdd|D} |dn>jtkrRt}n,fdd|D}|D]} |qj|S)NrrRcsg|]}|qSr*rrYvrur%r*r+r\Z sz.ArgumentParser._get_values..csg|]}|qSr*rrrr*r+r\^ srcsg|]}|qSr*rrrr*r+r\g s)rrrrXrr rrrrrr _check_valuerrnr)r%rur&r)rrr*rr+r6 sD       zArgumentParser._get_valuesc Cs|d|j|j}t|s0td}t|||z ||}Wntk r~t|jdt|j}tt d}t||YnLt t fk rt|jdt|j}||d}td}t|||YnX|S)NrrIrrR)rr)z!invalid %(type)s value: %(value)r) rErrMrrrrr!rrrrr)r%rurrPrrr(r[r*r*r+rn s   zArgumentParser._get_valuecCsF|jdk rB||jkrB|dtt|jd}td}t|||dS)Nr)r)rz3invalid choice: %(value)r (choose from %(choices)s))rr$mapr!rr)r%rur)r[rr*r*r+r s zArgumentParser._check_valuecCs$|}||j|j|j|Sr-)rrlrhr<r?r`)r%rVr*r*r+r s  zArgumentParser.format_usagecCst|}||j|j|j||j|jD]0}||j ||j| |j | q.||j |Sr-)rrlrhr<r?rfr5r>rbrZrxrrcrlr`)r%rVZ action_groupr*r*r+r` s        zArgumentParser.format_helpcCs|j|jdS)Nr})rmrNr1r*r*r+r szArgumentParser._get_formattercCs"|dkrtj}|||dSr-)rrrrr%filer*r*r+ print_usage szArgumentParser.print_usagecCs"|dkrtj}|||dSr-)rrrr`rr*r*r+r szArgumentParser.print_helpcCs |r|dkrtj}||dSr-)rstderrwrite)r%rrr*r*r+r szArgumentParser._print_messagercCs |r||tjt|dSr-)rrrr)r%Zstatusrr*r*r+r szArgumentParser.exitcCs0|tj|j|d}|dtd|dS)N)rNrr7z%(prog)s: error: %(message)s )rrrrNrr)r%rr[r*r*r+r( s  zArgumentParser.error)NN)NN)NN)NN)N)N)N)rN)"rr2r3rrPr"rwrNr{rvr~rrrrrrrrrrrrrrrr`rrrrrr(rr*r*rr+rSsT@  #w:-1  M8    )2 __version____all__osrhrerIZshutilr:sysrrrrrr rr rrrrrr6rrrrr r Exceptionrrr rrrrrrrrrr rrr r2rQrSrr*r*r*r+As~z    [#&] 7:"