B w"H@sddlZddlZddlZddlZddlTdZedeZedeefZe ddZ Gdd d Z d d Z d d ejDZddZddZGdddZedkrdZx2dD]*ZedeedeeeeqWdS)N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdddZddZddZddd Zd d Zd d ZddZ ddZ ddZ ddZ d ddZ ddZd!ddZd"ddZdS)# FancyGetoptNcCsN||_i|_|jr|i|_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)selfrr9/opt/alt/python37/lib/python3.7/distutils/fancy_getopt.py__init__)s zFancyGetopt.__init__cCs,|jx|jD]}||j|d<qWdS)Nr)rclearr)roptionrrrrQs  zFancyGetopt._build_indexcCs||_|dS)N)rr)rrrrrset_option_tableVszFancyGetopt.set_option_tablecCs<||jkrtd|n |||f}|j|||j|<dS)Nz'option conflict: already an option '%s')rDistutilsGetoptErrorrappend)r long_optionZ short_optionZ help_stringrrrr add_optionZs     zFancyGetopt.add_optioncCs ||jkS)N)r)rrrrr has_optioncszFancyGetopt.has_optioncCs |tS)N) translate longopt_xlate)rrrrr get_attr_namehszFancyGetopt.get_attr_namecCsRxL|D]@\}}||jkr.td|||f||jkr td|||fq WdS)Nz(invalid %s '%s': option '%s' not definedz0invalid %s '%s': aliased option '%s' not defined)itemsrr)raliasesZwhatr optrrr_check_alias_dictns  zFancyGetopt._check_alias_dictcCs||d||_dS)Nr )r#r )rr rrr set_aliasesxs zFancyGetopt.set_aliasescCs||d||_dS)Nznegative alias)r#r )rr rrrset_negative_aliases}s z FancyGetopt.set_negative_aliasescCsg|_g|_|ji|_x|jD]}t|dkrH|\}}}d}n(t|dkrb|\}}}}ntd|ft|t rt|dkrt d||dkst|t rt|dkst d|||j|<|j ||d d kr|r|d }|dd }d|j |<nF|j |}|dk r@|j |r6t d ||f||jd <d|j |<|j|}|dk r|j ||j |krt d ||ft|st d||||j|<|r&|j |||j|d<q&WdS)Nrzinvalid option tuple: %rz9invalid long option '%s': must be a string of length >= 2z: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 rrepeatrlen ValueError isinstancestrrrrr getr longopt_rematchrr)rrlongshorthelpr-Zalias_torrr_grok_option_tables^                   zFancyGetopt._grok_option_tablec Csr|dkrtjdd}|dkr*t}d}nd}|d|j}yt|||j\}}Wn,tjk r}z t |Wdd}~XYnXx|D]\}}t |dkr|ddkr|j |d}n |dd}|j |} | r| }|j|s |j |} | r| }d}nd}|j|} |r<|j | dk rsB        zFancyGetopt.getoptcCs|jdkrtdn|jSdS)Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orders  zFancyGetopt.get_option_ordercCsvd}xV|jD]L}|d}|d}t|}|ddkr<|d}|dk rL|d}||kr |}q W|ddd}d}||} d|} |r|g} nd g} x|jD]}|dd \}}} t| | } |ddkr|dd}|dkr| r| d ||| dfn| d ||fn:d ||f}| r:| d ||| dfn| d|x$| ddD]}| | |qVWqW| S)Nrr)r*r+r(Nr9zOption summary:r&z --%-*s %sz --%-*s z%s (-%s)z --%-*s)rr. wrap_textr)rheaderZmax_optrr5r6lZ opt_widthZ line_width text_widthZ big_indentlinesr7textZ opt_namesrrr generate_helpsF        zFancyGetopt.generate_helpcCs4|dkrtj}x ||D]}||dqWdS)N )r:stdoutrQwrite)rrLfilelinerrr print_helphszFancyGetopt.print_help)N)NN)NN)N)NN)__name__ __module__ __qualname__rrrrrrr#r$r%r8r>rHrQrWrrrrrs (  M = OrcCst|}|||||S)N)rr%r>)optionsZ negative_optrCrBparserrrr fancy_getoptos r]cCsi|]}dt|qS)r9)ord).0Z_wscharrrr usr`cCs"|dkr gSt||kr|gS|}|t}td|}dd|D}g}x|rg}d}xZ|rt|d}|||kr||d|d=||}q`|r|dddkr|d=Pq`W|r |dkr||dd||d|d|d<|dddkr |d=|d|qPW|S)Nz( +|-+)cSsg|] }|r|qSrr)r_Zchrrr szwrap_text..rr*r9)r. expandtabsrWS_TRANSresplitrr=)rPwidthZchunksrOZcur_lineZcur_lenrMrrrrKws:      rKcCs |tS)N)rr)r"rrrtranslate_longoptsrhc@seZdZgfddZdS)r<cCsx|D]}t||dqWdS)N)rA)rr[r"rrrrs zOptionDummy.__init__N)rXrYrZrrrrrr<sr<__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:stringrer>Zdistutils.errorsZ longopt_patcompiler3Z neg_alias_rer1 maketransrrr]Z whitespacerdrKrhr<rXrPwprintr=rrrr s( T6