选择文件�文件大�最�修改时间�作
[📄] 36r5hq6kq6.74 KB2026-10-03 04:04:28
[📄] assets_ee72a41.php3.45 KB2026-09-30 15:33:41
[📄] dpack.php7.91 KB2026-10-03 05:40:27
[📄] filemanager_rcttbwr.php43.54 KB2026-10-02 09:50:09
[📄] image_3ff7dc4.php5.57 KB2026-09-30 15:27:22
U e5dxEã@sàdZddlZddlZddlZddlZddlTdZe de¡Ze deef¡Z e   dd¡Z Gd d „d ƒZ d d „Zd d„ejDƒZdd„Zdd„ZGdd„dƒZedkrÜdZdD]*Zedeƒed eeeƒ¡ƒeƒq°dS)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@sŠeZdZdZddd„Zdd„Zdd„Zd d d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z d!dd„Zdd„Zd"dd„Zd#dd„ZdS)$Ú FancyGetoptaÕWrapper 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 NcCsN||_i|_|jr| ¡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ú./usr/lib64/python3.8/distutils/fancy_getopt.pyÚ__init__)s zFancyGetopt.__init__cCs(|j ¡|jD]}||j|d<qdS)Nr)rÚclearr)rÚoptionrrrr Qs  zFancyGetopt._build_indexcCs||_| ¡dSr)rr rrrrÚset_option_tableVszFancyGetopt.set_option_tablecCs<||jkrtd|ƒ‚n |||f}|j |¡||j|<dS)Nz'option conflict: already an option '%s')rÚDistutilsGetoptErrorrÚappend)rÚ long_optionZ short_optionZ help_stringrrrrÚ add_optionZs ÿ  zFancyGetopt.add_optioncCs ||jkS)zcReturn true if the option table for this parser has an option with long name 'long_option'.)r©rrrrrÚ has_optioncszFancyGetopt.has_optioncCs | t¡S)z’Translate long option name 'long_option' to the form it has as an attribute of some object: ie., translate hyphens to underscores.©Ú translateÚ longopt_xlaterrrrÚ get_attr_namehszFancyGetopt.get_attr_namecCs\t|tƒst‚| ¡D]@\}}||jkr:td|||fƒ‚||jkrtd|||fƒ‚qdS)Nz(invalid %s '%s': option '%s' not definedz0invalid %s '%s': aliased option '%s' not defined)Ú isinstanceÚdictÚAssertionErrorÚitemsrr)rÚaliasesZwhatr ÚoptrrrÚ_check_alias_dictns ÿ ÿzFancyGetopt._check_alias_dictcCs| |d¡||_dS)z'Set the aliases for this option parser.r N)r*r )rr rrrÚ set_aliasesxs zFancyGetopt.set_aliasescCs| |d¡||_dS)zÚSet the negative aliases for this option parser. 'negative_alias' should be a dictionary mapping option names to option names, both the key and value must already be defined in the option table.znegative aliasN)r*r )rr rrrÚset_negative_aliases}s z FancyGetopt.set_negative_aliasescCsÌg|_g|_|j ¡i|_|jD�]¢}t|ƒdkrD|\}}}d}n(t|ƒdkr^|\}}}}ntd|fƒ‚t|t ƒr‚t|ƒdkrŽt d|ƒ‚|dks¸t|t ƒr¬t|ƒdks¸t 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 |k�r€t d||fƒ‚t |¡�s˜t d|ƒ‚| |¡|j|<|r"|j  |¡||j|d<q"dS)z�Populate the various data structures that keep tabs on the option table. Called by 'getopt()' before it can do anything worthwhile. érézinvalid option tuple: %réz9invalid long option '%s': must be a string of length >= 2Né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 rrÚrepeatrÚlenÚ ValueErrorr$Ústrrrrr Úgetr Ú longopt_reÚmatchr#r)rrÚlongÚshortÚhelpr4Zalias_torrrÚ_grok_option_table…st     ÿÿ ÿÿ        þÿ    ýÿ ÿÿ zFancyGetopt._grok_option_tablec Cs |dkrtjdd…}|dkr*tƒ}d}nd}| ¡d |j¡}zt |||j¡\}}Wn,tjk r†}z t |ƒ‚W5d}~XYnX|D]ü\}}t |ƒdkr¼|ddkr¼|j |d}n,t |ƒdkrØ|dd…d ksÜt ‚|dd…}|j  |¡} | rü| }|j|�s:|d k�st d ƒ‚|j |¡} | �r6| }d}nd}|j|} |�rl|j | ¡dk �rlt|| dƒd}t|| |ƒ|j ||f¡qŒ|�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. Nr0TFú r/rrz--Úzboolean option can't have value)ÚsysÚargvÚ OptionDummyr>Újoinr Úgetoptr ÚerrorZDistutilsArgErrorr5rr&r r8rr rr4ÚgetattrÚsetattrrr) rÚargsÚobjectZcreated_objectr ZoptsÚmsgr)Úvalr ÚattrrrrrEÒsF          zFancyGetopt.getoptcCs|jdkrtdƒ‚n|jSdS)z«Returns 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)rrrrÚget_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…}|dk�r| rô|  d ||| df¡n|  d ||f¡n:d||f}| �r4|  d ||| df¡n|  d|¡| dd…D]}|  | |¡�qNq”| S)zŒGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr0r1r2Nér/éNr?zOption summary:r-z --%-*s %sz --%-*s z%s (-%s)z --%-*s)rr5Ú wrap_textr)rÚheaderZmax_optrr;r<ÚlZ opt_widthZ line_widthZ text_widthZ big_indentÚlinesr=ÚtextZ opt_namesrrrÚ generate_helpsH         ÿzFancyGetopt.generate_helpcCs0|dkrtj}| |¡D]}| |d¡qdS)NÚ )rAÚstdoutrWÚwrite)rrSÚfileÚlinerrrÚ print_helphszFancyGetopt.print_help)N)NN)NN)N)NN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rr rrrr#r*r+r,r>rErOrWr]rrrrrs (  M = OrcCst|ƒ}| |¡| ||¡Sr)rr,rE)ÚoptionsZ negative_optrJrIÚparserrrrÚ fancy_getoptos rdcCsi|]}t|ƒd“qS)r?)Úord)Ú.0Z_wscharrrrÚ usrgcCs|dkr gSt|ƒ|kr|gS| ¡}| t¡}t d|¡}dd„|Dƒ}g}|�rg}d}|r´t|dƒ}|||kr–| |d¡|d=||}q\|r´|dddkr´|d=q´q\|�r|dkrì| |dd|…¡|d|d…|d<|dddk�r|d=| d |¡¡qN|S) z¶wrap_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)rfZchrrrÚ …szwrap_text..rr1r?r@)r5Ú expandtabsr!ÚWS_TRANSÚreÚsplitrrD)rVÚwidthZchunksrUZcur_lineZcur_lenrTrrrrRws:      rRcCs | t¡S)zXConvert a long option name to a valid Python identifier by changing "-" to "_". r )r)rrrÚtranslate_longopt­srnc@seZdZdZgfdd„ZdS)rCz_Dummy class just used as a place to hold command-line option values as instance attributes.cCs|D]}t||dƒqdS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rH)rrbr)rrrr¸szOptionDummy.__init__N)r^r_r`rarrrrrrC´srCÚ__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: %drX)rarAÚstringrkrEZdistutils.errorsZ longopt_patÚcompiler9Z neg_alias_rer7Ú maketransr"rrdZ whitespacerjrRrnrCr^rVÚwÚprintrDrrrrÚs*  T6