a DOgG@sdZgdZddlZddlZddlZddlmZ m Z dZ dZ dZ dZd Zd Zd ZGd d d eZddZGdddeZGdddeZGdddeZGdddeZGdddeZddZGdddeZGdddeZGd d!d!eZGd"d#d#eZGd$d%d%eZ Gd&d'd'eZ!Gd(d)d)e!Z"Gd*d+d+e!Z#Gd,d-d-eZ$Gd.d/d/eZ%Gd0d1d1eZ&Gd2d3d3eZ'Gd4d5d5eZ(Gd6d7d7eZ)Gd8d9d9e$Z*Gd:d;d;eZ+Gdd?d?eZ-Gd@dAdAe-Z.GdBdCdCe.Z/GdDdEdEee-Z0dS)Fz1.1)ArgumentParser ArgumentErrorArgumentTypeErrorBooleanOptionalActionFileType 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+-/opt/alt/python39/lib64/python3.9/argparse.py__repr__ts   z_AttributeHolder.__repr__cCst|jSN)list__dict__itemsr&r+r+r,r#sz_AttributeHolder._get_kwargscCsgSr.r+r2r+r+r,r sz_AttributeHolder._get_argsN)r __module__ __qualname__r-r#r r+r+r+r,rks rcCs6|dur gSt|tur$|ddSddl}||SNr)rr/copy)r1r6r+r+r, _copy_itemss   r7c@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)z6HelpFormatter._Section.format_help..z%*s%s:  ) rXrWrU _join_partsr1rVrYrrD)r&r%Z item_helpZcurrent_indentrYr+r+r, format_helps    z"HelpFormatter._Section.format_help)N)rr3r4rQrbr+r+r+r,rGs rGcCs|jj||fdSr.)rIr1r!)r&r[r\r+r+r, _add_itemszHelpFormatter._add_itemcCs0||||j|}||jg||_dSr.)rUrGrIrcrb)r&rYZsectionr+r+r, start_sectionszHelpFormatter.start_sectioncCs|jj|_|dSr.)rIrXrVr2r+r+r, end_sections zHelpFormatter.end_sectioncCs$|tur |dur ||j|gdSr.)rrc _format_text)r&textr+r+r,add_textszHelpFormatter.add_textcCs&|tur"||||f}||j|dSr.)rrc _format_usage)r&usageactionsgroupsprefixr\r+r+r, add_usages zHelpFormatter.add_usagecCsr|jturn|j}||g}||D]}|||q$ttt|}||j}t|j ||_ | |j |gdSr.) helpr_format_action_invocation_iter_indented_subactionsr!rAmaplenrDrFrc_format_action)r&actionZget_invocationZ invocations subactionZinvocation_lengthZ action_lengthr+r+r, add_arguments   zHelpFormatter.add_argumentcCs|D]}||qdSr.)rw)r&rkrur+r+r, add_argumentsszHelpFormatter.add_argumentscCs.|j}|r*|jd|}|dd}|S)N r`)rHrbrNsubstrip)r&ror+r+r,rbs  zHelpFormatter.format_helpcCsddd|DS)Nr_cSsg|]}|r|tur|qSr+)r)rZpartr+r+r,r]"s z-HelpFormatter._join_parts..)r%)r&Z part_stringsr+r+r,ra!s zHelpFormatter._join_partscs|durtd}|dur,|t|jd}n|durL|sLdt|jd}n|durdt|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: rOz%(prog)s cSsg|] }|r|qSr+r+)rZsr+r+r,r]Br^z/HelpFormatter._format_usage..z%\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+csg}g}|durt|d}n t|d}|D]Z}|dt|krn|rn||d|g}t|d}|||t|d7}q.|r||d||dur|dt|d|d<|S)NrSr~r)rsr!r%)partsindentrmlineslineZline_lenr| text_widthr+r, get_linesVs"   z.HelpFormatter._format_usage..get_linesg?rSr`z%s%s )N) _dictr>option_stringsr!_format_actions_usager%rCrDrsrJfindallextend)r&rjrkrlrmrO optionals positionalsruformatZ action_usageZ part_regexpZ opt_usageZ pos_usageZ opt_partsZ pos_partsrrrrr+rr,ri&sX             zHelpFormatter._format_usagec Cst}i}|D]*}|js(td|z||jd}WntyRYqYq0|t|j}||||jkr|jD]}||qz|js||vr||d7<nd||<||vr||d7<nd||<nF||vr||d7<nd||<||vr||d7<nd||<t|d |D]} d || <q*qg} t|D]"\} }|j t ur| d| | d kr| | n"| | d d krj| | d n|js||} ||| } ||vr| ddkr| d dkr| d d } | | nf|jd} |jdkr$|} n"||} ||| }d | |f} |js`||vr`d | } | | qHt|ddD]} || g| | | <qzddd| D}d}d}td|d|}td|d|}td||fd|}tdd|}|}|S)Nz empty group rz [[]z (()rS|%s %s[%s]T)reverser~cSsg|]}|dur|qSr.r+)rZitemr+r+r,r]r^z7HelpFormatter._format_actions_usage..z[\[(]z[\])]z(%s) z\1 (%s)z%s *%sr_z \(([^|]*)\))set_group_actions ValueErrorindexrsaddrequiredrange enumeraterorr!getpopr#_get_default_metavar_for_positional _format_argsnargs format_usage!_get_default_metavar_for_optionalsortedr%rJrzr{)r&rkrl group_actionsZinsertsgroupstartendruirdefaultr| option_string args_stringrgopencloser+r+r,rs~                     z#HelpFormatter._format_actions_usagecCsFd|vr|t|jd}t|j|jd}d|j}||||dS)Nz%(prog)r} r~ry)rr>rArCrD _fill_text)r&rgrrr+r+r,rfs  zHelpFormatter._format_textc CsNt|jd|j}t|j|d}||jd}||}|jsV|jd|f}d|}n@t||kr~|jd||f}d|}d}n|jd|f}d|}|}|g}|jr |j r | |} | r"| | |} | d|d| df| ddD]} | d|d| fqn| ds"| d||D]} | || q,||S) Nr8rr_z%*s%s z %*s%-*s rrSr`)r@rFrBrArCrDrprorsr{ _expand_help _split_linesr!endswithrqrtra) r&ruZ help_positionZ help_widthZ action_widthZ action_headertupZ indent_firstrZ help_textZ help_linesrrvr+r+r,rts:          zHelpFormatter._format_actioncCs|js&||}|||d\}|Sg}|jdkrB||jn4||}|||}|jD]}|d||fq^d|SdS)NrSrrr) rr_metavar_formatterrrrrr!r%)r&rurmetavarrrrr+r+r,rp's     z'HelpFormatter._format_action_invocationcsP|jdur|jn.|jdur.z{%s},csttrSf|SdSr.) isinstancetuple)Z tuple_sizeresultr+r,rHs z0HelpFormatter._metavar_formatter..format)rchoicesr%)r&rudefault_metavarZ choice_strsrr+rr,r?s   z HelpFormatter._metavar_formattercCs |||}|jdur$d|d}n|jtkr.zinvalid nargs valuer~) rrrrrsr rrrr TypeErrorrr%)r&rurZ get_metavarrrZformatsr+r+r,rOs0            zHelpFormatter._format_argscCstt||jd}t|D]}||tur||=qt|D] }t||dr:||j||<q:|ddurddd|dD}||d<| ||S)Nr}rrrcSsg|] }t|qSr+rrZcr+r+r,r]tr^z.HelpFormatter._expand_help..) rvarsr>r/rhasattrrrr%_get_help_string)r&ruparamsr)Z choices_strr+r+r,rks   zHelpFormatter._expand_helpccs>z |j}WntyYn0||EdH|dSr.)_get_subactionsAttributeErrorrUrV)r&ruZget_subactionsr+r+r,rqxs   z'HelpFormatter._iter_indented_subactionscCs&|jd|}ddl}|||S)Nr~r)rMrzr{textwrapZwrap)r&rgrPrr+r+r,rszHelpFormatter._split_linescCs,|jd|}ddl}|j||||dS)Nr~r)Zinitial_indentZsubsequent_indent)rMrzr{rZfill)r&rgrPrrr+r+r,rs zHelpFormatter._fill_textcCs|jSr.)ror&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)r8r9N)N)rr3r4rQrUrVobjectrGrcrdrerhrnrwrxrbrarirrfrtrprrrrqrrrrrr+r+r+r,rs<   `j0  rc@seZdZddZdS)rcs dfdd|jddDS)Nr_c3s|]}|VqdSr.r+)rZrrr+r, r^z9RawDescriptionHelpFormatter._fill_text..T)keepends)r% splitlines)r&rgrPrr+rr,rsz&RawDescriptionHelpFormatter._fill_textN)rr3r4rr+r+r+r,rsrc@seZdZddZdS)r cCs|Sr.)r)r&rgrPr+r+r,rsz!RawTextHelpFormatter._split_linesN)rr3r4rr+r+r+r,r sr c@seZdZddZdS)rcCs>|j}d|jvr:|jtur:ttg}|js2|j|vr:|d7}|S)Nz %(default) (default: %(default)s))rorrrrrr)r&ruroZdefaulting_nargsr+r+r,rs  z.ArgumentDefaultsHelpFormatter._get_help_stringN)rr3r4rr+r+r+r,rsrc@seZdZddZddZdS)r cCs|jjSr.rrrr+r+r,rsz:MetavarTypeHelpFormatter._get_default_metavar_for_optionalcCs|jjSr.rrr+r+r,rsz.r+r&namesr+r2r,r#Js zAction._get_kwargscCs |jdSr5rr2r+r+r,rYszAction.format_usagecCsttddS)Nz.__call__() not defined)NotImplementedErrorrr&parser namespacevaluesrr+r+r,__call__\szAction.__call__)NNNNNFNN)N)rr3r4rQr#rrr+r+r+r,r s6 r cs0eZdZd fdd Zd ddZddZZS) rNFc s~g} |D]2} | | | drd| dd} | | q|dur\|dur\|tur\|d7}tj| |d||||||d dS)N----no-r8rr) rrrrrrrror)r! startswithrsuperrQ) r&rrrrrrrorZ_option_stringsr __class__r+r,rQ`s&    zBooleanOptionalAction.__init__cCs$||jvr t||j|d dS)Nr)rsetattrrrrr+r+r,rs zBooleanOptionalAction.__call__cCs d|jS)Nz | )r%rr2r+r+r,rsz"BooleanOptionalAction.format_usage)NNNFNN)N)rr3r4rQrr __classcell__r+r+rr,r_s rcs(eZdZdfdd ZdddZZS) _StoreActionNFc sT|dkrtd|dur,|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)rrrrrQrrr+r,rQs   z_StoreAction.__init__cCst||j|dSr.)rrrr+r+r,rsz_StoreAction.__call__)NNNNNFNN)Nrr3r4rQrrr+r+rr,rsrcs(eZdZdfdd ZdddZZS) _StoreConstActionNFc s"tt|j||d||||ddS)Nr)rrrrrrro)rrrQr&rrrrrrorrr+r,rQs z_StoreConstAction.__init__cCst||j|jdSr.)rrrrr+r+r,rsz_StoreConstAction.__call__)NFNN)Nrr+r+rr,rs rcseZdZdfdd ZZS)_StoreTrueActionFNcs tt|j||d|||ddS)NTrrrrrro)rrrQr&rrrrrorr+r,rQs z_StoreTrueAction.__init__)FFNrr3r4rQrr+r+rr,rsrcseZdZdfdd ZZS)_StoreFalseActionTFNcs tt|j||d|||ddS)NFr)rrrQrrr+r,rQs z_StoreFalseAction.__init__)TFNrr+r+rr,rsrcs(eZdZdfdd ZdddZZS) _AppendActionNFc sT|dkrtd|dur,|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)rrrrrQrrr+r,rQs   z_AppendAction.__init__cCs2t||jd}t|}||t||j|dSr.)rrr7r!rr&rrrrr1r+r+r,rs z_AppendAction.__call__)NNNNNFNN)Nrr+r+rr,rsrcs(eZdZdfdd ZdddZZS) _AppendConstActionNFc s$tt|j||d|||||ddS)Nr)rrrrrrror)rrrQrrr+r,rQ s z_AppendConstAction.__init__cCs4t||jd}t|}||jt||j|dSr.)rrr7r!rrrr+r+r,rs z_AppendConstAction.__call__)NFNN)Nrr+r+rr,r s rcs(eZdZdfdd ZdddZZS) _CountActionNFcs tt|j||d|||ddS)Nr)rrrrrro)rrrQrrr+r,rQ's z_CountAction.__init__cCs0t||jd}|durd}t||j|ddSNrrS)rrr)r&rrrrcountr+r+r,r5sz_CountAction.__call__)NFN)Nrr+r+rr,r%s rcs.eZdZeedffdd ZdddZZS) _HelpActionNcstt|j|||d|ddSNr)rrrrro)rr rQ)r&rrrrorr+r,rQ>s z_HelpAction.__init__cCs||dSr.) print_helpexitrr+r+r,rJsz_HelpAction.__call__)Nrr3r4rrQrrr+r+rr,r <s  r cs0eZdZdeedffdd ZdddZZS)_VersionActionNz&show program's version number and exitcs$tt|j|||d|d||_dSr )rrrQversion)r&rrrrrorr+r,rQQs z_VersionAction.__init__cCsD|j}|dur|j}|}||||tj|dSr.)r_get_formatterrh_print_messagerb_sysstdoutr )r&rrrrrrWr+r+r,r_s z_VersionAction.__call__)Nrr+r+rr,rOs rcsPeZdZGdddeZedddffdd ZddZd d Zd d d Z Z S)_SubParsersActioncseZdZfddZZS)z&_SubParsersAction._ChoicesPseudoActioncs@|}}|r|dd|7}ttj|}|jg|||ddS)Nrr)rrror)r%rr_ChoicesPseudoActionrQ)r&r)aliasesrorrZsuprr+r,rQms  z/_SubParsersAction._ChoicesPseudoAction.__init__rr+r+rr,rksrFNc s<||_||_i|_g|_tt|j||t|j|||ddS)N)rrrrrror) _prog_prefix _parser_class_name_parser_map_choices_actionsrrrQr)r&rrO parser_classrrrorrr+r,rQus  z_SubParsersAction.__init__cKs|ddur d|j|f|d<|dd}d|vrX|d}||||}|j||jfi|}||j|<|D]}||j|<qv|S)NrOrrr+ro)rrrrrr!rr)r&r)kwargsrroZ choice_actionraliasr+r+r, add_parsers     z_SubParsersAction.add_parsercCs|jSr.)rr2r+r+r,rsz!_SubParsersAction._get_subactionsc Cs|d}|dd}|jtur,t||j|z|j|}Wn:tyt|d|jd}td|}t||Yn0||d\} }t |  D]\} } t|| | q|rt | t gt |t |dS)NrrSr) parser_namerz5unknown parser %(parser_name)r (choices: %(choices)s))rrrrKeyErrorr%rrparse_known_argsrr1 setdefault_UNRECOGNIZED_ARGS_ATTRrr) r&rrrrr r'r\msgZ subnamespacekeyr*r+r+r,rs$      z_SubParsersAction.__call__)N) rr3r4r rrrQrrrrr+r+rr,risrc@seZdZdddZdS) _ExtendActionNcCs2t||jd}t|}||t||j|dSr.)rrr7rrrr+r+r,rs z_ExtendAction.__call__)N)rr3r4rr+r+r+r,r'sr'c@s&eZdZd ddZddZdd ZdS) rrrNcCs||_||_||_||_dSr.)_mode_bufsize _encoding_errors)r&modebufsizeencodingerrorsr+r+r,rQszFileType.__init__c s|dkrndjvr*djvr$tjjStjStfdddDrXdjvrRtjjStjStdj}t|zt|jj j j WSt y}z*||d}td }t ||WYd}~n d}~00dS) N-r(bc3s|]}|jvVqdSr.)r)rr2r+r,rr^z$FileType.__call__..Zwaxzargument "-" with mode %r)filenameerrorz$can't open '%(filename)s': %(error)s)r)rstdinbufferanyrrrrr*r+r,OSErrorr)r&stringr%er\rr+r2r,rs  zFileType.__call__cCsT|j|jf}d|jfd|jfg}ddd|Ddd|D}dt|j|fS)Nr/r0rcSsg|]}|dkrt|qS)r)r")rZr(r+r+r,r]r^z%FileType.__repr__..cSs$g|]\}}|durd||fqS)Nrr+)rZkwr(r+r+r,r]s r)r)r*r+r,r%rr)r&r\rZargs_strr+r+r,r-s   zFileType.__repr__)r(rNN)rr3r4rQrr-r+r+r+r,rs rc@s$eZdZddZddZddZdS)r cKs|D]}t||||qdSr.)r)r&rr)r+r+r,rQszNamespace.__init__cCst|tstSt|t|kSr.)rr NotImplementedr)r&otherr+r+r,__eq__s zNamespace.__eq__cCs ||jvSr.)r0)r&r&r+r+r, __contains__szNamespace.__contains__N)rr3r4rQr>r?r+r+r+r,r sr cseZdZfddZddZd&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_constr rorparsersrz^-\d+$|^-\d*\.\d+$)rr@rQ descriptionargument_default prefix_charsconflict_handler _registriesregisterrrrrrrrr rrr' _get_handler_actions_option_string_actions_action_groups_mutually_exclusive_groups _defaultsrJrK_negative_number_matcher_has_negative_number_optionals)r&rCrErDrFrr+r,rQs4 z_ActionsContainer.__init__cCs|j|i}|||<dSr.)rGr#)r& registry_namer*rregistryr+r+r,rHSsz_ActionsContainer.registerNcCs|j|||Sr.)rGr)r&rQr*rr+r+r, _registry_getWsz_ActionsContainer._registry_getcKs2|j||jD]}|j|vr||j|_qdSr.)rNupdaterJrr)r&rrur+r+r, set_defaults]s   z_ActionsContainer.set_defaultscCs8|jD]"}|j|kr|jdur|jSq|j|dSr.)rJrrrNr)r&rrur+r+r, get_defaultfs  z_ActionsContainer.get_defaultcOsP|j}|r&t|dkrL|dd|vrL|r:d|vr:td|j|i|}n|j|i|}d|vr|d}||jvr|j||d<n|jdur|j|d<||}t|std|f|fi|}| d|j |j }t|std|f|t urtd |ft |d rFz| |dWntyDtd Yn0||S) NrSrrz+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)rErsr_get_positional_kwargs_get_optional_kwargsrNrD_pop_action_classcallablerSrrrrrr _add_action)r&r\rcharsrZ action_classru type_funcr+r+r,rwps:         z_ActionsContainer.add_argumentcOs&t|g|Ri|}|j||Sr.)_ArgumentGrouprLr!)r&r\rrr+r+r,add_argument_groups z$_ActionsContainer.add_argument_groupcKs t|fi|}|j||Sr.)_MutuallyExclusiveGrouprMr!)r&rrr+r+r,add_mutually_exclusive_groups z._ActionsContainer.add_mutually_exclusive_groupcCs`|||j|||_|jD]}||j|<q"|jD]"}|j|r8|js8|jdq8|S)NT) _check_conflictrJr! containerrrKrOmatchrP)r&rurr+r+r,r\s      z_ActionsContainer._add_actioncCs|j|dSr.)rJremoverr+r+r,_remove_actionsz _ActionsContainer._remove_actioncCsi}|jD].}|j|vr.td}t||j|||j<q i}|jD]D}|j|vrn|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)titlerCrF)r)rLrhrrr`rCrFrrMrbrrJrr\)r&rdZtitle_group_maprr%Z group_mapru mutex_groupr+r+r,_add_container_actionss0           z(_ActionsContainer._add_container_actionscKs^d|vrtd}t||dttfvr2d|d<|dtkrPd|vrPd|d<t||gdS)Nrz1'required' is an invalid argument for positionalsrTrrr)rrrrrr)r&rrr%r+r+r,rXsz(_ActionsContainer._get_positional_kwargsc Osg}g}|D]`}|d|jvr>||jd}td}t||||t|dkr |d|jvr ||q |dd}|dur|r|d}n|d}||j}|std}t|||dd}t|||d S) Nr)optionrEzNinvalid option string %(option)r: must start with a character %(prefix_chars)rrSrz%dest= is required for options like %rr1rrk) rErrr!rsrlstripreplacer) r&r\rrZlong_option_stringsrr%rZdest_option_stringr+r+r,rYs.        z&_ActionsContainer._get_optional_kwargscCs|d|}|d||S)Nru)rrS)r&rrrur+r+r,rZs z#_ActionsContainer._pop_action_classcCsDd|j}z t||WSty>td}t||jYn0dS)Nz_handle_conflict_%sz%invalid conflict_resolution value: %r)rFrrrr)r&Zhandler_func_namer%r+r+r,rI#s    z_ActionsContainer._get_handlercCsLg}|jD]&}||jvr |j|}|||fq |rH|}|||dSr.)rrKr!rI)r&ruZconfl_optionalsrZconfl_optionalrFr+r+r,rc,s   z!_ActionsContainer._check_conflictcCs6tddt|}ddd|D}t|||dS)Nzconflicting option string: %szconflicting option strings: %srcSsg|] \}}|qSr+r+)rZrrur+r+r,r]>sz<_ActionsContainer._handle_conflict_error..)rrsr%r)r&ruconflicting_actionsrZconflict_stringr+r+r,_handle_conflict_error:s z(_ActionsContainer._handle_conflict_errorcCs>|D]4\}}|j||j|d|js|j|qdSr.)rrfrKrrdrg)r&rurorr+r+r,_handle_conflict_resolveCs   z*_ActionsContainer._handle_conflict_resolve)N)N)rr3r4rQrHrSrUrVrwr`rbr\rgrjrXrYrZrIrcrprqrr+r+rr,r@s$ 5   3("   r@cs6eZdZdfdd ZfddZfddZZS) r_Nc s|j}|d|j|d|j|d|jtt|j}|fd|i|||_g|_|j |_ |j |_ |j |_ |j |_ |j |_ |j|_dS)NrFrErDrC)r#rFrErDrr_rQrhrrGrJrKrNrPrM)r&rdrhrCrrTZ super_initrr+r,rQTs    z_ArgumentGroup.__init__cs tt||}|j||Sr.)rr_r\rr!rrr+r,r\js z_ArgumentGroup._add_actioncs tt|||j|dSr.)rr_rgrrfrrr+r,rgosz_ArgumentGroup._remove_action)NNrr3r4rQr\rgrr+r+rr,r_Rs r_cs.eZdZdfdd ZddZddZZS) raFcs tt||||_||_dSr.)rrarQr _container)r&rdrrr+r,rQvsz _MutuallyExclusiveGroup.__init__cCs2|jrtd}t||j|}|j||S)Nz-mutually exclusive arguments must be optional)rrrrsr\rr!)r&rur%r+r+r,r\{s   z#_MutuallyExclusiveGroup._add_actioncCs|j||j|dSr.)rsrgrrfrr+r+r,rgs z&_MutuallyExclusiveGroup._remove_action)Frrr+r+rr,ratsrac s(eZdZddddgedddddddf 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)HrNr1r4Tc s&tt|j}|||| | d|dur6tjtjd}||_||_ ||_ ||_ ||_ | |_ | |_| |_|j}|td|_|td|_d|_dd}|dd|d|vrdn|d}|j r|j|d |d d d ttd d |D]:}||z |j}WntyYq0|j|qdS)N)rCrErDrFrzpositional argumentszoptional argumentscSs|Sr.r+)r9r+r+r,identitysz)ArgumentParser.__init__..identityrr1hr8rozshow this help message and exit)rurro)rrrQ_ospathbasenamerargvrOrjepilogformatter_classfromfile_prefix_charsadd_help allow_abbrev exit_on_errorr`r _positionals _optionals _subparsersrHrwrrjrNrrT)r&rOrjrCrzparentsr{rEr|rDrFr}r~rZ superinitZ add_grouprtZdefault_prefixrXdefaultsrr+r,rQsH   zArgumentParser.__init__csgd}fdd|DS)N)rOrjrCr{rFr}csg|]}|t|fqSr+rrr2r+r,r]r^z.ArgumentParser._get_kwargs..r+rr+r2r,r#szArgumentParser._get_kwargsc Ks|jdur|td|dt|d|vs8d|vrht|dd}t|dd}||||_n|j|_|ddur| }| }|j }| |j ||d||d<||d}|fd gi|}|j||S) Nz(cannot have multiple subparser argumentsrrhrCZ subcommandsrOr_rBr)rr4rr#rrr`rrr_get_positional_actionsrMrnrjrbr{rZr\) r&rrhrCrWrrlZ parsers_classrur+r+r,add_subparserss$   zArgumentParser.add_subparserscCs$|jr|j|n |j||Sr.)rrr\rrr+r+r,r\ s zArgumentParser._add_actioncCsdd|jDS)NcSsg|]}|jr|qSr+rrZrur+r+r,r]sz8ArgumentParser._get_optional_actions..rJr2r+r+r,_get_optional_actionssz$ArgumentParser._get_optional_actionscCsdd|jDS)NcSsg|]}|js|qSr+rrr+r+r,r]sz:ArgumentParser._get_positional_actions..rr2r+r+r,rsz&ArgumentParser._get_positional_actionscCs4|||\}}|r0td}||d||SNzunrecognized arguments: %sr~)r"rr4r%r&r\rryr%r+r+r, parse_args s zArgumentParser.parse_argscCs|durtjdd}nt|}|dur.t}|jD]4}|jtur4t||js4|jtur4t ||j|jq4|j D] }t||spt |||j |qp|j rz| ||\}}Wqt ytd}|t|Yq0n| ||\}}t|tr|t|tt|t||fSrR)rryr/r rJrrrrrrNr_parse_known_argsrexc_infor4rr$rrdelattr)r&r\rrurerrr+r+r,r"'s0          zArgumentParser.parse_known_argscs jdur i jD]R}|j}t|jD]<\}}|g}||d||||ddq2qig}t} t| D]^\}} | dkr|d| D]} |dqq | } | durd} n | |<d} || qd |t t d fdd  fd d }  fd d }gd r`t }nd} |krt fddD} |kr| }| kr| qdn| vr҈ |}|| |  qd| }|dg} jD]|}|vr|jr(|t|nT|jdurt|jtrt|jr|jt|jurt|j ||jq|r tdd | jD]X}|jr|jD]}|vrqqdd|jD}td} |d |qfS)NrSrr1AOr_cs||||}||jurb||gD]*}|vr6td}t|}t|||q6|turx|||dS)Nznot allowed with argument %s)r _get_valuesrrrrrr)ruZargument_stringsrZargument_valuesZconflict_actionr%Z action_name)action_conflictsr seen_actionsseen_non_default_actionsr&r+r, take_action}s    z5ArgumentParser._parse_known_args..take_actioncs~|}|\}}}j}g}|dur:||dS|dur||d}j}|dkr|d|vr||g|f|d} | |d}|ddpd} j} || vr| |}| }ntd} t|| |nB|dkr|d} |g}||||fq\ntd} t|| |q|d}|d}|||}||} || }||||fq\q|D]\}}}|||q`| S)NrSrrzignored explicit argument %r)_match_argumentr!rErKrr) start_index option_tuplerur explicit_argZmatch_argumentZ action_tuples arg_countr]charZnew_explicit_argZ optionals_mapr%stopr\rZselected_patterns)r'arg_strings_patternextrasoption_string_indicesr&rr+r,consume_optionalsL       z:ArgumentParser._parse_known_args..consume_optionalcsnj}|d}||}t|D]*\}}|||}||7}||q&t|ddd<|Sr.)_match_arguments_partialziprs)rZ match_partialZselected_patternZ arg_countsrurr\)r'rrr&rr+r,consume_positionalss   z=ArgumentParser._parse_known_args..consume_positionalsrrcsg|]}|kr|qSr+r+)rZr)rr+r,r]sz4ArgumentParser._parse_known_args..z(the following arguments are required: %srcSsg|]}|jturt|qSr+)rorrrr+r+r,r];s z#one of the arguments %s is requiredr~)N)r|_read_args_from_filesrMrrr#riterr!_parse_optionalr%rrrAr@rJrrrrrrrrr _get_valuer4r)r&r'rrirrZ mutex_actionZ conflictsZarg_string_pattern_partsZarg_strings_iter arg_stringrpatternrrZmax_option_string_indexZnext_option_string_indexZpositionals_end_indexZstringsZ stop_indexZrequired_actionsrurrr%r+) rr'rrrrrrrr&rrr,rNs        J                    z ArgumentParser._parse_known_argsc Csg}|D]}|r|d|jvr*||qzxt|ddT}g}|D]}||D]}||q\qN||}||Wdn1s0YWqtyt d}| t |Yq0q|Sr) r|r!rreadrconvert_arg_line_to_argsrrr8rrr4r)r&r'Znew_arg_stringsrZ args_filearg_liner(rr+r+r,rDs   ,  z$ArgumentParser._read_args_from_filescCs|gSr.r+)r&rr+r+r,r^sz'ArgumentParser.convert_arg_line_to_argscCsz||}t||}|durldtdttdttdi}||j}|durbtdd|j|j}t ||t | dS)Nzexpected one argumentzexpected at most one argumentzexpected at least one argumentzexpected %s argumentzexpected %s argumentsrS) _get_nargs_patternrJrerrr rrrrrsr)r&rur nargs_patternreZ nargs_errorsr%r+r+r,ras"    zArgumentParser._match_argumentcsrg}tt|ddD]X}|d|}dfdd|D}t||}|dur|dd|Dqnq|S)Nrrr_csg|]}|qSr+)rrr2r+r,r]}sz;ArgumentParser._match_arguments_partial..cSsg|] }t|qSr+)rs)rZr9r+r+r,r]r^)rrsr%rJrerrl)r&rkrrrZ actions_slicerrer+r2r,rws  z'ArgumentParser._match_arguments_partialc Cs|sdS|d|jvrdS||jvr8|j|}||dfSt|dkrHdSd|vr~|dd\}}||jvr~|j|}|||fS||}t|dkrddd|D}||d}td}|||nt|dkr|\} | S|j |r|j sdSd |vrdSd|dfS) NrrS=rcSsg|]\}}}|qSr+r+)rZrurrr+r+r,r]sz2ArgumentParser._parse_optional..)rlZmatchesz4ambiguous option: %(option)s could match %(matches)sr~) rErKrssplit_get_option_tuplesr%rr4rOrerP) r&rrurrZ option_tuplesZoptionsr\r%rr+r+r,rs>              zArgumentParser._parse_optionalc Cs0g}|j}|d|vr|d|vr|jr~d|vrB|dd\}}n|}d}|jD],}||rP|j|}|||f}||qPn|d|vr|d|vr|}d}|dd}|dd} |jD]T}||kr|j|}||| f}||q||r|j|}|||f}||qn|td||S)NrrSrr8zunexpected option string: %s)rEr~rrKrr!r4r) r&rrr]Z option_prefixrrurZshort_option_prefixZshort_explicit_argr+r+r,rs:             z!ArgumentParser._get_option_tuplescCs|j}|durd}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_r1) rrrr rrrr%rrn)r&rurrr+r+r,rs(  z!ArgumentParser._get_nargs_patterncCs4|||\}}|r0td}||d||Sr)parse_known_intermixed_argsrr4r%rr+r+r,parse_intermixed_args s z$ArgumentParser.parse_intermixed_argsc s|ddD}|r,td|djfdd|jDrHtdz|j}z|jdurp|dd|_D] }|j|_t|_|j|_ t|_qt| ||\}}D]J}t ||j rt ||j gkrddlm}|d |j |ft||j qWD]}|j|_|j |_qnD]}|j|_|j |_q0|}zt|D]}|j|_d |_q@|jD]} | j| _d | _q\| ||\}} W|D]}|j|_q|jD]} | j| _qn,|D]}|j|_q|jD]} | j| _q0W||_n||_0|| fS) NcSsg|]}|jttfvr|qSr+)rrrrr+r+r,r]4 sz>ArgumentParser.parse_known_intermixed_args..z3parse_intermixed_args: positional arg with nargs=%srcs&g|]}|jD]}|vr|jqqSr+)rr)rZrrurr+r,r]: sz;parse_intermixed_args: positional in mutuallyExclusiveGroup)warnzDo not expect %s in %sF)rrrrMrjrZ save_nargsrrZ save_defaultr"rrrwarningsrrrrZ save_required) r&r\raZ save_usageruZremaining_argsrrrrr+rr,r& sn             z*ArgumentParser.parse_known_intermixed_argscsjttfvr0z|dWnty.Yn0|sxjtkrxjrLj}nj}t |t rt |} |n|sjt krjsjdurj}n|} |nt|dkrjdtfvr|\} |} |njtkr fdd|D}npjtkr>fdd|D} |dn>jtkrPt}n,fdd|D}|D]} |qh|S)NrrScsg|]}|qSr+rrZvrur&r+r,r] r^z.ArgumentParser._get_values..csg|]}|qSr+rrrr+r,r] r^rcsg|]}|qSr+rrrr+r,r] r^)rrrrfrrrrrrrr _check_valuerrsr)r&rur'r*rrr+rr,rs sD        zArgumentParser._get_valuesc Cs|d|j|j}t|s0td}t|||z ||}Wnty|t|jdt|j}tt d}t||YnJt t fyt|jdt|j}||d}td}t|||Yn0|S)NrrWrrS)rr*z!invalid %(type)s value: %(value)r) rSrr[rrrrr"rrrrr)r&rurr^r%rr)r\r+r+r,r s    zArgumentParser._get_valuecCsF|jdurB||jvrB|dtt|jd}td}t|||dS)Nr)r*rz3invalid choice: %(value)r (choose from %(choices)s))rr%rrr"rr)r&rur*r\r%r+r+r,r s zArgumentParser._check_valuecCs$|}||j|j|j|Sr.)rrnrjrJrMrb)r&rWr+r+r,r s  zArgumentParser.format_usagecCst|}||j|j|j||j|jD]0}||j ||j| |j | q.||j |Sr.)rrnrjrJrMrhrCrLrdrhrxrrerzrb)r&rWZ action_groupr+r+r,rb s        zArgumentParser.format_helpcCs|j|jdS)Nr})r{rOr2r+r+r,r szArgumentParser._get_formattercCs"|durtj}|||dSr.)rrrrr&filer+r+r, print_usage szArgumentParser.print_usagecCs"|durtj}|||dSr.)rrrrbrr+r+r,r  szArgumentParser.print_helpcCs |r|durtj}||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)rOrr8z%(prog)s: error: %(message)s )rrrrOr r)r&rr\r+r+r,r4 s  zArgumentParser.error)NN)NN)NN)NN)N)N)N)rN)"rr3r4rrQr#rr\rrrr"rrrrrrrrrrrrrrrbrrr rr r4rr+r+rr,rsVB  'w:-1  M8    r)1 __version____all__osrvrerJsysrrrrrrrr rrr$rrr7rrr rr r Exceptionrrr rrrrrrrrr rrr'rr r@r_rarr+r+r+r,As^   ^)#&] 78"