grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \aã@s,dZddddddddd d d d d ddddgZddlZddlZddlZddlZ ddl Z ddl Z ddlmZmZdZdZdZdZdZdZdZGdd„deƒZdd„ZGd d„deƒZGd!d„deƒZGd"d„deƒZGd#d„deƒZGd$d „d eƒZd%d&„Z Gd'd„de!ƒZ"Gd(d„de!ƒZ#Gd)d „d eƒZ$Gd*d+„d+e$ƒZ%Gd,d-„d-e$ƒZ&Gd.d/„d/e&ƒZ'Gd0d1„d1e&ƒZ(Gd2d3„d3e$ƒZ)Gd4d5„d5e$ƒZ*Gd6d7„d7e$ƒZ+Gd8d9„d9e$ƒZ,Gd:d;„d;e$ƒZ-Gdd„deƒZ/Gd?d „d eƒZ0Gd@dA„dAeƒZ1GdBdC„dCe1ƒZ2GdDdE„dEe2ƒZ3GdFd„dee1ƒZ4dS)Gz1.1ÚArgumentParserÚ ArgumentErrorÚArgumentTypeErrorÚFileTypeÚ HelpFormatterÚArgumentDefaultsHelpFormatterÚRawDescriptionHelpFormatterÚRawTextHelpFormatterÚMetavarTypeHelpFormatterÚ NamespaceÚActionÚ ONE_OR_MOREÚOPTIONALÚPARSERÚ REMAINDERÚSUPPRESSÚ ZERO_OR_MOREéN)ÚgettextÚngettextz ==SUPPRESS==ú?Ú*ú+zA...z...Z_unrecognized_argsc@s$eZdZdd„Zdd„Zdd„ZdS)Ú_AttributeHoldercCs”t|ƒj}g}i}x|jƒD]}|jt|ƒƒqWx8|jƒD],\}}|jƒr`|jd||fƒq<|||<qÕsz6HelpFormatter._Section.format_help..Úz%*s%s: Ú ) rSrRrPÚ _join_partsr+rQrTrrA)r!r Z item_helpZcurrent_indentrTr&r&r'Ú format_helpÐs    z"HelpFormatter._Section.format_help)N)rr,r-rNr\r&r&r&r'rDÈs rDcCs|jjj||fƒdS)N)rFr+r)r!rVrWr&r&r'Ú _add_itemçszHelpFormatter._add_itemcCs0|jƒ|j||j|ƒ}|j|jgƒ||_dS)N)rPrDrFr]r\)r!rTZsectionr&r&r'Ú start_sectioníszHelpFormatter.start_sectioncCs|jj|_|jƒdS)N)rFrSrQ)r!r&r&r'Ú end_sectionós zHelpFormatter.end_sectioncCs$|tk r |dk r |j|j|gƒdS)N)rr]Ú _format_text)r!Útextr&r&r'Úadd_text÷szHelpFormatter.add_textcCs&|tk r"||||f}|j|j|ƒdS)N)rr]Ú _format_usage)r!ÚusageÚactionsÚgroupsÚprefixrWr&r&r'Ú add_usageûs zHelpFormatter.add_usagecCsz|jtk rv|j}||ƒg}x |j|ƒD]}|j||ƒƒq&Wtdd„|Dƒƒ}||j}t|j|ƒ|_|j|j |gƒdS)NcSsg|] }t|ƒ‘qSr&)Úlen)rUÚsr&r&r'rX sz.HelpFormatter.add_argument..) ÚhelprÚ_format_action_invocationÚ_iter_indented_subactionsrr?rArCr]Ú_format_action)r!ÚactionZget_invocationZ invocationsÚ subactionZinvocation_lengthZ action_lengthr&r&r'Ú add_arguments   zHelpFormatter.add_argumentcCsx|D]}|j|ƒqWdS)N)rq)r!reror&r&r'Ú add_argumentss zHelpFormatter.add_argumentscCs.|jjƒ}|r*|jjd|ƒ}|jdƒd}|S)Nz rZ)rEr\rKÚsubÚstrip)r!rkr&r&r'r\s  zHelpFormatter.format_helpcCsdjdd„|DƒƒS)NrYcSsg|]}|r|tk r|‘qSr&)r)rUÚpartr&r&r'rX!sz-HelpFormatter._join_parts..)r )r!Z part_stringsr&r&r'r[ s zHelpFormatter._join_partscs|dkrtdƒ}|dk r,|t|jd�}�nÜ|dkrN| rNdt|jd�}�nº|dk�rdt|jd�}g}g}x(|D] }|jrŒ|j|ƒqv|j|ƒqvW|j} | |||ƒ} djdd„|| gDƒƒ}|j|j‰t |ƒt |ƒˆk�rd} | ||ƒ} | ||ƒ} t j | | ƒ}t j | | ƒ}d‡fdd „ }t |ƒt |ƒd ˆk�r¤dt |ƒt |ƒd }|�r‚||g|||ƒ}|j |||ƒƒn |�rœ||g|||ƒ}n|g}nZdt |ƒ}||}|||ƒ}t |ƒd k�rôg}|j |||ƒƒ|j |||ƒƒ|g|}d j|ƒ}d ||fS)Nzusage: )rLz%(prog)sú cSsg|] }|r|‘qSr&r&)rUrjr&r&r'rXAsz/HelpFormatter._format_usage..z%\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+csÊg}g}|dk rt|ƒd}n t|ƒd}xb|D]Z}|dt|ƒˆkrp|rp|j|dj|ƒƒg}t|ƒd}|j|ƒ|t|ƒd7}q0W|r¦|j|dj|ƒƒ|dk rÆ|dt|ƒd…|d<|S)NrOrvr)rirr )ÚpartsÚindentrgÚlinesÚlineZline_lenru)Ú text_widthr&r'Ú get_linesUs"    z.HelpFormatter._format_usage..get_linesgè?rOrZz%s%s )N) Ú_Údictr;Úoption_stringsrÚ_format_actions_usager r@rArirGÚfindallÚextend)r!rdrerfrgrLZ optionalsÚ positionalsroÚformatZ action_usageZ part_regexpZ opt_usageZ pos_usageZ opt_partsZ pos_partsr|rxryrwr&)r{r'rc%sV            zHelpFormatter._format_usagec CsÎtƒ}i}xî|D]æ}y|j|jdƒ}Wntk r>wYqX|t|jƒ}|||…|jkrx|jD]}|j|ƒqhW|js¬||krš||d7<nd||<d||<n*||krÆ||d7<nd||<d||<xt|d|ƒD] } d || <qæWqWg} �x2t|ƒD�]$\} }|j t k�rj| j dƒ|j | ƒd k�rF|j | ƒn"|j | dƒd k�r.|j | dƒnÄ|j�sÆ|j|ƒ} |j|| ƒ} ||k�rº| ddk�rº| ddk�rº| dd…} | j | ƒnh|jd} |jdk�ræd | } n"|j|ƒ} |j|| ƒ}d | |f} |j �r$||k�r$d | } | j | ƒ�q Wx(t|d d�D]} || g| | | …<�qBWdjdd„| Dƒƒ}d}d}tjd|d|ƒ}tjd|d|ƒ}tjd||fd|ƒ}tjdd|ƒ}|jƒ}|S)Nrz [ú[ú]z (ú(ú)rOú|z%sz%s %sz[%s]T)ÚreverservcSsg|]}|dk r|‘qS)Nr&)rUÚitemr&r&r'rXØsz7HelpFormatter._format_actions_usage..z[\[(]z[\])]z(%s) z\1z (%s)z%s *%srYz \(([^|]*)\)éÿÿÿÿrŒ)ÚsetÚindexÚ_group_actionsr:riÚaddÚrequiredÚrangeÚ enumeraterkrrÚgetÚpoprÚ#_get_default_metavar_for_positionalÚ _format_argsÚnargsÚ!_get_default_metavar_for_optionalr)r rGrsrt)r!rerfÚ group_actionsZinsertsÚgroupÚstartÚendroÚirwÚdefaultruÚ option_stringÚ args_stringraÚopenÚcloser&r&r'r€…sr                 z#HelpFormatter._format_actions_usagecCsFd|kr|t|jd�}t|j|jdƒ}d|j}|j|||ƒdS)Nz%(prog))rLé rvz )r~r;r?r@rAÚ _fill_text)r!rar{rxr&r&r'r`æs  zHelpFormatter._format_textc CsBt|jd|jƒ}t|j|dƒ}||jd}|j|ƒ}|jsV|jd|f}d|}n@t|ƒ|kr~|jd||f}d|}d}n|jd|f}d|}|}|g}|jrü|j |ƒ} |j | |ƒ} |j d|d| dfƒx@| dd…D]} |j d|d| fƒqÞWn|j dƒ�s|j dƒx$|j |ƒD]} |j |j| ƒƒ�qW|j|ƒS) Nr2r¤rYz%*s%s z %*s%-*s rrOrZ)r>rCr=r?r@rArlrkriÚ _expand_helpÚ _split_linesrÚendswithrmrnr[) r!roZ help_positionZ help_widthZ action_widthZ action_headerÚtupZ indent_firstrwZ help_textZ help_linesrzrpr&r&r'rnís6          zHelpFormatter._format_actioncCsˆ|js&|j|ƒ}|j||ƒdƒ\}|Sg}|jdkrB|j|jƒn8|j|ƒ}|j||ƒ}x |jD]}|jd||fƒq`Wdj|ƒSdS)NrOrz%s %sz, ) rr–Ú_metavar_formatterr˜r‚r™r—rr )r!rorŸÚmetavarrwr¡r r&r&r'rls     z'HelpFormatter._format_action_invocationcsP|jdk r|j‰n.|jdk r.z{%s}ú,cstˆtƒrˆSˆf|SdS)N)Ú isinstanceÚtuple)Z tuple_size)Úresultr&r'r„=s z0HelpFormatter._metavar_formatter..format)r«Úchoicesr )r!roÚdefault_metavarZ choice_strsr„r&)r°r'rª4s   z HelpFormatter._metavar_formattercCsÀ|j||ƒ}|jdkr$d|dƒ}n˜|jtkr.rv) rªr˜r rr rrr’r )r!ror²Z get_metavarr°Zformatsr&r&r'r—Ds        zHelpFormatter._format_argscCs tt|ƒ|jd�}x"t|ƒD]}||tkr||=qWx,t|ƒD] }t||dƒr@||j||<q@W|jdƒdk r’djdd„|dDƒƒ}||d<|j |ƒ|S)N)rLrr±z, cSsg|] }t|ƒ‘qSr&)r¬)rUÚcr&r&r'rX`sz.HelpFormatter._expand_help..) r~Úvarsr;ÚlistrÚhasattrrr”r Ú_get_help_string)r!roZparamsr$Z choices_strr&r&r'r¦Ws  zHelpFormatter._expand_helpc cs@y |j}Wntk rYnX|jƒ|ƒEdH|jƒdS)N)Ú_get_subactionsÚAttributeErrorrPrQ)r!roZget_subactionsr&r&r'rmds  z'HelpFormatter._iter_indented_subactionscCs|jjd|ƒjƒ}tj||ƒS)Nrv)rJrsrtÚ _textwrapZwrap)r!rarMr&r&r'r§nszHelpFormatter._split_linescCs$|jjd|ƒjƒ}tj||||d�S)Nrv)Zinitial_indentZsubsequent_indent)rJrsrtrºZfill)r!rarMrxr&r&r'r¥rs zHelpFormatter._fill_textcCs|jS)N)rk)r!ror&r&r'r·wszHelpFormatter._get_help_stringcCs |jjƒS)N)ÚdestÚupper)r!ror&r&r'r™zsz/HelpFormatter._get_default_metavar_for_optionalcCs|jS)N)r»)r!ror&r&r'r–}sz1HelpFormatter._get_default_metavar_for_positional)r2r3N)N)rr,r-rNrPrQÚobjectrDr]r^r_rbrhrqrrr\r[rcr€r`rnrlrªr—r¦rmr§r¥r·r™r–r&r&r&r'r–s:   `a/  c@seZdZdd„ZdS)rcs dj‡fdd„|jdd�DƒƒS)NrYc3s|]}ˆ|VqdS)Nr&)rUrz)rxr&r'ú ‰sz9RawDescriptionHelpFormatter._fill_text..T)Úkeepends)r Ú splitlines)r!rarMrxr&)rxr'r¥ˆsz&RawDescriptionHelpFormatter._fill_textN)rr,r-r¥r&r&r&r'r�sc@seZdZdd„ZdS)rcCs|jƒS)N)rÀ)r!rarMr&r&r'r§“sz!RawTextHelpFormatter._split_linesN)rr,r-r§r&r&r&r'rŒsc@seZdZdd„ZdS)rcCs>|j}d|jkr:|jtk r:ttg}|js2|j|kr:|d7}|S)Nz %(default)z (default: %(default)s))rkrŸrr rrr˜)r!rorkZdefaulting_nargsr&r&r'r·žs  z.ArgumentDefaultsHelpFormatter._get_help_stringN)rr,r-r·r&r&r&r'r—sc@seZdZdd„Zdd„ZdS)r cCs|jjS)N)rr)r!ror&r&r'r™°sz:MetavarTypeHelpFormatter._get_default_metavar_for_optionalcCs|jjS)N)rr)r!ror&r&r'r–³sz.r&)r!Únamesr&)r!r'r/szAction._get_kwargscCsttdƒƒ‚dS)Nz.__call__() not defined)ÚNotImplementedErrorr})r!Úparserr0Úvaluesr r&r&r'Ú__call__=szAction.__call__)NNNNNFNN)N)rr,r-rNrrÌr&r&r&r'r æs6 cs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú _StoreActionNFc sT|dkrtdƒ‚|dk r,|tkr,tdtƒ‚tt|ƒj||||||||| | d� dS)Nrz„nargs for store actions must be > 0; if you have nothing to store, actions such as store true or store const may be more appropriatez nargs must be %r to supply const) rr»r˜rÇrŸrr±r‘rkr«)r:r ÚsuperrÍrN) r!rr»r˜rÇrŸrr±r‘rkr«)Ú __class__r&r'rNCs   z_StoreAction.__init__cCst||j|ƒdS)N)r/r»)r!rÊr0rËr r&r&r'rÌ`sz_StoreAction.__call__)NNNNNFNN)N)rr,r-rNrÌÚ __classcell__r&r&)rÏr'rÍAsrÍcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú_StoreConstActionNFc s"tt|ƒj||d||||d�dS)Nr)rr»r˜rÇrŸr‘rk)rÎrÑrN)r!rr»rÇrŸr‘rkr«)rÏr&r'rNfs z_StoreConstAction.__init__cCst||j|jƒdS)N)r/r»rÇ)r!rÊr0rËr r&r&r'rÌwsz_StoreConstAction.__call__)NFNN)N)rr,r-rNrÌrÐr&r&)rÏr'rÑds  rÑcseZdZd‡fdd„ Z‡ZS)Ú_StoreTrueActionFNcs tt|ƒj||d|||d�dS)NT)rr»rÇrŸr‘rk)rÎrÒrN)r!rr»rŸr‘rk)rÏr&r'rN}s z_StoreTrueAction.__init__)FFN)rr,r-rNrÐr&r&)rÏr'rÒ{srÒcseZdZd‡fdd„ Z‡ZS)Ú_StoreFalseActionTFNcs tt|ƒj||d|||d�dS)NF)rr»rÇrŸr‘rk)rÎrÓrN)r!rr»rŸr‘rk)rÏr&r'rNŽs z_StoreFalseAction.__init__)TFN)rr,r-rNrÐr&r&)rÏr'rÓŒsrÓcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú _AppendActionNFc sT|dkrtdƒ‚|dk r,|tkr,tdtƒ‚tt|ƒj||||||||| | d� dS)Nrz‹nargs for append actions must be > 0; if arg strings are not supplying the value to append, the append const action may be more appropriatez nargs must be %r to supply const) rr»r˜rÇrŸrr±r‘rkr«)r:r rÎrÔrN) r!rr»r˜rÇrŸrr±r‘rkr«)rÏr&r'rNŸs   z_AppendAction.__init__cCs0tjt||jgƒƒ}|j|ƒt||j|ƒdS)N)Ú_copyÚcopyr1r»rr/)r!rÊr0rËr r+r&r&r'r̼s z_AppendAction.__call__)NNNNNFNN)N)rr,r-rNrÌrÐr&r&)rÏr'rÔ�srÔcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú_AppendConstActionNFc s$tt|ƒj||d|||||d�dS)Nr)rr»r˜rÇrŸr‘rkr«)rÎr×rN)r!rr»rÇrŸr‘rkr«)rÏr&r'rNÄs z_AppendConstAction.__init__cCs2tjt||jgƒƒ}|j|jƒt||j|ƒdS)N)rÕrÖr1r»rrÇr/)r!rÊr0rËr r+r&r&r'rÌÖs z_AppendConstAction.__call__)NFNN)N)rr,r-rNrÌrÐr&r&)rÏr'r×Âs  r×cs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú _CountActionNFcs tt|ƒj||d|||d�dS)Nr)rr»r˜rŸr‘rk)rÎrØrN)r!rr»rŸr‘rk)rÏr&r'rNÞs z_CountAction.__init__cCs$t||jdƒd}t||j|ƒdS)NrrO)r1r»r/)r!rÊr0rËr Z new_countr&r&r'rÌìsz_CountAction.__call__)NFN)N)rr,r-rNrÌrÐr&r&)rÏr'rØÜs rØcs.eZdZeedf‡fdd„ Zddd„Z‡ZS)Ú _HelpActionNcstt|ƒj|||d|d�dS)Nr)rr»rŸr˜rk)rÎrÙrN)r!rr»rŸrk)rÏr&r'rNós  z_HelpAction.__init__cCs|jƒ|jƒdS)N)Ú print_helpÚexit)r!rÊr0rËr r&r&r'rÌÿsz_HelpAction.__call__)N)rr,r-rrNrÌrÐr&r&)rÏr'rÙñsrÙcs0eZdZdeedf‡fdd„ Zddd„Z‡ZS)Ú_VersionActionNz&show program's version number and exitcs$tt|ƒj|||d|d�||_dS)Nr)rr»rŸr˜rk)rÎrÜrNÚversion)r!rrÝr»rŸrk)rÏr&r'rNs z_VersionAction.__init__cCsD|j}|dkr|j}|jƒ}|j|ƒ|j|jƒtjƒ|jƒdS)N)rÝÚ_get_formatterrbÚ_print_messager\Ú_sysÚstdoutrÛ)r!rÊr0rËr rÝrRr&r&r'rÌs z_VersionAction.__call__)N)rr,r-rrNrÌrÐr&r&)rÏr'rÜs  rÜcsNeZdZGdd„deƒZeddf‡fdd„ Zdd„Zdd „Zd d d „Z ‡Z S) Ú_SubParsersActioncseZdZ‡fdd„Z‡ZS)z&_SubParsersAction._ChoicesPseudoActioncs@|}}|r|ddj|ƒ7}ttj|ƒ}|jg|||d�dS)Nz (%s)z, )rr»rkr«)r rÎrâÚ_ChoicesPseudoActionrN)r!r$Úaliasesrkr«r»Zsup)rÏr&r'rN"s   z/_SubParsersAction._ChoicesPseudoAction.__init__)rr,r-rNrÐr&r&)rÏr'rã srãNcs>||_||_tjƒ|_g|_tt|ƒj||t |j||d�dS)N)rr»r˜r±rkr«) Ú _prog_prefixÚ _parser_classÚ _collectionsÚ OrderedDictÚ_name_parser_mapÚ_choices_actionsrÎrârNr)r!rrLÚ parser_classr»rkr«)rÏr&r'rN*s  z_SubParsersAction.__init__cKsŠ|jdƒdkr d|j|f|d<|jdfƒ}d|krX|jdƒ}|j|||ƒ}|jj|ƒ|jf|Ž}||j|<x|D]}||j|<qtW|S)NrLz%s %srärk)r”rår•rãrêrræré)r!r$ÚkwargsrärkZ choice_actionrÊÚaliasr&r&r'Ú add_parser?s      z_SubParsersAction.add_parsercCs|jS)N)rê)r!r&r&r'r¸Vsz!_SubParsersAction._get_subactionsc CsÖ|d}|dd…}|jtk r,t||j|ƒy|j|}Wn<tk rv|dj|jƒdœ}tdƒ|}t||ƒ‚YnX|j|dƒ\} }x$t | ƒj ƒD]\} } t|| | ƒq–W|rÒt |ƒj t gƒt |t ƒj|ƒdS)NrrOz, )Ú parser_namer±z5unknown parser %(parser_name)r (choices: %(choices)s))r»rr/rér9r r}rÚparse_known_argsr´r+Ú setdefaultÚ_UNRECOGNIZED_ARGS_ATTRr.r‚) r!rÊr0rËr rïr"rWÚmsgZ subnamespaceÚkeyr%r&r&r'rÌYs"    z_SubParsersAction.__call__)N) rr,r-r rãrrNrîr¸rÌrÐr&r&)rÏr'râsrâc@s&eZdZd dd„Zdd„Zdd „ZdS) rÚrrONcCs||_||_||_||_dS)N)Ú_modeÚ_bufsizeÚ _encodingÚ_errors)r!ÚmodeÚbufsizeÚencodingÚerrorsr&r&r'rN�szFileType.__init__cCs–|dkr>d|jkrtjSd|jkr(tjStdƒ|j}t|ƒ‚yt||j|j|j|j ƒSt k r�}ztdƒ}t |||fƒ‚WYdd}~XnXdS)Nú-rõÚwzargument "-" with mode %rzcan't open '%s': %s) röràÚstdinrár}r:r¢r÷rørùÚOSErrorr)r!ÚstringróÚerÅr&r&r'rÌ•s  zFileType.__call__cCsT|j|jf}d|jfd|jfg}djdd„|Dƒdd„|Dƒƒ}dt|ƒj|fS)Nrürýz, cSsg|]}|dkrt|ƒ‘qS)rOrŒ)r)rUr#r&r&r'rX«sz%FileType.__repr__..cSs$g|]\}}|dk rd||f‘qS)Nz%s=%rr&)rUÚkwr#r&r&r'rX¬sz%s(%s))rör÷rørùr rr)r!rWrìZargs_strr&r&r'r(¨s  zFileType.__repr__rŒ)rõrŒNN)rr,r-rNrÌr(r&r&r&r'r~s c@s$eZdZdd„Zdd„Zdd„ZdS)r cKs"x|D]}t||||ƒqWdS)N)r/)r!rìr$r&r&r'rN»s zNamespace.__init__cCst|tƒstSt|ƒt|ƒkS)N)r®r ÚNotImplementedr´)r!Úotherr&r&r'Ú__eq__¿s zNamespace.__eq__cCs ||jkS)N)r*)r!rôr&r&r'Ú __contains__ÄszNamespace.__contains__N)rr,r-rNrrr&r&r&r'r ´scs¨eZdZ‡fdd„Zdd„Zd&dd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zd'dd„Zdd„Zd d!„Zd"d#„Zd$d%„Z‡ZS)(Ú_ActionsContainercstt|ƒjƒ||_||_||_||_i|_|jddt ƒ|jddt ƒ|jddt ƒ|jddt ƒ|jddt ƒ|jddt ƒ|jddtƒ|jddtƒ|jdd tƒ|jdd tƒ|jdd tƒ|jƒg|_i|_g|_g|_i|_tjd ƒ|_g|_dS) NroZstoreZ store_constÚ store_trueZ store_falserZ append_constÚcountrkrÝÚparsersz^-\d+$|^-\d*\.\d+$)rÎr rNÚ descriptionÚargument_defaultÚ prefix_charsÚconflict_handlerÚ _registriesÚregisterrÍrÑrÒrÓrÔr×rØrÙrÜrâÚ _get_handlerÚ_actionsÚ_option_string_actionsÚ_action_groupsÚ_mutually_exclusive_groupsÚ _defaultsrGrHÚ_negative_number_matcherÚ_has_negative_number_optionals)r!r rrr)rÏr&r'rNÊs2 z_ActionsContainer.__init__cCs|jj|iƒ}|||<dS)N)rrñ)r!Ú registry_namer%r½Úregistryr&r&r'rþsz_ActionsContainer.registerNcCs|j|j||ƒS)N)rr”)r!rr%rŸr&r&r'Ú _registry_getsz_ActionsContainer._registry_getcKs6|jj|ƒx$|jD]}|j|kr||j|_qWdS)N)rÚupdaterr»rŸ)r!rìror&r&r'Ú set_defaultss   z_ActionsContainer.set_defaultscCs8x(|jD]}|j|kr|jdk r|jSqW|jj|dƒS)N)rr»rŸrr”)r!r»ror&r&r'Ú get_defaults  z_ActionsContainer.get_defaultc Os0|j}| s(t|ƒdkrJ|dd|krJ|r|js>|jjdƒq>W|S)NT) Ú_check_conflictrrÚ containerrrrÚmatchr)r!ror r&r&r'r&Ts     z_ActionsContainer._add_actioncCs|jj|ƒdS)N)rÚremove)r!ror&r&r'Ú_remove_actionisz _ActionsContainer._remove_actioncCsòi}x8|jD].}|j|kr0tdƒ}t||jƒ‚|||j<q Wi}xR|jD]H}|j|krt|j|j|j|jd�||j<x|jD]}||j||<q|WqJWx4|jD]*}|j |j d�}x|jD] }|||<q¸WqžWx |j D]}|j ||ƒj |ƒqÔWdS)Nz.cannot merge actions - two groups are named %r)Útitler r)r‘)rr2r}r:r*r rr�rr,r‘rr”r&)r!r.Ztitle_group_mapr›róZ group_maproÚ mutex_groupr&r&r'Ú_add_container_actionsls,         z(_ActionsContainer._add_container_actionscKs^d|krtdƒ}t|ƒ‚|jdƒttgkr2d|d<|jdƒtkrPd|krPd|d<t||gd�S)Nr‘z1'required' is an invalid argument for positionalsr˜TrŸ)r»r)r}r%r”r rr~)r!r»rìrór&r&r'r!”sz(_ActionsContainer._get_positional_kwargsc Osèg}g}xv|D]n}|d|jkr@||jdœ}tdƒ}t||ƒ‚|j|ƒ|d|jkrt|ƒdkr|d|jkr|j|ƒqW|jddƒ}|dkrÚ|r¢|d}n|d}|j|jƒ}|sÎtdƒ}t||ƒ‚|jddƒ}t|||d �S) Nr)ÚoptionrzNinvalid option string %(option)r: must start with a character %(prefix_chars)rrOr»z%dest= is required for options like %rrþr})r»r) rr}r:rrir•ÚlstripÚreplacer~) r!rWrìrZlong_option_stringsr rór»Zdest_option_stringr&r&r'r"¤s0          z&_ActionsContainer._get_optional_kwargscCs|jd|ƒ}|jd||ƒS)Nro)r•r)r!rìrŸror&r&r'r#Ès z#_ActionsContainer._pop_action_classc CsDd|j}y t||ƒStk r>tdƒ}t||jƒ‚YnXdS)Nz_handle_conflict_%sz%invalid conflict_resolution value: %r)rr.r¹r}r:)r!Zhandler_func_namerór&r&r'rÌs   z_ActionsContainer._get_handlercCsPg}x0|jD]&}||jkr |j|}|j||fƒq W|rL|jƒ}|||ƒdS)N)rrrr)r!roZconfl_optionalsr Zconfl_optionalrr&r&r'r-Õs   z!_ActionsContainer._check_conflictcCs6tddt|ƒƒ}djdd„|Dƒƒ}t|||ƒ‚dS)Nzconflicting option string: %szconflicting option strings: %sz, cSsg|] \}}|‘qSr&r&)rUr ror&r&r'rXçsz<_ActionsContainer._handle_conflict_error..)rrir r)r!roÚconflicting_actionsrÅZconflict_stringr&r&r'Ú_handle_conflict_errorãs    z(_ActionsContainer._handle_conflict_errorcCsBx<|D]4\}}|jj|ƒ|jj|dƒ|js|jj|ƒqWdS)N)rr0rr•r.r1)r!ror8r r&r&r'Ú_handle_conflict_resolveìs  z*_ActionsContainer._handle_conflict_resolve)N)N)rr,r-rNrrrr rqr*r,r&r1r4r!r"r#rr-r9r:rÐr&r&)rÏr'r Ès$ 4   /($   r cs6eZdZd‡fdd„ Z‡fdd„Z‡fdd„Z‡ZS) r)Nc sˆ|j}|d|jƒ|d|jƒ|d|jƒtt|ƒj}|fd|i|—Ž||_g|_|j |_ |j |_ |j |_ |j |_ |j |_ |j|_dS)Nrrrr )rñrrrrÎr)rNr2r�rrrrrr)r!r.r2r rìrZ super_init)rÏr&r'rNýs    z_ArgumentGroup.__init__cs tt|ƒj|ƒ}|jj|ƒ|S)N)rÎr)r&r�r)r!ro)rÏr&r'r&s z_ArgumentGroup._add_actioncs tt|ƒj|ƒ|jj|ƒdS)N)rÎr)r1r�r0)r!ro)rÏr&r'r1sz_ArgumentGroup._remove_action)NN)rr,r-rNr&r1rÐr&r&)rÏr'r)ûs r)cs.eZdZd‡fdd„ Zdd„Zdd„Z‡ZS) r+Fcs tt|ƒj|ƒ||_||_dS)N)rÎr+rNr‘Ú _container)r!r.r‘)rÏr&r'rNsz _MutuallyExclusiveGroup.__init__cCs2|jrtdƒ}t|ƒ‚|jj|ƒ}|jj|ƒ|S)Nz-mutually exclusive arguments must be optional)r‘r}r:r;r&r�r)r!rorór&r&r'r&$s   z#_MutuallyExclusiveGroup._add_actioncCs|jj|ƒ|jj|ƒdS)N)r;r1r�r0)r!ror&r&r'r1,s z&_MutuallyExclusiveGroup._remove_action)F)rr,r-rNr&r1rÐr&r&)rÏr'r+sr+c seZdZddddgeddddddf ‡fdd„ Zdd„Zd d „Zd d „Zd d„Zdd„Z dd1d2„Zd?d3d4„Zd@d5d6„ZdAd8d9„Zd:d;„Z‡ZS)BrNrþÚerrorTc  s&tt|ƒj} | ||| | d�|dkr6tjjtjdƒ}||_||_ ||_ ||_ ||_ | |_ | |_|j}|tdƒƒ|_|tdƒƒ|_d|_dd„}|jdd|ƒd|krªdn|d}|j rÜ|j|d |d d d ttd ƒd �xD|D]<}|j|ƒy |j}Wntk �rYqâX|jj|ƒqâWdS)N)r rrrrzpositional argumentszoptional argumentscSs|S)Nr&)rr&r&r'Úidentityjsz)ArgumentParser.__init__..identityrrþÚhr2rkzshow this help message and exit)rorŸrk)rÎrrNr7ÚpathÚbasenameràÚargvrLrdÚepilogÚformatter_classÚfromfile_prefix_charsÚadd_helpÚ allow_abbrevr*r}Ú _positionalsÚ _optionalsÚ _subparsersrrqrr4rr¹r)r!rLrdr rBÚparentsrCrrDrrrErFZ superinitZ add_groupr=Zdefault_prefixrSZdefaults)rÏr&r'rNDsB     zArgumentParser.__init__cs"ddddddg}‡fdd„|DƒS) NrLrdr rCrrEcsg|]}|tˆ|ƒf‘qSr&)r.)rUr$)r!r&r'rX�sz.ArgumentParser._get_kwargs..r&)r!rÈr&)r!r'r„szArgumentParser._get_kwargsc Ksä|jdk r|jtdƒƒ|jdt|ƒƒd|ks8d|krht|jddƒƒ}t|jddƒƒ}|j||ƒ|_n|j|_|jdƒdkr¶|j ƒ}|j ƒ}|j }|j |j ||dƒ|jƒjƒ|d<|j|dƒ}|fd gi|—Ž}|jj|ƒ|S) Nz(cannot have multiple subparser argumentsrër2r Z subcommandsrLrYr r)rIr<r}rñrr•r*rGr”rÞÚ_get_positional_actionsrrhrdr\rtr#r&) r!rìr2r rRrƒrfZ parsers_classror&r&r'Úadd_subparsers’s$   zArgumentParser.add_subparserscCs$|jr|jj|ƒn |jj|ƒ|S)N)rrHr&rG)r!ror&r&r'r&±s zArgumentParser._add_actioncCsdd„|jDƒS)NcSsg|]}|jr|‘qSr&)r)rUror&r&r'rX¹sz8ArgumentParser._get_optional_actions..)r)r!r&r&r'Ú_get_optional_actions¸sz$ArgumentParser._get_optional_actionscCsdd„|jDƒS)NcSsg|]}|js|‘qSr&)r)rUror&r&r'rX¾sz:ArgumentParser._get_positional_actions..)r)r!r&r&r'rK½sz&ArgumentParser._get_positional_actionscCs4|j||ƒ\}}|r0tdƒ}|j|dj|ƒƒ|S)Nzunrecognized arguments: %srv)rðr}r<r )r!rWr0rArór&r&r'Ú parse_argsÅs zArgumentParser.parse_argsc Cs |dkrtjdd…}nt|ƒ}|dkr.tƒ}x>|jD]4}|jtk r6t||jƒs6|jtk r6t ||j|jƒq6Wx*|j D] }t||ƒsvt |||j |ƒqvWy<|j ||ƒ\}}t|t ƒrÐ|j t|t ƒƒt|t ƒ||fStk �rtjƒd}|jt|ƒƒYnXdS)NrO)ràrArµr rr»rr¶rŸr/rÚ_parse_known_argsròr‚r.ÚdelattrrÚexc_infor<r¬)r!rWr0ror»Úerrr&r&r'rðÌs,         zArgumentParser.parse_known_argscs"ˆ jdk rˆ jˆƒ‰i‰x`ˆ jD]V}|j}xJt|jƒD]<\}}ˆj|gƒ}|j|d|…ƒ|j||dd…ƒq6Wq Wi‰g}tˆƒ} xnt| ƒD]b\}} | dkrÈ|jdƒxF| D]} |jdƒq´Wq”ˆ j | ƒ} | dkràd} n | ˆ|<d} |j| ƒq”Wdj |ƒ‰t ƒ‰t ƒ‰d‡‡‡‡‡ fdd„ ‰ ‡‡‡‡‡ ‡ fd d „} ˆ j ƒ‰‡‡‡‡ ‡ fd d „}g‰d ‰ ˆ�rpt ˆƒ}nd}x|ˆ |k�rðt‡ fdd„ˆDƒƒ}ˆ |k�rÀ|ˆ ƒ}|ˆ k�r¼|‰ �qvn|‰ ˆ ˆk�r䈈 |…}ˆj|ƒ|‰ | ˆ ƒ‰ �qvW|ˆ ƒ}ˆjˆ|d…ƒg}x†ˆ jD]|}|ˆk�r|j�r>|jt|ƒƒnT|jdk �rt|jtƒ�rtˆ|jƒ�r|jtˆ|jƒk�rtˆ|jˆ j||jƒƒ�qW|�r¶ˆ jtdƒdj |ƒƒxbˆ jD]X}|j�r¾xH|jD]}|ˆk�rÒP�qÒWdd„|jDƒ}tdƒ}ˆ j|dj |ƒƒ�q¾WˆˆfS)NrOz--rþÚAÚOrYcs€ˆj|ƒˆj||ƒ}||jk rfˆj|ƒx:ˆj|gƒD]*}|ˆkr8tdƒ}t|ƒ}t|||ƒ‚q8W|tk r||ˆˆ||ƒdS)Nznot allowed with argument %s)r�Ú _get_valuesrŸr”r}rÃrr)roZargument_stringsr Zargument_valuesZconflict_actionróZ action_name)Úaction_conflictsr0Ú seen_actionsÚseen_non_default_actionsr!r&r'Ú take_actions    z5ArgumentParser._parse_known_args..take_actioncs„ˆ|}|\}}}ˆj}g}�x>|dkr>ˆjˆ|ƒ|dS|dk �r||dƒ}ˆj}|dkrÔ|d|krÔ|j|g|fƒ|d} | |d}|dd…pžd} ˆj} || kr¼| |}| }ntdƒ} t|| |ƒ‚n@|dkrþ|d} |g}|j|||fƒPntdƒ} t|| |ƒ‚q |d}ˆ|d…}|||ƒ}||} ˆ|| …}|j|||fƒPq Wx |D]\}}}ˆ|||ƒ�qdW| S)NrOrSrzignored explicit argument %r)Ú_match_argumentrrrr}r)Ú start_indexÚ option_tupleror Ú explicit_argZmatch_argumentZ action_tuplesÚ arg_countr'ÚcharZnew_explicit_argZ optionals_mapróÚstoprWrœZselected_patterns)r"Úarg_strings_patternÚextrasÚoption_string_indicesr!rYr&r'Úconsume_optional3sN       z:ArgumentParser._parse_known_args..consume_optionalcsrˆj}ˆ|d…}|ˆ|ƒ}x8tˆ|ƒD]*\}}ˆ|||…}||7}ˆ||ƒq(Wˆt|ƒd…ˆdd…<|S)N)Ú_match_arguments_partialÚzipri)r[Z match_partialZselected_patternZ arg_countsror^rW)r"rarƒr!rYr&r'Úconsume_positionals€s  z=ArgumentParser._parse_known_args..consume_positionalsrcsg|]}|ˆkr|‘qSr&r&)rUrŽ)r[r&r'rXžsz4ArgumentParser._parse_known_args..z(the following arguments are required: %sz, cSsg|]}|jtk rt|ƒ‘qSr&)rkrrÃ)rUror&r&r'rXÜsz#one of the arguments %s is requiredrv)NrŒ)rDÚ_read_args_from_filesrr�r“rñr‚ÚiterrÚ_parse_optionalr r�rKr?r>rr‘rÃrŸr®r¬r¶r»r.r/Ú _get_valuer<r})r!r"r0r3ršržZ mutex_actionZ conflictsZarg_string_pattern_partsZarg_strings_iterÚ arg_stringr\ÚpatternrdrgZmax_option_string_indexZnext_option_string_indexZpositionals_end_indexZstringsZ stop_indexZrequired_actionsror›rÈrór&) rVr"rarbr0rcrƒrWrXr!r[rYr'rOïs˜        J                 z ArgumentParser._parse_known_argscCsÒg}xÈ|D]À}| s"|d|jkr.|j|ƒq ylt|dd…ƒ�R}g}x2|jƒjƒD]"}x|j|ƒD]}|j|ƒqdWqTW|j|ƒ}|j|ƒWdQRXWq tk rÈt j ƒd}|j t |ƒƒYq Xq W|S)NrrO) rDrr¢ÚreadrÀÚconvert_arg_line_to_argsrhr‚rràrQr<r¬)r!r"Znew_arg_stringsrlZ args_fileÚarg_liner#rRr&r&r'rhås     z$ArgumentParser._read_args_from_filescCs|gS)Nr&)r!rpr&r&r'roÿsz'ArgumentParser.convert_arg_line_to_argscCst|j|ƒ}tj||ƒ}|dkrfdtdƒttdƒttdƒi}tdd|jƒ|j}|j|j|ƒ}t ||ƒ‚t |j dƒƒS)Nzexpected one argumentzexpected at most one argumentzexpected at least one argumentzexpected %s argumentzexpected %s argumentsrO) Ú_get_nargs_patternrGr/r}r r rr˜r”rrir›)r!roraÚ nargs_patternr/Z nargs_errorsrŸrór&r&r'rZs    zArgumentParser._match_argumentcstg}xjtt|ƒddƒD]V}|d|…}dj‡fdd„|Dƒƒ}tj||ƒ}|dk r|jdd„|jƒDƒƒPqW|S)NrrOrYcsg|]}ˆj|ƒ‘qSr&)rq)rUro)r!r&r'rXsz;ArgumentParser._match_arguments_partial..cSsg|] }t|ƒ‘qSr&)ri)rUrr&r&r'rX!srŒ)r’rir rGr/r‚rf)r!rerar°ržZ actions_slicermr/r&)r!r'res   z'ArgumentParser._match_arguments_partialc Cs|sdS|d|jkrdS||jkr8|j|}||dfSt|ƒdkrHdSd|kr~|jddƒ\}}||jkr~|j|}|||fS|jræ|j|ƒ}t|ƒdkrÐdjdd„|Dƒƒ}||dœ}tdƒ}|j||ƒnt|ƒdkræ|\} | S|j j |ƒ�r|j �sdSd |k�rdSd|dfS) NrrOú=z, cSsg|]\}}}|‘qSr&r&)rUror r]r&r&r'rXGsz2ArgumentParser._parse_optional..)r5Zmatchesz4ambiguous option: %(option)s could match %(matches)srv) rrriÚsplitrFÚ_get_option_tuplesr r}r<rr/r) r!rlror r]Z option_tuplesZoptionsrWrór\r&r&r'rj's>              zArgumentParser._parse_optionalc Cs0g}|j}|d|kr~|d|kr~d|kr<|jddƒ\}}n|}d}xæ|jD],}|j|ƒrL|j|}|||f}|j|ƒqLWn®|d|ko”|d|k�r|}d}|dd…}|dd…} xr|jD]T}||krì|j|}||| f}|j|ƒqÀ|j|ƒrÀ|j|}|||f}|j|ƒqÀWn|jtdƒ|ƒ|S)NrrOrsr2zunexpected option string: %s)rrtrÚ startswithrr<r}) r!r r°r'Z option_prefixr]ror©Zshort_option_prefixZshort_explicit_argr&r&r'rubs8             z!ArgumentParser._get_option_tuplescCsŽ|j}|dkrd}nX|tkr"d}nJ|tkr0d}n<|tkr>d}n.|tkrLd}n |tkrZd}nddjd |ƒ}|jrŠ|jdd ƒ}|jd d ƒ}|S) Nz(-*A-*)z(-*A?-*)z (-*[A-]*)z (-*A[A-]*)z([-AO]*)z (-*A[-AO]*)z(-*%s-*)z-*rSrYrþ) r˜r rr rrr rr7)r!ror˜rrr&r&r'rqŽs$  z!ArgumentParser._get_nargs_patternc sxˆjttgkr2y|jdƒWntk r0YnX| rzˆjtkrzˆjrPˆj}nˆj}t |t ƒrxˆj ˆ|ƒ}ˆj ˆ|ƒnú| r¶ˆjt kr¶ˆj r¶ˆjdk r¤ˆj}n|}ˆj ˆ|ƒn¾t|ƒdkrðˆjdtgkrð|\}ˆj ˆ|ƒ}ˆj ˆ|ƒn„ˆjtk�r‡‡fdd„|Dƒ}nbˆjtk�rD‡‡fdd„|Dƒ}ˆj ˆ|dƒn0‡‡fdd„|Dƒ}x|D]}ˆj ˆ|ƒ�q^W|S)Nz--rOcsg|]}ˆjˆ|ƒ‘qSr&)rk)rUÚv)ror!r&r'rXÞsz.ArgumentParser._get_values..csg|]}ˆjˆ|ƒ‘qSr&)rk)rUrw)ror!r&r'rXâsrcsg|]}ˆjˆ|ƒ‘qSr&)rk)rUrw)ror!r&r'rXçs)r˜rrr0r:r rrÇrŸr®r¬rkÚ _check_valuerri)r!ror"r%rlrwr&)ror!r'rUºs>       zArgumentParser._get_valuesc CsÎ|jd|j|jƒ}t|ƒs0tdƒ}t|||ƒ‚y ||ƒ}WnŒtk r~t|jdt|jƒƒ}tt j ƒdƒ}t||ƒ‚YnLt t fk rÈt|jdt|jƒƒ}||dœ}tdƒ}t|||ƒ‚YnX|S)Nrz%r is not callablerrO)rr%z!invalid %(type)s value: %(value)r) rrr$r}rrr.rr¬ràrQr%r:)r!rorlr(rór°r$rWr&r&r'rkîs   zArgumentParser._get_valuecCsF|jdk rB||jkrB|djtt|jƒƒdœ}tdƒ}t|||ƒ‚dS)Nz, )r%r±z3invalid choice: %(value)r (choose from %(choices)s))r±r Úmaprr}r)r!ror%rWrór&r&r'rx s zArgumentParser._check_valuecCs$|jƒ}|j|j|j|jƒ|jƒS)N)rÞrhrdrrr\)r!rRr&r&r'Ú format_usage s zArgumentParser.format_usagecCsx|jƒ}|j|j|j|jƒ|j|jƒx:|jD]0}|j|j ƒ|j|jƒ|j |j ƒ|j ƒq0W|j|j ƒ|jƒS)N)rÞrhrdrrrbr rr^r2rrr�r_rBr\)r!rRZ action_groupr&r&r'r\ s        zArgumentParser.format_helpcCs|j|jd�S)N)rL)rCrL)r!r&r&r'rÞ0 szArgumentParser._get_formattercCs"|dkrtj}|j|jƒ|ƒdS)N)ràrárßrz)r!Úfiler&r&r'Ú print_usage6 szArgumentParser.print_usagecCs"|dkrtj}|j|jƒ|ƒdS)N)ràrárßr\)r!r{r&r&r'rÚ; szArgumentParser.print_helpcCs |r|dkrtj}|j|ƒdS)N)ràÚstderrÚwrite)r!rÅr{r&r&r'rß@ szArgumentParser._print_messagercCs |r|j|tjƒtj|ƒdS)N)rßràr}rÛ)r!ZstatusrÅr&r&r'rÛI szArgumentParser.exitcCs0|jtjƒ|j|dœ}|jdtdƒ|ƒdS)N)rLrÅr2z%(prog)s: error: %(message)s )r|ràr}rLrÛr})r!rÅrWr&r&r'r<N s  zArgumentParser.error)NN)NN)N)N)N)rN) rr,r-rrNrrLr&rMrKrNrðrOrhrorZrerjrurqrUrkrxrzr\rÞr|rÚrßrÛr<rÐr&r&)rÏr'r1sN4  #w;,,4    )5Ú __version__Ú__all__Ú collectionsrçrÖrÕÚosr7ÚrerGÚsysràÚtextwraprºrr}rrr rr rrròr½rr1rrrrr rÃÚ Exceptionrrr rÍrÑrÒrÓrÔr×rØrÙrÜrârr r r)r+rr&r&r&r'Ú@s~ n    [#%`65"