CasperSecurity

Current Path : /usr/lib/python3.10/distutils/__pycache__/
Upload File :
Current File : //usr/lib/python3.10/distutils/__pycache__/fancy_getopt.cpython-310.pyc

o

��bcxE�@s�dZddlZddlZddlZddlZddlTdZe�de�Ze�deef�Z	e
�dd�ZGd	d
�d
�Z
dd�Zd
d�ejD�Zdd�Zdd�ZGdd�d�ZedkrndZdD]Zede�ed�eee���e�qXdSdS)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
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
d dd�Zdd�Zddd�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/lib/python3.10/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_tableVszFancyGetopt.set_option_tablecCs:||jvrtd|��|||f}|j�|�||j|<dS)Nz'option conflict: already an option '%s')r�DistutilsGetoptErrorr�append)r�long_option�short_option�help_stringrrrr�
add_optionZs
�
zFancyGetopt.add_optioncCs
||jvS)zcReturn true if the option table for this parser has an
        option with long name 'long_option'.)r�rrrrr�
has_optioncs
zFancyGetopt.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_xlater rrr�
get_attr_nameh�
zFancyGetopt.get_attr_namecCs\t|t�sJ�|��D] \}}||jvrtd|||f��||jvr+td|||f��qdS)Nz(invalid %s '%s': option '%s' not definedz0invalid %s '%s': aliased option '%s' not defined)�
isinstance�dict�itemsrr)r�aliases�whatr
�optrrr�_check_alias_dictns
�
���zFancyGetopt._check_alias_dictcC�|�|d�||_dS)z'Set the aliases for this option parser.r
N)r-r
)rr
rrr�set_aliasesxs
zFancyGetopt.set_aliasescCr.)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)rrrrr�set_negative_aliases}s
z FancyGetopt.set_negative_aliasescCs�g|_g|_|j��i|_|jD]�}t|�dkr!|\}}}d}nt|�dkr.|\}}}}ntd|f��t|t	�r@t|�dkrFt
d|��|dus[t|t	�rUt|�dks[t
d	|��||j|<|j�|�|d
dkr~|rr|d}|dd
�}d|j|<n!|j
�|�}|dur�|j|r�t
d
||f��||jd
<d|j|<|j�|�}|dur�|j||j|kr�t
d||f��t�|�s�t
d|��|�|�|j|<|r�|j�|�||j|d<qdS)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�helpr8�alias_torrr�_grok_option_table�st


���

��

��

����zFancyGetopt._grok_option_tablec
Cs�|durtjdd�}|durt�}d}nd}|��d�|j�}zt�|||j�\}}Wntjy>}zt	|��d}~ww|D]y\}}t
|�dkrY|ddkrY|j|d}nt
|�dkrg|dd�d	ksiJ�|dd�}|j�
|�}	|	ry|	}|j|s�|d
ks�Jd��|j�
|�}	|	r�|	}d}nd}|j|}
|r�|j�
|
�dur�t||
d�d}t||
|�|j�||f�qA|r�||fS|S)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.
        Nr4TF� r3rrz--�zboolean option can't have value)�sys�argv�OptionDummyrC�joinr�getoptr
�error�DistutilsArgErrorr9rr
r<rrrr8�getattr�setattrrr)r�args�object�created_objectr�opts�msgr,�valr
�attrrrrrJ�sJ�� 

zFancyGetopt.getoptcCs|jdur	td��|jS)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_ordercCsdd}|jD]&}|d}|d}t|�}|ddkr|d}|dur%|d}||kr+|}q|ddd}d}||}	d	|}
|rD|g}nd
g}|jD]e}|dd�\}}}t||	�}
|ddkrf|dd�}|dur�|
ry|�d|||
df�n&|�d
||f�nd||f}|
r�|�d|||
df�n|�d|�|
dd�D]	}|�|
|�q�qJ|S)z�Generate help text (a list of strings, one per suggested line of
        output) from the option table for this FancyGetopt object.
        rr4r5r6N�r3�NrDzOption summary:r1z  --%-*s  %sz
  --%-*s  z%s (-%s)z  --%-*s)rr9�	wrap_textr)r�header�max_optrr?r@�l�	opt_width�
line_width�
text_width�
big_indent�linesrA�text�	opt_namesrrr�
generate_helpsL
�

��zFancyGetopt.generate_helpcCs0|durtj}|�|�D]	}|�|d�qdS)N�
)rF�stdoutre�write)rr[�file�linerrr�
print_helphs
�zFancyGetopt.print_helpr)NN)�__name__�
__module__�__qualname__�__doc__rr	rrr!r%r-r/r0rCrJrWrerkrrrrrs 
(
	

M=

OrcCst|�}|�|�|�||�Sr)rr0rJ)�options�negative_optrPrO�parserrrr�fancy_getoptos
rscCsi|]}t|�d�qS)rD)�ord)�.0�_wscharrrr�
<dictcomp>usrwcCs|durgSt|�|kr|gS|��}|�t�}t�d|�}dd�|D�}g}|r�g}d}|rZt|d�}|||krJ|�|d�|d=||}n|rW|dddkrW|d=n|s/|r�|dkru|�|dd|��|d|d�|d<|dddkr�|d=|�d�|��|s)|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)ru�chrrr�
<listcomp>�szwrap_text.<locals>.<listcomp>rr5rDrE)r9�
expandtabsr#�WS_TRANS�re�splitrrI)rc�width�chunksrb�cur_line�cur_lenr]rrrrZws>

��"rZcCs
|�t�S)zXConvert a long option name to a valid Python identifier by
    changing "-" to "_".
    r")r,rrr�translate_longopt�r&r�c@seZdZdZgfdd�ZdS)rHz_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)rN)rrpr,rrrr�s�zOptionDummy.__init__N)rlrmrnrorrrrrrH�srH�__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: %drf)rorF�stringr|rJ�distutils.errors�longopt_pat�compiler=�neg_alias_rer;�	maketransr$rrs�
whitespacer{rZr�rHrlrc�w�printrIrrrr�<module>s0
T6�
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY