й¼]xEã@sBddlZddlZddlZddlZddlTdZejdeƒZejdeefƒZe j ddƒZ Gdd „d ƒZ d d „Z d d „ejDƒZdd„Zdd„ZGdd„dƒZedkr>dZxKddddfD]7ZedeƒedjeeeƒƒƒeƒqWdS)éN)Ú*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$ú-Ú_c@sÐeZdZddd„Zdd„Zdd„Zdddd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dddd„Z dd„Zddd„Zdddd„ZdS)Ú FancyGetoptNcCsq||_i|_|jr%|jƒi|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) Ú option_tableÚ option_indexÚ _build_indexÚaliasÚnegative_aliasÚ short_optsÚ long_optsÚ short2longÚ attr_nameÚ takes_argÚ option_order)Úselfr©rú1/opt/alt/python35/lib64/python3.5/fancy_getopt.pyÚ__init__)s           zFancyGetopt.__init__cCs6|jjƒx"|jD]}||j|d= 2éz:invalid short option '%s': must a single character or Noneú=ú:z>invalid negative alias '%s': aliased option '%s' takes a valuezginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens onlyéÿÿÿÿr,r,)r r r rÚrepeatrÚlenÚ ValueErrorÚ isinstanceÚstrrrrr Úgetr Ú longopt_reÚmatchrr)rrÚlongÚshortÚhelpr-Zalias_torrrÚ_grok_option_table…s^     "  !         zFancyGetopt._grok_option_tablec Csì|dkrtjdd…}|dkr=tƒ}d}nd}|jƒdj|jƒ}y"tj|||jƒ\}}Wn4tjk r·}zt |ƒ‚WYdd}~XnXx|D]\}}t |ƒdkr|ddkr|j |d}n|dd…}|j j |ƒ} | r/| }|j|si|jj |ƒ} | rc| }d}nd}|j|} |rª|jj | ƒdk rªt|| dƒd}t|| |ƒ|jj||fƒq¿W|rä||fS|SdS)Nr)TFú r(rr)ÚsysÚargvÚ OptionDummyr8Újoinr Úgetoptr ÚerrorZDistutilsArgErrorr.r r r2rr rr-ÚgetattrÚsetattrrr) rÚargsÚobjectZcreated_objectr ZoptsÚmsgr"Úvalr Úattrrrrr>ÒsB     ""    zFancyGetopt.getoptcCs)|jdkrtdƒ‚n|jSdS)Nz!'getopt()' hasn't been called yet)rÚ RuntimeError)rrrrÚget_option_orderszFancyGetopt.get_option_ordercCsäd}xs|jD]h}|d}|d}t|ƒ}|ddkrP|d}|dk rf|d}||kr|}qW|ddd}d}||} d|} |rº|g} n dg} x|jD]}|dd …\}}} t| | ƒ} |ddkr|dd…}|dkrh| rN| jd ||| dfƒq°| jd ||fƒnHd ||f}| rŸ| jd ||| dfƒn| jd |ƒx)| dd…D]}| j| |ƒqÁWqÍW| S)Nrr)r*ér(éNr9zOption summary:r&z --%-*s %sz --%-*s z%s (-%s)z --%-*sr,r,r,)rr.Ú wrap_textr)rÚheaderZmax_optrr5r6ÚlZ opt_widthZ line_widthÚ text_widthZ big_indentÚlinesr7ÚtextZ opt_namesrrrÚ generate_helpsF             ! zFancyGetopt.generate_helpcCsD|dkrtj}x(|j|ƒD]}|j|dƒq%WdS)NÚ )r:ÚstdoutrQÚwrite)rrLÚfileÚlinerrrÚ print_helphs  zFancyGetopt.print_help)Ú__name__Ú __module__Ú __qualname__rrrrrrr#r$r%r8r>rHrQrWrrrrrs (       M= OrcCs)t|ƒ}|j|ƒ|j||ƒS)N)rr%r>)ÚoptionsZ negative_optrCrBÚparserrrrÚ fancy_getoptos  r]cCsi|]}dt|ƒ“qS)r9)Úord)Ú.0Z_wscharrrrú us r`cCsv|dkrgSt|ƒ|kr)|gS|jƒ}|jtƒ}tjd|ƒ}dd„|Dƒ}g}x|rqg}d}xq|r÷t|dƒ}|||krÒ|j|dƒ|d=||}q‡|ró|dddkró|d =Pq‡W|rX|dkr=|j|dd|…ƒ|d|d…|d<|dddkrX|d=|jdj|ƒƒqrW|S) Nz( +|-+)cSsg|]}|r|‘qSrr)r_Zchrrrú …s zwrap_text..rr)r9Úr,r,)r.Ú expandtabsrÚWS_TRANSÚreÚsplitrr=)rPÚwidthÚchunksrOÚcur_lineÚcur_lenrMrrrrKws:      rKcCs |jtƒS)N)rr)r"rrrÚtranslate_longopt­srkc@seZdZgdd„ZdS)r<cCs%x|D]}t||dƒqWdS)N)rA)rr[r"rrrr¸s zOptionDummy.__init__N)rXrYrZrrrrrr<´s r<Ú__main__z¢Tra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].)é ééé(z width: %drR)r:Ústringrer>Zdistutils.errorsZ longopt_patÚcompiler3Z neg_alias_rer1Ú maketransrrr]Ú whitespacerdrKrkr<rXrPÚwÚprintr=rrrrÚ s&$  ÿS  6