a 3dg}@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/local/lib/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]}z||jd}Wnty>YqYq0|t|j}||||jkr|jD]}||qf|js||vr||d7<nd||<||vr||d7<nd||<nF||vr||d7<nd||<||vr||d7<nd||<t|d|D]} d || <qqg} t|D]"\} }|j t ur| d| | d krp| | n"| | dd krV| | dn|js||} ||| } ||vr| ddkr| d dkr| dd } | | nf|jd} |jdkr|} n"||} ||| }d | |f} |jsL||vrLd | } | | q4t|d dD]} || g| | | <qfddd| D}d}d}td|d|}td|d|}td||fd|}tdd|}|}|S)Nrz [[]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 \(([^|]*)\))setindex_group_actions ValueErrorr{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/rsz                     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 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) Nr;rrdz%*s%s z %*s%-*s rrXre)rCrIrErDrFrGrxrwr{ _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|s8          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/rDs 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/rKs0            zHelpFormatter._format_argscCstt||jd}t|D]}||tur||=qt|D] }t||dr:||j||<q:|ddurddd|dD}||d<| ||S)Nrr rrcSsg|] }t|qSr.r)r_cr.r.r/rbprcz.HelpFormatter._expand_help..) rvarsrAr2rhasattrr rr&_get_help_string)r'r}paramsr, choices_strr.r.r/rgs   zHelpFormatter._expand_helpccs>z |j}WntyYn0||EdH|dSr1)_get_subactionsAttributeErrorrZr[)r'r}get_subactionsr.r.r/ryts   z'HelpFormatter._iter_indented_subactionscCs&|jd|}ddl}|||S)Nrr)rPrrtextwrapwrap)r'rorUrr.r.r/r~szHelpFormatter._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<   `g/  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)z (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$Ds zAction._get_kwargscCs |jdSr8rr5r.r.r/rRszAction.format_usagecCsttddS)Nz.__call__() not defined)NotImplementedErrorrr'parser namespacevaluesrr.r.r/__call__UszAction.__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\|d|d7}tj| |d||||||d dS)N----no-r;z (default: rr) rrrrrrrrwr)r" startswithsuperrV) r'rrrrrrrwr_option_stringsr __class__r.r/rVYs&    zBooleanOptionalAction.__init__cCs$||jvr t||j|d dS)Nr)rsetattrrrrr.r.r/rys zBooleanOptionalAction.__call__cCs d|jS)Nz | )r&rr5r.r.r/r}sz"BooleanOptionalAction.format_usage)NNNFNN)N)r r6r7rVrr __classcell__r.r.rr/rXs 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)rrrrrVr rr.r/rVs   z_StoreAction.__init__cCst||j|dSr1)rrrr.r.r/rsz_StoreAction.__call__)NNNNNFNN)Nr r6r7rVrrr.r.rr/rsrcs(eZdZdfdd ZdddZZS) _StoreConstActionNFc s"tt|j||d||||ddS)Nr)rrrrrrrw)rr"rVr'rrrrrrwrrr.r/rVs z_StoreConstAction.__init__cCst||j|jdSr1)rrrrr.r.r/rsz_StoreConstAction.__call__)NFNN)Nr!r.r.rr/r"s r"cseZdZdfdd ZZS)_StoreTrueActionFNcs tt|j||d|||ddS)NTrrrrrrw)rr$rVr'rrrrrwrr.r/rVs z_StoreTrueAction.__init__)FFNr r6r7rVrr.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)r rr:r"rr'rrrrr4r.r.r/rs z_AppendAction.__call__)NNNNNFNN)Nr!r.r.rr/r)sr)cs(eZdZdfdd ZdddZZS) _AppendConstActionNFc s$tt|j||d|||||ddS)Nr)rrrrrrrwr)rr+rVr#rr.r/rVs z_AppendConstAction.__init__cCs4t||jd}t|}||jt||j|dSr1)r rr:r"rrr*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)rr,rVr&rr.r/rV s z_CountAction.__init__cCs0t||jd}|durd}t||j|ddSNrrX)r rr)r'rrrrcountr.r.r/r.sz_CountAction.__call__)NFN)Nr!r.r.rr/r,s r,cs.eZdZeedffdd ZdddZZS) _HelpActionNcstt|j|||d|ddSNr)rrrrrw)rr/rV)r'rrrrwrr.r/rV7s z_HelpAction.__init__cCs||dSr1) print_helpexitrr.r.r/rCsz_HelpAction.__call__)Nr r6r7rrVrrr.r.rr/r/5s  r/cs0eZdZdeedffdd ZdddZZS)_VersionActionNz&show program's version number and exitcs$tt|j|||d|d||_dSr0)rr4rVversion)r'rr5rrrwrr.r/rVJs z_VersionAction.__init__cCsD|j}|dur|j}|}||||tj|dSr1)r5_get_formatterrp_print_messageri_sysstdoutr2)r'rrrrr5r\r.r.r/rXs z_VersionAction.__call__)Nr3r.r.rr/r4Hs r4csPeZdZGdddeZedddffdd 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/rVfs  z/_SubParsersAction._ChoicesPseudoAction.__init__r'r.r.rr/r;dsr;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/rVns  z_SubParsersAction.__init__cKs|ddur d|j|f|d<|dd}d|vrX|d}||||}|j||jfi|}||j|<|D]}||j|<qv|S)NrRrr<r.rw)rr>rr;rAr"r?r@)r'r,kwargsr<rw choice_actionraliasr.r.r/ add_parsers     z_SubParsersAction.add_parsercCs|jSr1)rAr5r.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))rrrr@KeyErrorr&rrparse_known_argsrr4 setdefault_UNRECOGNIZED_ARGS_ATTRr r) r'rrrrrGr)ramsg subnamespacekeyr-r.r.r/rs$      z_SubParsersAction.__call__)N) r r6r7r r;rrVrFrrrr.r.rr/r:bsr:c@seZdZdddZdS) _ExtendActionNcCs2t||jd}t|}||t||j|dSr1)r rr:rrr*r.r.r/rs z_ExtendAction.__call__)N)r r6r7rr.r.r.r/rOsrOc@s&eZdZd ddZddZdd ZdS) rrrNcCs||_||_||_||_dSr1)_mode_bufsize _encoding_errors)r'modebufsizeencodingerrorsr.r.r/rVszFileType.__init__c Cs|dkr>d|jvrtjSd|jvr(tjStd|j}t|zt||j|j|j|j WSt y}z*||d}td}t ||WYd}~n d}~00dS)N-rPwzargument "-" with mode %r)filenameerrorz$can't open '%(filename)s': %(error)s) rQr8stdinr9rrrrRrSrTOSErrorr)r'stringrLerarr.r.r/rs   zFileType.__call__cCsT|j|jf}d|jfd|jfg}ddd|Ddd|D}dt|j|fS)NrWrXrcSsg|]}|dkrt|qS)r)r#)r_r+r.r.r/rbrcz%FileType.__repr__..cSs$g|]\}}|durd||fqS)Nrr.)r_kwr+r.r.r/rbs r)rQrRrSrTr&rr )r'rarCargs_strr.r.r/r0s   zFileType.__repr__)rPrNN)r r6r7rVrr0r.r.r.r/rs rc@s$eZdZddZddZddZdS)r cKs|D]}t||||qdSr1)r)r'rCr,r.r.r/rVszNamespace.__init__cCst|tstSt|t|kSr1)rr NotImplementedr)r'otherr.r.r/__eq__ s zNamespace.__eq__cCs ||jvSr1)r3)r'rNr.r.r/ __contains__szNamespace.__contains__N)r r6r7rVrerfr.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_constr.rwr5parsersrz^-\d+$|^-\d*\.\d+$)rrgrV descriptionargument_default prefix_charsconflict_handler _registriesregisterrr"r$r(r)r+r,r/r4r:rO _get_handler_actions_option_string_actions_action_groups_mutually_exclusive_groups _defaultsrMrN_negative_number_matcher_has_negative_number_optionals)r'rnrprorqrr.r/rVs4 z_ActionsContainer.__init__cCs|j|i}|||<dSr1)rrrJ)r' registry_namer-rregistryr.r.r/rsLsz_ActionsContainer.registerNcCs|j|||Sr1)rrr)r'r|r-rr.r.r/ _registry_getPsz_ActionsContainer._registry_getcKs2|j||jD]}|j|vr||j|_qdSr1)ryupdaterurr)r'rCr}r.r.r/ set_defaultsVs   z_ActionsContainer.set_defaultscCs8|jD]"}|j|kr|jdur|jSq|j|dSr1)rurrryr)r'rr}r.r.r/ get_default_s  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 passedr6z,length of metavar tuple does not match nargs)rpr{r_get_positional_kwargs_get_optional_kwargsryro_pop_action_classcallabler~rrrr6rr _add_action)r'rarCcharsr action_classr} type_funcr.r.r/ris:         z_ActionsContainer.add_argumentcOs&t|g|Ri|}|j||Sr1)_ArgumentGrouprwr")r'rarCrr.r.r/add_argument_groups z$_ActionsContainer.add_argument_groupcKs t|fi|}|j||Sr1)_MutuallyExclusiveGrouprxr")r'rCrr.r.r/add_mutually_exclusive_groups z._ActionsContainer.add_mutually_exclusive_groupcCs`|||j|||_|jD]}||j|<q"|jD]"}|j|r8|js8|jdq8|S)NT) _check_conflictrur" containerrrvrzmatchr{)r'r}rr.r.r/rs      z_ActionsContainer._add_actioncCs|j|dSr1)ruremoverr.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)titlernrq)r)rwrrrrrnrqrrxrrrurr)r'rtitle_group_maprrL 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'rrCrLr.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)optionrpzNinvalid option string %(option)r: must start with a character %(prefix_chars)rrXrz%dest= is required for options like %rrYrr) rprrr"r{rlstripreplacer) r'rarCrlong_option_stringsrrLrdest_option_stringr.r.r/rs.        z&_ActionsContainer._get_optional_kwargscCs|d|}|d||S)Nr})rr~)r'rCrr}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)rqr rrr)r'handler_func_namerLr.r.r/rts    z_ActionsContainer._get_handlercCsLg}|jD]&}||jvr |j|}|||fq |rH|}|||dSr1)rrvr"rt)r'r}confl_optionalsrconfl_optionalrqr.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/rb7sz<_ActionsContainer._handle_conflict_error..)rr{r&r)r'r}conflicting_actionsrconflict_stringr.r.r/_handle_conflict_error3s z(_ActionsContainer._handle_conflict_errorcCs>|D]4\}}|j||j|d|js|j|qdSr1)rrrvrrr)r'r}rrr.r.r/_handle_conflict_resolve<s   z*_ActionsContainer._handle_conflict_resolve)N)N)r r6r7rVrsr~rrrrrrrrrrrrtrrrrr.r.rr/rgs$ 5   3("   rgcs6eZdZdfdd ZfddZfddZZS) rNc s|j}|d|j|d|j|d|jtt|j}|fd|i|||_g|_|j |_ |j |_ |j |_ |j |_ |j |_ |j|_dS)Nrqrprorn)rJrqrprorrrVrrrrrurvryr{rx)r'rrrnrCr super_initrr.r/rVMs    z_ArgumentGroup.__init__cs tt||}|j||Sr1)rrrrr"rrr.r/rcs z_ArgumentGroup._add_actioncs tt|||j|dSr1)rrrrrrrr.r/rhsz_ArgumentGroup._remove_action)NNr r6r7rVrrrr.r.rr/rKs rcs.eZdZdfdd ZddZddZZS) rFcs tt||||_||_dSr1)rrrVr _container)r'rrrr.r/rVosz _MutuallyExclusiveGroup.__init__cCs2|jrtd}t||j|}|j||S)Nz-mutually exclusive arguments must be optional)rrrrrrr")r'r}rLr.r.r/rts   z#_MutuallyExclusiveGroup._add_actioncCs|j||j|dSr1)rrrrrr.r.r/r|s z&_MutuallyExclusiveGroup._remove_action)Frr.r.rr/rmsrc 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)HrNrYr\Tc 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)rnrprorqrzpositional argumentszoptional argumentscSs|Sr1r.)r_r.r.r/identitysz)ArgumentParser.__init__..identityrrYhr;rwzshow this help message and exit)r}rrw)rrrV_ospathbasenamer8argvrRrrepilogformatter_classfromfile_prefix_charsadd_help allow_abbrev exit_on_errorrr _positionals _optionals _subparsersrsrrrryrr)r'rRrrrnrparentsrrprrorqrrr superinit add_grouprdefault_prefixr]defaultsrr.r/rVsH   zArgumentParser.__init__csgd}fdd|DS)N)rRrrrnrrqrcsg|]}|t|fqSr.r r r5r.r/rbrcz.ArgumentParser._get_kwargs..r.r r.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 argumentsrBrrn subcommandsrRrdrmr)rr\rrJrrrrrr6_get_positional_actionsrxrvrrrirrr) r'rCrrnr\rrt parsers_classr}r.r.r/add_subparserss$   zArgumentParser.add_subparserscCs$|jr|j|n |j||Sr1)rrrrrr.r.r/rs zArgumentParser._add_actioncCsdd|jDS)NcSsg|]}|jr|qSr.rr_r}r.r.r/rb sz8ArgumentParser._get_optional_actions..rur5r.r.r/_get_optional_actions sz$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)rIrr\r&r'rarrrLr.r.r/ parse_argss 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)r8rr2r rurrrrrryr_parse_known_argsrexc_infor\rrKrr delattr)r'rarr}rerrr.r.r/rI 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)NrXrrYAOrdcs||||}||jurb||gD]*}|vr6td}t|}t|||q6|turx|||dS)Nznot allowed with argument %s)r _get_valuesrrrrrr)r}argument_stringsrargument_valuesconflict_actionrL action_name)action_conflictsr seen_actionsseen_non_default_actionsr'r.r/ take_actionvs    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"rprvrr) start_index option_tupler}r explicit_argmatch_argument action_tuples arg_countrcharnew_explicit_arg optionals_maprLstoprarselected_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/rb4s z#one of the arguments %s is requiredr)N)r_read_args_from_filesrxrrrJriterr"_parse_optionalr&rrrDrCrurrrrrrrr r _get_valuer\r)r'r)rrrr mutex_action conflictsarg_string_pattern_partsarg_strings_iter arg_stringrpatternrrmax_option_string_indexnext_option_string_indexpositionals_end_indexstrings stop_indexrequired_actionsr}rrrLr.) rr)rrrrrrrr'rrr/rGs        J                    z ArgumentParser._parse_known_argsc Csg}|D]}|r|d|jvr*||qzxt|ddT}g}|D]}||D]}||q\qN||}||Wdn1s0YWqtyt d}| t |Yq0q|Sr-) rr"rreadrconvert_arg_line_to_argsrrr^r8rr\r)r'r)new_arg_stringsr args_filearg_liner+rr.r.r/r=s   ,  z$ArgumentParser._read_args_from_filescCs|gSr1r.)r'rr.r.r/rWsz'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_errorsrLr.r.r/rZs"    zArgumentParser._match_argumentcsrg}tt|ddD]X}|d|}dfdd|D}t||}|dur|dd|Dqnq|S)Nrrrdcsg|]}|qSr.)rrr5r.r/rbvsz;ArgumentParser._match_arguments_partial..cSsg|] }t|qSr.)r{)r_r_r.r.r/rbzrc)rr{r&rMrrrt)r'rsrrr actions_slicerrr.r5r/rps  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) rprvr{split_get_option_tuplesr&rr\rzrr{) r'rr}rr option_tuplesoptionsrarLrr.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)NrrXrr;zunexpected option string: %s)rprrrvrr"r\r) 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-*rrdrY) rrrr rrrr&rr)r'r}rrr.r.r/rs(  z!ArgumentParser._get_nargs_patterncCs4|||\}}|r0td}||d||Sr)parse_known_intermixed_argsrr\r&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/rb- sz>ArgumentParser.parse_known_intermixed_args..z3parse_intermixed_args: positional arg with nargs=%srcs&g|]}|jD]}|vr|jqqSr.)rr)r_rr}rr.r/rb3 sz;parse_intermixed_args: positional in mutuallyExclusiveGroup)warnzDo not expect %s in %sF)rrrrxrrr save_nargsrr save_defaultrIrrr warningsrrrr 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.rrrr.r/rb rcrcsg|]}|qSr.rrrr.r/rb rc)rrrrrrrrrrrr _check_valuerr{r)r'r}r)r-rrr.rr/rl 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) r~rrrrrr r#rr8rrr)r'r}rrrLrr,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-rarLr.r.r/r s zArgumentParser._check_valuecCs$|}||j|j|j|Sr1)r6rvrrrurxri)r'r\r.r.r/r s  zArgumentParser.format_usagecCst|}||j|j|j||j|jD]0}||j ||j| |j | q.||j |Sr1)r6rvrrrurxrprnrwrlrrrrmrri)r'r\ action_groupr.r.r/ri s        zArgumentParser.format_helpcCs|j|jdS)Nr)rrRr5r.r.r/r6 szArgumentParser._get_formattercCs"|durtj}|||dSr1)r8r9r7rr'filer.r.r/ print_usage szArgumentParser.print_usagecCs"|durtj}|||dSr1)r8r9r7rir r.r.r/r1 szArgumentParser.print_helpcCs |r|durtj}||dSr1)r8stderrwrite)r'rr!r.r.r/r7 szArgumentParser._print_messagercCs |r||tjt|dSr1)r7r8r#r2)r'statusrr.r.r/r2 szArgumentParser.exitcCs0|tj|j|d}|dtd|dS)N)rRrr;z%(prog)s: error: %(message)s )r"r8r#rRr2r)r'rrar.r.r/r\ s  zArgumentParser.error)NN)NN)NN)NN)N)N)N)rN)"r r6r7rrVr$rrrrrrIrrrrrrrrrrrrrrrir6r"r1r7r2r\rr.r.rr/rsVB  'w:-1  M8    r)1 __version____all__osrrerMsysr8rrrrrrr rrrKrrr:rrr rr r Exceptionrrr rrr"r$r(r)r+r,r/r4r:rOrr rgrrrr.r.r.r/As^    ])#&] 78"