OwlCyberSecurity - MANAGER
Edit File: fancy_getopt.cpython-38.pyc
U ����i�fxE����������������������@���s����d�Z�ddlZddlZddlZddlZddlT�dZe�de��Ze�deef��Z e �dd�ZG�d d ��d �Z dd��Zd d��ejD��Zdd��Zdd��ZG�dd��d�Zedkr�dZdD�]*Zede���ed�eee����e���q�dS�)a6��distutils.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����e�Zd�ZdZddd�Zdd��Zdd��Zd d d �Zdd��Zd d��Z dd��Z dd��Zdd��Zdd��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 Nc�����������������C���sN���||�_�i�|�_|�j�r|�����i�|�_i�|�_g�|�_g�|�_i�|�_i�|�_i�|�_ g�|�_ d�S��N)�option_table�option_index�_build_index�alias�negative_alias� short_opts� long_opts� short2long� attr_name� takes_arg�option_order��selfr�����r����;/opt/alt/python38/lib64/python3.8/distutils/fancy_getopt.py�__init__)���s���� zFancyGetopt.__init__c�����������������C���s(���|�j�����|�jD�]}||�j�|d�<�qd�S�)Nr���)r����clearr���)r����optionr���r���r���r ���Q���s���� zFancyGetopt._build_indexc�����������������C���s���||�_�|�����d�S�r���)r���r ���r���r���r���r����set_option_tableV���s����zFancyGetopt.set_option_tablec�����������������C���s<���||�j�krtd|���n |||f}|�j�|��||�j�|<�d�S�)Nz'option conflict: already an option '%s')r����DistutilsGetoptErrorr����append)r����long_optionZshort_optionZhelp_stringr���r���r���r���� add_optionZ���s���� � zFancyGetopt.add_optionc�����������������C���s ���||�j�kS�)zcReturn true if the option table for this parser has an option with long name 'long_option'.)r����r���r���r���r���r���� has_optionc���s����zFancyGetopt.has_optionc�����������������C���s ���|��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���r���r���r���� get_attr_nameh���s����zFancyGetopt.get_attr_namec�����������������C���s\���t�|t�st�|���D�]@\}}||�jkr:td|||f���||�jkrtd|||f���qd�S�)Nz(invalid %s '%s': option '%s' not definedz0invalid %s '%s': aliased option '%s' not defined)� isinstance�dict�AssertionError�itemsr���r���)r����aliasesZwhatr ����optr���r���r����_check_alias_dictn���s���� � �zFancyGetopt._check_alias_dictc�����������������C���s���|���|d��||�_dS�)z'Set the aliases for this option parser.r ���N)r*���r ���)r���r ���r���r���r����set_aliasesx���s����zFancyGetopt.set_aliasesc�����������������C���s���|���|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���)r���r���r���r���r����set_negative_aliases}���s����z FancyGetopt.set_negative_aliasesc�����������������C���s���g�|�_�g�|�_|�j����i�|�_|�jD��]�}t|�dkrD|\}}}d}n(t|�dkr^|\}}}}ntd|f���t|t �r�t|�dk�r�t d|���|dks�t|t �r�t|�dks�t d |���||�j|<�|�j��|��|d �dkr�|r�|d�}|dd ��}d|�j|<�nF|�j �|�}|dk �r:|�j|��r0t d ||f���||�j�d <�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���r���r����repeatr����len� ValueErrorr$����strr���r���r���r����getr ���� longopt_re�matchr#���r���)r���r����long�short�helpr4���Zalias_tor���r���r����_grok_option_table����st���� �� �� � �� �� ��zFancyGetopt._grok_option_tablec�������������� ���C���s���|dkrt�jdd��}|dkr*t��}d}nd}|�����d�|�j�}zt�|||�j�\}}W�n,�tjk r��}�zt |��W�5�d}~X�Y�nX�|D�]�\}}t |�dkr�|d�dkr�|�j|d��}n,t |�dkr�|dd��d ks�t�|dd��}|�j �|�} | r�| }|�j|��s:|d k�std��|�j�|�} | �r6| }d}nd}|�j|�} |�rl|�j�| �dk �rlt|| d�d�}t|| |��|�j�||f��q�|�r�||fS�|S�dS�)a��Parse 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. Nr0���TF� r/���r���r���z--��zboolean option can't have value)�sys�argv�OptionDummyr>����joinr����getoptr ����errorZDistutilsArgErrorr5���r���r&���r ���r8���r���r���r���r4����getattr�setattrr���r���)r����args�objectZcreated_objectr���Zopts�msgr)����valr ����attrr���r���r���rE�������sF���� zFancyGetopt.getoptc�����������������C���s���|�j�dkrtd��n|�j�S�dS�)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)r���r���r���r����get_option_order��s���� zFancyGetopt.get_option_orderc�����������������C���sj��d}|�j�D�]L}|d�}|d�}t|�}|d�dkr:|d�}|dk rJ|d�}||kr |}q |d�d�d�}d}||�} d |�} |r�|g}nd g}|�j�D�]�}|dd��\}}}t|| �} |d�dkr�|dd��}|dk�r| r�|�d||| d�f���n|�d ||f���n:d||f�}| �r4|�d||| d�f���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. r���r0���r1���r2���N����r/����N���r?���zOption summary:r-���z --%-*s %sz --%-*s z%s (-%s)z --%-*s)r���r5���� wrap_textr���)r����headerZmax_optr���r;���r<����lZ opt_widthZ line_widthZ text_widthZ big_indent�linesr=����textZ opt_namesr���r���r���� generate_help��sH���� �zFancyGetopt.generate_helpc�����������������C���s0���|d�krt�j}|��|�D�]}|�|d���qd�S�)N� )rA����stdoutrW����write)r���rS����file�liner���r���r���� print_helph��s����zFancyGetopt.print_help)N)NN)NN)N)NN)�__name__� __module__�__qualname__�__doc__r���r ���r���r���r���r#���r*���r+���r,���r>���rE���rO���rW���r]���r���r���r���r���r������s��� ( M = Or���c�����������������C���s���t�|��}|�|��|�||�S�r���)r���r,���rE���)�optionsZnegative_optrJ���rI����parserr���r���r����fancy_getopto��s���� rd���c�����������������C���s���i�|�]}t�|�d��qS�)r?���)�ord)�.0Z_wscharr���r���r���� <dictcomp>u��s������rg���c�����������������C���s��|�dkrg�S�t�|��|kr|�gS�|����}�|��t�}�t�d|��}dd��|D��}g�}|�rg�}d}|r�t�|d��}||�|kr�|�|d���|d=�||�}q\|r�|d�d�dkr�|d=�q�q\|�r|dkr�|�|d�d|����|d�|d��|d<�|d�d�dk�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( +|-+)c�����������������S���s���g�|�]}|r|�qS�r���r���)rf���Zchr���r���r���� <listcomp>���s������zwrap_text.<locals>.<listcomp>r���r1���r?���r@���)r5���� expandtabsr!����WS_TRANS�re�splitr���rD���)rV����widthZchunksrU���Zcur_lineZcur_lenrT���r���r���r���rR���w��s:���� rR���c�����������������C���s ���|���t�S�)zXConvert a long option name to a valid Python identifier by changing "-" to "_". r ���)r)���r���r���r����translate_longopt���s����rn���c�������������������@���s���e�Zd�ZdZg�fdd�ZdS�)rC���z_Dummy class just used as a place to hold command-line option values as instance attributes.c�����������������C���s���|D�]}t�|�|d��qdS�)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rH���)r���rb���r)���r���r���r���r������s����zOptionDummy.__init__N)r^���r_���r`���ra���r���r���r���r���r���rC������s���rC����__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���)ra���rA����stringrk���rE���Zdistutils.errorsZlongopt_pat�compiler9���Zneg_alias_rer7���� maketransr"���r���rd���Z whitespacerj���rR���rn���rC���r^���rV����w�printrD���r���r���r���r����<module>���s*��� ��T6