PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  pYxE@sHdZddlZddlZddlZddlZddlTdZejdeZejdeefZ e j ddZ Gd d d Z d d Zd dejDZddZddZGdddZedkrDdZxKddddfD]7Zedeedjeeeeq WdS)a6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdZdddZddZddZddd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddddZddZdddZddddZdS) FancyGetoptaWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false NcCsq||_i|_|jr%|ji|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_order)selfrr+/opt/python35/lib/python3.5/fancy_getopt.py__init__)s           zFancyGetopt.__init__cCs6|jjx"|jD]}||j|d= 2Nz: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 onlyr,r,)r r r rrepeatrlen ValueError isinstancestrrrrr getr longopt_rematchrr)rrlongshorthelpr-Zalias_torrr_grok_option_tables^     "  !         zFancyGetopt._grok_option_tablec Cs|dkrtjdd}|dkr=t}d}nd}|jdj|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 rt|| dd}t|| ||jj||fqW|r||fS|SdS) aParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. Nr)TF r(rr)sysargv OptionDummyr8joinr getoptr errorZDistutilsArgErrorr.r r r2rr rr-getattrsetattrrr) rargsobjectZcreated_objectr Zoptsmsgr"valr attrrrrr>sB     ""    zFancyGetopt.getoptcCs)|jdkrtdn|jSdS)zReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orderszFancyGetopt.get_option_ordercCsd}xs|jD]h}|d}|d}t|}|ddkrP|d}|dk rf|d}||kr|}qW|ddd}d}||} d|} |r|g} n d g} x|jD]}|dd \}}} t| | } |ddkr|dd}|dkrh| rN| jd ||| dfq| jd ||fnHd ||f}| r| jd ||| dfn| jd|x)| ddD]}| j| |qWqW| S)zGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr)r*Nr(Nr9zOption summary:r&z --%-*s %sz --%-*s z%s (-%s)z --%-*sr,r,r,)rr. wrap_textr)rheaderZmax_optrr5r6lZ opt_widthZ line_width text_widthZ big_indentlinesr7textZ opt_namesrrr generate_helpsF             ! zFancyGetopt.generate_helpcCsD|dkrtj}x(|j|D]}|j|dq%WdS)N )r:stdoutrQwrite)rrLfilelinerrr print_helphs  zFancyGetopt.print_help)__name__ __module__ __qualname____doc__rrrrrrr#r$r%r8r>rHrQrWrrrrrs (       M= OrcCs)t|}|j||j||S)N)rr%r>)optionsZ negative_optrCrBparserrrr fancy_getoptos  r^cCsi|]}dt|qS)r9)ord).0Z_wscharrrr us racCsv|dkrgSt||kr)|gS|j}|jt}tjd|}dd|D}g}x|rqg}d}xq|rt|d}|||kr|j|d|d=||}q|r|d ddkr|d =PqW|rX|dkr=|j|dd||d|d|d<|dddkrX|d=|jdj|qrW|S) zwrap_text(text : string, width : int) -> [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. Nz( +|-+)cSsg|]}|r|qSrr)r`Zchrrr s zwrap_text..rr)r9r,r,)r. expandtabsrWS_TRANSresplitrr=)rPwidthchunksrOcur_linecur_lenrMrrrrKws:      rKcCs |jtS)zXConvert a long option name to a valid Python identifier by changing "-" to "_". )rr)r"rrrtranslate_longoptsrlc@s%eZdZdZgddZdS)r<z_Dummy class just used as a place to hold command-line option values as instance attributes.cCs%x|D]}t||dqWdS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rA)rr\r"rrrrs zOptionDummy.__init__N)rXrYrZr[rrrrrr<s r<__main__zTra-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[r:stringrfr>Zdistutils.errorsZ longopt_patcompiler3Z neg_alias_rer1 maketransrrr^ whitespacererKrlr<rXrPwprintr=rrrr s($  S  6