U e5dxE@sddlZddlZddlZddlZddlTdZedeZedeefZe ddZ Gdd d Z d d Z d d ejDZddZddZGdddZedkrdZdD]*ZedeedeeeeqdS)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|_ dSN) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_orderselfrr./usr/lib64/python3.8/distutils/fancy_getopt.py__init__)s zFancyGetopt.__init__cCs(|j|jD]}||j|d<qdS)Nr)rclearr)roptionrrrr Qs  zFancyGetopt._build_indexcCs||_|dSr)rr rrrrset_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 ||jkSr)rrrrrr has_optioncszFancyGetopt.has_optioncCs |tSr translate longopt_xlaterrrr get_attr_namehszFancyGetopt.get_attr_namecCsN|D]@\}}||jkr,td|||f||jkrtd|||fqdS)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|_|jD]}t|dkrD|\}}}d}n(t|dkr^|\}}}}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 |r0t d ||f||jd <d|j |<|j|}|dk r|j ||j |krt d ||ft|st d||||j|<|r"|j |||j|d<q"dS)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 rrrepeatrlen ValueError isinstancestrrrrr getr longopt_rematchr#r)rrlongshorthelpr1Zalias_torrr_grok_option_tablest                    zFancyGetopt._grok_option_tablec Csn|dkrtjdd}|dkr*t}d}nd}|d|j}zt|||j\}}Wn,tjk r}z t |W5d}~XYnX|D]\}}t |dkr|ddkr|j |d}n |dd}|j |} | r| }|j|s|j |} | r| }d}nd}|j|} |r:|j | dk r:t|| dd}t|| ||j||fq|rf||fS|SdS)Nr-TF r,rr)sysargv OptionDummyr<joinr getoptr errorZDistutilsArgErrorr2rr r6rr rr1getattrsetattrrr) rargsobjectZcreated_objectr Zoptsmsgr&valr attrrrrrBsB         zFancyGetopt.getoptcCs|jdkrtdn|jSdS)Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orders  zFancyGetopt.get_option_ordercCsjd}|jD]L}|d}|d}t|}|ddkr:|d}|dk rJ|d}||kr |}q |ddd}d}||} d|} |r|g} nd g} |jD]}|dd \}}} t| | } |ddkr|dd}|dkr| r| d ||| dfn| d ||fn:d ||f}| r4| d ||| dfn| d|| ddD]}| | |qNq| S)Nrr-r.r/r,Nr=zOption summary:r*z --%-*s %sz --%-*s z%s (-%s)z --%-*s)rr2 wrap_textr)rheaderZmax_optrr9r:lZ opt_widthZ line_widthZ text_widthZ big_indentlinesr;textZ opt_namesrrr generate_helpsH         zFancyGetopt.generate_helpcCs0|dkrtj}||D]}||dqdS)N )r>stdoutrTwrite)rrPfilelinerrr print_helphszFancyGetopt.print_help)N)NN)NN)N)NN)__name__ __module__ __qualname__rr rrrr#r'r(r)r<rBrLrTrZrrrrrs (  M = OrcCst|}|||||Sr)rr)rB)optionsZ negative_optrGrFparserrrr fancy_getoptos r`cCsi|]}t|dqS)r=)ord).0Z_wscharrrr usrccCs|dkr gSt||kr|gS|}|t}td|}dd|D}g}|rg}d}|rt|d}|||kr||d|d=||}q\|r|dddkr|d=qq\|r|dkr||dd||d|d|d<|dddkr|d=|d|qN|S)Nz( +|-+)cSsg|] }|r|qSrr)rbZchrrr szwrap_text..rr.r=)r2 expandtabsr!WS_TRANSresplitrrA)rSwidthZchunksrRZcur_lineZcur_lenrQrrrrOws:      rOcCs |tSrr )r&rrrtranslate_longoptsrkc@seZdZgfddZdS)r@cCs|D]}t||dqdSr)rE)rr^r&rrrrszOptionDummy.__init__N)r[r\r]rrrrrr@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: %drU)r>stringrhrBZdistutils.errorsZ longopt_patcompiler7Z neg_alias_rer5 maketransr"rr`Z whitespacergrOrkr@r[rSwprintrArrrr s( T6