<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2aa                @   s,  d Z ddddddddd	d
dddddddgZddlZddlZddlZddlZ	ddl
ZddlZddlmZmZ dZdZdZdZdZdZdZG dd deZdd ZG d d deZG d!d deZG d"d deZG d#d deZG d$d	 d	eZd%d& Z G d'd de!Z"G d(d de!Z#G d)d deZ$G d*d+ d+e$Z%G d,d- d-e$Z&G d.d/ d/e&Z'G d0d1 d1e&Z(G d2d3 d3e$Z)G d4d5 d5e$Z*G d6d7 d7e$Z+G d8d9 d9e$Z,G d:d; d;e$Z-G d<d= d=e$Z.G d>d deZ/G d?d
 d
eZ0G d@dA dAeZ1G dBdC dCe1Z2G dDdE dEe2Z3G dFd dee1Z4dS )Gz1.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==?*+zA...z..._unrecognized_argsc               @   s$   e Zd Zdd Zdd Zdd ZdS )_AttributeHolderc             C   s   t | j}g }i }x| j D ]}|jt| qW x8| j D ],\}}|j r`|jd||f  q<|||< q<W |r|jdt|  d|dj|f S )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__v   s    
z_AttributeHolder.__repr__c             C   s   t | jj S )N)sorted__dict__items)r"   r)   r)   r*   r      s    z_AttributeHolder._get_kwargsc             C   s   g S )Nr)   )r"   r)   r)   r*   r      s    z_AttributeHolder._get_argsN)r   
__module____qualname__r+   r   r   r)   r)   r)   r*   r   m   s   	r   c             C   s&   t | |d d krt| || t | |S )N)getattrsetattr)	namespacer'   r(   r)   r)   r*   _ensure_value   s    r4   c               @   s   e Zd Zd:ddZdd Zdd	 ZG d
d deZdd Z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# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 ZdS )<r         Nc             C   s   |d kr@yt tjd }W n ttfk
r6   d}Y nX |d8 }|| _|| _|| _t|t	|d |d | _|| _
d| _d| _d| _| j| d | _| j| _tjdtj| _tjd| _d S )NCOLUMNSP   r5      r   z\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&    
zHelpFormatter.__init__c             C   s"   |  j | j7  _ |  jd7  _d S )N   )rE   r@   rF   )r"   r)   r)   r*   _indent   s    zHelpFormatter._indentc             C   s"   |  j | j8  _ |  jd8  _d S )NrU   )rE   r@   rF   )r"   r)   r)   r*   _dedent   s    zHelpFormatter._dedentc               @   s   e Zd ZdddZdd ZdS )zHelpFormatter._SectionNc             C   s   || _ || _|| _g | _d S )N)	formatterparentheadingr.   )r"   rX   rY   rZ   r)   r)   r*   rT      s    zHelpFormatter._Section.__init__c             C   s   | j d k	r| jj  | jj}|dd | jD }| j d k	rD| jj  |sLdS | jtk	rz| jd k	rz| jj}d|d| jf }nd}|d||dgS )Nc             S   s   g | ]\}}|| qS r)   r)   ).0funcargsr)   r)   r*   
<listcomp>   s    z6HelpFormatter._Section.format_help.<locals>.<listcomp> z%*s%s:

)	rY   rX   rV   _join_partsr.   rW   rZ   r   rE   )r"   r!   	item_helpcurrent_indentrZ   r)   r)   r*   format_help   s    



z"HelpFormatter._Section.format_help)N)r   r/   r0   rT   rd   r)   r)   r)   r*   rH      s   
rH   c             C   s   | j jj||f d S )N)rJ   r.   r   )r"   r\   r]   r)   r)   r*   	_add_item   s    zHelpFormatter._add_itemc             C   s0   | j   | j| | j|}| j|jg  || _d S )N)rV   rH   rJ   re   rd   )r"   rZ   sectionr)   r)   r*   start_section   s    zHelpFormatter.start_sectionc             C   s   | j j| _ | j  d S )N)rJ   rY   rW   )r"   r)   r)   r*   end_section   s    
zHelpFormatter.end_sectionc             C   s$   |t k	r |d k	r | j| j|g d S )N)r   re   _format_text)r"   textr)   r)   r*   add_text   s    zHelpFormatter.add_textc             C   s&   |t k	r"||||f}| j| j| d S )N)r   re   _format_usage)r"   usageactionsgroupsprefixr]   r)   r)   r*   	add_usage   s    zHelpFormatter.add_usagec             C   sz   |j tk	rv| j}||g}x | j|D ]}|j|| q&W tdd |D }|| j }t| j|| _| j| j	|g d S )Nc             S   s   g | ]}t |qS r)   )len)r[   sr)   r)   r*   r^   
  s    z.HelpFormatter.add_argument.<locals>.<listcomp>)
helpr   _format_action_invocation_iter_indented_subactionsr   rC   rE   rG   re   _format_action)r"   actionget_invocationinvocations	subactioninvocation_lengthaction_lengthr)   r)   r*   add_argument   s    


zHelpFormatter.add_argumentc             C   s   x|D ]}| j | qW d S )N)r~   )r"   rn   rx   r)   r)   r*   add_arguments  s    
zHelpFormatter.add_argumentsc             C   s.   | j j }|r*| jjd|}|jdd }|S )Nz

r`   )rI   rd   rO   substrip)r"   rt   r)   r)   r*   rd     s
    
zHelpFormatter.format_helpc             C   s   dj dd |D S )Nr_   c             S   s   g | ]}|r|t k	r|qS r)   )r   )r[   partr)   r)   r*   r^   !  s   z-HelpFormatter._join_parts.<locals>.<listcomp>)r!   )r"   part_stringsr)   r)   r*   ra      s    
zHelpFormatter._join_partsc                s  |d krt d}|d k	r,|t| jd }n|d krN| rNdt| jd }n|d krdt| jd }g }g }x(|D ] }|jr|j| qv|j| qvW | j}	|	|| |}
djdd ||
gD }| j| j  t	|t	|  krd}|	||}|	||}t
j||}t
j||}d fdd		}t	|t	| d
  krdt	|t	| d  }|r||g| ||}|j||| n |r||g| ||}n|g}nZdt	| }|| }|||}t	|dkrg }|j||| |j||| |g| }dj|}d||f S )Nzusage: )rP   z%(prog)s c             S   s   g | ]}|r|qS r)   r)   )r[   rs   r)   r)   r*   r^   A  s    z/HelpFormatter._format_usage.<locals>.<listcomp>z%\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+c                s   g }g }|d k	rt |d }nt |d }xb| D ]Z}|d t |  krp|rp|j|dj|  g }t |d }|j| |t |d 7 }q0W |r|j|dj|  |d k	r|d t |d  |d< |S )NrU   r   r   )rr   r   r!   )partsindentrp   lineslineline_lenr   )
text_widthr)   r*   	get_linesU  s"    

z.HelpFormatter._format_usage.<locals>.get_linesg      ?rU   r`   z%s%s

)N)_dictr?   option_stringsr   _format_actions_usager!   rD   rE   rr   rK   findallextend)r"   rm   rn   ro   rp   rP   	optionalspositionalsrx   formataction_usagepart_regexp	opt_usage	pos_usage	opt_parts	pos_partsr   r   r   r   r)   )r   r*   rl   %  sV    






zHelpFormatter._format_usagec             C   s  t  }i }x|D ]}y|j|jd }W n tk
r>   wY qX |t|j }||| |jkrx|jD ]}|j| qhW |js||kr||  d7  < nd||< d||< n*||kr||  d7  < nd||< d||< xt|d |D ]}	d	||	< qW qW g }
x2t|D ]$\}	}|j	t
krj|
jd  |j|	d	krF|j|	 n"|j|	d d	kr.|j|	d  n|js| j|}| j||}||kr|d dkr|d dkr|dd }|
j| nh|jd }|jdkrd
| }n"| j|}| j||}d||f }|j r$||kr$d| }|
j| q
W x(t|ddD ]}	||	 g|
|	|	< qBW djdd |
D }d}d}tjd| d|}tjd| d|}tjd||f d|}tjdd|}|j }|S )Nr   z [[]z (()rU   |z%sz%s %sz[%s]T)reverser   c             S   s   g | ]}|d k	r|qS )Nr)   )r[   itemr)   r)   r*   r^     s    z7HelpFormatter._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	enumeratert   r   r   getpopr   #_get_default_metavar_for_positional_format_argsnargs!_get_default_metavar_for_optionalr,   r!   rK   r   r   )r"   rn   ro   group_actionsinsertsgroupstartendrx   ir   defaultr   option_stringargs_stringrj   opencloser)   r)   r*   r     sr    







z#HelpFormatter._format_actions_usagec             C   sF   d|kr|t | jd }t| j| j d}d| j }| j|||d S )Nz%(prog))rP      r   z

)r   r?   rC   rD   rE   
_fill_text)r"   rj   r   r   r)   r)   r*   ri     s
    
zHelpFormatter._format_textc             C   sB  t | jd | j}t| j| d}|| j d }| j|}|jsV| jd|f}d| }n@t||kr~| jd||f}d| }d}n| jd|f}d| }|}|g}|jr| j	|}	| j
|	|}
|jd|d|
d f  x@|
dd  D ]}|jd|d|f  qW n|jds|jd x$| j|D ]}|j| j| qW | j|S )	Nr5   r   r_   z%*s%s
z	%*s%-*s  r   rU   r`   )rB   rG   rA   rC   rD   rE   ru   rt   rr   _expand_help_split_linesr   endswithrv   rw   ra   )r"   rx   help_position
help_widthaction_widthaction_headertupindent_firstr   	help_text
help_linesr   r{   r)   r)   r*   rw     s6    




zHelpFormatter._format_actionc             C   s   |j s&| j|}| j||d\}|S g }|jdkrB|j|j  n8| j|}| j||}x |j D ]}|jd||f  q`W dj|S d S )NrU   r   z%s %sz, )	r   r   _metavar_formatterr   r   r   r   r   r!   )r"   rx   r   metavarr   r   r   r)   r)   r*   ru     s    


z'HelpFormatter._format_action_invocationc                sP   |j d k	r|j  n.|jd k	r<dd |jD }ddj|  n|  fdd}|S )Nc             S   s   g | ]}t |qS r)   )str)r[   choicer)   r)   r*   r^   8  s    z4HelpFormatter._metavar_formatter.<locals>.<listcomp>z{%s},c                s   t  tr S  f|  S d S )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   4  s    

z HelpFormatter._metavar_formatterc             C   s   | j ||}|jd kr$d|d }n|jtkr<d|d }n|jtkrTd|d }nh|jtkrld|d }nP|jtkr|d}n@|jtkrd|d }n(d	d
 t|jD }dj|||j }|S )Nz%srU   z[%s]z[%s [%s ...]]r5   z%s [%s ...]z...z%s ...c             S   s   g | ]}d qS )z%sr)   )r[   r   r)   r)   r*   r^   S  s    z.HelpFormatter._format_args.<locals>.<listcomp>r   )	r   r   r   r   r   r   r   r   r!   )r"   rx   r   get_metavarr   formatsr)   r)   r*   r   D  s     





zHelpFormatter._format_argsc             C   s   t t|| jd}x"t|D ]}|| tkr||= qW x,t|D ] }t|| dr@|| j||< q@W |jdd k	rdjdd |d D }||d< | j	|| S )N)rP   r   r   z, c             S   s   g | ]}t |qS r)   )r   )r[   cr)   r)   r*   r^   `  s    z.HelpFormatter._expand_help.<locals>.<listcomp>)
r   varsr?   listr   hasattrr   r   r!   _get_help_string)r"   rx   paramsr'   choices_strr)   r)   r*   r   W  s    
zHelpFormatter._expand_helpc             c   s@   y
|j }W n tk
r   Y nX | j  | E d H  | j  d S )N)_get_subactionsAttributeErrorrV   rW   )r"   rx   get_subactionsr)   r)   r*   rv   d  s    
z'HelpFormatter._iter_indented_subactionsc             C   s   | j jd|j }tj||S )Nr   )rN   r   r   	_textwrapwrap)r"   rj   rS   r)   r)   r*   r   n  s    zHelpFormatter._split_linesc             C   s$   | j jd|j }tj||||dS )Nr   )initial_indentsubsequent_indent)rN   r   r   r   fill)r"   rj   rS   r   r)   r)   r*   r   r  s    
zHelpFormatter._fill_textc             C   s   |j S )N)rt   )r"   rx   r)   r)   r*   r   w  s    zHelpFormatter._get_help_stringc             C   s
   |j j S )N)destupper)r"   rx   r)   r)   r*   r   z  s    z/HelpFormatter._get_default_metavar_for_optionalc             C   s   |j S )N)r   )r"   rx   r)   r)   r*   r   }  s    z1HelpFormatter._get_default_metavar_for_positional)r5   r6   N)N)r   r/   r0   rT   rV   rW   objectrH   re   rg   rh   rk   rq   r~   r   rd   ra   rl   r   ri   rw   ru   r   r   r   rv   r   r   r   r   r   r)   r)   r)   r*   r      s:   	  

`a/
c               @   s   e Zd Zdd ZdS )r   c                s    dj  fdd|jddD S )Nr_   c             3   s   | ]} | V  qd S )Nr)   )r[   r   )r   r)   r*   	<genexpr>  s    z9RawDescriptionHelpFormatter._fill_text.<locals>.<genexpr>T)keepends)r!   
splitlines)r"   rj   rS   r   r)   )r   r*   r     s    z&RawDescriptionHelpFormatter._fill_textN)r   r/   r0   r   r)   r)   r)   r*   r     s   c               @   s   e Zd Zdd ZdS )r   c             C   s   |j  S )N)r   )r"   rj   rS   r)   r)   r*   r     s    z!RawTextHelpFormatter._split_linesN)r   r/   r0   r   r)   r)   r)   r*   r     s   c               @   s   e Zd Zdd ZdS )r   c             C   s>   |j }d|j kr:|jtk	r:ttg}|js2|j|kr:|d7 }|S )Nz
%(default)z (default: %(default)s))rt   r   r   r   r   r   r   )r"   rx   rt   defaulting_nargsr)   r)   r*   r     s    

z.ArgumentDefaultsHelpFormatter._get_help_stringN)r   r/   r0   r   r)   r)   r)   r*   r     s   c               @   s   e Zd Zdd Zdd ZdS )r	   c             C   s   |j jS )N)r   r   )r"   rx   r)   r)   r*   r     s    z:MetavarTypeHelpFormatter._get_default_metavar_for_optionalc             C   s   |j jS )N)r   r   )r"   rx   r)   r)   r*   r     s    z<MetavarTypeHelpFormatter._get_default_metavar_for_positionalN)r   r/   r0   r   r   r)   r)   r)   r*   r	     s   c             C   sN   | d krd S | j rdj| j S | jd tfkr2| jS | jd tfkrF| jS d S d S )N/)r   r!   r   r   r   )argumentr)   r)   r*   _get_action_name  s    r   c               @   s   e Zd Zdd Zdd ZdS )r   c             C   s   t || _|| _d S )N)r   argument_namemessage)r"   r   r   r)   r)   r*   rT     s    
zArgumentError.__init__c             C   s(   | j d krd}nd}|t| j| j d S )Nz%(message)sz'argument %(argument_name)s: %(message)s)r   r   )r   r   r   )r"   r   r)   r)   r*   __str__  s
    
zArgumentError.__str__N)r   r/   r0   rT   r   r)   r)   r)   r*   r     s   c               @   s   e Zd ZdS )r   N)r   r/   r0   r)   r)   r)   r*   r     s   c               @   s(   e Zd Zd	ddZdd Zd
ddZdS )r   NFc             C   s@   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	d S )N)
r   r   r   constr   r   r   r   rt   r   )r"   r   r   r   r   r   r   r   r   rt   r   r)   r)   r*   rT     s    zAction.__init__c          	      s(   ddddddddd	g	} fd
d|D S )Nr   r   r   r   r   r   r   rt   r   c                s   g | ]}|t  |fqS r)   )r1   )r[   r'   )r"   r)   r*   r^   ;  s    z&Action._get_kwargs.<locals>.<listcomp>r)   )r"   namesr)   )r"   r*   r   /  s    zAction._get_kwargsc             C   s   t tdd S )Nz.__call__() not defined)NotImplementedErrorr   )r"   parserr3   valuesr   r)   r)   r*   __call__=  s    zAction.__call__)NNNNNFNN)N)r   r/   r0   rT   r   r   r)   r)   r)   r*   r     s   6       
c                   s(   e Zd Zd fdd	ZdddZ  ZS )	_StoreActionNFc                sT   |dkrt d|d k	r,|tkr,t dt tt| j|||||||||	|
d
 d S )Nr   znargs 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   r   r   r   rt   r   )r>   r   superr   rT   )r"   r   r   r   r   r   r   r   r   rt   r   )	__class__r)   r*   rT   C  s    
z_StoreAction.__init__c             C   s   t || j| d S )N)r2   r   )r"   r   r3   r   r   r)   r)   r*   r   `  s    z_StoreAction.__call__)NNNNNFNN)N)r   r/   r0   rT   r   __classcell__r)   r)   )r   r*   r   A  s          r   c                   s(   e Zd Zd fdd	ZdddZ  ZS )	_StoreConstActionNFc          	      s"   t t| j||d||||d d S )Nr   )r   r   r   r   r   r   rt   )r   r   rT   )r"   r   r   r   r   r   rt   r   )r   r)   r*   rT   f  s    
z_StoreConstAction.__init__c             C   s   t || j| j d S )N)r2   r   r   )r"   r   r3   r   r   r)   r)   r*   r   w  s    z_StoreConstAction.__call__)NFNN)N)r   r/   r0   rT   r   r   r)   r)   )r   r*   r   d  s
      
r   c                   s   e Zd Zd fdd	Z  ZS )_StoreTrueActionFNc                s    t t| j||d|||d d S )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)r   r/   r0   rT   r   r)   r)   )r   r*   r   {  s     r   c                   s   e Zd Zd fdd	Z  ZS )_StoreFalseActionTFNc                s    t t| j||d|||d d S )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)r   r/   r0   rT   r   r)   r)   )r   r*   r     s     r   c                   s(   e Zd Zd fdd	ZdddZ  ZS )	_AppendActionNFc                sT   |dkrt d|d k	r,|tkr,t dt tt| j|||||||||	|
d
 d S )Nr   znargs 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   r   r   r   rt   r   )r>   r   r   r   rT   )r"   r   r   r   r   r   r   r   r   rt   r   )r   r)   r*   rT     s    
z_AppendAction.__init__c             C   s0   t jt|| jg }|j| t|| j| d S )N)_copycopyr4   r   r   r2   )r"   r   r3   r   r   r.   r)   r)   r*   r     s    
z_AppendAction.__call__)NNNNNFNN)N)r   r/   r0   rT   r   r   r)   r)   )r   r*   r     s          r   c                   s(   e Zd Zd fdd	ZdddZ  ZS )	_AppendConstActionNFc          
      s$   t t| j||d|||||d d S )Nr   )r   r   r   r   r   r   rt   r   )r   r  rT   )r"   r   r   r   r   r   rt   r   )r   r)   r*   rT     s    
z_AppendConstAction.__init__c             C   s2   t jt|| jg }|j| j t|| j| d S )N)r   r  r4   r   r   r   r2   )r"   r   r3   r   r   r.   r)   r)   r*   r     s    z_AppendConstAction.__call__)NFNN)N)r   r/   r0   rT   r   r   r)   r)   )r   r*   r    s
      r  c                   s(   e Zd Zd fdd	ZdddZ  ZS )	_CountActionNFc                s    t t| j||d|||d d S )Nr   )r   r   r   r   r   rt   )r   r  rT   )r"   r   r   r   r   rt   )r   r)   r*   rT     s    
z_CountAction.__init__c             C   s$   t || jdd }t|| j| d S )Nr   rU   )r4   r   r2   )r"   r   r3   r   r   	new_countr)   r)   r*   r     s    z_CountAction.__call__)NFN)N)r   r/   r0   rT   r   r   r)   r)   )r   r*   r    s     	r  c                   s.   e Zd Zeedf fdd	ZdddZ  ZS )_HelpActionNc                s   t t| j|||d|d d S )Nr   )r   r   r   r   rt   )r   r  rT   )r"   r   r   r   rt   )r   r)   r*   rT     s    
z_HelpAction.__init__c             C   s   |j   |j  d S )N)
print_helpexit)r"   r   r3   r   r   r)   r)   r*   r     s    z_HelpAction.__call__)N)r   r/   r0   r   rT   r   r   r)   r)   )r   r*   r    s   r  c                   s0   e Zd Zdeedf fdd	ZdddZ  ZS )_VersionActionNz&show program's version number and exitc                s$   t t| j|||d|d || _d S )Nr   )r   r   r   r   rt   )r   r  rT   version)r"   r   r	  r   r   rt   )r   r)   r*   rT     s    
z_VersionAction.__init__c             C   sD   | j }|d kr|j }|j }|j| |j|j tj |j  d S )N)r	  _get_formatterrk   _print_messagerd   _sysstdoutr  )r"   r   r3   r   r   r	  rX   r)   r)   r*   r     s    
z_VersionAction.__call__)N)r   r/   r0   r   rT   r   r   r)   r)   )r   r*   r    s
   	r  c                   sN   e Zd ZG dd deZeddf fdd	Zdd Zdd	 Zdd
dZ	  Z
S )_SubParsersActionc                   s   e Zd Z fddZ  ZS )z&_SubParsersAction._ChoicesPseudoActionc                s@   | }}|r|ddj | 7 }ttj| }|jg |||d d S )Nz (%s)z, )r   r   rt   r   )r!   r   r  _ChoicesPseudoActionrT   )r"   r'   aliasesrt   r   r   sup)r   r)   r*   rT   "  s    
z/_SubParsersAction._ChoicesPseudoAction.__init__)r   r/   r0   rT   r   r)   r)   )r   r*   r     s   r  Nc                s>   || _ || _tj | _g | _tt| j||t	| j||d d S )N)r   r   r   r   rt   r   )
_prog_prefix_parser_class_collectionsOrderedDict_name_parser_map_choices_actionsr   r  rT   r   )r"   r   rP   parser_classr   rt   r   )r   r)   r*   rT   *  s    

z_SubParsersAction.__init__c             K   s   |j dd kr d| j|f |d< |jdf }d|krX|jd}| j|||}| jj| | jf |}|| j|< x|D ]}|| j|< qtW |S )NrP   z%s %sr  rt   )r   r  r   r  r  r   r  r  )r"   r'   kwargsr  rt   choice_actionr   aliasr)   r)   r*   
add_parser?  s    


z_SubParsersAction.add_parserc             C   s   | j S )N)r  )r"   r)   r)   r*   r   V  s    z!_SubParsersAction._get_subactionsc             C   s   |d }|dd  }| j tk	r,t|| j | y| j| }W n< tk
rv   |dj| jd}td| }t| |Y nX |j|d \}	}x$t	|	j
 D ]\}
}t||
| qW |rt	|jtg  t|tj| d S )Nr   rU   z, )parser_namer   z5unknown parser %(parser_name)r (choices: %(choices)s))r   r   r2   r  r=   r!   r   r   parse_known_argsr   r.   
setdefault_UNRECOGNIZED_ARGS_ATTRr1   r   )r"   r   r3   r   r   r  r$   r]   msgsubnamespacekeyr(   r)   r)   r*   r   Y  s"    
	z_SubParsersAction.__call__)N)r   r/   r0   r   r  r   rT   r  r   r   r   r)   r)   )r   r*   r    s   r  c               @   s&   e Zd ZdddZdd Zdd	 ZdS )r   rrU   Nc             C   s   || _ || _|| _|| _d S )N)_mode_bufsize	_encoding_errors)r"   modebufsizeencodingerrorsr)   r)   r*   rT     s    zFileType.__init__c             C   s   |dkr>d| j krtjS d| j kr(tjS td| j  }t|yt|| j | j| j| j	S  t
k
r } ztd}t|||f W Y d d }~X nX d S )N-r$  wzargument "-" with mode %rzcan't open '%s': %s)r%  r  stdinr  r   r>   r   r&  r'  r(  OSErrorr   )r"   stringr!  er   r)   r)   r*   r     s    

zFileType.__call__c             C   sT   | j | jf}d| jfd| jfg}djdd |D dd |D  }dt| j|f S )Nr+  r,  z, c             S   s   g | ]}|dkrt |qS )rU   r   )r   )r[   r&   r)   r)   r*   r^     s    z%FileType.__repr__.<locals>.<listcomp>c             S   s$   g | ]\}}|d k	rd||f qS )Nz%s=%rr)   )r[   kwr&   r)   r)   r*   r^     s    z%s(%s))r%  r&  r'  r(  r!   r   r   )r"   r]   r  args_strr)   r)   r*   r+     s
    zFileType.__repr__r   )r$  r   NN)r   r/   r0   rT   r   r+   r)   r)   r)   r*   r   ~  s   
c               @   s$   e Zd Zdd Zdd Zdd ZdS )r
   c             K   s"   x|D ]}t | |||  qW d S )N)r2   )r"   r  r'   r)   r)   r*   rT     s    
zNamespace.__init__c             C   s   t |tstS t| t|kS )N)r   r
   NotImplementedr   )r"   otherr)   r)   r*   __eq__  s    
zNamespace.__eq__c             C   s
   || j kS )N)r-   )r"   r#  r)   r)   r*   __contains__  s    zNamespace.__contains__N)r   r/   r0   rT   r7  r8  r)   r)   r)   r*   r
     s   c                   s   e Zd Z f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 Z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  ZS )(_ActionsContainerc                s  t t| j  || _|| _|| _|| _i | _| jdd t	 | jddt	 | jddt
 | jddt | jddt | jddt | jddt | jddt | jdd	t | jdd
t | jddt | j  g | _i | _g | _g | _i | _tjd| _g | _d S )Nrx   storestore_const
store_truestore_falser   append_constcountrt   r	  parsersz^-\d+$|^-\d*\.\d+$)r   r9  rT   descriptionargument_defaultprefix_charsconflict_handler_registriesregisterr   r   r   r   r   r  r  r  r  r  _get_handler_actions_option_string_actions_action_groups_mutually_exclusive_groups	_defaultsrK   rL   _negative_number_matcher_has_negative_number_optionals)r"   rA  rC  rB  rD  )r   r)   r*   rT     s2    z_ActionsContainer.__init__c             C   s   | j j|i }|||< d S )N)rE  r  )r"   registry_namer(   r   registryr)   r)   r*   rF    s    z_ActionsContainer.registerNc             C   s   | j | j||S )N)rE  r   )r"   rO  r(   r   r)   r)   r*   _registry_get  s    z_ActionsContainer._registry_getc             K   s6   | j j| x$| jD ]}|j|kr||j |_qW d S )N)rL  updaterH  r   r   )r"   r  rx   r)   r)   r*   set_defaults  s    
z_ActionsContainer.set_defaultsc             C   s8   x(| j D ]}|j|kr|jd k	r|jS qW | jj|d S )N)rH  r   r   rL  r   )r"   r   rx   r)   r)   r*   get_default  s    
z_ActionsContainer.get_defaultc             O   s0  | j }| s(t|dkrJ|d d |krJ|r<d|kr<td| j||}n| j||}d|kr|d }|| jkr| j| |d< n| jd k	r| j|d< | j|}t|std|f |f |}| j	d|j
|j
}t|std|f t| d	r&y| j j|d  W n tk
r$   td
Y nX | j|S )NrU   r   r   z+dest supplied twice for positional argumentr   zunknown action "%s"r   z%r is not callabler
  z,length of metavar tuple does not match nargs)rC  rr   r>   _get_positional_kwargs_get_optional_kwargsrL  rB  _pop_action_classcallablerQ  r   r   r
  r   	TypeError_add_action)r"   r]   r  charsr   action_classrx   	type_funcr)   r)   r*   r~     s2    	"




z_ActionsContainer.add_argumentc             O   s    t | f||}| jj| |S )N)_ArgumentGrouprJ  r   )r"   r]   r  r   r)   r)   r*   add_argument_groupJ  s    z$_ActionsContainer.add_argument_groupc             K   s   t | f|}| jj| |S )N)_MutuallyExclusiveGrouprK  r   )r"   r  r   r)   r)   r*   add_mutually_exclusive_groupO  s    z._ActionsContainer.add_mutually_exclusive_groupc             C   sh   | j | | jj| | |_x|jD ]}|| j|< q$W x,|jD ]"}| jj|r>| js>| jjd q>W |S )NT)	_check_conflictrH  r   	containerr   rI  rM  matchrN  )r"   rx   r   r)   r)   r*   rZ  T  s    
z_ActionsContainer._add_actionc             C   s   | j j| d S )N)rH  remove)r"   rx   r)   r)   r*   _remove_actioni  s    z _ActionsContainer._remove_actionc             C   s   i }x8| j D ].}|j|kr0td}t||j |||j< qW i }xR|j D ]H}|j|krt| j|j|j|jd||j< x|jD ]}||j ||< q|W qJW x4|jD ]*}| j	|j
d}x|jD ]}|||< qW qW x |jD ]}|j|| j| qW d S )Nz.cannot merge actions - two groups are named %r)titlerA  rD  )r   )rJ  rg  r   r>   r_  rA  rD  r   rK  ra  r   rH  r   rZ  )r"   rc  title_group_mapr   r!  	group_maprx   mutex_groupr)   r)   r*   _add_container_actionsl  s,    


z(_ActionsContainer._add_container_actionsc             K   s^   d|krt d}t||jdttgkr2d|d< |jdtkrPd|krPd|d< t||g dS )Nr   z1'required' is an invalid argument for positionalsr   Tr   )r   r   )r   rY  r   r   r   r   )r"   r   r  r!  r)   r)   r*   rU    s    z(_ActionsContainer._get_positional_kwargsc       	      O   s   g }g }xv|D ]n}|d | j kr@|| j d}td}t|| |j| |d | j krt|dkr|d | j kr|j| qW |jdd }|d kr|r|d }n|d }|j| j }|std}t|| |jdd}t|||d	S )
Nr   )optionrC  zNinvalid option string %(option)r: must start with a character %(prefix_chars)rrU   r   z%dest= is required for options like %rr-  r   )r   r   )	rC  r   r>   r   rr   r   lstripreplacer   )	r"   r]   r  r   long_option_stringsr   r!  r   dest_option_stringr)   r)   r*   rV    s0    



z&_ActionsContainer._get_optional_kwargsc             C   s   |j d|}| jd||S )Nrx   )r   rQ  )r"   r  r   rx   r)   r)   r*   rW    s    z#_ActionsContainer._pop_action_classc             C   sD   d| j  }y
t| |S  tk
r>   td}t|| j  Y nX d S )Nz_handle_conflict_%sz%invalid conflict_resolution value: %r)rD  r1   r   r   r>   )r"   handler_func_namer!  r)   r)   r*   rG    s    

z_ActionsContainer._get_handlerc             C   sP   g }x0|j D ]&}|| jkr| j| }|j||f qW |rL| j }||| d S )N)r   rI  r   rG  )r"   rx   confl_optionalsr   confl_optionalrD  r)   r)   r*   rb    s    

z!_ActionsContainer._check_conflictc             C   s6   t ddt|}djdd |D }t||| d S )Nzconflicting option string: %szconflicting option strings: %sz, c             S   s   g | ]\}}|qS r)   r)   )r[   r   rx   r)   r)   r*   r^     s   z<_ActionsContainer._handle_conflict_error.<locals>.<listcomp>)r   rr   r!   r   )r"   rx   conflicting_actionsr   conflict_stringr)   r)   r*   _handle_conflict_error  s    


z(_ActionsContainer._handle_conflict_errorc             C   sB   x<|D ]4\}}|j j| | jj|d  |j s|jj| qW d S )N)r   re  rI  r   rc  rf  )r"   rx   rt  r   r)   r)   r*   _handle_conflict_resolve  s
    z*_ActionsContainer._handle_conflict_resolve)N)N)r   r/   r0   rT   rF  rQ  rS  rT  r~   r_  ra  rZ  rf  rk  rU  rV  rW  rG  rb  rv  rw  r   r)   r)   )r   r*   r9    s$   4
	
/($
		r9  c                   s6   e Zd Zd fdd	Z fddZ fddZ  ZS )	r^  Nc                s   |j }|d|j |d|j |d|j tt| j}|f d|i| || _g | _|j	| _	|j
| _
|j| _|j| _|j| _|j| _d S )NrD  rC  rB  rA  )r  rD  rC  rB  r   r^  rT   rg  r   rE  rH  rI  rL  rN  rK  )r"   rc  rg  rA  r  rR  
super_init)r   r)   r*   rT     s    z_ArgumentGroup.__init__c                s    t t| j|}| jj| |S )N)r   r^  rZ  r   r   )r"   rx   )r   r)   r*   rZ    s    z_ArgumentGroup._add_actionc                s    t t| j| | jj| d S )N)r   r^  rf  r   re  )r"   rx   )r   r)   r*   rf    s    z_ArgumentGroup._remove_action)NN)r   r/   r0   rT   rZ  rf  r   r)   r)   )r   r*   r^    s   r^  c                   s.   e Zd Zd fdd	Zdd Zdd Z  ZS )	r`  Fc                s    t t| j| || _|| _d S )N)r   r`  rT   r   
_container)r"   rc  r   )r   r)   r*   rT     s    z _MutuallyExclusiveGroup.__init__c             C   s2   |j rtd}t|| jj|}| jj| |S )Nz-mutually exclusive arguments must be optional)r   r   r>   ry  rZ  r   r   )r"   rx   r!  r)   r)   r*   rZ  $  s    z#_MutuallyExclusiveGroup._add_actionc             C   s   | j j| | jj| d S )N)ry  rf  r   re  )r"   rx   r)   r)   r*   rf  ,  s    z&_MutuallyExclusiveGroup._remove_action)F)r   r/   r0   rT   rZ  rf  r   r)   r)   )r   r*   r`    s   r`  c                   s  e Zd Zddddg eddddddf fdd	Zdd Zd	d
 Zdd Zdd Zdd Z	d<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" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd>d1d2Zd?d3d4Zd@d5d6ZdAd8d9Zd:d; Z  ZS )Br   Nr-  errorTc                s&  t t| j}||||	|
d |d kr6tjjtjd }|| _|| _	|| _
|| _|| _|| _|| _| j}|td| _|td| _d | _dd }| jdd | d|krdn|d }| jr| j|d	 |d
 d dttdd xD|D ]<}| j| y
|j}W n tk
r   Y qX | jj| qW d S )N)rA  rC  rB  rD  r   zpositional argumentszoptional argumentsc             S   s   | S )Nr)   )r1  r)   r)   r*   identityj  s    z)ArgumentParser.__init__.<locals>.identityr   r-  hr5   rt   zshow this help message and exit)rx   r   rt   )r   r   rT   r;   pathbasenamer  argvrP   rm   epilogformatter_classfromfile_prefix_charsadd_helpallow_abbrevr_  r   _positionals
_optionals_subparsersrF  r~   r   rk  rL  r   rR  )r"   rP   rm   rA  r  parentsr  rC  r  rB  rD  r  r  	superinit	add_groupr{  default_prefixrY   defaults)r   r)   r*   rT   D  sB    


zArgumentParser.__init__c                s"   ddddddg} fdd|D S )	NrP   rm   rA  r  rD  r  c                s   g | ]}|t  |fqS r)   )r1   )r[   r'   )r"   r)   r*   r^     s    z.ArgumentParser._get_kwargs.<locals>.<listcomp>r)   )r"   r   r)   )r"   r*   r     s    zArgumentParser._get_kwargsc       	      K   s   | j d k	r| jtd |jdt|  d|ks8d|krht|jdd}t|jdd }| j||| _ n| j| _ |jdd kr| j	 }| j
 }| j}|j| j||d |j j |d< | j|d}|f d	g i|}| j j| |S )
Nz(cannot have multiple subparser argumentsr  rg  rA  subcommandsrP   r_   r@  r   )r  rz  r   r  r   r   r_  r  r   r
  _get_positional_actionsrK  rq   rm   rd   r   rW  rZ  )	r"   r  rg  rA  rX   r   ro   parsers_classrx   r)   r)   r*   add_subparsers  s$    
zArgumentParser.add_subparsersc             C   s$   |j r| jj| n| jj| |S )N)r   r  rZ  r  )r"   rx   r)   r)   r*   rZ    s    zArgumentParser._add_actionc             C   s   dd | j D S )Nc             S   s   g | ]}|j r|qS r)   )r   )r[   rx   r)   r)   r*   r^     s   z8ArgumentParser._get_optional_actions.<locals>.<listcomp>)rH  )r"   r)   r)   r*   _get_optional_actions  s    z$ArgumentParser._get_optional_actionsc             C   s   dd | j D S )Nc             S   s   g | ]}|j s|qS r)   )r   )r[   rx   r)   r)   r*   r^     s   z:ArgumentParser._get_positional_actions.<locals>.<listcomp>)rH  )r"   r)   r)   r*   r    s    z&ArgumentParser._get_positional_actionsc             C   s4   | j ||\}}|r0td}| j|dj|  |S )Nzunrecognized arguments: %sr   )r  r   rz  r!   )r"   r]   r3   r  r!  r)   r)   r*   
parse_args  s
    zArgumentParser.parse_argsc             C   s  |d krt jdd  }nt|}|d kr.t }x>| jD ]4}|jtk	r6t||js6|jtk	r6t	||j|j q6W x*| j
D ] }t||svt	||| j
|  qvW y<| j||\}}t|tr|jt|t t|t ||fS  tk
r   t j d }| jt| Y nX d S )NrU   )r  r  r   r
   rH  r   r   r   r   r2   rL  _parse_known_argsr   r   r1   delattrr   exc_inforz  r   )r"   r]   r3   rx   r   errr)   r)   r*   r    s,    




zArgumentParser.parse_known_argsc                s"  	j d k	r	ji  x`	jD ]V}|j}xJt|jD ]<\}} j|g }|j|d |  |j||d d   q6W q W i g }t}	xnt|	D ]b\}}
|
dkr|jd xF|	D ]}
|jd qW q	j	|
}|d krd}n||< d}|j| qW dj
|t t d 	fdd		fd	d
}	j 	fdd}g d
rpt}nd}x|
|krt
fddD }
|kr|
}|
kr|
qvn|

kr
| }j| |
|

qvW |
}j|d   g }x	jD ]|}|kr|jr>|jt| nT|jd k	rt|jtrt|jr|jt|jkrt|j	j||j qW |r	jtddj
|  xb	jD ]X}|jrxH|jD ]}|krP qW dd |jD }td}	j|dj
|  qW fS )NrU   z--r-  AOr_   c                s   j |  j| |}|| jk	rfj |  x: j| g D ]*}|kr8td}t|}t| || q8W |tk	r|| || d S )Nznot allowed with argument %s)r   _get_valuesr   r   r   r   r   r   )rx   argument_stringsr   argument_valuesconflict_actionr!  action_name)action_conflictsr3   seen_actionsseen_non_default_actionsr"   r)   r*   take_action  s    


z5ArgumentParser._parse_known_args.<locals>.take_actionc                s  |  }|\}}}j }g }x>|d kr>j |   | d S |d k	r||d}j}|dkr|d |kr|j|g |f |d }	|	|d  }|dd  pd }
j}||kr|| }|
}ntd}t||| n@|dkr| d }|g}|j|||f P ntd}t||| q | d }|d  }|||}|| } || }|j|||f P q W x |D ]\}}}||| qdW |S )NrU   r  r   zignored explicit argument %r)_match_argumentr   rC  rI  r   r   )start_indexoption_tuplerx   r   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_optional3  sN    



z:ArgumentParser._parse_known_args.<locals>.consume_optionalc                sr   j }| d  }||}x8t|D ]*\}} | | |  }| |7 } || q(W t|d  d d < | S )N)_match_arguments_partialziprr   )r  match_partialselected_pattern
arg_countsrx   r  r]   )r$   r  r   r"   r  r)   r*   consume_positionals  s    
z=ArgumentParser._parse_known_args.<locals>.consume_positionalsr   c                s   g | ]}| kr|qS r)   r)   )r[   r   )r  r)   r*   r^     s   z4ArgumentParser._parse_known_args.<locals>.<listcomp>z(the following arguments are required: %sz, c             S   s   g | ]}|j tk	rt|qS r)   )rt   r   r   )r[   rx   r)   r)   r*   r^     s   z#one of the arguments %s is requiredr   )Nr   )r  _read_args_from_filesrK  r   r   r  r   iterr   _parse_optionalr!   r   r  rC   rB   rH  r   r   r   r   r   r   r   r1   r2   
_get_valuerz  r   )r"   r$   r3   rj  r   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_actionsrx   r   r   r!  r)   )r  r$   r  r  r3   r  r   r  r  r"   r  r  r*   r    s    





J










z ArgumentParser._parse_known_argsc             C   s   g }x|D ]}| s"|d | j kr.|j| q
ylt|dd  R}g }x2|j j D ]"}x| j|D ]}|j| qdW qTW | j|}|j| W d Q R X W q
 tk
r   t	j
 d }| jt| Y q
X q
W |S )Nr   rU   )r  r   r   readr   convert_arg_line_to_argsr  r   r0  r  r  rz  r   )r"   r$   new_arg_stringsr  	args_filearg_liner&   r  r)   r)   r*   r    s     

z$ArgumentParser._read_args_from_filesc             C   s   |gS )Nr)   )r"   r  r)   r)   r*   r    s    z'ArgumentParser.convert_arg_line_to_argsc             C   st   | j |}tj||}|d krfd tdttdttdi}tdd|j|j }|j|j|}t	||t
|jdS )Nzexpected one argumentzexpected at most one argumentzexpected at least one argumentzexpected %s argumentzexpected %s argumentsrU   )_get_nargs_patternrK   rd  r   r   r   r   r   r   r   rr   r   )r"   rx   r  nargs_patternrd  nargs_errorsr   r!  r)   r)   r*   r    s    

zArgumentParser._match_argumentc                st   g }xjt t|ddD ]V}|d | }dj fdd|D }tj||}|d k	r|jdd |j D  P qW |S )Nr   rU   r_   c                s   g | ]} j |qS r)   )r  )r[   rx   )r"   r)   r*   r^     s   z;ArgumentParser._match_arguments_partial.<locals>.<listcomp>c             S   s   g | ]}t |qS r)   )rr   )r[   r1  r)   r)   r*   r^   !  s    r   )r   rr   r!   rK   rd  r   ro   )r"   rn   r  r   r   actions_slicer  rd  r)   )r"   r*   r    s    
z'ArgumentParser._match_arguments_partialc       
      C   s  |sd S |d | j krd S || jkr8| j| }||d fS t|dkrHd S d|kr~|jdd\}}|| jkr~| j| }|||fS | jr| j|}t|dkrdjdd |D }||d}td}| j||  nt|dkr|\}	|	S | j	j
|r | js d S d	|krd S d |d fS )
Nr   rU   =z, c             S   s   g | ]\}}}|qS r)   r)   )r[   rx   r   r  r)   r)   r*   r^   G  s   z2ArgumentParser._parse_optional.<locals>.<listcomp>)rl  matchesz4ambiguous option: %(option)s could match %(matches)sr   )rC  rI  rr   splitr  _get_option_tuplesr!   r   rz  rM  rd  rN  )
r"   r  rx   r   r  option_tuplesoptionsr]   r!  r  r)   r)   r*   r  '  s>    










zArgumentParser._parse_optionalc       
      C   s0  g }| j }|d |kr~|d |kr~d|kr<|jdd\}}n|}d }x| jD ],}|j|rL| j| }|||f}|j| qLW n|d |ko|d |kr|}d }|d d }|dd  }	xr| jD ]T}||kr| j| }|||	f}|j| q|j|r| j| }|||f}|j| qW n| jtd|  |S )Nr   rU   r  r5   zunexpected option string: %s)rC  r  rI  
startswithr   rz  r   )
r"   r   r   r[  option_prefixr  rx   r   short_option_prefixshort_explicit_argr)   r)   r*   r  b  s8    







z!ArgumentParser._get_option_tuplesc             C   s   |j }|d krd}nX|tkr"d}nJ|tkr0d}n<|tkr>d}n.|tkrLd}n |tkrZd}nddjd	|  }|jr|jdd
}|jdd
}|S )Nz(-*A-*)z(-*A?-*)z	(-*[A-]*)z
(-*A[A-]*)z([-AO]*)z(-*A[-AO]*)z(-*%s-*)z-*r  r_   r-  )	r   r   r   r   r   r   r!   r   rn  )r"   rx   r   r  r)   r)   r*   r    s$    z!ArgumentParser._get_nargs_patternc                sx   j ttgkr2y|jd W n tk
r0   Y nX | rz j tkrz jrP j}n j}t	|t
rxj |}j | n| r j tkr j r jd k	r j}n|}j | nt|dkr j d tgkr|\}j |}j | n j tkr fdd|D }nb j tkrD fdd|D }j |d  n0 fdd|D }x|D ]}j | q^W |S )Nz--rU   c                s   g | ]}j  |qS r)   )r  )r[   v)rx   r"   r)   r*   r^     s    z.ArgumentParser._get_values.<locals>.<listcomp>c                s   g | ]}j  |qS r)   )r  )r[   r  )rx   r"   r)   r*   r^     s    r   c                s   g | ]}j  |qS r)   )r  )r[   r  )rx   r"   r)   r*   r^     s    )r   r   r   re  r>   r   r   r   r   r   r   r  _check_valuer   rr   )r"   rx   r$   r(   r  r  r)   )rx   r"   r*   r    s>    


zArgumentParser._get_valuesc             C   s   | j d|j|j}t|s0td}t||| y||}W n tk
r~   t|jdt|j}tt	j
 d }t||Y nL ttfk
r   t|jdt|j}||d}td}t||| Y nX |S )Nr   z%r is not callabler   rU   )r   r(   z!invalid %(type)s value: %(value)r)rQ  r   rX  r   r   r   r1   r   r   r  r  rY  r>   )r"   rx   r  r]  r!  r   r'   r]   r)   r)   r*   r    s     
zArgumentParser._get_valuec             C   sF   |j d k	rB||j krB|djtt|j d}td}t||| d S )Nz, )r(   r   z3invalid choice: %(value)r (choose from %(choices)s))r   r!   mapr   r   r   )r"   rx   r(   r]   r!  r)   r)   r*   r  	  s
    zArgumentParser._check_valuec             C   s$   | j  }|j| j| j| j |j S )N)r
  rq   rm   rH  rK  rd   )r"   rX   r)   r)   r*   format_usage	  s    zArgumentParser.format_usagec             C   sx   | j  }|j| j| j| j |j| j x:| jD ]0}|j|j	 |j|j |j
|j |j  q0W |j| j |j S )N)r
  rq   rm   rH  rK  rk   rA  rJ  rg   rg  r   r   rh   r  rd   )r"   rX   action_groupr)   r)   r*   rd   	  s    zArgumentParser.format_helpc             C   s   | j | jdS )N)rP   )r  rP   )r"   r)   r)   r*   r
  0	  s    zArgumentParser._get_formatterc             C   s"   |d krt j}| j| j | d S )N)r  r  r  r  )r"   filer)   r)   r*   print_usage6	  s    zArgumentParser.print_usagec             C   s"   |d krt j}| j| j | d S )N)r  r  r  rd   )r"   r  r)   r)   r*   r  ;	  s    zArgumentParser.print_helpc             C   s    |r|d krt j}|j| d S )N)r  stderrwrite)r"   r   r  r)   r)   r*   r  @	  s    zArgumentParser._print_messager   c             C   s    |r| j |tj tj| d S )N)r  r  r  r  )r"   statusr   r)   r)   r*   r  I	  s    zArgumentParser.exitc             C   s0   | j tj | j|d}| jdtd|  d S )N)rP   r   r5   z%(prog)s: error: %(message)s
)r  r  r  rP   r  r   )r"   r   r]   r)   r)   r*   rz  N	  s    	zArgumentParser.error)NN)NN)N)N)N)r   N) r   r/   r0   r   rT   r   r  rZ  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rd   r
  r  r  r  r  rz  r   r)   r)   )r   r*   r   1  sN   4

# w;,,4


	
)5__version____all__collectionsr  r  r   osr;   rerK   sysr  textwrapr   r   r   r   r   r   r   r   r   r   r   r   r   r4   r   r   r   r   r	   r   	Exceptionr   r   r   r   r   r   r   r   r  r  r  r  r  r   r
   r9  r^  r`  r   r)   r)   r)   r*   <module>@   s~   
   n	[#%`6  5"