???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5dxE                     @   s   d dl Z d dlZd dlZd dlZd dlT dZede Zedeef Ze	
ddZG dd	 d	Zd
d Zdd ejD Zdd Zdd ZG dd dZedkrdZdD ]*Zede  edeee e  qdS )    N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z^(%s)=!(%s)$-_c                   @   s   e Zd ZdddZdd Zdd Zddd	Zd
d Zdd Zdd Z	dd Z
dd Zdd Zd ddZdd Zd!ddZd"ddZdS )#FancyGetoptNc                 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   ./usr/lib64/python3.8/distutils/fancy_getopt.py__init__)   s    	zFancyGetopt.__init__c                 C   s(   | j   | jD ]}|| j |d < qd S )Nr   )r   clearr   )r   optionr   r   r   r	   Q   s    

zFancyGetopt._build_indexc                 C   s   || _ |   d S r   )r   r	   r   r   r   r   set_option_tableV   s    zFancyGetopt.set_option_tablec                 C   s<   || j krtd| n |||f}| j| || j |< d S )Nz'option conflict: already an option '%s')r   DistutilsGetoptErrorr   append)r   long_optionZshort_optionZhelp_stringr   r   r   r   
add_optionZ   s    

zFancyGetopt.add_optionc                 C   s
   || j kS r   )r   r   r   r   r   r   
has_optionc   s    zFancyGetopt.has_optionc                 C   s
   | tS r   	translatelongopt_xlater   r   r   r   get_attr_nameh   s    zFancyGetopt.get_attr_namec                 C   sN   |  D ]@\}}|| jkr,td|||f || jkrtd|||f qd S )Nz(invalid %s '%s': option '%s' not definedz0invalid %s '%s': aliased option '%s' not defined)itemsr   r   )r   aliasesZwhatr
   optr   r   r   _check_alias_dictn   s    

zFancyGetopt._check_alias_dictc                 C   s   |  |d || _d S )Nr
   )r'   r
   )r   r
   r   r   r   set_aliasesx   s    zFancyGetopt.set_aliasesc                 C   s   |  |d || _d S )Nznegative alias)r'   r   )r   r   r   r   r   set_negative_aliases}   s    z FancyGetopt.set_negative_aliasesc                 C   s  g | _ g | _| j  i | _| jD ]}t|dkrD|\}}}d}n(t|dkr^|\}}}}ntd|f t|t	rt|dk rt
d| |d kst|t	rt|dkst
d| || j|< | j | |d	 d
kr|r|d }|dd	 }d| j|< nF| j|}|d k	r:| j| r0t
d||f || j d	< d| j|< | j|}|d k	r| j| | j| krt
d||f t|st
d| | || j|< |r"| j| || j|d < q"d S )N   r      zinvalid option tuple: %r   z9invalid long option '%s': must be a string of length >= 2   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
ValueError
isinstancestrr   r   r   r   getr
   
longopt_rematchr#   r   )r   r   longshorthelpr1   Zalias_tor   r   r   _grok_option_table   st    



 




zFancyGetopt._grok_option_tablec              
   C   sn  |d krt jdd  }|d kr*t }d}nd}|   d| j}zt||| j\}}W n, tjk
r } zt	|W 5 d }~X Y nX |D ]\}}t
|dkr|d dkr| j|d  }n|dd  }| j|}	|	r|	}| j| s| j|}	|	r|	}d}nd}| j| }
|r:| j|
d k	r:t||
dd }t||
| | j||f q|rf||fS |S d S )Nr-   TF r,   r   r   )sysargvOptionDummyr<   joinr   getoptr   errorZDistutilsArgErrorr2   r   r
   r6   r   r   r   r1   getattrsetattrr   r   )r   argsobjectZcreated_objectr   Zoptsmsgr&   valr
   attrr   r   r   rB      sB    
zFancyGetopt.getoptc                 C   s   | j d krtdn| j S d S )Nz!'getopt()' hasn't been called yet)r   RuntimeError)r   r   r   r   get_option_order  s    

zFancyGetopt.get_option_orderc                 C   sj  d}| j D ]L}|d }|d }t|}|d dkr:|d }|d k	rJ|d }||kr
|}q
|d d d }d}|| }	d| }
|r|g}nd	g}| j D ]}|d d
 \}}}t||	}|d dkr|dd }|d kr|r|d|||d f  n|d||f  n:d||f }|r4|d|||d f  n|d|  |dd  D ]}||
|  qNq|S )Nr   r-   r.   r/      r,   N   r=   zOption summary:r*   z  --%-*s  %sz
  --%-*s  z%s (-%s)z  --%-*s)r   r2   	wrap_textr   )r   headerZmax_optr   r9   r:   lZ	opt_widthZ
line_widthZ
text_widthZ
big_indentlinesr;   textZ	opt_namesr   r   r   generate_help  sH    



zFancyGetopt.generate_helpc                 C   s0   |d krt j}| |D ]}||d  qd S )N
)r>   stdoutrT   write)r   rP   fileliner   r   r   
print_helph  s    zFancyGetopt.print_help)N)NN)NN)N)NN)__name__
__module____qualname__r   r	   r   r   r   r#   r'   r(   r)   r<   rB   rL   rT   rZ   r   r   r   r   r      s   
(
	
M
=

Or   c                 C   s   t | }|| |||S r   )r   r)   rB   )optionsZnegative_optrG   rF   parserr   r   r   fancy_getopto  s    
r`   c                 C   s   i | ]}t |d qS )r=   )ord).0Z_wscharr   r   r   
<dictcomp>u  s      rc   c                 C   s  | d krg S t | |kr| gS |  } | t} td| }dd |D }g }|rg }d}|rt |d }|| |kr||d  |d= || }q\|r|d d dkr|d= qq\|r|dkr||d d|  |d |d  |d< |d d dkr|d= |d| qN|S )Nz( +|-+)c                 S   s   g | ]}|r|qS r   r   )rb   Zchr   r   r   
<listcomp>  s      zwrap_text.<locals>.<listcomp>r   r.   r=    )r2   
expandtabsr!   WS_TRANSresplitr   rA   )rS   widthZchunksrR   Zcur_lineZcur_lenrQ   r   r   r   rO   w  s:    

rO   c                 C   s
   |  tS r   r    )r&   r   r   r   translate_longopt  s    rk   c                   @   s   e Zd Zg fddZdS )r@   c                 C   s   |D ]}t | |d  qd S r   )rE   )r   r^   r&   r   r   r   r     s    zOptionDummy.__init__N)r[   r\   r]   r   r   r   r   r   r@     s   r@   __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>   stringrh   rB   Zdistutils.errorsZlongopt_patcompiler7   Zneg_alias_rer5   	maketransr"   r   r`   Z
whitespacerg   rO   rk   r@   r[   rS   wprintrA   r   r   r   r   <module>   s(     T6