Your IP : 3.141.41.109


Current Path : /opt/alt/python36/lib64/python3.6/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/__pycache__/argparse.cpython-36.opt-2.pyc

3

��2aa�@s,dZddddddddd	d
ddd
ddddgZddlZddlZddlZddlZ	ddl
ZddlZ
ddlmZmZdZdZdZdZdZdZdZGdd�de�Zdd�ZGd d�de�ZGd!d�de�ZGd"d�de�ZGd#d�de�ZGd$d	�d	e�Zd%d&�Z Gd'd�de!�Z"Gd(d�de!�Z#Gd)d�de�Z$Gd*d+�d+e$�Z%Gd,d-�d-e$�Z&Gd.d/�d/e&�Z'Gd0d1�d1e&�Z(Gd2d3�d3e$�Z)Gd4d5�d5e$�Z*Gd6d7�d7e$�Z+Gd8d9�d9e$�Z,Gd:d;�d;e$�Z-Gd<d=�d=e$�Z.Gd>d�de�Z/Gd?d
�d
e�Z0Gd@dA�dAe�Z1GdBdC�dCe1�Z2GdDdE�dEe2�Z3GdFd�dee1�Z4dS)Gz1.1�ArgumentParser�
ArgumentError�ArgumentTypeError�FileType�
HelpFormatter�ArgumentDefaultsHelpFormatter�RawDescriptionHelpFormatter�RawTextHelpFormatter�MetavarTypeHelpFormatter�	Namespace�Action�ONE_OR_MORE�OPTIONAL�PARSER�	REMAINDER�SUPPRESS�ZERO_OR_MORE�N)�gettext�ngettextz==SUPPRESS==�?�*�+zA...z...�_unrecognized_argsc@s$eZdZdd�Zdd�Zdd�ZdS)�_AttributeHoldercCs�t|�j}g}i}x|j�D]}|jt|��qWx8|j�D],\}}|j�r`|jd||f�q<|||<q<W|r�|jdt|��d|dj|�fS)Nz%s=%rz**%sz%s(%s)z, )�type�__name__�	_get_args�append�repr�_get_kwargs�isidentifier�join)�self�	type_name�arg_strings�	star_args�arg�name�value�r)�-/opt/alt/python36/lib64/python3.6/argparse.py�__repr__vs
z_AttributeHolder.__repr__cCst|jj��S)N)�sorted�__dict__�items)r"r)r)r*r�sz_AttributeHolder._get_kwargscCsgS)Nr))r"r)r)r*r�sz_AttributeHolder._get_argsN)r�
__module__�__qualname__r+rrr)r)r)r*rms	rcCs&t||d�dkrt|||�t||�S)N)�getattr�setattr)�	namespacer'r(r)r)r*�
_ensure_value�sr4c@s�eZdZd:dd�Zdd�Zdd	�ZGd
d�de�Zdd
�Zdd�Z	dd�Z
dd�Zd;dd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�ZdS)<r��NcCs�|dkr@yttjd�}Wnttfk
r6d}YnX|d8}||_||_||_t|t	|d|d��|_||_
d|_d|_d|_
|j|d�|_|j|_tjdtj�|_tjd�|_dS)N�COLUMNS�Pr5�rz\s+z\n\n\n+)�int�_os�environ�KeyError�
ValueError�_prog�_indent_increment�_max_help_position�min�max�_width�_current_indent�_level�_action_max_length�_Section�
_root_section�_current_section�_re�compile�ASCII�_whitespace_matcher�_long_break_matcher)r"�prog�indent_increment�max_help_position�widthr)r)r*�__init__�s&
zHelpFormatter.__init__cCs"|j|j7_|jd7_dS)N�)rEr@rF)r"r)r)r*�_indent�szHelpFormatter._indentcCs"|j|j8_|jd8_dS)NrU)rEr@rF)r"r)r)r*�_dedent�szHelpFormatter._dedentc@seZdZddd�Zdd�ZdS)zHelpFormatter._SectionNcCs||_||_||_g|_dS)N)�	formatter�parent�headingr.)r"rXrYrZr)r)r*rT�szHelpFormatter._Section.__init__cCs�|jdk	r|jj�|jj}|dd�|jD��}|jdk	rD|jj�|sLdS|jtk	rz|jdk	rz|jj}d|d|jf}nd}|d||dg�S)NcSsg|]\}}||��qSr)r))�.0�func�argsr)r)r*�
<listcomp>�sz6HelpFormatter._Section.format_help.<locals>.<listcomp>�z%*s%s:
�
)	rYrXrV�_join_partsr.rWrZrrE)r"r!�	item_help�current_indentrZr)r)r*�format_help�s



z"HelpFormatter._Section.format_help)N)rr/r0rTrdr)r)r)r*rH�s
rHcCs|jjj||f�dS)N)rJr.r)r"r\r]r)r)r*�	_add_item�szHelpFormatter._add_itemcCs0|j�|j||j|�}|j|jg�||_dS)N)rVrHrJrerd)r"rZ�sectionr)r)r*�
start_section�szHelpFormatter.start_sectioncCs|jj|_|j�dS)N)rJrYrW)r"r)r)r*�end_section�s
zHelpFormatter.end_sectioncCs$|tk	r |dk	r |j|j|g�dS)N)rre�_format_text)r"�textr)r)r*�add_text�szHelpFormatter.add_textcCs&|tk	r"||||f}|j|j|�dS)N)rre�
_format_usage)r"�usage�actions�groups�prefixr]r)r)r*�	add_usage�szHelpFormatter.add_usagecCsz|jtk	rv|j}||�g}x |j|�D]}|j||��q&Wtdd�|D��}||j}t|j|�|_|j|j	|g�dS)NcSsg|]}t|��qSr))�len)r[�sr)r)r*r^
sz.HelpFormatter.add_argument.<locals>.<listcomp>)
�helpr�_format_action_invocation�_iter_indented_subactionsrrCrErGre�_format_action)r"�action�get_invocation�invocations�	subaction�invocation_length�
action_lengthr)r)r*�add_arguments


zHelpFormatter.add_argumentcCsx|D]}|j|�qWdS)N)r~)r"rnrxr)r)r*�
add_argumentss
zHelpFormatter.add_argumentscCs.|jj�}|r*|jjd|�}|jd�d}|S)Nz

r`)rIrdrO�sub�strip)r"rtr)r)r*rds

zHelpFormatter.format_helpcCsdjdd�|D��S)Nr_cSsg|]}|r|tk	r|�qSr))r)r[�partr)r)r*r^!sz-HelpFormatter._join_parts.<locals>.<listcomp>)r!)r"�part_stringsr)r)r*ra s
zHelpFormatter._join_partscs|dkrtd�}|dk	r,|t|jd�}�n�|dkrN|rNdt|jd�}�n�|dk�rdt|jd�}g}g}x(|D] }|jr�|j|�qv|j|�qvW|j}	|	|||�}
djdd�||
gD��}|j|j�t	|�t	|��k�rd}|	||�}|	||�}
t
j||�}t
j||
�}d�fdd	�	}t	|�t	|�d
�k�r�dt	|�t	|�d}|�r�||g|||�}|j|||��n |�r�||g|||�}n|g}nZdt	|�}||}|||�}t	|�dk�r�g}|j|||��|j|||��|g|}dj|�}d
||fS)Nzusage: )rPz%(prog)s� cSsg|]}|r|�qSr)r))r[rsr)r)r*r^Asz/HelpFormatter._format_usage.<locals>.<listcomp>z%\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+cs�g}g}|dk	rt|�d}nt|�d}xb|D]Z}|dt|��krp|rp|j|dj|��g}t|�d}|j|�|t|�d7}q0W|r�|j|dj|��|dk	r�|dt|�d�|d<|S)NrUr�r)rrrr!)�parts�indentrp�lines�line�line_lenr�)�
text_widthr)r*�	get_linesUs"

z.HelpFormatter._format_usage.<locals>.get_linesg�?rUr`z%s%s

)N)
�_�dictr?�option_stringsr�_format_actions_usager!rDrErrrK�findall�extend)r"rmrnrorprP�	optionals�positionalsrx�format�action_usage�part_regexp�	opt_usage�	pos_usage�	opt_parts�	pos_partsr�r�r�r�r))r�r*rl%sV






zHelpFormatter._format_usagec
Cs�t�}i}x�|D]�}y|j|jd�}Wntk
r>wYqX|t|j�}|||�|jkrx|jD]}|j|�qhW|js�||kr�||d7<nd||<d||<n*||kr�||d7<nd||<d||<xt|d|�D]}	d	||	<q�WqWg}
�x2t|�D�]$\}	}|j	t
k�rj|
jd�|j|	�d	k�rF|j
|	�n"|j|	d�d	k�r.|j
|	d�n�|j�s�|j|�}|j||�}||k�r�|ddk�r�|ddk�r�|dd�}|
j|�nh|jd}
|jdk�r�d
|
}n"|j|�}|j||�}d|
|f}|j�r$||k�r$d|}|
j|��q
Wx(t|d
d�D]}	||	g|
|	|	�<�qBWdjdd�|
D��}d}d}tjd|d|�}tjd|d|�}tjd||fd|�}tjdd|�}|j�}|S)Nrz [�[�]z (�(�)rU�|z%sz%s %sz[%s]T)�reverser�cSsg|]}|dk	r|�qS)Nr))r[�itemr)r)r*r^�sz7HelpFormatter._format_actions_usage.<locals>.<listcomp>z[\[(]z[\])]z(%s) z\1z (%s)z%s *%sr_z\(([^|]*)\)���r�)�set�index�_group_actionsr>rr�add�required�range�	enumeratertrr�get�popr��#_get_default_metavar_for_positional�_format_args�nargs�!_get_default_metavar_for_optionalr,r!rKr�r�)r"rnro�
group_actions�inserts�group�start�endrx�ir��defaultr��
option_string�args_stringrj�open�closer)r)r*r��sr







z#HelpFormatter._format_actions_usagecCsFd|kr|t|jd�}t|j|jd�}d|j}|j|||�dS)Nz%(prog))rP�r�z

)r�r?rCrDrE�
_fill_text)r"rjr�r�r)r)r*ri�s

zHelpFormatter._format_textc
CsBt|jd|j�}t|j|d�}||jd}|j|�}|jsV|jd|f}d|}n@t|�|kr~|jd||f}d|}d}n|jd|f}d|}|}|g}|jr�|j	|�}	|j
|	|�}
|jd|d|
df�x@|
dd�D]}|jd|d|f�q�Wn|jd��s|jd�x$|j
|�D]}|j|j|���qW|j|�S)	Nr5r�r_z%*s%s
z	%*s%-*s  rrUr`)rBrGrArCrDrErurtrr�_expand_help�_split_linesr�endswithrvrwra)
r"rx�
help_position�
help_width�action_width�
action_header�tup�indent_firstr��	help_text�
help_linesr�r{r)r)r*rw�s6




zHelpFormatter._format_actioncCs�|js&|j|�}|j||�d�\}|Sg}|jdkrB|j|j�n8|j|�}|j||�}x |jD]}|jd||f�q`Wdj|�SdS)NrUrz%s %sz, )	r�r��_metavar_formatterr�r�r�r�rr!)r"rxr��metavarr�r�r�r)r)r*rus


z'HelpFormatter._format_action_invocationcsP|jdk	r|j�n.|jdk	r<dd�|jD�}ddj|��n|��fdd�}|S)NcSsg|]}t|��qSr))�str)r[�choicer)r)r*r^8sz4HelpFormatter._metavar_formatter.<locals>.<listcomp>z{%s}�,cst�t�r�S�f|SdS)N)�
isinstance�tuple)�
tuple_size)�resultr)r*r�=s
z0HelpFormatter._metavar_formatter.<locals>.format)r��choicesr!)r"rx�default_metavar�choice_strsr�r))r�r*r�4s

z HelpFormatter._metavar_formattercCs�|j||�}|jdkr$d|d�}n�|jtkr<d|d�}n�|jtkrTd|d�}nh|jtkrld|d�}nP|jtkr|d}n@|jtkr�d|d�}n(d	d
�t|j�D�}dj|�||j�}|S)Nz%srUz[%s]z
[%s [%s ...]]r5z%s [%s ...]z...z%s ...cSsg|]}d�qS)z%sr))r[r�r)r)r*r^Ssz.HelpFormatter._format_args.<locals>.<listcomp>r�)	r�r�r
rrrrr�r!)r"rxr��get_metavarr��formatsr)r)r*r�Ds 





zHelpFormatter._format_argscCs�tt|�|jd�}x"t|�D]}||tkr||=qWx,t|�D] }t||d�r@||j||<q@W|jd�dk	r�djdd�|dD��}||d<|j	|�|S)N)rPrr�z, cSsg|]}t|��qSr))r�)r[�cr)r)r*r^`sz.HelpFormatter._expand_help.<locals>.<listcomp>)
r��varsr?�listr�hasattrrr�r!�_get_help_string)r"rx�paramsr'�choices_strr)r)r*r�Ws
zHelpFormatter._expand_helpccs@y
|j}Wntk
rYnX|j�|�EdH|j�dS)N)�_get_subactions�AttributeErrorrVrW)r"rx�get_subactionsr)r)r*rvds
z'HelpFormatter._iter_indented_subactionscCs|jjd|�j�}tj||�S)Nr�)rNr�r��	_textwrap�wrap)r"rjrSr)r)r*r�nszHelpFormatter._split_linescCs$|jjd|�j�}tj||||d�S)Nr�)�initial_indent�subsequent_indent)rNr�r�r��fill)r"rjrSr�r)r)r*r�rs
zHelpFormatter._fill_textcCs|jS)N)rt)r"rxr)r)r*r�wszHelpFormatter._get_help_stringcCs
|jj�S)N)�dest�upper)r"rxr)r)r*r�zsz/HelpFormatter._get_default_metavar_for_optionalcCs|jS)N)r�)r"rxr)r)r*r�}sz1HelpFormatter._get_default_metavar_for_positional)r5r6N)N)rr/r0rTrVrW�objectrHrergrhrkrqr~rrdrarlr�rirwrur�r�r�rvr�r�r�r�r�r)r)r)r*r�s:	

`a/

c@seZdZdd�ZdS)rcs dj�fdd�|jdd�D��S)Nr_c3s|]}�|VqdS)Nr))r[r�)r�r)r*�	<genexpr>�sz9RawDescriptionHelpFormatter._fill_text.<locals>.<genexpr>T)�keepends)r!�
splitlines)r"rjrSr�r))r�r*r��sz&RawDescriptionHelpFormatter._fill_textN)rr/r0r�r)r)r)r*r�sc@seZdZdd�ZdS)rcCs|j�S)N)r�)r"rjrSr)r)r*r��sz!RawTextHelpFormatter._split_linesN)rr/r0r�r)r)r)r*r�sc@seZdZdd�ZdS)rcCs>|j}d|jkr:|jtk	r:ttg}|js2|j|kr:|d7}|S)Nz
%(default)z (default: %(default)s))rtr�rr
rr�r�)r"rxrt�defaulting_nargsr)r)r*r��s

z.ArgumentDefaultsHelpFormatter._get_help_stringN)rr/r0r�r)r)r)r*r�sc@seZdZdd�Zdd�ZdS)r	cCs|jjS)N)rr)r"rxr)r)r*r��sz:MetavarTypeHelpFormatter._get_default_metavar_for_optionalcCs|jjS)N)rr)r"rxr)r)r*r��sz<MetavarTypeHelpFormatter._get_default_metavar_for_positionalN)rr/r0r�r�r)r)r)r*r	�scCsN|dkrdS|jrdj|j�S|jdtfkr2|jS|jdtfkrF|jSdSdS)N�/)r�r!r�rr�)�argumentr)r)r*�_get_action_name�sr�c@seZdZdd�Zdd�ZdS)rcCst|�|_||_dS)N)r��
argument_name�message)r"r�r�r)r)r*rT�s
zArgumentError.__init__cCs(|jdkrd}nd}|t|j|jd�S)Nz%(message)sz'argument %(argument_name)s: %(message)s)r�r�)r�r�r�)r"r�r)r)r*�__str__�s

zArgumentError.__str__N)rr/r0rTr�r)r)r)r*r�sc@seZdZdS)rN)rr/r0r)r)r)r*r�sc@s(eZdZd	dd�Zdd�Zd
dd�ZdS)rNFcCs@||_||_||_||_||_||_||_||_|	|_|
|_	dS)N)
r�r�r��constr�rr�r�rtr�)r"r�r�r�r�r�rr�r�rtr�r)r)r*rTszAction.__init__c	s(ddddddddd	g	}�fd
d�|D�S)Nr�r�r�r�r�rr�rtr�csg|]}|t�|�f�qSr))r1)r[r')r"r)r*r^;sz&Action._get_kwargs.<locals>.<listcomp>r))r"�namesr))r"r*r/szAction._get_kwargscCsttd���dS)Nz.__call__() not defined)�NotImplementedErrorr�)r"�parserr3�valuesr�r)r)r*�__call__=szAction.__call__)NNNNNFNN)N)rr/r0rTrr�r)r)r)r*r�s6
cs(eZdZd�fdd�	Zddd�Z�ZS)	�_StoreActionNFcsT|dkrtd��|dk	r,|tkr,tdt��tt|�j|||||||||	|
d�
dS)Nrz�nargs for store actions must be > 0; if you have nothing to store, actions such as store true or store const may be more appropriatez nargs must be %r to supply const)
r�r�r�r�r�rr�r�rtr�)r>r
�superr�rT)r"r�r�r�r�r�rr�r�rtr�)�	__class__r)r*rTCs
z_StoreAction.__init__cCst||j|�dS)N)r2r�)r"r�r3r�r�r)r)r*r�`sz_StoreAction.__call__)NNNNNFNN)N)rr/r0rTr��
__classcell__r)r))r�r*r�Asr�cs(eZdZd�fdd�	Zddd�Z�ZS)	�_StoreConstActionNFc	s"tt|�j||d||||d�dS)Nr)r�r�r�r�r�r�rt)r�r�rT)r"r�r�r�r�r�rtr�)r�r)r*rTfs
z_StoreConstAction.__init__cCst||j|j�dS)N)r2r�r�)r"r�r3r�r�r)r)r*r�wsz_StoreConstAction.__call__)NFNN)N)rr/r0rTr�r�r)r))r�r*r�ds

r�cseZdZd�fdd�	Z�ZS)�_StoreTrueActionFNcs tt|�j||d|||d�dS)NT)r�r�r�r�r�rt)r�r�rT)r"r�r�r�r�rt)r�r)r*rT}s
z_StoreTrueAction.__init__)FFN)rr/r0rTr�r)r))r�r*r�{sr�cseZdZd�fdd�	Z�ZS)�_StoreFalseActionTFNcs tt|�j||d|||d�dS)NF)r�r�r�r�r�rt)r�r�rT)r"r�r�r�r�rt)r�r)r*rT�s
z_StoreFalseAction.__init__)TFN)rr/r0rTr�r)r))r�r*r��sr�cs(eZdZd�fdd�	Zddd�Z�ZS)	�
_AppendActionNFcsT|dkrtd��|dk	r,|tkr,tdt��tt|�j|||||||||	|
d�
dS)Nrz�nargs for append actions must be > 0; if arg strings are not supplying the value to append, the append const action may be more appropriatez nargs must be %r to supply const)
r�r�r�r�r�rr�r�rtr�)r>r
r�r�rT)r"r�r�r�r�r�rr�r�rtr�)r�r)r*rT�s
z_AppendAction.__init__cCs0tjt||jg��}|j|�t||j|�dS)N)�_copy�copyr4r�rr2)r"r�r3r�r�r.r)r)r*r��s
z_AppendAction.__call__)NNNNNFNN)N)rr/r0rTr�r�r)r))r�r*r��sr�cs(eZdZd�fdd�	Zddd�Z�ZS)	�_AppendConstActionNFc
s$tt|�j||d|||||d�dS)Nr)r�r�r�r�r�r�rtr�)r�rrT)r"r�r�r�r�r�rtr�)r�r)r*rT�s
z_AppendConstAction.__init__cCs2tjt||jg��}|j|j�t||j|�dS)N)rrr4r�rr�r2)r"r�r3r�r�r.r)r)r*r��sz_AppendConstAction.__call__)NFNN)N)rr/r0rTr�r�r)r))r�r*r�s
rcs(eZdZd�fdd�	Zddd�Z�ZS)	�_CountActionNFcs tt|�j||d|||d�dS)Nr)r�r�r�r�r�rt)r�rrT)r"r�r�r�r�rt)r�r)r*rT�s
z_CountAction.__init__cCs$t||jd�d}t||j|�dS)NrrU)r4r�r2)r"r�r3r�r��	new_countr)r)r*r��sz_CountAction.__call__)NFN)N)rr/r0rTr�r�r)r))r�r*r�s	rcs.eZdZeedf�fdd�	Zddd�Z�ZS)�_HelpActionNcstt|�j|||d|d�dS)Nr)r�r�r�r�rt)r�rrT)r"r�r�r�rt)r�r)r*rT�s
z_HelpAction.__init__cCs|j�|j�dS)N)�
print_help�exit)r"r�r3r�r�r)r)r*r��sz_HelpAction.__call__)N)rr/r0rrTr�r�r)r))r�r*r�srcs0eZdZdeedf�fdd�	Zddd�Z�ZS)�_VersionActionNz&show program's version number and exitcs$tt|�j|||d|d�||_dS)Nr)r�r�r�r�rt)r�rrT�version)r"r�r	r�r�rt)r�r)r*rTs
z_VersionAction.__init__cCsD|j}|dkr|j}|j�}|j|�|j|j�tj�|j�dS)N)r	�_get_formatterrk�_print_messagerd�_sys�stdoutr)r"r�r3r�r�r	rXr)r)r*r�s
z_VersionAction.__call__)N)rr/r0rrTr�r�r)r))r�r*rs
	rcsNeZdZGdd�de�Zeddf�fdd�	Zdd�Zdd	�Zdd
d�Z	�Z
S)
�_SubParsersActioncseZdZ�fdd�Z�ZS)z&_SubParsersAction._ChoicesPseudoActioncs@|}}|r|ddj|�7}ttj|�}|jg|||d�dS)Nz (%s)z, )r�r�rtr�)r!r�r�_ChoicesPseudoActionrT)r"r'�aliasesrtr�r��sup)r�r)r*rT"s
z/_SubParsersAction._ChoicesPseudoAction.__init__)rr/r0rTr�r)r))r�r*r srNcs>||_||_tj�|_g|_tt|�j||t	|j||d�dS)N)r�r�r�r�rtr�)
�_prog_prefix�
_parser_class�_collections�OrderedDict�_name_parser_map�_choices_actionsr�rrTr)r"r�rP�parser_classr�rtr�)r�r)r*rT*s

z_SubParsersAction.__init__cKs�|jd�dkr d|j|f|d<|jdf�}d|krX|jd�}|j|||�}|jj|�|jf|�}||j|<x|D]}||j|<qtW|S)NrPz%s %srrt)r�rr�rrrrr)r"r'�kwargsrrt�
choice_actionr��aliasr)r)r*�
add_parser?s


z_SubParsersAction.add_parsercCs|jS)N)r)r"r)r)r*r�Vsz!_SubParsersAction._get_subactionsc
Cs�|d}|dd�}|jtk	r,t||j|�y|j|}Wn<tk
rv|dj|j�d�}td�|}t||��YnX|j|d�\}	}x$t	|	�j
�D]\}
}t||
|�q�W|r�t	|�jtg�t
|t�j|�dS)NrrUz, )�parser_namer�z5unknown parser %(parser_name)r (choices: %(choices)s))r�rr2rr=r!r�r�parse_known_argsr�r.�
setdefault�_UNRECOGNIZED_ARGS_ATTRr1r�)r"r�r3r�r�rr$r]�msg�subnamespace�keyr(r)r)r*r�Ys"
	z_SubParsersAction.__call__)N)rr/r0rrrrTrr�r�r�r)r))r�r*rsrc@s&eZdZddd�Zdd�Zdd	�ZdS)r�rrUNcCs||_||_||_||_dS)N)�_mode�_bufsize�	_encoding�_errors)r"�mode�bufsize�encoding�errorsr)r)r*rT�szFileType.__init__cCs�|dkr>d|jkrtjSd|jkr(tjStd�|j}t|��yt||j|j|j|j	�St
k
r�}ztd�}t|||f��WYdd}~XnXdS)N�-r$�wzargument "-" with mode %rzcan't open '%s': %s)r%r�stdinr
r�r>r�r&r'r(�OSErrorr)r"�stringr!�er�r)r)r*r��s

zFileType.__call__cCsT|j|jf}d|jfd|jfg}djdd�|D�dd�|D��}dt|�j|fS)Nr+r,z, cSsg|]}|dkrt|��qS)rUr�)r)r[r&r)r)r*r^�sz%FileType.__repr__.<locals>.<listcomp>cSs$g|]\}}|dk	rd||f�qS)Nz%s=%rr))r[�kwr&r)r)r*r^�sz%s(%s))r%r&r'r(r!rr)r"r]r�args_strr)r)r*r+�s
zFileType.__repr__r�)r$r�NN)rr/r0rTr�r+r)r)r)r*r~s
c@s$eZdZdd�Zdd�Zdd�ZdS)r
cKs"x|D]}t||||�qWdS)N)r2)r"rr'r)r)r*rT�s
zNamespace.__init__cCst|t�stSt|�t|�kS)N)r�r
�NotImplementedr�)r"�otherr)r)r*�__eq__�s
zNamespace.__eq__cCs
||jkS)N)r-)r"r#r)r)r*�__contains__�szNamespace.__contains__N)rr/r0rTr7r8r)r)r)r*r
�scs�eZdZ�fdd�Zdd�Zd&dd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zd'dd�Zdd�Zd d!�Zd"d#�Zd$d%�Z�ZS)(�_ActionsContainercstt|�j�||_||_||_||_i|_|jddt	�|jddt	�|jddt
�|jddt�|jddt�|jddt
�|jddt�|jddt�|jdd	t�|jdd
t�|jddt�|j�g|_i|_g|_g|_i|_tjd�|_g|_dS)
Nrx�store�store_const�
store_true�store_falser�append_const�countrtr	�parsersz^-\d+$|^-\d*\.\d+$)r�r9rT�description�argument_default�prefix_chars�conflict_handler�_registries�registerr�r�r�r�r�rrrrr�_get_handler�_actions�_option_string_actions�_action_groups�_mutually_exclusive_groups�	_defaultsrKrL�_negative_number_matcher�_has_negative_number_optionals)r"rArCrBrD)r�r)r*rT�s2z_ActionsContainer.__init__cCs|jj|i�}|||<dS)N)rEr)r"�
registry_namer(r��registryr)r)r*rF�sz_ActionsContainer.registerNcCs|j|j||�S)N)rEr�)r"rOr(r�r)r)r*�
_registry_getsz_ActionsContainer._registry_getcKs6|jj|�x$|jD]}|j|kr||j|_qWdS)N)rL�updaterHr�r�)r"rrxr)r)r*�set_defaultss
z_ActionsContainer.set_defaultscCs8x(|jD]}|j|kr|jdk	r|jSqW|jj|d�S)N)rHr�r�rLr�)r"r�rxr)r)r*�get_defaults
z_ActionsContainer.get_defaultcOs0|j}|s(t|�dkrJ|dd|krJ|r<d|kr<td��|j||�}n|j||�}d|kr�|d}||jkr�|j||d<n|jdk	r�|j|d<|j|�}t|�s�td|f��|f|�}|j	d|j
|j
�}t|�s�td|f��t|d	��r&y|j�j
|d�Wntk
�r$td
��YnX|j|�S)NrUrr�z+dest supplied twice for positional argumentr�zunknown action "%s"rz%r is not callabler
z,length of metavar tuple does not match nargs)rCrrr>�_get_positional_kwargs�_get_optional_kwargsrLrB�_pop_action_class�callablerQrr�r
r��	TypeError�_add_action)r"r]r�charsr��action_classrx�	type_funcr)r)r*r~s2	"




z_ActionsContainer.add_argumentcOs t|f|�|�}|jj|�|S)N)�_ArgumentGrouprJr)r"r]rr�r)r)r*�add_argument_groupJsz$_ActionsContainer.add_argument_groupcKst|f|�}|jj|�|S)N)�_MutuallyExclusiveGrouprKr)r"rr�r)r)r*�add_mutually_exclusive_groupOsz._ActionsContainer.add_mutually_exclusive_groupcCsh|j|�|jj|�||_x|jD]}||j|<q$Wx,|jD]"}|jj|�r>|js>|jjd�q>W|S)NT)	�_check_conflictrHr�	containerr�rIrM�matchrN)r"rxr�r)r)r*rZTs
z_ActionsContainer._add_actioncCs|jj|�dS)N)rH�remove)r"rxr)r)r*�_remove_actionisz _ActionsContainer._remove_actioncCs�i}x8|jD].}|j|kr0td�}t||j��|||j<qWi}xR|jD]H}|j|krt|j|j|j|jd�||j<x|jD]}||j||<q|WqJWx4|jD]*}|j	|j
d�}x|jD]}|||<q�Wq�Wx |jD]}|j||�j
|�q�WdS)Nz.cannot merge actions - two groups are named %r)�titlerArD)r�)rJrgr�r>r_rArDr�rKrar�rHr�rZ)r"rc�title_group_mapr�r!�	group_maprx�mutex_groupr)r)r*�_add_container_actionsls,


z(_ActionsContainer._add_container_actionscKs^d|krtd�}t|��|jd�ttgkr2d|d<|jd�tkrPd|krPd|d<t||gd�S)Nr�z1'required' is an invalid argument for positionalsr�Tr�)r�r�)r�rYr�r
rr�)r"r�rr!r)r)r*rU�sz(_ActionsContainer._get_positional_kwargsc	Os�g}g}xv|D]n}|d|jkr@||jd�}td�}t||��|j|�|d|jkrt|�dkr|d|jkr|j|�qW|jdd�}|dkr�|r�|d}n|d}|j|j�}|s�td�}t||��|jdd�}t|||d	�S)
Nr)�optionrCzNinvalid option string %(option)r: must start with a character %(prefix_chars)rrUr�z%dest= is required for options like %rr-r�)r�r�)	rCr�r>rrrr��lstrip�replacer�)	r"r]rr��long_option_stringsr�r!r��dest_option_stringr)r)r*rV�s0



z&_ActionsContainer._get_optional_kwargscCs|jd|�}|jd||�S)Nrx)r�rQ)r"rr�rxr)r)r*rW�sz#_ActionsContainer._pop_action_classcCsDd|j}y
t||�Stk
r>td�}t||j��YnXdS)Nz_handle_conflict_%sz%invalid conflict_resolution value: %r)rDr1r�r�r>)r"�handler_func_namer!r)r)r*rG�s

z_ActionsContainer._get_handlercCsPg}x0|jD]&}||jkr|j|}|j||f�qW|rL|j�}|||�dS)N)r�rIrrG)r"rx�confl_optionalsr��confl_optionalrDr)r)r*rb�s

z!_ActionsContainer._check_conflictcCs6tddt|��}djdd�|D��}t|||��dS)Nzconflicting option string: %szconflicting option strings: %sz, cSsg|]\}}|�qSr)r))r[r�rxr)r)r*r^�sz<_ActionsContainer._handle_conflict_error.<locals>.<listcomp>)rrrr!r)r"rx�conflicting_actionsr��conflict_stringr)r)r*�_handle_conflict_error�s


z(_ActionsContainer._handle_conflict_errorcCsBx<|D]4\}}|jj|�|jj|d�|js|jj|�qWdS)N)r�rerIr�rcrf)r"rxrtr�r)r)r*�_handle_conflict_resolve�s
z*_ActionsContainer._handle_conflict_resolve)N)N)rr/r0rTrFrQrSrTr~r_rarZrfrkrUrVrWrGrbrvrwr�r)r))r�r*r9�s$4
	
/($
		r9cs6eZdZd�fdd�	Z�fdd�Z�fdd�Z�ZS)	r^Ncs�|j}|d|j�|d|j�|d|j�tt|�j}|fd|i|��||_g|_|j	|_	|j
|_
|j|_|j|_|j
|_
|j|_dS)NrDrCrBrA)rrDrCrBr�r^rTrgr�rErHrIrLrNrK)r"rcrgrArrR�
super_init)r�r)r*rT�sz_ArgumentGroup.__init__cs tt|�j|�}|jj|�|S)N)r�r^rZr�r)r"rx)r�r)r*rZsz_ArgumentGroup._add_actioncs tt|�j|�|jj|�dS)N)r�r^rfr�re)r"rx)r�r)r*rfsz_ArgumentGroup._remove_action)NN)rr/r0rTrZrfr�r)r))r�r*r^�sr^cs.eZdZd�fdd�	Zdd�Zdd�Z�ZS)	r`Fcs tt|�j|�||_||_dS)N)r�r`rTr��
_container)r"rcr�)r�r)r*rTsz _MutuallyExclusiveGroup.__init__cCs2|jrtd�}t|��|jj|�}|jj|�|S)Nz-mutually exclusive arguments must be optional)r�r�r>ryrZr�r)r"rxr!r)r)r*rZ$sz#_MutuallyExclusiveGroup._add_actioncCs|jj|�|jj|�dS)N)ryrfr�re)r"rxr)r)r*rf,sz&_MutuallyExclusiveGroup._remove_action)F)rr/r0rTrZrfr�r)r))r�r*r`sr`cseZdZddddgeddddddf�fdd�	Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	d<dd�Z
d=dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd>d1d2�Zd?d3d4�Zd@d5d6�ZdAd8d9�Zd:d;�Z�ZS)BrNr-�errorTc
s&tt|�j}
|
|||	|
d�|dkr6tjjtjd�}||_||_	||_
||_||_||_
||_|j}|td��|_|td��|_d|_dd�}|jdd|�d|kr�dn|d}|j
r�|j|d	|d
ddttd�d
�xD|D]<}|j|�y
|j}Wntk
�rYq�X|jj|�q�WdS)N)rArCrBrDrzpositional argumentszoptional argumentscSs|S)Nr))r1r)r)r*�identityjsz)ArgumentParser.__init__.<locals>.identityrr-�hr5rtzshow this help message and exit)rxr�rt)r�rrTr;�path�basenamer�argvrPrm�epilog�formatter_class�fromfile_prefix_chars�add_help�allow_abbrevr_r��_positionals�
_optionals�_subparsersrFr~rrkrLr�rR)r"rPrmrAr��parentsr�rCr�rBrDr�r��	superinit�	add_groupr{�default_prefixrY�defaults)r�r)r*rTDsB


zArgumentParser.__init__cs"ddddddg}�fdd�|D�S)	NrPrmrAr�rDr�csg|]}|t�|�f�qSr))r1)r[r')r"r)r*r^�sz.ArgumentParser._get_kwargs.<locals>.<listcomp>r))r"r�r))r"r*r�szArgumentParser._get_kwargsc	Ks�|jdk	r|jtd��|jdt|��d|ks8d|krht|jdd��}t|jdd��}|j||�|_n|j|_|jd�dkr�|j	�}|j
�}|j}|j|j
||d�|j�j�|d<|j|d�}|fd	gi|��}|jj|�|S)
Nz(cannot have multiple subparser argumentsrrgrA�subcommandsrPr_r@r�)r�rzr�rrr�r_r�r�r
�_get_positional_actionsrKrqrmrdr�rWrZ)	r"rrgrArXr�ro�
parsers_classrxr)r)r*�add_subparsers�s$
zArgumentParser.add_subparserscCs$|jr|jj|�n|jj|�|S)N)r�r�rZr�)r"rxr)r)r*rZ�szArgumentParser._add_actioncCsdd�|jD�S)NcSsg|]}|jr|�qSr))r�)r[rxr)r)r*r^�sz8ArgumentParser._get_optional_actions.<locals>.<listcomp>)rH)r"r)r)r*�_get_optional_actions�sz$ArgumentParser._get_optional_actionscCsdd�|jD�S)NcSsg|]}|js|�qSr))r�)r[rxr)r)r*r^�sz:ArgumentParser._get_positional_actions.<locals>.<listcomp>)rH)r"r)r)r*r��sz&ArgumentParser._get_positional_actionscCs4|j||�\}}|r0td�}|j|dj|��|S)Nzunrecognized arguments: %sr�)rr�rzr!)r"r]r3rr!r)r)r*�
parse_args�s
zArgumentParser.parse_argscCs|dkrtjdd�}nt|�}|dkr.t�}x>|jD]4}|jtk	r6t||j�s6|jtk	r6t	||j|j�q6Wx*|j
D] }t||�svt	|||j
|�qvWy<|j||�\}}t|t�r�|j
t|t��t|t�||fStk
�rtj�d}|jt|��YnXdS)NrU)rrr�r
rHr�rr�r�r2rL�_parse_known_argsr r�r1�delattrr�exc_inforzr�)r"r]r3rxr��errr)r)r*r�s,




zArgumentParser.parse_known_argscs"�	jdk	r�	j���i�x`�	jD]V}|j}xJt|j�D]<\}}�j|g�}|j|d|��|j||dd��q6Wq Wi�g}t��}	xnt|	�D]b\}}
|
dkr�|jd�xF|	D]}
|jd�q�Wq��	j	|
�}|dkr�d}n|�|<d}|j|�q�Wdj
|��t��t��d�����	fdd�	������	�fd	d
�}
�	j������	�fdd�}g�d
�
��rpt
��}nd}x|�
|k�r�t�
fdd��D��}�
|k�r�|�
�}|�
k�r�|�
�qvn|�
�
�k�r��
|�}�j|�|�
|
�
��
�qvW|�
�}�j�|d��g}x��	jD]|}|�k�r|j�r>|jt|��nT|jdk	�rt|jt��rt�|j��r|jt�|j�k�rt�|j�	j||j���qW|�r��	jtd�dj
|��xb�	jD]X}|j�r�xH|jD]}|�k�r�P�q�Wdd�|jD�}td�}�	j|dj
|���q�W��fS)NrUz--r-�A�Or_cs��j|��j||�}||jk	rf�j|�x:�j|g�D]*}|�kr8td�}t|�}t|||��q8W|tk	r||��||�dS)Nznot allowed with argument %s)r��_get_valuesr�r�r�r�rr)rx�argument_stringsr��argument_values�conflict_actionr!�action_name)�action_conflictsr3�seen_actions�seen_non_default_actionsr"r)r*�take_actions


z5ArgumentParser._parse_known_args.<locals>.take_actioncs��|}|\}}}�j}g}�x>|dkr>�j�|�|dS|dk	�r||d�}�j}|dkr�|d|kr�|j|g|f�|d}	|	|d}|dd�p�d}
�j}||kr�||}|
}ntd�}t|||��n@|dkr�|d}
|g}|j|||f�Pntd�}t|||��q |d}�|d�}|||�}||}
�||
�}|j|||f�Pq Wx |D]\}}}�|||��qdW|
S)NrUr�rzignored explicit argument %r)�_match_argumentrrCrIr�r)�start_index�option_tuplerxr��explicit_arg�match_argument�
action_tuples�	arg_countr[�char�new_explicit_arg�
optionals_mapr!�stopr]r��selected_patterns)r$�arg_strings_pattern�extras�option_string_indicesr"r�r)r*�consume_optional3sN



z:ArgumentParser._parse_known_args.<locals>.consume_optionalcsr�j}�|d�}|�|�}x8t�|�D]*\}}�|||�}||7}�||�q(W�t|�d��dd�<|S)N)�_match_arguments_partial�ziprr)r��
match_partial�selected_pattern�
arg_countsrxr�r])r$r�r�r"r�r)r*�consume_positionals�s
z=ArgumentParser._parse_known_args.<locals>.consume_positionalsrcsg|]}|�kr|�qSr)r))r[r�)r�r)r*r^�sz4ArgumentParser._parse_known_args.<locals>.<listcomp>z(the following arguments are required: %sz, cSsg|]}|jtk	rt|��qSr))rtrr�)r[rxr)r)r*r^�sz#one of the arguments %s is requiredr�)Nr�)r��_read_args_from_filesrKr�r�rr��iterr�_parse_optionalr!r�r�rCrBrHr�r�r�r�r�r�r�r1r2�
_get_valuerzr�)r"r$r3rjr�r��mutex_action�	conflicts�arg_string_pattern_parts�arg_strings_iter�
arg_stringr��patternr�r��max_option_string_index�next_option_string_index�positionals_end_index�strings�
stop_index�required_actionsrxr�r�r!r))r�r$r�r�r3r�r�r�r�r"r�r�r*r��s�





J










z ArgumentParser._parse_known_argscCs�g}x�|D]�}|s"|d|jkr.|j|�q
ylt|dd���R}g}x2|j�j�D]"}x|j|�D]}|j|�qdWqTW|j|�}|j|�WdQRXWq
tk
r�t	j
�d}|jt|��Yq
Xq
W|S)NrrU)
r�rr��readr��convert_arg_line_to_argsr�r�r0rr�rzr�)r"r$�new_arg_stringsr��	args_file�arg_liner&r�r)r)r*r��s 

z$ArgumentParser._read_args_from_filescCs|gS)Nr))r"r�r)r)r*r��sz'ArgumentParser.convert_arg_line_to_argscCst|j|�}tj||�}|dkrfdtd�ttd�ttd�i}tdd|j�|j}|j|j|�}t	||��t
|jd��S)Nzexpected one argumentzexpected at most one argumentzexpected at least one argumentzexpected %s argumentzexpected %s argumentsrU)�_get_nargs_patternrKrdr�r
rrr�r�rrrr�)r"rxr��
nargs_patternrd�nargs_errorsr�r!r)r)r*r�s

zArgumentParser._match_argumentcstg}xjtt|�dd�D]V}|d|�}dj�fdd�|D��}tj||�}|dk	r|jdd�|j�D��PqW|S)NrrUr_csg|]}�j|��qSr))r�)r[rx)r"r)r*r^sz;ArgumentParser._match_arguments_partial.<locals>.<listcomp>cSsg|]}t|��qSr))rr)r[r1r)r)r*r^!sr�)r�rrr!rKrdr�ro)r"rnr�r�r��
actions_slicer�rdr))r"r*r�s
z'ArgumentParser._match_arguments_partialc
Cs|sdS|d|jkrdS||jkr8|j|}||dfSt|�dkrHdSd|kr~|jdd�\}}||jkr~|j|}|||fS|jr�|j|�}t|�dkr�djdd�|D��}||d�}td�}|j||�nt|�dkr�|\}	|	S|j	j
|��r|j�sdSd	|k�rdSd|dfS)
NrrU�=z, cSsg|]\}}}|�qSr)r))r[rxr�r�r)r)r*r^Gsz2ArgumentParser._parse_optional.<locals>.<listcomp>)rl�matchesz4ambiguous option: %(option)s could match %(matches)sr�)rCrIrr�splitr��_get_option_tuplesr!r�rzrMrdrN)
r"r�rxr�r��
option_tuples�optionsr]r!r�r)r)r*r�'s>










zArgumentParser._parse_optionalc
Cs0g}|j}|d|kr~|d|kr~d|kr<|jdd�\}}n|}d}x�|jD],}|j|�rL|j|}|||f}|j|�qLWn�|d|ko�|d|k�r|}d}|dd�}|dd�}	xr|jD]T}||kr�|j|}|||	f}|j|�q�|j|�r�|j|}|||f}|j|�q�Wn|jtd�|�|S)NrrUr�r5zunexpected option string: %s)rCr�rI�
startswithrrzr�)
r"r�r�r[�
option_prefixr�rxr��short_option_prefix�short_explicit_argr)r)r*r�bs8







z!ArgumentParser._get_option_tuplescCs�|j}|dkrd}nX|tkr"d}nJ|tkr0d}n<|tkr>d}n.|tkrLd}n |tkrZd}nddjd	|�}|jr�|jdd
�}|jdd
�}|S)Nz(-*A-*)z(-*A?-*)z	(-*[A-]*)z
(-*A[A-]*)z([-AO]*)z(-*A[-AO]*)z(-*%s-*)z-*r�r_r-)	r�r
rrrrr!r�rn)r"rxr�r�r)r)r*r��s$z!ArgumentParser._get_nargs_patterncsx�jttgkr2y|jd�Wntk
r0YnX|rz�jtkrz�jrP�j}n�j}t	|t
�rx�j�|�}�j�|�n�|r��jt
kr��jr��jdk	r��j}n|}�j�|�n�t|�dkr�jdtgkr�|\}�j�|�}�j�|�n��jtk�r��fdd�|D�}nb�jtk�rD��fdd�|D�}�j�|d�n0��fdd�|D�}x|D]}�j�|��q^W|S)Nz--rUcsg|]}�j�|��qSr))r�)r[�v)rxr"r)r*r^�sz.ArgumentParser._get_values.<locals>.<listcomp>csg|]}�j�|��qSr))r�)r[r�)rxr"r)r*r^�srcsg|]}�j�|��qSr))r�)r[r�)rxr"r)r*r^�s)r�rrrer>r
r�r�r�r�r�r��_check_valuerrr)r"rxr$r(r�r�r))rxr"r*r��s>


zArgumentParser._get_valuescCs�|jd|j|j�}t|�s0td�}t|||��y||�}Wn�tk
r~t|jdt|j��}tt	j
�d�}t||��YnLttfk
r�t|jdt|j��}||d�}td�}t|||��YnX|S)Nrz%r is not callablerrU)rr(z!invalid %(type)s value: %(value)r)
rQrrXr�rrr1rr�rr�rYr>)r"rxr�r]r!r�r'r]r)r)r*r��s 
zArgumentParser._get_valuecCsF|jdk	rB||jkrB|djtt|j��d�}td�}t|||��dS)Nz, )r(r�z3invalid choice: %(value)r (choose from %(choices)s))r�r!�maprr�r)r"rxr(r]r!r)r)r*r�	s
zArgumentParser._check_valuecCs$|j�}|j|j|j|j�|j�S)N)r
rqrmrHrKrd)r"rXr)r)r*�format_usage	szArgumentParser.format_usagecCsx|j�}|j|j|j|j�|j|j�x:|jD]0}|j|j	�|j|j�|j
|j�|j�q0W|j|j
�|j�S)N)r
rqrmrHrKrkrArJrgrgrr�rhr�rd)r"rX�action_groupr)r)r*rd	szArgumentParser.format_helpcCs|j|jd�S)N)rP)r�rP)r"r)r)r*r
0	szArgumentParser._get_formattercCs"|dkrtj}|j|j�|�dS)N)rr
rr�)r"�filer)r)r*�print_usage6	szArgumentParser.print_usagecCs"|dkrtj}|j|j�|�dS)N)rr
rrd)r"r�r)r)r*r;	szArgumentParser.print_helpcCs |r|dkrtj}|j|�dS)N)r�stderr�write)r"r�r�r)r)r*r@	szArgumentParser._print_messagercCs |r|j|tj�tj|�dS)N)rrr�r)r"�statusr�r)r)r*rI	szArgumentParser.exitcCs0|jtj�|j|d�}|jdtd�|�dS)N)rPr�r5z%(prog)s: error: %(message)s
)r�rr�rPrr�)r"r�r]r)r)r*rzN	s	zArgumentParser.error)NN)NN)N)N)N)rN) rr/r0rrTrr�rZr�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�rdr
r�rrrrzr�r)r))r�r*r1sN4

#w;,,4


	
)5�__version__�__all__�collectionsrrr�osr;�rerK�sysr�textwrapr�rr�rrr
rrrrr r�rr4rrrrr	r��	Exceptionrrrr�r�r�r�r�rrrrrrr
r9r^r`rr)r)r)r*�<module>@s~
n
	[#%`65"

?>