grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/20263 Õì2aaã@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...Ú_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: Ú ) rYrXrVÚ _join_partsr.rWrZrrE)r"r!Ú item_helpÚcurrent_indentrZr)r)r*Ú format_helpÐs    z"HelpFormatter._Section.format_help)N)rr/r0rTrdr)r)r)r*rHÈs rHcCs|jjj||fƒdS)N)rJr.r)r"r\r]r)r)r*Ú _add_itemçszHelpFormatter._add_itemcCs0|jƒ|j||j|ƒ}|j|jgƒ||_dS)N)rVrHrJrerd)r"rZÚsectionr)r)r*Ú start_sectioníszHelpFormatter.start_sectioncCs|jj|_|jƒdS)N)rJrYrW)r"r)r)r*Ú end_sectionós zHelpFormatter.end_sectioncCs$|tk r |dk r |j|j|gƒdS)N)rreÚ _format_text)r"Útextr)r)r*Úadd_text÷szHelpFormatter.add_textcCs&|tk r"||||f}|j|j|ƒdS)N)rreÚ _format_usage)r"ÚusageÚactionsÚgroupsÚprefixr]r)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)r[Úsr)r)r*r^ sz.HelpFormatter.add_argument..) ÚhelprÚ_format_action_invocationÚ_iter_indented_subactionsrrCrErGreÚ_format_action)r"ÚactionÚget_invocationÚ invocationsÚ subactionÚinvocation_lengthÚ action_lengthr)r)r*Ú add_arguments   zHelpFormatter.add_argumentcCsx|D]}|j|ƒqWdS)N)r~)r"rnrxr)r)r*Ú add_argumentss zHelpFormatter.add_argumentscCs.|jjƒ}|r*|jjd|ƒ}|jdƒd}|S)Nz r`)rIrdrOÚsubÚstrip)r"rtr)r)r*rds  zHelpFormatter.format_helpcCsdjdd„|DƒƒS)Nr_cSsg|]}|r|tk r|‘qSr))r)r[Úpartr)r)r*r^!sz-HelpFormatter._join_parts..)r!)r"Ú part_stringsr)r)r*ra 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: )rPz%(prog)sú cSsg|] }|r|‘qSr)r))r[rsr)r)r*r^Asz/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)NrUr„r)rrrr!)ÚpartsÚindentrpÚlinesÚlineÚline_lenr‚)Ú text_widthr)r*Ú get_linesUs"    z.HelpFormatter._format_usage..get_linesgè?rUr`z%s%s )N) Ú_Údictr?Úoption_stringsrÚ_format_actions_usager!rDrErrrKÚfindallÚextend)r"rmrnrorprPÚ optionalsÚ positionalsrxÚformatÚ action_usageÚ part_regexpÚ opt_usageÚ pos_usageÚ opt_partsÚ pos_partsr‹r†r‡r…r))rŠr*rl%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 (ú(ú)rUú|z%sz%s %sz[%s]T)Úreverser„cSsg|]}|dk r|‘qS)Nr))r[Úitemr)r)r*r^Øsz7HelpFormatter._format_actions_usage..z[\[(]z[\])]z(%s) z\1z (%s)z%s *%sr_z \(([^|]*)\)éÿÿÿÿr¢)ÚsetÚindexÚ_group_actionsr>rrÚaddÚrequiredÚrangeÚ enumeratertrrÚgetÚpoprŽÚ#_get_default_metavar_for_positionalÚ _format_argsÚnargsÚ!_get_default_metavar_for_optionalr,r!rKr€r�)r"rnroÚ group_actionsÚinsertsÚgroupÚstartÚendrxÚir…Údefaultr‚Ú option_stringÚ args_stringrjÚopenÚcloser)r)r*r�…sr                 z#HelpFormatter._format_actions_usagecCsFd|kr|t|jd�}t|j|jdƒ}d|j}|j|||ƒdS)Nz%(prog))rPé r„z )r�r?rCrDrEÚ _fill_text)r"rjrŠr†r)r)r*riæ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) Nr5r»r_z%*s%s z %*s%-*s rrUr`)rBrGrArCrDrErurtrrÚ _expand_helpÚ _split_linesrÚendswithrvrwra) r"rxÚ help_positionÚ help_widthÚ action_widthÚ action_headerÚtupÚ indent_firstr…Ú help_textÚ help_linesrˆr{r)r)r*rwís6          zHelpFormatter._format_actioncCsˆ|js&|j|ƒ}|j||ƒdƒ\}|Sg}|jdkrB|j|jƒn8|j|ƒ}|j||ƒ}x |jD]}|jd||fƒq`Wdj|ƒSdS)NrUrz%s %sz, ) rŽr¬Ú_metavar_formatterr®r‘r¯r­rr!)r"rxr¶Úmetavarr…r¸r·r)r)r*rus     z'HelpFormatter._format_action_invocationcsP|jdk r|j‰n.|jdk r.z{%s}ú,cstˆtƒrˆSˆf|SdS)N)Ú isinstanceÚtuple)Ú tuple_size)Úresultr)r*r”=s z0HelpFormatter._metavar_formatter..format)rÉÚchoicesr!)r"rxÚdefault_metavarÚ choice_strsr”r))rÐr*rÈ4s   z HelpFormatter._metavar_formattercCsÀ|j||ƒ}|jdkr$d|dƒ}n˜|jtkr.r„) rÈr®r rr rrr¨r!)r"rxrÒÚ get_metavarrÐÚformatsr)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)rPrrÑz, cSsg|] }t|ƒ‘qSr))rÊ)r[Úcr)r)r*r^`sz.HelpFormatter._expand_help..) r�Úvarsr?ÚlistrÚhasattrrrªr!Ú_get_help_string)r"rxÚparamsr'Ú choices_strr)r)r*r½Ws  zHelpFormatter._expand_helpc cs@y |j}Wntk rYnX|jƒ|ƒEdH|jƒdS)N)Ú_get_subactionsÚAttributeErrorrVrW)r"rxÚget_subactionsr)r)r*rvds  z'HelpFormatter._iter_indented_subactionscCs|jjd|ƒjƒ}tj||ƒS)Nr„)rNr€r�Ú _textwrapÚwrap)r"rjrSr)r)r*r¾nszHelpFormatter._split_linescCs$|jjd|ƒjƒ}tj||||d�S)Nr„)Úinitial_indentÚsubsequent_indent)rNr€r�ràÚfill)r"rjrSr†r)r)r*r¼rs zHelpFormatter._fill_textcCs|jS)N)rt)r"rxr)r)r*rÚwszHelpFormatter._get_help_stringcCs |jjƒS)N)ÚdestÚupper)r"rxr)r)r*r¯zsz/HelpFormatter._get_default_metavar_for_optionalcCs|jS)N)rå)r"rxr)r)r*r¬}sz1HelpFormatter._get_default_metavar_for_positional)r5r6N)N)rr/r0rTrVrWÚobjectrHrergrhrkrqr~rrdrarlr�rirwrurÈr­r½rvr¾r¼rÚr¯r¬r)r)r)r*r–s:   `a/  c@seZdZdd„ZdS)rcs dj‡fdd„|jdd�DƒƒS)Nr_c3s|]}ˆ|VqdS)Nr))r[rˆ)r†r)r*ú ‰sz9RawDescriptionHelpFormatter._fill_text..T)Úkeepends)r!Ú splitlines)r"rjrSr†r))r†r*r¼ˆsz&RawDescriptionHelpFormatter._fill_textN)rr/r0r¼r)r)r)r*r�sc@seZdZdd„ZdS)rcCs|jƒS)N)rê)r"rjrSr)r)r*r¾“sz!RawTextHelpFormatter._split_linesN)rr/r0r¾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))rtr¶rr rrŽr®)r"rxrtÚdefaulting_nargsr)r)r*rÚžs  z.ArgumentDefaultsHelpFormatter._get_help_stringN)rr/r0rÚr)r)r)r*r—sc@seZdZdd„Zdd„ZdS)r cCs|jjS)N)rr)r"rxr)r)r*r¯°sz:MetavarTypeHelpFormatter._get_default_metavar_for_optionalcCs|jjS)N)rr)r"rxr)r)r*r¬³sz.r))r"Únamesr))r"r*r/szAction._get_kwargscCsttdƒƒ‚dS)Nz.__call__() not defined)ÚNotImplementedErrorrŒ)r"Úparserr3Úvaluesr·r)r)r*Ú__call__=szAction.__call__)NNNNNFNN)N)rr/r0rTrr÷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) rŽrår®ròr¶rrÑr§rtrÉ)r>r ÚsuperrørT) r"rŽrår®ròr¶rrÑr§rtrÉ)Ú __class__r)r*rTCs   z_StoreAction.__init__cCst||j|ƒdS)N)r2rå)r"rõr3rör·r)r)r*r÷`sz_StoreAction.__call__)NNNNNFNN)N)rr/r0rTr÷Ú __classcell__r)r))rúr*røAsrøcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú_StoreConstActionNFc s"tt|ƒj||d||||d�dS)Nr)rŽrår®ròr¶r§rt)rùrürT)r"rŽråròr¶r§rtrÉ)rúr)r*rTfs z_StoreConstAction.__init__cCst||j|jƒdS)N)r2rårò)r"rõr3rör·r)r)r*r÷wsz_StoreConstAction.__call__)NFNN)N)rr/r0rTr÷rûr)r))rúr*rüds  rücseZdZd‡fdd„ Z‡ZS)Ú_StoreTrueActionFNcs tt|ƒj||d|||d�dS)NT)rŽråròr¶r§rt)rùrýrT)r"rŽrår¶r§rt)rúr)r*rT}s z_StoreTrueAction.__init__)FFN)rr/r0rTrûr)r))rúr*rý{srýcseZdZd‡fdd„ Z‡ZS)Ú_StoreFalseActionTFNcs tt|ƒj||d|||d�dS)NF)rŽråròr¶r§rt)rùrþrT)r"rŽrår¶r§rt)rúr)r*rTŽs z_StoreFalseAction.__init__)TFN)rr/r0rTrû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) rŽrår®ròr¶rrÑr§rtrÉ)r>r rùrÿrT) r"rŽrår®ròr¶rrÑr§rtrÉ)rúr)r*rTŸs   z_AppendAction.__init__cCs0tjt||jgƒƒ}|j|ƒt||j|ƒdS)N)Ú_copyÚcopyr4rårr2)r"rõr3rör·r.r)r)r*r÷¼s z_AppendAction.__call__)NNNNNFNN)N)rr/r0rTr÷rûr)r))rúr*rÿ�srÿcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú_AppendConstActionNFc s$tt|ƒj||d|||||d�dS)Nr)rŽrår®ròr¶r§rtrÉ)rùrrT)r"rŽråròr¶r§rtrÉ)rúr)r*rTÄs z_AppendConstAction.__init__cCs2tjt||jgƒƒ}|j|jƒt||j|ƒdS)N)rrr4rårròr2)r"rõr3rör·r.r)r)r*r÷Ös z_AppendConstAction.__call__)NFNN)N)rr/r0rTr÷rûr)r))rúr*rÂs  rcs(eZdZd‡fdd„ Zddd„Z‡ZS) Ú _CountActionNFcs tt|ƒj||d|||d�dS)Nr)rŽrår®r¶r§rt)rùrrT)r"rŽrår¶r§rt)rúr)r*rTÞs z_CountAction.__init__cCs$t||jdƒd}t||j|ƒdS)NrrU)r4rår2)r"rõr3rör·Ú new_countr)r)r*r÷ìsz_CountAction.__call__)NFN)N)rr/r0rTr÷rûr)r))rúr*rÜs rcs.eZdZeedf‡fdd„ Zddd„Z‡ZS)Ú _HelpActionNcstt|ƒj|||d|d�dS)Nr)rŽrår¶r®rt)rùrrT)r"rŽrår¶rt)rúr)r*rTós  z_HelpAction.__init__cCs|jƒ|jƒdS)N)Ú print_helpÚexit)r"rõr3rör·r)r)r*r÷ÿsz_HelpAction.__call__)N)rr/r0rrTr÷rûr)r))rúr*rñsrcs0eZdZdeedf‡fdd„ Zddd„Z‡ZS)Ú_VersionActionNz&show program's version number and exitcs$tt|ƒj|||d|d�||_dS)Nr)rŽrår¶r®rt)rùrrTÚversion)r"rŽr rår¶rt)rúr)r*rTs z_VersionAction.__init__cCsD|j}|dkr|j}|jƒ}|j|ƒ|j|jƒtjƒ|jƒdS)N)r Ú_get_formatterrkÚ_print_messagerdÚ_sysÚstdoutr)r"rõr3rör·r rXr)r)r*r÷s z_VersionAction.__call__)N)rr/r0rrTr÷rûr)r))rúr*rs  rcsNeZdZGdd„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, )rŽrårtrÉ)r!rùrÚ_ChoicesPseudoActionrT)r"r'ÚaliasesrtrÉråÚsup)rúr)r*rT"s   z/_SubParsersAction._ChoicesPseudoAction.__init__)rr/r0rTrûr)r))rúr*r srNcs>||_||_tjƒ|_g|_tt|ƒj||t |j||d�dS)N)rŽrår®rÑrtrÉ) Ú _prog_prefixÚ _parser_classÚ _collectionsÚ OrderedDictÚ_name_parser_mapÚ_choices_actionsrùrrTr)r"rŽrPÚ parser_classrårtrÉ)rúr)r*rT*s  z_SubParsersAction.__init__cKsŠ|jdƒdkr d|j|f|d<|jdfƒ}d|krX|jdƒ}|j|||ƒ}|jj|ƒ|jf|Ž}||j|<x|D]}||j|<qtW|S)NrPz%s %srrt)rªrr«rrrrr)r"r'ÚkwargsrrtÚ 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)NrrUz, )Ú parser_namerÑz5unknown parser %(parser_name)r (choices: %(choices)s))rårr2rr=r!rŒrÚparse_known_argsr×r.Ú setdefaultÚ_UNRECOGNIZED_ARGS_ATTRr1r‘) r"rõr3rör·rr$r]ÚmsgÚ subnamespaceÚkeyr(r)r)r*r÷Ys"    z_SubParsersAction.__call__)N) rr/r0r rrrTrrÝr÷rûr)r))rúr*rsrc@s&eZdZd dd„Zdd„Zdd „ZdS) rÚrrUNcCs||_||_||_||_dS)N)Ú_modeÚ_bufsizeÚ _encodingÚ_errors)r"ÚmodeÚbufsizeÚencodingÚerrorsr)r)r*rT�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)rUr¢)r)r[r&r)r)r*r^«sz%FileType.__repr__..cSs$g|]\}}|dk rd||f‘qS)Nz%s=%rr))r[Úkwr&r)r)r*r^¬sz%s(%s))r%r&r'r(r!rr)r"r]rÚargs_strr)r)r*r+¨s  zFileType.__repr__r¢)r$r¢NN)rr/r0rTr÷r+r)r)r)r*r~s c@s$eZdZdd„Zdd„Zdd„ZdS)r cKs"x|D]}t||||ƒqWdS)N)r2)r"rr'r)r)r*rT»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/r0rTr7r8r)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) NrxÚstoreÚ store_constÚ store_trueÚ store_falserÚ append_constÚcountrtr Úparsersz^-\d+$|^-\d*\.\d+$)rùr9rTÚ descriptionÚargument_defaultÚ prefix_charsÚconflict_handlerÚ _registriesÚregisterrørürýrþrÿrrrrrÚ _get_handlerÚ_actionsÚ_option_string_actionsÚ_action_groupsÚ_mutually_exclusive_groupsÚ _defaultsrKrLÚ_negative_number_matcherÚ_has_negative_number_optionals)r"rArCrBrD)rúr)r*rTÊs2 z_ActionsContainer.__init__cCs|jj|iƒ}|||<dS)N)rEr)r"Ú registry_namer(rçÚregistryr)r)r*rFþsz_ActionsContainer.registerNcCs|j|j||ƒS)N)rErª)r"rOr(r¶r)r)r*Ú _registry_getsz_ActionsContainer._registry_getcKs6|jj|ƒx$|jD]}|j|kr||j|_qWdS)N)rLÚupdaterHrår¶)r"rrxr)r)r*Ú set_defaultss   z_ActionsContainer.set_defaultscCs8x(|jD]}|j|kr|jdk r|jSqW|jj|dƒS)N)rHrår¶rLrª)r"rårxr)r)r*Ú get_defaults  z_ActionsContainer.get_defaultc Os0|j}| s(t|ƒdkrJ|dd|krJ|rÚ_get_positional_kwargsÚ_get_optional_kwargsrLrBÚ_pop_action_classÚcallablerQrrÙr r­Ú TypeErrorÚ _add_action)r"r]rÚcharsråÚ action_classrxÚ type_funcr)r)r*r~s2 "        z_ActionsContainer.add_argumentcOs t|f|ž|Ž}|jj|ƒ|S)N)Ú_ArgumentGrouprJr)r"r]rr²r)r)r*Úadd_argument_groupJs z$_ActionsContainer.add_argument_groupcKst|f|Ž}|jj|ƒ|S)N)Ú_MutuallyExclusiveGrouprKr)r"rr²r)r)r*Úadd_mutually_exclusive_groupOs  z._ActionsContainer.add_mutually_exclusive_groupcCsh|j|ƒ|jj|ƒ||_x|jD]}||j|<q$Wx,|jD]"}|jj|ƒr>|js>|jjdƒq>W|S)NT) Ú_check_conflictrHrÚ containerrŽrIrMÚmatchrN)r"rxr·r)r)r*rZTs     z_ActionsContainer._add_actioncCs|jj|ƒdS)N)rHÚremove)r"rxr)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)ÚtitlerArD)r§)rJrgrŒr>r_rArDr¥rKrar§rHrªrZ)r"rcÚtitle_group_mapr²r!Ú group_maprxÚ 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ŒrYrªr rr�)r"rårr!r)r)r*rU”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)ÚoptionrCzNinvalid option string %(option)r: must start with a character %(prefix_chars)rrUråz%dest= is required for options like %rr-rŒ)rårŽ) rCrŒr>rrrr«ÚlstripÚreplacer�) r"r]rrŽÚlong_option_stringsr·r!råÚdest_option_stringr)r)r*rV¤s0          z&_ActionsContainer._get_optional_kwargscCs|jd|ƒ}|jd||ƒS)Nrx)r«rQ)r"rr¶rxr)r)r*rWÈ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)rDr1rÞrŒr>)r"Úhandler_func_namer!r)r)r*rGÌs   z_ActionsContainer._get_handlercCsPg}x0|jD]&}||jkr |j|}|j||fƒq W|rL|jƒ}|||ƒdS)N)rŽrIrrG)r"rxÚconfl_optionalsr·Úconfl_optionalrDr)r)r*rbÕs   z!_ActionsContainer._check_conflictcCs6tddt|ƒƒ}djdd„|Dƒƒ}t|||ƒ‚dS)Nzconflicting option string: %szconflicting option strings: %sz, cSsg|] \}}|‘qSr)r))r[r·rxr)r)r*r^çsz<_ActionsContainer._handle_conflict_error..)rrrr!r)r"rxÚconflicting_actionsrðÚconflict_stringr)r)r*Ú_handle_conflict_errorãs    z(_ActionsContainer._handle_conflict_errorcCsBx<|D]4\}}|jj|ƒ|jj|dƒ|js|jj|ƒqWdS)N)rŽrerIr«rcrf)r"rxrtr·r)r)r*Ú_handle_conflict_resolveìs  z*_ActionsContainer._handle_conflict_resolve)N)N)rr/r0rTrFrQrSrTr~r_rarZrfrkrUrVrWrGrbrvrwrûr)r))rúr*r9Ès$ 4   /($   r9cs6eZdZd‡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)NrDrCrBrA)rrDrCrBrùr^rTrgr¥rErHrIrLrNrK)r"rcrgrArrRÚ super_init)rúr)r*rTýs    z_ArgumentGroup.__init__cs tt|ƒj|ƒ}|jj|ƒ|S)N)rùr^rZr¥r)r"rx)rúr)r*rZs z_ArgumentGroup._add_actioncs tt|ƒj|ƒ|jj|ƒdS)N)rùr^rfr¥re)r"rx)rúr)r*rfsz_ArgumentGroup._remove_action)NN)rr/r0rTrZrfrûr)r))rúr*r^ûs r^cs.eZdZd‡fdd„ Zdd„Zdd„Z‡ZS) r`Fcs tt|ƒj|ƒ||_||_dS)N)rùr`rTr§Ú _container)r"rcr§)rúr)r*rTsz _MutuallyExclusiveGroup.__init__cCs2|jrtdƒ}t|ƒ‚|jj|ƒ}|jj|ƒ|S)Nz-mutually exclusive arguments must be optional)r§rŒr>ryrZr¥r)r"rxr!r)r)r*rZ$s   z#_MutuallyExclusiveGroup._add_actioncCs|jj|ƒ|jj|ƒdS)N)ryrfr¥re)r"rxr)r)r*rf,s z&_MutuallyExclusiveGroup._remove_action)F)rr/r0rTrZrfrû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)rArCrBrDrzpositional argumentszoptional argumentscSs|S)Nr))r1r)r)r*Úidentityjsz)ArgumentParser.__init__..identityrr-Úhr5rtzshow this help message and exit)rxr¶rt)rùrrTr;ÚpathÚbasenamer ÚargvrPrmÚepilogÚformatter_classÚfromfile_prefix_charsÚadd_helpÚ allow_abbrevr_rŒÚ _positionalsÚ _optionalsÚ _subparsersrFr~rrkrLrÞrR)r"rPrmrAr€Úparentsr�rCr‚rBrDrƒr„Ú superinitÚ add_groupr{Údefault_prefixrYÚdefaults)rúr)r*rTDsB     zArgumentParser.__init__cs"ddddddg}‡fdd„|DƒS) NrPrmrAr�rDrƒcsg|]}|tˆ|ƒf‘qSr))r1)r[r')r"r)r*r^�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 argumentsrrgrAÚ subcommandsrPr_r@rŽ)r‡rzrŒrrr«r_r…rªr Ú_get_positional_actionsrKrqrmrdr�rWrZ) r"rrgrArXr“roÚ parsers_classrxr)r)r*Úadd_subparsers’s$   zArgumentParser.add_subparserscCs$|jr|jj|ƒn |jj|ƒ|S)N)rŽr†rZr…)r"rxr)r)r*rZ±s zArgumentParser._add_actioncCsdd„|jDƒS)NcSsg|]}|jr|‘qSr))rŽ)r[rxr)r)r*r^¹sz8ArgumentParser._get_optional_actions..)rH)r"r)r)r*Ú_get_optional_actions¸sz$ArgumentParser._get_optional_actionscCsdd„|jDƒS)NcSsg|]}|js|‘qSr))rŽ)r[rxr)r)r*r^¾sz:ArgumentParser._get_positional_actions..)rH)r"r)r)r*r޽sz&ArgumentParser._get_positional_actionscCs4|j||ƒ\}}|r0tdƒ}|j|dj|ƒƒ|S)Nzunrecognized arguments: %sr„)rrŒrzr!)r"r]r3rr!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)NrU)r rrØr rHrårrÙr¶r2rLÚ_parse_known_argsr r‘r1ÚdelattrrÚexc_inforzrÊ)r"r]r3rxråÚ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)NrUz--r-ÚAÚOr_cs€ˆ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)rxÚargument_stringsr·Úargument_valuesÚconflict_actionr!Ú action_name)Úaction_conflictsr3Ú 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)NrUr—rzignored explicit argument %r)Ú_match_argumentrrCrIrŒr)Ú start_indexÚ option_tuplerxr·Ú explicit_argÚmatch_argumentÚ action_tuplesÚ arg_countr[ÚcharÚnew_explicit_argÚ optionals_mapr!Ústopr]r³Úselected_patterns)r$Úarg_strings_patternÚextrasÚoption_string_indicesr"r¡r)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Úziprr)r£Ú match_partialÚselected_patternÚ arg_countsrxr¨r])r$r®r“r"r¡r)r*Úconsume_positionals€s  z=ArgumentParser._parse_known_args..consume_positionalsrcsg|]}|ˆkr|‘qSr)r))r[r¤)r£r)r*r^žsz4ArgumentParser._parse_known_args..z(the following arguments are required: %sz, cSsg|]}|jtk rt|ƒ‘qSr))rtrrî)r[rxr)r)r*r^Üsz#one of the arguments %s is requiredr„)Nr¢)r‚Ú_read_args_from_filesrKr¥r©rr‘ÚiterrÚ_parse_optionalr!r£rŽrCrBrHr§rîr¶rÍrÊrÙrår1r2Ú _get_valuerzrŒ)r"r$r3rjr°rµÚ mutex_actionÚ conflictsÚarg_string_pattern_partsÚarg_strings_iterÚ arg_stringr¤Úpatternr±r·Úmax_option_string_indexÚnext_option_string_indexÚpositionals_end_indexÚstringsÚ stop_indexÚrequired_actionsrxr²rór!r)) ržr$r®r¯r3r°r“rŸr r"r£r¡r*r“ï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)NrrU) r‚rr¹ÚreadrêÚconvert_arg_line_to_argsr¸r‘r0r r•rzrÊ)r"r$Únew_arg_stringsrÀÚ args_fileÚarg_liner&r–r)r)r*r¸ås     z$ArgumentParser._read_args_from_filescCs|gS)Nr))r"rÌr)r)r*rÉÿ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 argumentsrU) Ú_get_nargs_patternrKrdrŒr r rr®rªrrrr²)r"rxr®Ú nargs_patternrdÚ nargs_errorsr¶r!r)r)r*r¢s    zArgumentParser._match_argumentcstg}xjtt|ƒddƒD]V}|d|…}dj‡fdd„|Dƒƒ}tj||ƒ}|dk r|jdd„|jƒDƒƒPqW|S)NrrUr_csg|]}ˆj|ƒ‘qSr))rÍ)r[rx)r"r)r*r^sz;ArgumentParser._match_arguments_partial..cSsg|] }t|ƒ‘qSr))rr)r[r1r)r)r*r^!sr¢)r¨rrr!rKrdr‘ro)r"rnr®rÐrµÚ actions_slicerÁrdr))r"r*r²s   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) NrrUú=z, cSsg|]\}}}|‘qSr)r))r[rxr·r¥r)r)r*r^Gsz2ArgumentParser._parse_optional..)rlÚmatchesz4ambiguous option: %(option)s could match %(matches)sr„) rCrIrrÚsplitr„Ú_get_option_tuplesr!rŒrzrMrdrN) r"rÀrxr·r¥Ú option_tuplesÚoptionsr]r!r¤r)r)r*rº'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)NrrUrÑr5zunexpected option string: %s)rCrÓrIÚ startswithrrzrŒ) r"r·rÐr[Ú option_prefixr¥rxrÄÚshort_option_prefixÚshort_explicit_argr)r)r*rÔbs8             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-*r—r_r-) r®r rr rrr!rŽrn)r"rxr®rÎr)r)r*rÍŽ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--rUcsg|]}ˆjˆ|ƒ‘qSr))r»)r[Úv)rxr"r)r*r^Þsz.ArgumentParser._get_values..csg|]}ˆjˆ|ƒ‘qSr))r»)r[rÛ)rxr"r)r*r^âsrcsg|]}ˆjˆ|ƒ‘qSr))r»)r[rÛ)rxr"r)r*r^çs)r®rrrer>r rŽròr¶rÍrÊr»Ú _check_valuerrr)r"rxr$r(rÀrÛr))rxr"r*r™º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 callablerrU)rr(z!invalid %(type)s value: %(value)r) rQrrXrŒrrr1rrÊr r•rYr>)r"rxrÀr]r!rÐr'r]r)r)r*r»î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"rxr(r]r!r)r)r*rÜ s zArgumentParser._check_valuecCs$|jƒ}|j|j|j|jƒ|jƒS)N)r rqrmrHrKrd)r"rXr)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 rqrmrHrKrkrArJrgrgrr¥rhr€rd)r"rXÚ action_groupr)r)r*rd s        zArgumentParser.format_helpcCs|j|jd�S)N)rP)r�rP)r"r)r)r*r 0 szArgumentParser._get_formattercCs"|dkrtj}|j|jƒ|ƒdS)N)r r r rÞ)r"Úfiler)r)r*Ú print_usage6 szArgumentParser.print_usagecCs"|dkrtj}|j|jƒ|ƒdS)N)r r r rd)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"Ústatusrðr)r)r*rI szArgumentParser.exitcCs0|jtjƒ|j|dœ}|jdtdƒ|ƒdS)N)rPrðr5z%(prog)s: error: %(message)s )rár rârPrrŒ)r"rðr]r)r)r*rzN s  zArgumentParser.error)NN)NN)N)N)N)rN) rr/r0rrTrr�rZr‘rŽr’rr“r¸rÉr¢r²rºrÔrÍr™r»rÜrÞrdr rárr rrzrûr)r))rúr*r1sN4  #w;,,4    )5Ú __version__Ú__all__Ú collectionsrrrÚosr;ÚrerKÚsysr ÚtextwrapràrrŒrrr rr rrr rçrr4rrrrr rîÚ Exceptionrrr rørürýrþrÿrrrrrrr r9r^r`rr)r)r)r*Ú@s~ n    [#%`65"