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......_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)self type_name arg_strings star_argsargnamevaluer. /usr/lib64/python3.9/argparse.py__repr__ts   z_AttributeHolder.__repr__cCst|jSN)list__dict__itemsr'r.r.r/r$sz_AttributeHolder._get_kwargscCsgSr1r.r5r.r.r/r!sz_AttributeHolder._get_argsN)r __module__ __qualname__r0r$r!r.r.r.r/rks rcCs6|dur gSt|tur$|ddSddl}||SNr)rr2copy)r4r9r.r.r/ _copy_itemss   r:c@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)r.r.r/__init__s" zHelpFormatter.__init__cCs"|j|j7_|jd7_dSNrGrBrHr5r.r.r/_indentszHelpFormatter._indentcCs"|j|j8_|jd8_dSrWrYr5r.r.r/_dedentszHelpFormatter._dedentc@seZdZdddZddZdS)zHelpFormatter._SectionNcCs||_||_||_g|_dSr1) formatterparentheadingr4)r'r\r]r^r.r.r/rVszHelpFormatter._Section.__init__cCs|jdur|j|jj}|dd|jD}|jdurD|j|sLdS|jturz|jdurz|jj}d|d|jf}nd}|d||dgS)NcSsg|]\}}||qSr.r.).0funcargsr.r.r/ z6HelpFormatter._Section.format_help..z%*s%s:  ) r]r\rZ _join_partsr4r[r^rrG)r'r& item_helpcurrent_indentr^r.r.r/ format_helps    z"HelpFormatter._Section.format_help)N)r r6r7rVrir.r.r.r/rJs rJcCs|jj||fdSr1)rLr4r")r'r`rar.r.r/ _add_itemszHelpFormatter._add_itemcCs0||||j|}||jg||_dSr1)rZrJrLrjri)r'r^sectionr.r.r/ start_sectionszHelpFormatter.start_sectioncCs|jj|_|dSr1)rLr]r[r5r.r.r/ end_sections zHelpFormatter.end_sectioncCs$|tur |dur ||j|gdSr1)rrj _format_text)r'textr.r.r/add_textszHelpFormatter.add_textcCs&|tur"||||f}||j|dSr1)rrj _format_usage)r'usageactionsgroupsprefixrar.r.r/ add_usages zHelpFormatter.add_usagecCsr|jturn|j}||g}||D]}|||q$ttt|}||j}t|j ||_ | |j |gdSr1) helpr_format_action_invocation_iter_indented_subactionsr"rDmaplenrGrIrj_format_action)r'actionget_invocation invocations subactioninvocation_length action_lengthr.r.r/ add_arguments   zHelpFormatter.add_argumentcCs|D]}||qdSr1)r)r'rsr}r.r.r/ add_argumentsszHelpFormatter.add_argumentscCs.|j}|r*|jd|}|dd}|S)N re)rKrirQsubstrip)r'rwr.r.r/ris  zHelpFormatter.format_helpcCsddd|DS)NrdcSsg|]}|r|tur|qSr.)r)r_partr.r.r/rb"s z-HelpFormatter._join_parts..)r&)r' part_stringsr.r.r/rf!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: rRz%(prog)s cSsg|] }|r|qSr.r.)r_sr.r.r/rbBrcz/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)NrXrr)r{r"r&)partsindentrulineslineline_lenr text_widthr.r/ get_linesVs"   z.HelpFormatter._format_usage..get_linesg?rXrez%s%s )N) _dictrAoption_stringsr"_format_actions_usager&rFrGr{rMfindallextend)r'rrrsrtrurR optionals positionalsr}format action_usage part_regexp opt_usage pos_usage opt_parts pos_partsrrrrr.rr/rq&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 (()rX|%s %s[%s]T)reversercSsg|]}|dur|qSr1r.)r_itemr.r.r/rbrcz7HelpFormatter._format_actions_usage..z[\[(]z[\])]z(%s) z\1 (%s)z%s *%srdz \(([^|]*)\))set_group_actions ValueErrorindexr{addrequiredrange enumeraterwrr"getpopr#_get_default_metavar_for_positional _format_argsnargs format_usage!_get_default_metavar_for_optionalsortedr&rMrr)r'rsrt group_actionsinsertsgroupstartendr}irdefaultr option_string args_stringroopencloser.r.r/rs~                     z#HelpFormatter._format_actions_usagecCsFd|vr|t|jd}t|j|jd}d|j}||||dS)Nz%(prog)r rr)rrArDrFrG _fill_text)r'rorrr.r.r/rns  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) Nr;rrdz%*s%s z %*s%-*s rrXre)rCrIrErDrFrGrxrwr{r _expand_help _split_linesr"endswithryr|rf) r'r} help_position help_width action_width action_headertup indent_firstr help_text help_linesrrr.r.r/r|s:          zHelpFormatter._format_actioncCs|js&||}|||d\}|Sg}|jdkrB||jn4||}|||}|jD]}|d||fq^d|SdS)NrXrrr) rr_metavar_formatterrrrrr"r&)r'r}rmetavarrrrr.r.r/rx's     z'HelpFormatter._format_action_invocationcsP|jdur|jn.|jdur.z{%s},csttrSf|SdSr1) isinstancetuple) tuple_sizeresultr.r/rHs z0HelpFormatter._metavar_formatter..format)rchoicesr&)r'r}default_metavar choice_strsrr.rr/r?s   z HelpFormatter._metavar_formattercCs |||}|jdur$d|d}n|jtkr.zinvalid nargs valuer) rrrrr{r rrrr TypeErrorrr&)r'r}r get_metavarrrformatsr.r.r/rOs0            zHelpFormatter._format_argscCstt||jd}t|D]}||tur||=qt|D] }t||dr:||j||<q:|ddurddd|dD}||d<| ||S)Nrr rrcSsg|] }t|qSr.rr_cr.r.r/rbtrcz.HelpFormatter._expand_help..) rvarsrAr2rhasattrr rr&_get_help_string)r'r}paramsr, choices_strr.r.r/rks   zHelpFormatter._expand_helpccs>z |j}WntyYn0||EdH|dSr1)_get_subactionsAttributeErrorrZr[)r'r}get_subactionsr.r.r/ryxs   z'HelpFormatter._iter_indented_subactionscCs&|jd|}ddl}|||S)Nrr)rPrrtextwrapwrap)r'rorUrr.r.r/rszHelpFormatter._split_linescCs,|jd|}ddl}|j||||dS)Nrr)initial_indentsubsequent_indent)rPrrrfill)r'rorUrrr.r.r/rs zHelpFormatter._fill_textcCs|jSr1)rwr'r}r.r.r/rszHelpFormatter._get_help_stringcCs |jSr1)destupperrr.r.r/rsz/HelpFormatter._get_default_metavar_for_optionalcCs|jSr1)rrr.r.r/rsz1HelpFormatter._get_default_metavar_for_positional)r;r<N)N)r r6r7rVrZr[objectrJrjrlrmrprvrrrirfrqrrnr|rxrrrryrrrrrr.r.r.r/rs<   `j0  rc@seZdZddZdS)rcs dfdd|jddDS)Nrdc3s|]}|VqdSr1r.)r_rrr.r/ rcz9RawDescriptionHelpFormatter._fill_text..T)keepends)r& splitlines)r'rorUrr.rr/rsz&RawDescriptionHelpFormatter._fill_textN)r r6r7rr.r.r.r/rsrc@seZdZddZdS)r cCs|Sr1)r)r'rorUr.r.r/rsz!RawTextHelpFormatter._split_linesN)r r6r7rr.r.r.r/r sr c@seZdZddZdS)rcCs>|j}d|jvr:|jtur:ttg}|js2|j|vr:|d7}|S)Nz %(default) (default: %(default)s))rwrrrrrr)r'r}rwdefaulting_nargsr.r.r/rs  z.ArgumentDefaultsHelpFormatter._get_help_stringN)r r6r7rr.r.r.r/rsrc@seZdZddZddZdS)r cCs|jjSr1rr rr.r.r/rsz:MetavarTypeHelpFormatter._get_default_metavar_for_optionalcCs|jjSr1rrr.r.r/rsz.r.r'namesr.r5r/r$Js zAction._get_kwargscCs |jdSr8rr5r.r.r/rYszAction.format_usagecCsttddS)Nz.__call__() not defined)NotImplementedErrorrr'parser namespacevaluesrr.r.r/__call__\szAction.__call__)NNNNNFNN)N)r r6r7rVr$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-r;rr) rrrrrrrrwr)r" startswithrsuperrV) r'rrrrrrrwr_option_stringsr __class__r.r/rV`s&    zBooleanOptionalAction.__init__cCs$||jvr t||j|d dS)Nr)rsetattrrrrr.r.r/rs zBooleanOptionalAction.__call__cCs d|jS)Nz | )r&rr5r.r.r/rsz"BooleanOptionalAction.format_usage)NNNFNN)N)r r6r7rVrr __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 )rrrr#rVr rr.r/rVs   z_StoreAction.__init__cCst||j|dSr1)r!rrr.r.r/rsz_StoreAction.__call__)NNNNNFNN)Nr r6r7rVrr"r.r.rr/r#sr#cs(eZdZdfdd ZdddZZS) _StoreConstActionNFc s"tt|j||d||||ddS)Nr)rrrr rrrw)rr&rVr'rrr rrrwrrr.r/rVs z_StoreConstAction.__init__cCst||j|jdSr1)r!rr rr.r.r/rsz_StoreConstAction.__call__)NFNN)Nr%r.r.rr/r&s r&cseZdZdfdd ZZS)_StoreTrueActionFNcs tt|j||d|||ddS)NTrrr rrrw)rr(rVr'rrrrrwrr.r/rVs z_StoreTrueAction.__init__)FFNr r6r7rVr"r.r.rr/r(sr(cseZdZdfdd ZZS)_StoreFalseActionTFNcs tt|j||d|||ddS)NFr))rr,rVr*rr.r/rVs z_StoreFalseAction.__init__)TFNr+r.r.rr/r,sr,cs(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 appropriater$r )rrrr-rVr rr.r/rVs   z_AppendAction.__init__cCs2t||jd}t|}||t||j|dSr1)rrr:r"r!r'rrrrr4r.r.r/rs z_AppendAction.__call__)NNNNNFNN)Nr%r.r.rr/r-sr-cs(eZdZdfdd ZdddZZS) _AppendConstActionNFc s$tt|j||d|||||ddS)Nr)rrrr rrrwr)rr/rVr'rr.r/rV s z_AppendConstAction.__init__cCs4t||jd}t|}||jt||j|dSr1)rrr:r"r r!r.r.r.r/rs z_AppendConstAction.__call__)NFNN)Nr%r.r.rr/r/ s r/cs(eZdZdfdd ZdddZZS) _CountActionNFcs tt|j||d|||ddS)Nr)rrrrrrw)rr0rVr*rr.r/rV's z_CountAction.__init__cCs0t||jd}|durd}t||j|ddSNrrX)rrr!)r'rrrrcountr.r.r/r5sz_CountAction.__call__)NFN)Nr%r.r.rr/r0%s r0cs.eZdZeedffdd ZdddZZS) _HelpActionNcstt|j|||d|ddSNr)rrrrrw)rr3rV)r'rrrrwrr.r/rV>s z_HelpAction.__init__cCs||dSr1) print_helpexitrr.r.r/rJsz_HelpAction.__call__)Nr r6r7rrVrr"r.r.rr/r3<s  r3cs0eZdZdeedffdd ZdddZZS)_VersionActionNz&show program's version number and exitcs$tt|j|||d|d||_dSr4)rr8rVversion)r'rr9rrrwrr.r/rVQs z_VersionAction.__init__cCsD|j}|dur|j}|}||||tj|dSr1)r9_get_formatterrp_print_messageri_sysstdoutr6)r'rrrrr9r\r.r.r/r_s z_VersionAction.__call__)Nr7r.r.rr/r8Os r8csPeZdZGdddeZedddffdd ZddZd d Zd d d Z Z S)_SubParsersActioncseZdZfddZZS)z&_SubParsersAction._ChoicesPseudoActioncs@|}}|r|dd|7}ttj|}|jg|||ddS)Nrr)rrrwr)r&rr>_ChoicesPseudoActionrV)r'r,aliasesrwrrsuprr.r/rVms  z/_SubParsersAction._ChoicesPseudoAction.__init__r+r.r.rr/r?ksr?FNc s<||_||_i|_g|_tt|j||t|j|||ddS)N)rrrrrrwr) _prog_prefix _parser_class_name_parser_map_choices_actionsrr>rVr)r'rrR parser_classrrrwrrr.r/rVus  z_SubParsersAction.__init__cKs|ddur d|j|f|d<|dd}d|vrX|d}||||}|j||jfi|}||j|<|D]}||j|<qv|S)NrRrr@r.rw)rrBrr?rEr"rCrD)r'r,kwargsr@rw choice_actionraliasr.r.r/ add_parsers     z_SubParsersAction.add_parsercCs|jSr1)rEr5r.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)NrrXr) parser_namerz5unknown parser %(parser_name)r (choices: %(choices)s))rrr!rDKeyErrorr&rrparse_known_argsrr4 setdefault_UNRECOGNIZED_ARGS_ATTRrr) r'rrrrrKr)ramsg subnamespacekeyr-r.r.r/rs$      z_SubParsersAction.__call__)N) r r6r7r r?rrVrJrrr"r.r.rr/r>isr>c@seZdZdddZdS) _ExtendActionNcCs2t||jd}t|}||t||j|dSr1)rrr:rr!r.r.r.r/rs z_ExtendAction.__call__)N)r r6r7rr.r.r.r/rSsrSc@s&eZdZd ddZddZdd ZdS) rrrNcCs||_||_||_||_dSr1)_mode_bufsize _encoding_errors)r'modebufsizeencodingerrorsr.r.r/rVszFileType.__init__c s|dkrndjvr*djvr$tjjStjStfdddDrXdjvrRtjjStjStdj}t|zt|jj j j WSt y}z*||d}td }t ||WYd}~n d}~00dS) N-rTbc3s|]}|jvVqdSr1)rUrr5r.r/rrcz$FileType.__call__..waxzargument "-" with mode %r)filenameerrorz$can't open '%(filename)s': %(error)s)rUr<stdinbufferanyr=rrrrVrWrXOSErrorr)r'stringrPerar r.r5r/rs  zFileType.__call__cCsT|j|jf}d|jfd|jfg}ddd|Ddd|D}dt|j|fS)Nr[r\rcSsg|]}|dkrt|qS)r)r#)r_r+r.r.r/rbrcz%FileType.__repr__..cSs$g|]\}}|durd||fqS)Nrr.)r_kwr+r.r.r/rbs r)rUrVrWrXr&rr )r'rarGargs_strr.r.r/r0s   zFileType.__repr__)rTrNN)r r6r7rVrr0r.r.r.r/rs rc@s$eZdZddZddZddZdS)r cKs|D]}t||||qdSr1)r!)r'rGr,r.r.r/rVszNamespace.__init__cCst|tstSt|t|kSr1)rr NotImplementedr)r'otherr.r.r/__eq__s zNamespace.__eq__cCs ||jvSr1)r3)r'rRr.r.r/ __contains__szNamespace.__contains__N)r r6r7rVrlrmr.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)Nr}store store_const store_true store_falser" append_constr2rwr9parsersrz^-\d+$|^-\d*\.\d+$)rrnrV descriptionargument_default prefix_charsconflict_handler _registriesregisterr#r&r(r,r-r/r0r3r8r>rS _get_handler_actions_option_string_actions_action_groups_mutually_exclusive_groups _defaultsrMrN_negative_number_matcher_has_negative_number_optionals)r'rurwrvrxrr.r/rVs4 z_ActionsContainer.__init__cCs|j|i}|||<dSr1)ryrN)r' registry_namer-rregistryr.r.r/rzSsz_ActionsContainer.registerNcCs|j|||Sr1)ryr)r'rr-rr.r.r/ _registry_getWsz_ActionsContainer._registry_getcKs2|j||jD]}|j|vr||j|_qdSr1)rupdater|rr)r'rGr}r.r.r/ set_defaults]s   z_ActionsContainer.set_defaultscCs8|jD]"}|j|kr|jdur|jSq|j|dSr1)r|rrrr)r'rr}r.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) NrXrrz+dest supplied twice for positional argumentrzunknown action "%s"r%r is not callablez<%r is a FileType class object, instance of it must be passedr:z,length of metavar tuple does not match nargs)rwr{r_get_positional_kwargs_get_optional_kwargsrrv_pop_action_classcallablerrrrr:rr _add_action)r'rarGcharsr action_classr} type_funcr.r.r/rps:         z_ActionsContainer.add_argumentcOs&t|g|Ri|}|j||Sr1)_ArgumentGroupr~r")r'rarGrr.r.r/add_argument_groups z$_ActionsContainer.add_argument_groupcKs t|fi|}|j||Sr1)_MutuallyExclusiveGrouprr")r'rGrr.r.r/add_mutually_exclusive_groups z._ActionsContainer.add_mutually_exclusive_groupcCs`|||j|||_|jD]}||j|<q"|jD]"}|j|r8|js8|jdq8|S)NT) _check_conflictr|r" containerrr}rmatchr)r'r}rr.r.r/rs      z_ActionsContainer._add_actioncCs|j|dSr1)r|removerr.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)titlerurx)r)r~rrrrrurxrrrrr|rr)r'rtitle_group_maprrP group_mapr} 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'rrGrPr.r.r/rsz(_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)optionrwzNinvalid option string %(option)r: must start with a character %(prefix_chars)rrXrz%dest= is required for options like %rr]rr) rwrrr"r{rlstripreplacer) r'rarGrlong_option_stringsrrPrdest_option_stringr.r.r/rs.        z&_ActionsContainer._get_optional_kwargscCs|d|}|d||S)Nr})rr)r'rGrr}r.r.r/rs z#_ActionsContainer._pop_action_classcCsDd|j}z t||WSty>td}t||jYn0dS)Nz_handle_conflict_%sz%invalid conflict_resolution value: %r)rxrrrr)r'handler_func_namerPr.r.r/r{#s    z_ActionsContainer._get_handlercCsLg}|jD]&}||jvr |j|}|||fq |rH|}|||dSr1)rr}r"r{)r'r}confl_optionalsrconfl_optionalrxr.r.r/r,s   z!_ActionsContainer._check_conflictcCs6tddt|}ddd|D}t|||dS)Nzconflicting option string: %szconflicting option strings: %srcSsg|] \}}|qSr.r.)r_rr}r.r.r/rb>sz<_ActionsContainer._handle_conflict_error..)rr{r&r)r'r}conflicting_actionsr conflict_stringr.r.r/_handle_conflict_error:s z(_ActionsContainer._handle_conflict_errorcCs>|D]4\}}|j||j|d|js|j|qdSr1)rrr}rrr)r'r}rrr.r.r/_handle_conflict_resolveCs   z*_ActionsContainer._handle_conflict_resolve)N)N)r r6r7rVrzrrrrrrrrrrrrr{rrrr"r.r.rr/rns$ 5   3("   rncs6eZdZdfdd ZfddZfddZZS) rNc s|j}|d|j|d|j|d|jtt|j}|fd|i|||_g|_|j |_ |j |_ |j |_ |j |_ |j |_ |j|_dS)Nrxrwrvru)rNrxrwrvrrrVrrryr|r}rrr)r'rrrurGr super_initrr.r/rVTs    z_ArgumentGroup.__init__cs tt||}|j||Sr1)rrrrr"rrr.r/rjs z_ArgumentGroup._add_actioncs tt|||j|dSr1)rrrrrrrr.r/rosz_ArgumentGroup._remove_action)NNr r6r7rVrrr"r.r.rr/rRs rcs.eZdZdfdd ZddZddZZS) rFcs tt||||_||_dSr1)rrrVr _container)r'rrrr.r/rVvsz _MutuallyExclusiveGroup.__init__cCs2|jrtd}t||j|}|j||S)Nz-mutually exclusive arguments must be optional)rrrrrrr")r'r}rPr.r.r/r{s   z#_MutuallyExclusiveGroup._add_actioncCs|j||j|dSr1)rrrrrr.r.r/rs z&_MutuallyExclusiveGroup._remove_action)Frr.r.rr/rtsrc 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)HrNr]raTc 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)rurwrvrxrzpositional argumentszoptional argumentscSs|Sr1r.)rfr.r.r/identitysz)ArgumentParser.__init__..identityrr]hr;rwzshow this help message and exit)r}rrw)rrrV_ospathbasenamer<argvrRrrepilogformatter_classfromfile_prefix_charsadd_help allow_abbrev exit_on_errorrr _positionals _optionals _subparsersrzrrrrrr)r'rRrrrurparentsrrwrrvrxrrr superinit add_grouprdefault_prefixr]defaultsrr.r/rVsH   zArgumentParser.__init__csgd}fdd|DS)N)rRrrrurrxrcsg|]}|t|fqSr.rrr5r.r/rbrcz.ArgumentParser._get_kwargs..r.rr.r5r/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 argumentsrFrru subcommandsrRrdrtr)rrarrNrrrrrr:_get_positional_actionsrrvrrrirrr) r'rGrrur\rrt parsers_classr}r.r.r/add_subparserss$   zArgumentParser.add_subparserscCs$|jr|j|n |j||Sr1)rrrrrr.r.r/r s zArgumentParser._add_actioncCsdd|jDS)NcSsg|]}|jr|qSr.rr_r}r.r.r/rbsz8ArgumentParser._get_optional_actions..r|r5r.r.r/_get_optional_actionssz$ArgumentParser._get_optional_actionscCsdd|jDS)NcSsg|]}|js|qSr.rrr.r.r/rbsz:ArgumentParser._get_positional_actions..rr5r.r.r/rsz&ArgumentParser._get_positional_actionscCs4|||\}}|r0td}||d||SNzunrecognized arguments: %sr)rMrrar&r'rarrrPr.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||fSrW)r<rr2r r|rrrrr!rr_parse_known_argsrexc_inforarrOrrdelattr)r'rarr}rerrr.r.r/rM'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)NrXrr]AOrdcs||||}||jurb||gD]*}|vr6td}t|}t|||q6|turx|||dS)Nznot allowed with argument %s)r _get_valuesrrrrrr)r}argument_stringsrargument_valuesconflict_actionrP 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)NrXrrzignored explicit argument %r)_match_argumentr"rwr}rr) start_index option_tupler}r explicit_argmatch_argument action_tuples arg_countrcharnew_explicit_arg optionals_maprPstoprarselected_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<|Sr1)_match_arguments_partialzipr{)r match_partialselected_pattern arg_countsr}rra)r)rrr'rr.r/consume_positionalss   z=ArgumentParser._parse_known_args..consume_positionalsrrcsg|]}|kr|qSr.r.)r_r)rr.r/rbsz4ArgumentParser._parse_known_args..z(the following arguments are required: %srcSsg|]}|jturt|qSr.)rwrrrr.r.r/rb;s z#one of the arguments %s is requiredr)N)r_read_args_from_filesrrrrNriterr"_parse_optionalr&rrrDrCr|rrrrrrrrr! _get_valuerar)r'r)rrrr mutex_action conflictsarg_string_pattern_partsarg_strings_iter arg_stringrpatternrrmax_option_string_indexnext_option_string_indexpositionals_end_indexstrings stop_indexrequired_actionsr}rrrPr.) 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|Sr1) rr"rreadrconvert_arg_line_to_argsrrrer<rrar)r'r)new_arg_stringsr args_filearg_liner+rr.r.r/rDs   ,  z$ArgumentParser._read_args_from_filescCs|gSr1r.)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 argumentsrX) _get_nargs_patternrMrrrr rrrrr{r)r'r}r nargs_patternr nargs_errorsrPr.r.r/ras"    zArgumentParser._match_argumentcsrg}tt|ddD]X}|d|}dfdd|D}t||}|dur|dd|Dqnq|S)Nrrrdcsg|]}|qSr.)rrr5r.r/rb}sz;ArgumentParser._match_arguments_partial..cSsg|] }t|qSr.)r{)r_rfr.r.r/rbrc)rr{r&rMrrrt)r'rsrrr actions_slicerrr.r5r/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) NrrX=rcSsg|]\}}}|qSr.r.)r_r}rrr.r.r/rbsz2ArgumentParser._parse_optional..)rmatchesz4ambiguous option: %(option)s could match %(matches)sr) rwr}r{split_get_option_tuplesr&rrarrr) r'rr}rr option_tuplesoptionsrarPrr.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)NrrXr r;zunexpected option string: %s)rwrrr}rr"rar) r'rrr option_prefixrr}rshort_option_prefixshort_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-*rrdr]) rrrr rrrr&rr)r'r}rr r.r.r/rs(  z!ArgumentParser._get_nargs_patterncCs4|||\}}|r0td}||d||Sr)parse_known_intermixed_argsrrar&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/rb4 sz>ArgumentParser.parse_known_intermixed_args..z3parse_intermixed_args: positional arg with nargs=%srcs&g|]}|jD]}|vr|jqqSr.)rr)r_rr}rr.r/rb: sz;parse_intermixed_args: positional in mutuallyExclusiveGroup)warnzDo not expect %s in %sF)rrrrrrr save_nargsrr save_defaultrMrrrwarningsrrrr save_required) r'rara save_usager}remaining_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)NrrXcsg|]}|qSr.rr_vr}r'r.r/rb rcz.ArgumentParser._get_values..csg|]}|qSr.r!r"r$r.r/rb rcrcsg|]}|qSr.r!r"r$r.r/rb rc)rrrrrrrr rrrr _check_valuerr{r)r'r}r)r-rr#r.r$r/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)Nrrr rX)rr-z!invalid %(type)s value: %(value)r) rrrrrrrr#rr<rrr)r'r}rrrPrr,rar.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&rzr#rr)r'r}r-rarPr.r.r/r% s zArgumentParser._check_valuecCs$|}||j|j|j|Sr1)r:rvrrr|rri)r'r\r.r.r/r s  zArgumentParser.format_usagecCst|}||j|j|j||j|jD]0}||j ||j| |j | q.||j |Sr1)r:rvrrr|rrprur~rlrrrrmrri)r'r\ action_groupr.r.r/ri s        zArgumentParser.format_helpcCs|j|jdS)Nr)rrRr5r.r.r/r: szArgumentParser._get_formattercCs"|durtj}|||dSr1)r<r=r;rr'filer.r.r/ print_usage szArgumentParser.print_usagecCs"|durtj}|||dSr1)r<r=r;rir'r.r.r/r5 szArgumentParser.print_helpcCs |r|durtj}||dSr1)r<stderrwrite)r'r r(r.r.r/r; szArgumentParser._print_messagercCs |r||tjt|dSr1)r;r<r*r6)r'statusr r.r.r/r6 szArgumentParser.exitcCs0|tj|j|d}|dtd|dS)N)rRr r;z%(prog)s: error: %(message)s )r)r<r*rRr6r)r'r rar.r.r/ra s  zArgumentParser.error)NN)NN)NN)NN)N)N)N)rN)"r r6r7rrVr$rrrrrrMrrrrrrrrrrrrr%rrir:r)r5r;r6rar"r.r.rr/rsVB  'w:-1  M8    r)1 __version____all__osrrerMsysr<rrrrrrr rrrOrrr:rrr rr r Exceptionrrr rr#r&r(r,r-r/r0r3r8r>rSrr rnrrrr.r.r.r/As^   ^)#&] 78"