
    =Og                    b   	 d Z g d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e          Zd Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Zd Z G d de          Z G d de          Z G d de          Z G d  d!e          Z  G d" d#e          Z! G d$ d%e          Z" G d& d'e"          Z# G d( d)e"          Z$ G d* d+e          Z% G d, d-e          Z& G d. d/e          Z' G d0 d1e          Z( G d2 d3e          Z) G d4 d5e          Z* G d6 d7e%          Z+ G d8 d9e          Z, G d: d;e          Z- G d< d=e          Z. G d> d?e.          Z/ G d@ dAe/          Z0 G dB dCee.          Z1dS )Dz1.1)ArgumentParserArgumentErrorArgumentTypeErrorBooleanOptionalActionFileTypeHelpFormatterArgumentDefaultsHelpFormatterRawDescriptionHelpFormatterRawTextHelpFormatterMetavarTypeHelpFormatter	NamespaceActionONE_OR_MOREOPTIONALPARSER	REMAINDERSUPPRESSZERO_OR_MORE    N)gettextngettextz==SUPPRESS==?*+zA......_unrecognized_argsc                   "    e Zd Z	 d Zd Zd ZdS )_AttributeHolderc                    t          |           j        }g }i }|                                 D ]$}|                    t	          |                     %|                                 D ]9\  }}|                                r|                    |d|           4|||<   :|r%|                    dt	          |          z             |dd                    |          dS )N=z**%s(, ))type__name__	_get_argsappendrepr_get_kwargsisidentifierjoin)self	type_namearg_strings	star_argsargnamevalues          !/usr/lib64/python3.11/argparse.py__repr__z_AttributeHolder.__repr__v   s    JJ'		>>## 	* 	*CtCyy))))++-- 	( 	(KD%  "" (""dddEE#:;;;;"'	$ 	9vY7888$99dii&<&<&<&<==    c                 N    t          | j                                                  S N)list__dict__itemsr+   s    r2   r(   z_AttributeHolder._get_kwargs   s    DM''))***r4   c                     g S r6    r:   s    r2   r%   z_AttributeHolder._get_args   s    	r4   N)r$   
__module____qualname__r3   r(   r%   r<   r4   r2   r   r   m   sF        > > >+ + +    r4   r   c                 |    | g S t          |           t          u r
| d d          S dd l}|                    |           S Nr   )r#   r7   copy)r9   rA   s     r2   _copy_itemsrB      sG    }	 E{{dQQQxKKK99Ur4   c                       e Zd Z	 	 	 	 d dZd Zd Z G d de          Zd	 Zd
 Z	d Z
d Zd!dZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )"r         Nc                    |"dd l }|                                j        }|dz  }|| _        || _        t          |t          |dz
  |dz                      | _        || _        d| _	        d| _
        d| _        |                     | d           | _        | j        | _        t          j        dt          j                  | _        t          j        d          | _        d S )Nr   rD      z\s+z\n\n\n+)shutilget_terminal_sizecolumns_prog_indent_incrementminmax_max_help_position_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widthrH   s         r2   __init__zHelpFormatter.__init__   s     =MMM,,..6EQJE
!1"%&7&)%"*6F6J&K&K#M #M "#!]]466 $ 2#&;vsy#A#A #&;z#:#:   r4   c                 P    | xj         | j        z  c_         | xj        dz  c_        d S N   rQ   rL   rR   r:   s    r2   _indentzHelpFormatter._indent   s-     66qr4   c                 P    | xj         | j        z  c_         | xj        dz  c_        d S rb   rd   r:   s    r2   _dedentzHelpFormatter._dedent   s-     66qr4   c                       e Zd ZddZd ZdS )HelpFormatter._SectionNc                 >    || _         || _        || _        g | _        d S r6   )	formatterparentheadingr9   )r+   rk   rl   rm   s       r2   r`   zHelpFormatter._Section.__init__   s"    &DN DK"DLDJJJr4   c                    | j         | j                                         | j        j        } |d | j        D                       }| j         | j                                         |sdS | j        t          urA| j        :| j        j        }t          d          t          | j                  z  }d|d|fz  }nd} |d||dg          S )Nc                     g | ]
\  }} || S r<   r<   ).0funcargss      r2   
<listcomp>z6HelpFormatter._Section.format_help.<locals>.<listcomp>   s"    GGGjdDddDkGGGr4    z%(heading)s:)rm   %*s%s

)rl   rk   re   _join_partsr9   rg   rm   r   rQ   _dict)r+   r*   	item_helpcurrent_indentheading_textrm   s         r2   format_helpz"HelpFormatter._Section.format_help   s    {&&&(((>-DGGDJGGGHHI{&&&(((  r |8++0H!%!? 0043M3M3MM#~r<&HH 4w	48999r4   r6   )r$   r=   r>   r`   r}   r<   r4   r2   rT   ri      s7        	 	 	 		: 	: 	: 	: 	:r4   rT   c                 H    | j         j                            ||f           d S r6   )rV   r9   r&   )r+   rq   rr   s      r2   	_add_itemzHelpFormatter._add_item   s&    #**D$<88888r4   c                     |                                   |                     | | j        |          }|                     |j        g            || _        d S r6   )re   rT   rV   r   r}   )r+   rm   sections      r2   start_sectionzHelpFormatter.start_section   sL    --d&;WEEw*B/// 'r4   c                 P    | j         j        | _         |                                  d S r6   )rV   rl   rg   r:   s    r2   end_sectionzHelpFormatter.end_section   s!     $ 5 <r4   c                 \    |t           ur | |                     | j        |g           d S d S d S r6   )r   r   _format_text)r+   texts     r2   add_textzHelpFormatter.add_text   s?    xD$4NN4,tf55555  $4$4r4   c                 ^    |t           ur#||||f}|                     | j        |           d S d S r6   )r   r   _format_usage)r+   usageactionsgroupsprefixrr   s         r2   	add_usagezHelpFormatter.add_usage   s@      '661DNN4-t44444 ! r4   c                 |   |j         t          ur| j        } ||          g}|                     |          D ] }|                     ||                     !t          t          t          |                    }|| j        z   }t          | j	        |          | _	        | 
                    | j        |g           d S d S r6   )helpr   _format_action_invocation_iter_indented_subactionsr&   rN   maplenrQ   rS   r   _format_action)r+   actionget_invocationinvocations	subactioninvocation_lengthaction_lengths          r2   add_argumentzHelpFormatter.add_argument  s    ;h&& ";N)>&112K!;;FCC > >	"">>)#<#<==== !$C[$9$9 : :-0DDM&)$*A*7'9 '9D# NN4.99999 '&r4   c                 :    |D ]}|                      |           d S r6   )r   )r+   r   r   s      r2   add_argumentszHelpFormatter.add_arguments  s2     	& 	&Ff%%%%	& 	&r4   c                     | j                                         }|r3| j                            d|          }|                    d          dz   }|S )N

rv   )rU   r}   r[   substrip)r+   r   s     r2   r}   zHelpFormatter.format_help  sQ    !--// 	++//==D::d##d*Dr4   c                 @    d                     d |D                       S )Nrt   c                 (    g | ]}|r|t           u|S r<   )r   )rp   parts     r2   rs   z-HelpFormatter._join_parts.<locals>.<listcomp>&  s5     : : : :$($8$8 $8$8$8r4   )r*   )r+   part_stringss     r2   rw   zHelpFormatter._join_parts%  s4    ww : :$0: : : ; ; 	;r4   c                 
   |t          d          }||t          | j                  z  }nO||sdt          | j                  z  }n1|.dt          | j                  z  }g }g }|D ]4}|j        r|                    |           |                    |           5| j        }	 |	||z   |          }
d                    d ||
fD                       }| j        | j        z
  t          |          t          |          z   k    rqd} |	||          } |	||          }t          j        ||          }t          j        ||          }dfd	}t          |          t          |          z   dz  k    rpdt          |          t          |          z   d	z   z  }|r1 ||g|z   ||          }|                     |||                     n|r ||g|z   ||          }n|g}n|dt          |          z  }||z   } |||          }t          |          d	k    r@g }|                     |||                     |                     |||                     |g|z   }d
                    |          }||dS )Nzusage: r\   z%(prog)s c                     g | ]}||S r<   r<   )rp   ss     r2   rs   z/HelpFormatter._format_usage.<locals>.<listcomp>F  s    CCCACaCCCr4   z%\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+c                    g }g }|t          |          dz
  }nt          |          dz
  }| D ]}|dz   t          |          z   k    rA|r?|                    |d                    |          z              g }t          |          dz
  }|                    |           |t          |          dz   z  }|r+|                    |d                    |          z              | |d         t          |          d          |d<   |S )Nrc   r   r   )r   r&   r*   )partsindentr   lineslineline_lenr   
text_widths          r2   	get_linesz.HelpFormatter._format_usage.<locals>.get_linesZ  s   ED)#&v;;?#&v;;? % 2 2#a<#d))3j@@T@!LL#((4..)@AAA#%D'*6{{QHD))) CIIM1 >Vchhtnn%<===)#(8CKKLL#9a Lr4   g      ?rc   rv   r   r6   )rx   ry   rK   option_stringsr&   _format_actions_usager*   rP   rQ   r   rW   findallextend)r+   r   r   r   r   r\   	optionalspositionalsr   formataction_usagepart_regexp	opt_usage	pos_usage	opt_parts	pos_partsr   r   r   r   r   s                       @r2   r   zHelpFormatter._format_usage*  s   >y\\F Ddj1111EE ]7]4:!6!6!66EE ]$* 5 5 55D IK! / /( /$$V,,,,&&v.... /F!6)k"96BBLHHCC$)=CCCDDE t';;J6{{SZZ'*44 
 #F9f55	"F;77	KY??	KY??	
! ! ! ! ! !* v;;T*dZ.??? CKK#d))$;a$?@F  ' )	4&9*<ff M MYYy&%A%ABBBB" ' )	4&9*<ff M M!% !3v;;.F%	1E%IeV44E5zzA~~ "YYy&%A%ABBBYYy&%A%ABBB!FUNE 		%(( $VUUU++r4   c                 ,   t                      }i }|D ]G}|j        st          d|           	 |                    |j        d                   }t	          |j                  }||z   }|||         |j        k    rd}	|j        D ]*}
|                    |
           |
j        t          u r|	dz  }	+||	z
  }|s|j        s5||v r||xx         dz  cc<   nd||<   ||v r||xx         dz  cc<   n@d||<   n:|dk    r4||v r||xx         dz  cc<   nd||<   ||v r||xx         d	z  cc<   nd	||<   t          |dz   |          D ]}d
||<   8# t          $ r Y Ew xY wg }t          |          D ]\  }}
|
j        t          u ry|                    d            |                    |          d
k    r|                    |           X|                    |dz             d
k    r|                    |dz              |
j        sg|                     |
          }|                     |
|          }|
|v r"|d         dk    r|d         dk    r
|dd         }|                    |           |
j        d         }|
j        dk    r|
                                }n2|                     |
          }|                     |
|          }|d|}|
j        s	|
|vrd|z  }|                    |           t)          |d          D ]}||         g|||<   d                    d |D                       }d}d}t-          j        d|z  d|          }t-          j        d|z  d|          }t-          j        |d|d|          }|                                }|S )Nzempty group r   rc   z [[]z (r    r"   |r   [%s]T)reversec                     g | ]}||S r6   r<   )rp   items     r2   rs   z7HelpFormatter._format_actions_usage.<locals>.<listcomp>  s    DDD$43C3C3C3Cr4   z[\[(]z[\])]z(%s) z\1 (%s)z *rt   )set_group_actions
ValueErrorindexr   addr   r   requiredrange	enumerater&   getpopr   #_get_default_metavar_for_positional_format_argsnargsformat_usage!_get_default_metavar_for_optionalsortedr*   rW   r   r   )r+   r   r   group_actionsinsertsgroupstartgroup_action_countendsuppressed_actions_countr   exposed_actions_countir   defaultr   option_stringargs_stringr   opencloses                        r2   r   z#HelpFormatter._format_actions_usage  s}    *	) *	)E' 9 !7!7!7888&)e&:1&=>> &))=%>%>"0059%)===/0,"'"6 : :%))&111!;(22494,>AY,Y)0 !  > / G++#ENNNd2NNNN-0GEN'>>#CLLLC/LLLL+.GCLL.22 G++#ENNNd2NNNN-0GEN'>>#CLLLC/LLLL+.GCL"519c22 ) )%(

I    N "7++ -	# -	#IAv {h&&T""";;q>>S((KKNNNN[[Q''3..KKA&&& * !#BB6JJ((99 ]**Aw#~~$r(c//#AbDz T"""" !' 5a 8 <1$$!..00DD
 #DDVLLG"&"3"3FG"D"DK&3mm[[AD  )6+F+F!D=D T"""" ... 	& 	&A!!*E!A#JJ xxDD%DDDEE wx$t44wx%'55wDDD%%0#t<<zz|| s    E
EEc                     d|v r|t          | j                  z  }t          | j        | j        z
  d          }d| j        z  }|                     |||          dz   S )Nz%(prog)r      r   r   )ry   rK   rN   rP   rQ   
_fill_text)r+   r   r   r   s       r2   r   zHelpFormatter._format_text  se    $DJ////Dt';;R@@
t++tZ886AAr4   c                 ~   t          | j        dz   | j                  }t          | j        |z
  d          }|| j        z
  dz
  }|                     |          }|j        s| j        d|f}d|z  }n7t          |          |k    r| j        d||f}d|z  }d}n| j        d|f}d|z  }|}|g}|j        r|j        	                                rw| 
                    |          }	|	r_|                     |	|          }
|                    d|d|
d         fz             |
dd          D ]}|                    d|d|fz             n*|                    d          s|                    d           |                     |          D ]*}|                    |                     |                     +|                     |          S )	NrD   r   rt   ru   z	%*s%-*s  r   rc   rv   )rM   rS   rO   rN   rP   rQ   r   r   r   r   _expand_help_split_linesr&   endswithr   r   rw   )r+   r   help_position
help_widthaction_widthaction_headertupindent_firstr   	help_text
help_linesr   r   s                r2   r   zHelpFormatter._format_action  s   D3a7 35 5}4b99
$t';;a?66v>> { 	)&M9C%OMM <//&L-GC'#-MLL &M9C%OM(L  ; 
	6;,,.. 
	))&11I H!..y*EE
Y,JqM)JJKKK&qrrN H HDLLmR-F!FGGGG ''-- 	LL 77?? 	9 	9ILL,,Y778888 &&&r4   c                    |j         s8|                     |          } |                     ||          d          \  }|S g }|j        dk    r|                    |j                    nO|                     |          }|                     ||          }|j         D ]}|                    |d|           d                    |          S )Nrc   r   r   r!   )	r   r   _metavar_formatterr   r   r   r   r&   r*   )r+   r   r   metavarr   r   r   s          r2   r   z'HelpFormatter._format_action_invocation4  s    $ 	$>>vFFG?t..vw??BBHGN E |q  V23333
 @@HH"//@@%+%: I IMLLMMM;;!GHHHH99U###r4   c                     |j         |j         n3|j        *d |j        D             }dd                    |          z  n|fd}|S )Nc                 ,    g | ]}t          |          S r<   str)rp   choices     r2   rs   z4HelpFormatter._metavar_formatter.<locals>.<listcomp>P  s    DDD63v;;DDDr4   z{%s},c                 >    t          t                    rS f| z  S r6   )
isinstancetuple)
tuple_sizeresults    r2   r   z0HelpFormatter._metavar_formatter.<locals>.formatU  s'    &%(( /zJ..r4   )r   choicesr*   )r+   r   default_metavarchoice_strsr   r  s        @r2   r   z HelpFormatter._metavar_formatterL  sn    >%^FF^'DDV^DDDKchh{333FF$F	/ 	/ 	/ 	/ 	/
 r4   c                    |                      ||          }|j        d |d          z  }n"|j        t          k    rd |d          z  }n|j        t          k    r* |d          }t	          |          dk    rd|z  }nd|z  }n|j        t
          k    rd |d          z  }n|j        t          k    rd}n|j        t          k    rd	 |d          z  }nw|j        t          k    rd
}nd	 d t          |j                  D             }n# t          $ r t          d          d w xY wd                    |           ||j                  z  }|S )N%src   r   rD   z[%s [%s ...]]z[%s ...]z%s [%s ...]r   z%s ...rt   c                     g | ]}d S )r  r<   )rp   rx   s     r2   rs   z.HelpFormatter._format_args.<locals>.<listcomp>r  s    ===A4===r4   zinvalid nargs valuer   )r   r   r   r   r   r   r   r   r   r   	TypeErrorr   r*   )r+   r   r  get_metavarr  r   formatss          r2   r   zHelpFormatter._format_args\  s}   --foFF<KKNN*FF\X%%kk!nn,FF\\))!k!nnG7||q  (72#g-\[(("[[^^3FF\Y&&FF\V##A.FF\X%%FFB==v|)<)<=== B B B !677TABXXg&&V\)B)BBFs   -D D'c                    t          t          |          | j                  }t          |          D ]}||         t          u r||= t          |          D ](}t          ||         d          r||         j        ||<   )|                    d          *d                    d |d         D                       }||d<   | 	                    |          |z  S )Nr   r$   r  r!   c                 ,    g | ]}t          |          S r<   r   )rp   cs     r2   rs   z.HelpFormatter._expand_help.<locals>.<listcomp>  s    $G$G$GSVV$G$G$Gr4   )
ry   varsrK   r7   r   hasattrr$   r   r*   _get_help_string)r+   r   paramsr0   choices_strs        r2   r   zHelpFormatter._expand_helpx  s    d6ll444LL 	! 	!Dd|x''4LLL 	5 	5Dvd|Z00 5%d|4t::i  ,))$G$GVI5F$G$G$GHHK +F9$$V,,v55r4   c              #      K   	 |j         }|                                   |            E d {V  |                                  d S # t          $ r Y d S w xY wr6   )_get_subactionsre   rg   AttributeError)r+   r   get_subactionss      r2   r   z'HelpFormatter._iter_indented_subactions  sw      	#3N LLNNN%~'''''''''LLNNNNN  	 	 	DD	s   A 
AAc                     | j                             d|                                          }dd l}|                    ||          S )Nr   r   )rZ   r   r   textwrapwrap)r+   r   r_   r  s       r2   r   zHelpFormatter._split_lines  sE    '++C66<<>> 	}}T5)))r4   c                     | j                             d|                                          }dd l}|                    ||||          S )Nr   r   )initial_indentsubsequent_indent)rZ   r   r   r  fill)r+   r   r_   r   r  s        r2   r   zHelpFormatter._fill_text  sT    '++C66<<>>}}T5,2/5  7 7 	7r4   c                     |j         S r6   )r   r+   r   s     r2   r  zHelpFormatter._get_help_string  
    {r4   c                 4    |j                                         S r6   )destupperr$  s     r2   r   z/HelpFormatter._get_default_metavar_for_optional  s    {  """r4   c                     |j         S r6   )r'  r$  s     r2   r   z1HelpFormatter._get_default_metavar_for_positional  r%  r4   )rD   rE   Nr6   )r$   r=   r>   r`   re   rg   objectrT   r   r   r   r   r   r   r   r}   rw   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r<   r4   r2   r   r      s        #$#%	; ; ; ;>    
: : : : :6 : : :@9 9 9( ( (  6 6 65 5 5 5
: : :$& & &  ; ; ;
^, ^, ^,@q q qfB B B.' .' .'`$ $ $0     86 6 6  * * *7 7 7  # # #    r4   r   c                       e Zd Z	 d ZdS )r	   c                 n    d                     fd|                    d          D                       S )Nrt   c              3   "   K   | ]	}|z   V  
d S r6   r<   )rp   r   r   s     r2   	<genexpr>z9RawDescriptionHelpFormatter._fill_text.<locals>.<genexpr>  s'      PPv}PPPPPPr4   T)keepends)r*   
splitlines)r+   r   r_   r   s      `r2   r   z&RawDescriptionHelpFormatter._fill_text  s8    wwPPPP$1O1OPPPPPPr4   N)r$   r=   r>   r   r<   r4   r2   r	   r	     s-        Q Q Q Q Qr4   r	   c                       e Zd Z	 d ZdS )r
   c                 *    |                                 S r6   )r0  )r+   r   r_   s      r2   r   z!RawTextHelpFormatter._split_lines  s       r4   N)r$   r=   r>   r   r<   r4   r2   r
   r
     s(        ! ! ! ! !r4   r
   c                       e Zd Z	 d ZdS )r   c                     	 |j         }|d}d|vr>|j        t          ur0t          t          g}|j        s	|j        |v r|t          d          z  }|S )Nrt   z
%(default)z (default: %(default)s))r   r   r   r   r   r   r   rx   )r+   r   r   defaulting_nargss       r2   r  z.ArgumentDefaultsHelpFormatter._get_help_string  sm    	 {<Dt##~X--$,l#; ( 9FL<L,L,LA7888Dr4   N)r$   r=   r>   r  r<   r4   r2   r   r     s(            r4   r   c                       e Zd Z	 d Zd ZdS )r   c                     |j         j        S r6   r#   r$   r$  s     r2   r   z:MetavarTypeHelpFormatter._get_default_metavar_for_optional      {##r4   c                     |j         j        S r6   r8  r$  s     r2   r   z<MetavarTypeHelpFormatter._get_default_metavar_for_positional  r9  r4   N)r$   r=   r>   r   r   r<   r4   r2   r   r     s7        $ $ $$ $ $ $ $r4   r   c                     | d S | j         rd                    | j                   S | j        d t          fvr| j        S | j        d t          fvr| j        S | j        r dd                    | j                  z   dz   S d S )N/{r  })r   r*   r   r   r'  r  )arguments    r2   _get_action_namer@    s    t		  	xx/000		$!1	1	1	tX.	.	.}		 SXXh.///#55tr4   c                       e Zd Z	 d Zd ZdS )r   c                 <    t          |          | _        || _        d S r6   )r@  argument_namemessage)r+   r?  rD  s      r2   r`   zArgumentError.__init__  s    -h77r4   c                 p    | j         d}nt          d          }|t          | j        | j                   z  S )Nz%(message)sz'argument %(argument_name)s: %(message)s)rD  rC  )rC  rx   ry   rD  )r+   r   s     r2   __str__zArgumentError.__str__  sH    %"FF@AAFT\+/+=? ? ? ? 	?r4   N)r$   r=   r>   r`   rF  r<   r4   r2   r   r     s7          ? ? ? ? ?r4   r   c                       e Zd Z	 dS )r   N)r$   r=   r>   r<   r4   r2   r   r     s        JDr4   r   c                   <    e Zd Z	 	 	 	 	 	 	 	 	 ddZd Zd ZddZdS )	r   NFc                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        d S r6   
r   r'  r   constr   r#   r  r   r   r   )r+   r   r'  r   rK  r   r#   r  r   r   r   s              r2   r`   zAction.__init__L  sO     -	

	 	r4   c                 (     g d} fd|D             S )NrJ  c                 4    g | ]}|t          |          fS r<   getattrrp   r0   r+   s     r2   rs   z&Action._get_kwargs.<locals>.<listcomp>o  (    >>>wtT**+>>>r4   r<   r+   namess   ` r2   r(   zAction._get_kwargsb  s0    
 
 
 ?>>>>>>>r4   c                     | j         d         S r@   r   r:   s    r2   r   zAction.format_usageq  s    "1%%r4   c                 :    t          t          d                    )Nz.__call__() not defined)NotImplementedErrorrx   r+   parser	namespacevaluesr   s        r2   __call__zAction.__call__t  s    !!$=">">???r4   NNNNNFNNr6   )r$   r=   r>   r`   r(   r   r\  r<   r4   r2   r   r     s        0j    ,? ? ?& & &@ @ @ @ @ @r4   r   c                   :     e Zd Z	 	 	 	 	 	 d fd	ZddZd Z xZS )r   NFc	                    g }	|D ]N}
|	                     |
           |
                    d          r"d|
dd          z   }
|	                     |
           Ot                                          |	|d||||||	  	         d S )N----no-rD   r   )	r   r'  r   r   r#   r  r   r   r   )r&   
startswithsuperr`   )r+   r   r'  r   r#   r  r   r   r   _option_stringsr   	__class__s              r2   r`   zBooleanOptionalAction.__init__y  s     + 	6 	6M""=111''-- 6 '-*; ;&&}555* 	 		 		 		 		 		r4   c                 p    || j         v r,t          || j        |                    d                      d S d S )Nra  )r   setattrr'  rb  rX  s        r2   r\  zBooleanOptionalAction.__call__  sC    D///Itym.F.Fw.O.O*OPPPPP 0/r4   c                 6    d                     | j                  S )Nz | )r*   r   r:   s    r2   r   z"BooleanOptionalAction.format_usage  s    zz$-...r4   )NNNFNNr6   )r$   r=   r>   r`   r\  r   __classcell__re  s   @r2   r   r   x  sx              <Q Q Q Q/ / / / / / /r4   r   c                   8     e Zd Z	 	 	 	 	 	 	 	 d fd	ZddZ xZS )_StoreActionNFc                     |dk    rt          d          |"|t          k    rt          dt          z            t          t          |                               |||||||||	|

  
         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 appropriate nargs must be %r to supply constrJ  )r   r   rc  rl  r`   r+   r   r'  r   rK  r   r#   r  r   r   r   re  s              r2   r`   z_StoreAction.__init__  s     A:: K L L L (!2!2?(JKKKlD!!**) 	+ 
	 
	 
	 
	 
	r4   c                 2    t          || j        |           d S r6   )rg  r'  rX  s        r2   r\  z_StoreAction.__call__  s    	49f-----r4   r]  r6   r$   r=   r>   r`   r\  ri  rj  s   @r2   rl  rl    sk        
      :. . . . . . . .r4   rl  c                   2     e Zd Z	 	 	 	 	 d fd	ZddZ xZS )_StoreConstActionNFc           	      f    t          t          |                               ||d||||           d S )Nr   )r   r'  r   rK  r   r   r   )rc  rs  r`   	r+   r   r'  rK  r   r   r   r   re  s	           r2   r`   z_StoreConstAction.__init__  sL     	&&//) 	0 	 	 	 	 	r4   c                 <    t          || j        | j                   d S r6   )rg  r'  rK  rX  s        r2   r\  z_StoreConstAction.__call__  s    	49dj11111r4   NNFNNr6   rq  rj  s   @r2   rs  rs    sb        
      "2 2 2 2 2 2 2 2r4   rs  c                   &     e Zd Z	 	 	 d fd	Z xZS )_StoreTrueActionFNc                 d    t          t          |                               ||d|||           d S )NTr   r'  rK  r   r   r   )rc  ry  r`   r+   r   r'  r   r   r   re  s         r2   r`   z_StoreTrueAction.__init__  sI     	%%..) 	/ 	 	 	 	 	r4   )FFNr$   r=   r>   r`   ri  rj  s   @r2   ry  ry    sH        
          r4   ry  c                   &     e Zd Z	 	 	 d fd	Z xZS )_StoreFalseActionTFNc                 d    t          t          |                               ||d|||           d S )NFr{  )rc  r  r`   r|  s         r2   r`   z_StoreFalseAction.__init__  sI     	&&//) 	0 	 	 	 	 	r4   )TFNr}  rj  s   @r2   r  r    sH        
          r4   r  c                   8     e Zd Z	 	 	 	 	 	 	 	 d fd	ZddZ xZS )_AppendActionNFc                     |dk    rt          d          |"|t          k    rt          dt          z            t          t          |                               |||||||||	|

  
         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 appropriatern  rJ  )r   r   rc  r  r`   ro  s              r2   r`   z_AppendAction.__init__  s     A:: O P P P (!2!2?(JKKKmT""++) 	, 
	 
	 
	 
	 
	r4   c                     t          || j        d           }t          |          }|                    |           t	          || j        |           d S r6   )rO  r'  rB   r&   rg  r+   rY  rZ  r[  r   r9   s         r2   r\  z_AppendAction.__call__  N    	49d33E""V	49e,,,,,r4   r]  r6   rq  rj  s   @r2   r  r    sk        
      :- - - - - - - -r4   r  c                   2     e Zd Z	 	 	 	 	 d fd	ZddZ xZS )_AppendConstActionNFc           
      h    t          t          |                               ||d|||||           d S )Nr   )r   r'  r   rK  r   r   r   r   )rc  r  r`   ru  s	           r2   r`   z_AppendConstAction.__init__#  sO     	 $''00) 	1 	 	 	 	 	r4   c                     t          || j        d           }t          |          }|                    | j                   t          || j        |           d S r6   )rO  r'  rB   r&   rK  rg  r  s         r2   r\  z_AppendConstAction.__call__5  sP    	49d33E""TZ   	49e,,,,,r4   rw  r6   rq  rj  s   @r2   r  r  !  sb        
      $- - - - - - - -r4   r  c                   .     e Zd Z	 	 	 d fd	ZddZ xZS )_CountActionNFc                 d    t          t          |                               ||d|||           d S )Nr   )r   r'  r   r   r   r   )rc  r  r`   r|  s         r2   r`   z_CountAction.__init__>  sH     	lD!!**) 	+ 	 	 	 	 	r4   c                 l    t          || j        d           }|d}t          || j        |dz              d S Nr   rc   )rO  r'  rg  )r+   rY  rZ  r[  r   counts         r2   r\  z_CountAction.__call__L  s=    	49d33=E	49eai00000r4   )NFNr6   rq  rj  s   @r2   r  r  <  s\        
      1 1 1 1 1 1 1 1r4   r  c                   .     e Zd Zeedf fd	ZddZ xZS )_HelpActionNc                 b    t          t          |                               |||d|           d S )Nr   r   r'  r   r   r   )rc  r  r`   )r+   r   r'  r   r   re  s        r2   r`   z_HelpAction.__init__U  sE    
 	k4  ))) 	* 	 	 	 	 	r4   c                 V    |                                  |                                 d S r6   )
print_helpexitrX  s        r2   r\  z_HelpAction.__call__a  s%    r4   r6   r$   r=   r>   r   r`   r\  ri  rj  s   @r2   r  r  S  s\         !	
 
 
 
 
 
       r4   r  c                   0     e Zd Zdeedf fd	ZddZ xZS )_VersionActionNc                     |t          d          }t          t          |                               |||d|           || _        d S )Nz&show program's version number and exitr   r  )rx   rc  r  r`   version)r+   r   r  r'  r   r   re  s         r2   r`   z_VersionAction.__init__h  s[     <=>>Dnd##,,) 	- 	 	 	 r4   c                    | j         }||j         }|                                }|                    |           |                    |                                t
          j                   |                                 d S r6   )r  _get_formatterr   _print_messager}   _sysstdoutr  )r+   rY  rZ  r[  r   r  rk   s          r2   r\  z_VersionAction.__call__x  so    ,?nG))++	7###i3355t{CCCr4   r6   r  rj  s   @r2   r  r  f  s_         !             r4   r  c                   X     e Zd Z G d de          Zedddf fd	Zd Zd Zd	dZ	 xZ
S )
_SubParsersActionc                        e Zd Z fdZ xZS )&_SubParsersAction._ChoicesPseudoActionc                     |x}}|r|dd                     |          z  z  }t          t          j        |           }|                    g |||           d S )Nr   r!   )r   r'  r   r   )r*   rc  r  _ChoicesPseudoActionr`   )r+   r0   aliasesr   r   r'  supre  s          r2   r`   z/_SubParsersAction._ChoicesPseudoAction.__init__  sq    !!Gd 87TYYw%7%777)>EECLLD!(  * * * * *r4   r}  rj  s   @r2   r  r    s8        	* 	* 	* 	* 	* 	* 	* 	* 	*r4   r  FNc           	          || _         || _        i | _        g | _        t	          t
          |                               ||t          | j        |||           d S )N)r   r'  r   r  r   r   r   )_prog_prefix_parser_class_name_parser_map_choices_actionsrc  r  r`   r   )	r+   r   r\   parser_classr'  r   r   r   re  s	           r2   r`   z_SubParsersAction.__init__  so     !) " "&&//)) 	0 	 	 	 	 	r4   c                    |                     d          | j        d||d<   |                    dd          }|| j        v r t	          | t          d          |z            |D ]+}|| j        v r t	          | t          d          |z            ,d|v rF|                    d          }|                     |||          }| j                            |            | j	        di |}|| j        |<   |D ]}|| j        |<   |S )Nr\   r   r  r<   zconflicting subparser: %szconflicting subparser alias: %sr   )
r   r  r   r  r   rx   r  r  r&   r  )r+   r0   kwargsr  aliasr   choice_actionrY  s           r2   
add_parserz_SubParsersAction.add_parser  sQ   ::f%(,(9(9(944@F6N**Y++4(((a(C&D&Dt&KLLL 	H 	HE---#!=>>FH H H .
 V::f%%D 55dGTJJM!((777 $#--f--&,d#  	2 	2E+1D!%((r4   c                     | j         S r6   )r  r:   s    r2   r  z!_SubParsersAction._get_subactions  s    $$r4   c                 t   |d         }|dd          }| j         t          urt          || j         |           	 | j        |         }nM# t          $ r@ |d                    | j                  d}t          d          |z  }t          | |          w xY w|                    |d           \  }	}t          |	          
                                D ]\  }
}t          ||
|           |rRt          |                              t          g            t          |t                                        |           d S d S )Nr   rc   r!   )parser_namer  z5unknown parser %(parser_name)r (choices: %(choices)s))r'  r   rg  r  KeyErrorr*   rx   r   parse_known_argsr  r9   
setdefault_UNRECOGNIZED_ARGS_ATTRrO  r   )r+   rY  rZ  r[  r   r  r-   rr   msgsubnamespacekeyr1   s               r2   r\  z_SubParsersAction.__call__  s_   QiQRRj 9H$$Ity+666	+*;7FF 	+ 	+ 	+#.#yy)>??A ADKLLtSCc***		+ %+$;$;K$N$N!k|,,2244 	+ 	+JCIsE**** 	LOO&&'>CCCI677>>{KKKKK	L 	Ls   A A
Br6   )r$   r=   r>   r   r  r   r`   r  r  r\  ri  rj  s   @r2   r  r    s        * * * * *v * * *      .  <% % %L L L L L L L Lr4   r  c                       e Zd ZddZdS )_ExtendActionNc                     t          || j        d           }t          |          }|                    |           t	          || j        |           d S r6   )rO  r'  rB   r   rg  r  s         r2   r\  z_ExtendAction.__call__  r  r4   r6   )r$   r=   r>   r\  r<   r4   r2   r  r    s(        - - - - - -r4   r  c                   $    e Zd Z	 ddZd Zd ZdS )r   rr   Nc                 >    || _         || _        || _        || _        d S r6   )_mode_bufsize	_encoding_errors)r+   modebufsizeencodingerrorss        r2   r`   zFileType.__init__  s"    
!r4   c                     |dk    rd j         v r&d j         v rt          j        j        nt          j        S t	           fddD                       r&d j         v rt          j        j        nt          j        S t          d           j         z  }t          |          	 t          | j          j	         j
         j                  S # t          $ r+}||d}t          d          }t          ||z            d }~ww xY w)	N-r  bc              3   *   K   | ]}|j         v V  d S r6   )r  )rp   r  r+   s     r2   r.  z$FileType.__call__.<locals>.<genexpr>  s)      44Q$*_444444r4   waxzargument "-" with mode %r)filenameerrorz$can't open '%(filename)s': %(error)s)r  r  stdinbufferanyr  rx   r   r   r  r  r  OSErrorr   )r+   stringr  err   rD  s   `     r2   r\  zFileType.__call__  s   S==dj  ,/4:,=,=tz((4:M4444e44444 &-0DJ->->t{))DKO344tzA oo%	4
DM4>& & & 	4 	4 	4 &33D>??G#GdN333	4s   &C 
C;&C66C;c                     | j         | j        f}d| j        fd| j        fg}d                    d |D             d |D             z             }t          |           j        d|dS )Nr  r  r!   c                 8    g | ]}|d k    t          |          S )r   )r'   )rp   r/   s     r2   rs   z%FileType.__repr__.<locals>.<listcomp>  s#    EEEC3"99d3ii999r4   c                 &    g | ]\  }}||d|S )Nr   r<   )rp   kwr/   s      r2   rs   z%FileType.__repr__.<locals>.<listcomp>   s3     2 2 2gb#!$ *,SS1!0r4   r    r"   )r  r  r  r  r*   r#   r$   )r+   rr   r  args_strs       r2   r3   zFileType.__repr__  s    z4=(t~.4<0HI99EE4EEE2 2 2 2 22 3 3  ::...99r4   )r  r   NN)r$   r=   r>   r`   r\  r3   r<   r4   r2   r   r     sK            4 4 4(: : : : :r4   r   c                   "    e Zd Z	 d Zd Zd ZdS )r   c                 >    |D ]}t          | |||                    d S r6   )rg  )r+   r  r0   s      r2   r`   zNamespace.__init__/  s4     	. 	.DD$t----	. 	.r4   c                 z    t          |t                    st          S t          |           t          |          k    S r6   )r  r   NotImplementedr  )r+   others     r2   __eq__zNamespace.__eq__3  s1    %++ 	"!!DzzT%[[((r4   c                     || j         v S r6   )r8   )r+   r  s     r2   __contains__zNamespace.__contains__8  s    dm##r4   N)r$   r=   r>   r`   r  r  r<   r4   r2   r   r   (  sF        . . .) ) )
$ $ $ $ $r4   r   c                        e Zd Z fdZd ZddZd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd ZddZd Zd Zd Zd Z xZS )_ActionsContainerc                    t          t          |                                            || _        || _        || _        || _        i | _        |                     dd t                     |                     ddt                     |                     ddt                     |                     ddt                     |                     ddt                     |                     ddt                     |                     ddt                     |                     ddt                     |                     dd	t                      |                     dd
t"                     |                     ddt$                     |                     ddt&                     |                                  g | _        i | _        g | _        g | _        i | _        t5          j        d          | _        g | _        d S )Nr   storestore_const
store_truestore_falser&   append_constr  r   r  parsersr   z^-\d+$|^-\d*\.\d+$)rc  r  r`   descriptionargument_defaultprefix_charsconflict_handler_registriesregisterrl  rs  ry  r  r  r  r  r  r  r  r  _get_handler_actions_option_string_actions_action_groups_mutually_exclusive_groups	_defaultsrW   rX   _negative_number_matcher_has_negative_number_optionals)r+   r  r  r  r  re  s        r2   r`   z_ActionsContainer.__init__>  s   
 	&&//111& 0( 0  	hl333h666h/@AAAh.>???h/@AAAh-888h0BCCCh666h444h	>:::h	+<===h-888 	 &(# !*,'  ),4I(J(J% /1+++r4   c                 F    | j                             |i           }|||<   d S r6   )r  r  )r+   registry_namer1   r*  registrys        r2   r  z_ActionsContainer.registers  s'    #..}bAA r4   Nc                 D    | j         |                             ||          S r6   )r  r   )r+   r  r1   r   s       r2   _registry_getz_ActionsContainer._registry_getw  s     .225'BBBr4   c                     | j                             |           | j        D ]}|j        |v r||j                 |_        d S r6   )r  updater  r'  r   )r+   r  r   s      r2   set_defaultsz_ActionsContainer.set_defaults}  sQ    f%%% m 	5 	5F{f$$!'!4	5 	5r4   c                     | j         D ]}|j        |k    r|j        	|j        c S | j                            |d           S r6   )r  r'  r   r  r   )r+   r'  r   s      r2   get_defaultz_ActionsContainer.get_default  sN    m 	& 	&F{d""v~'A~%%%~!!$---r4   c                 :   	 | j         }|r#t          |          dk    r3|d         d         |vr#|rd|v rt          d           | j        |i |}n | j        |i |}d|vr3|d         }|| j        v r| j        |         |d<   n| j        
| j        |d<   |                     |          }t          |          st          d|d           |di |}| 	                    d|j
        |j
                  }t          |          st          |d	          |t          u rt          |d
          t          | d          rG	 |                                                     |d            n# t          $ r t          d          w xY w|                     |          S )Nrc   r   r'  z+dest supplied twice for positional argumentr   zunknown action ""r#   z is not callablez: is a FileType class object, instance of it must be passedr  z,length of metavar tuple does not match nargsr<   )r  r   r   _get_positional_kwargs_get_optional_kwargsr  r  _pop_action_classcallabler  r#   r   r  r  r   r  _add_action)r+   rr   r  charsr'  action_classr   	type_funcs           r2   r   z_ActionsContainer.add_argument  s   	 ! 	@s4yyA~~$q'!*E*A*A P&(( !NOOO0T0$A&AAFF /T.???F F""&>Dt~%%$(N4$8y!!&2$($9y! --f55%% 	F*lllDEEE'''' &&vv{FKHH		"" 	BYYY@AAA  2;))> ? ? ? 4)** 	QQ##%%2264@@@@ Q Q Q !OPPPQ '''s   (E+ +Fc                 Z    t          | g|R i |}| j                            |           |S r6   )_ArgumentGroupr  r&   )r+   rr   r  r   s       r2   add_argument_groupz$_ActionsContainer.add_argument_group  s;    t5d555f55""5)))r4   c                 T    t          | fi |}| j                            |           |S r6   )_MutuallyExclusiveGroupr  r&   )r+   r  r   s      r2   add_mutually_exclusive_groupz._ActionsContainer.add_mutually_exclusive_group  s3    '7777'..u555r4   c                 $   |                      |           | j                            |           | |_        |j        D ]}|| j        |<   |j        D ]=}| j                            |          r!| j        s| j                            d           >|S )NT)	_check_conflictr  r&   	containerr   r  r  matchr  )r+   r   r   s      r2   r  z_ActionsContainer._add_action  s    V$$$ 	V$$$ $2 	@ 	@M9?D'66 $2 	E 	EM,22=AA E: E7>>tDDD r4   c                 :    | j                             |           d S r6   )r  remover$  s     r2   _remove_actionz _ActionsContainer._remove_action  s    V$$$$$r4   c                    i }| j         D ];}|j        |v r&t          d          }t          ||j        z            |||j        <   <i }|j         D ]T}|j        |vr/|                     |j        |j        |j                  ||j        <   |j        D ]}||j                 ||<   U|j        D ],}| 	                    |j
                  }|j        D ]}|||<   -|j        D ]+}|                    ||                               |           ,d S )Nz.cannot merge actions - two groups are named %r)titler  r  )r   )r  r   rx   r   r  r  r  r   r  r  r   r  r   r  )r+   r  title_group_mapr   r  	group_mapr   mutex_groups           r2   _add_container_actionsz(_ActionsContainer._add_container_actions  s   ( 	1 	1E{o--HII !4555+0OEK(( 	- 	A 	AE {/11/3/F/F+ % 1%*%; 0G 0= 0=,  . A A$3EK$@	&!!A 9 	0 	0E;; < ) )K  . 0 0$/	&!!0  ( 	< 	<FMM&$''33F;;;;	< 	<r4   c                    d|v rt          d          }t          |          |                    d          t          t          fvrd|d<   |                    d          t          k    r	d|vrd|d<   t          ||g           S )Nr   z1'required' is an invalid argument for positionalsr   Tr   r'  r   )rx   r  r   r   r   ry   )r+   r'  r  r  s       r2   r
  z(_ActionsContainer._get_positional_kwargs  s    GHHCC..  ::gx&>>>!%F:::g,..9F3J3J!%F: Fb9999r4   c                 @   g }g }|D ]}|d         | j         vr+|| j         d}t          d          }t          ||z            |                    |           t	          |          dk    r$|d         | j         v r|                    |           |                    dd           }|f|r	|d         }n|d         }|                    | j                   }|s!t          d          }t          ||z            |                    dd          }t          |||	          S )
Nr   )optionr  zNinvalid option string %(option)r: must start with a character %(prefix_chars)rrc   r'  z%dest= is required for options like %rr  rx   r&  )	r  rx   r   r&   r   r   lstripreplacery   )	r+   rr   r  r   long_option_stringsr   r  r'  dest_option_strings	            r2   r  z&_ActionsContainer._get_optional_kwargs  sa    ! 	: 	:M #t'888"/(,(9; ; G H H t,,, !!-000=!!A%%-*:d>O*O*O#**=999 zz&$''<" 7%8%;""%3A%6"%,,T->??D 6?@@ }!4555<<S))D FnEEEEr4   c                 \    |                     d|          }|                     d||          S )Nr   )r   r  )r+   r  r   r   s       r2   r  z#_ActionsContainer._pop_action_class?  s-    Hg..!!(FF;;;r4   c                     d| j         z  }	 t          | |          S # t          $ r' t          d          }t	          || j         z            w xY w)Nz_handle_conflict_%sz%invalid conflict_resolution value: %r)r  rO  r  rx   r   )r+   handler_func_namer  s      r2   r  z_ActionsContainer._get_handlerC  se    1D4II	:4!2333 	: 	: 	:;<<CS4#88999	:s	    1Ac                     g }|j         D ]/}|| j        v r$| j        |         }|                    ||f           0|r"|                                 } |||           d S d S r6   )r   r  r&   r  )r+   r   confl_optionalsr   confl_optionalr  s         r2   r  z!_ActionsContainer._check_conflictL  s     #2 	H 	HM ;;;!%!<]!K&&~'FGGG  	6#0022V_55555	6 	6r4   c                     t          ddt          |                    }d                    d |D                       }t          |||z            )Nzconflicting option string: %szconflicting option strings: %sr!   c                     g | ]\  }}|S r<   r<   )rp   r   r   s      r2   rs   z<_ActionsContainer._handle_conflict_error.<locals>.<listcomp>^  s,     %= %= %=)> &3 %= %= %=r4   )r   r   r*   r   )r+   r   conflicting_actionsrD  conflict_strings        r2   _handle_conflict_errorz(_ActionsContainer._handle_conflict_errorZ  sk    :;2335 5 )) %= %=(;%= %= %= > > FGo$=>>>r4   c                     |D ][\  }}|j                             |           | j                            |d            |j         s|j                            |           \d S r6   )r   r  r  r   r  r  )r+   r   r5  r   s       r2   _handle_conflict_resolvez*_ActionsContainer._handle_conflict_resolvec  sy     &9 		8 		8!M6 !((777'++M4@@@ ( 8 //777		8 		8r4   r6   )r$   r=   r>   r`   r  r  r  r  r   r  r  r  r  r$  r
  r  r  r  r  r7  r9  ri  rj  s   @r2   r  r  <  sL       01 01 01 01 01j! ! !C C C C5 5 5. . .1( 1( 1(f  
  
  *% % %&< &< &<P: : :  F  F  FD< < < <: : :6 6 6? ? ?8 8 8 8 8 8 8r4   r  c                   >     e Zd Zd fd	Z fdZ fdZ fdZ xZS )r  Nc                 p   |j         } |d|j                    |d|j                    |d|j                   t	          t
          |           j        } |dd|i| || _        g | _        |j	        | _	        |j
        | _
        |j        | _        |j        | _        |j        | _        |j        | _        d S )Nr  r  r  r  r<   )r  r  r  r  rc  r  r`   r   r   r  r  r  r  r  r  )r+   r  r   r  r  r  
super_initre  s          r2   r`   z_ArgumentGroup.__init__t  s    "!9#=>>>~y5666!9#=>>>>4009

55{5f555 
  %0!*&/&F#",4 	+*3*N'''r4   c                     t          t          |                               |          }| j                            |           |S r6   )rc  r  r  r   r&   r+   r   re  s     r2   r  z_ArgumentGroup._add_action  s<    ~t,,88@@""6***r4   c                     t          t          |                               |           | j                            |           d S r6   )rc  r  r  r   r  r>  s     r2   r  z_ArgumentGroup._remove_action  s>    nd##226:::""6*****r4   c                 n    t          j        dt          d            t                      j        |i |S )Nz&Nesting argument groups is deprecated.rD   category
stacklevel)warningswarnDeprecationWarningrc  r  r+   rr   r  re  s      r2   r  z!_ArgumentGroup.add_argument_group  sC    4'	
 	
 	
 	

 *uww)4:6:::r4   NN)r$   r=   r>   r`   r  r  r  ri  rj  s   @r2   r  r  r  s        O O O O O O,    
+ + + + +; ; ; ; ; ; ; ; ;r4   r  c                   6     e Zd Zd fd	Zd Zd Z fdZ xZS )r  Fc                 t    t          t          |                               |           || _        || _        d S r6   )rc  r  r`   r   
_container)r+   r  r   re  s      r2   r`   z _MutuallyExclusiveGroup.__init__  s4    %t,,55i@@@ #r4   c                     |j         rt          d          }t          |          | j                            |          }| j                            |           |S )Nz-mutually exclusive arguments must be optional)r   rx   r   rK  r  r   r&   )r+   r   r  s      r2   r  z#_MutuallyExclusiveGroup._add_action  sW    ? 	"CDDCS//!,,V44""6***r4   c                 n    | j                             |           | j                            |           d S r6   )rK  r  r   r  r$  s     r2   r  z&_MutuallyExclusiveGroup._remove_action  s5    &&v...""6*****r4   c                 n    t          j        dt          d            t                      j        |i |S )Nz0Nesting mutually exclusive groups is deprecated.rD   rA  )rD  rE  rF  rc  r  rG  s      r2   r  z4_MutuallyExclusiveGroup.add_mutually_exclusive_group  sC    >'	
 	
 	
 	

 4uww3TDVDDDr4   )F)r$   r=   r>   r`   r  r  r  ri  rj  s   @r2   r  r    s}        $ $ $ $ $ $
  + + +E E E E E E E E Er4   r  c                        e Zd Z	 ddddg edddddddf fd	Zd Zd Zd Zd	 Zd
 Z	d#dZ
d#dZd Zd Zd Zd Zd Zd Zd Zd Zd#dZd#dZd Zd Zd Zd Zd Zd Zd$dZd$dZd$dZd%d!Zd" Z  xZ!S )&r   Nr  r  Tc           	         t          t          |           j        } ||||	|
           |/t          j                            t          j        d                   }|| _        || _	        || _
        || _        || _        || _        || _        || _        | j        } |t#          d                    | _         |t#          d                    | _        d | _        d }|                     dd |           d|v rdn|d         }| j        r5|                     |dz   |d	z  d
z   d
t.          t#          d                     |D ]I}|                     |           	 |j        }| j                            |           :# t6          $ r Y Fw xY wd S )N)r  r  r  r  r   zpositional argumentsoptionsc                     | S r6   r<   )r  s    r2   identityz)ArgumentParser.__init__.<locals>.identity  s    Mr4   r#   r  hrD   r   zshow this help message and exit)r   r   r   )rc  r   r`   _ospathbasenamer  argvr\   r   epilogformatter_classfromfile_prefix_charsadd_helpallow_abbrevexit_on_errorr  rx   _positionals
_optionals_subparsersr  r   r   r$  r  r  r  )r+   r\   r   r  rY  parentsrZ  r  r[  r  r  r\  r]  r^  	superinit	add_grouprS  default_prefixrl   defaultsre  s                       r2   r`   zArgumentParser.__init__  s    .$//8		k+#3#3	5 	5 	5 	5 <8$$TYq\22D	
.%:" (*+	%Ia(>&?&?@@#)AiLL11	 	 	fdH--- !$| 3 3a= 	;s"N1$4V$;x899  ; ; ;  	0 	0F''///0!+ %%h//// "   		0 	0s   E<<
F	F	c                 (     g d} fd|D             S )N)r\   r   r  rZ  r  r\  c                 4    g | ]}|t          |          fS r<   rN  rP  s     r2   rs   z.ArgumentParser._get_kwargs.<locals>.<listcomp>  rQ  r4   r<   rR  s   ` r2   r(   zArgumentParser._get_kwargs  s0    
 
 
 ?>>>>>>>r4   c                    | j         "|                     t          d                     |                    dt	          |                      d|v sd|v rbt          |                    dd                    }t          |                    dd                     }|                     ||          | _         n| j        | _         |                    d          u| 	                                }| 
                                }| j        }|                    | j        ||d           |                                                                |d<   |                     |d          } |d
d	g i|}| j                             |           |S )Nz(cannot have multiple subparser argumentsr  r   r  subcommandsr\   rt   r  r   r<   )ra  r  rx   r  r#   r   r  r_  r   r  _get_positional_actionsr  r   r   r}   r   r  r  )	r+   r  r   r  rk   r   r   parsers_classr   s	            r2   add_subparserszArgumentParser.add_subparsers  s   'JJqCDDEEE 	.$t**555f 7 7fjj-8899EFJJ}d;;<<K#66ukJJD#0D ::f%++--I6688K4F
KDDD&2244::<<F6N ..vyAA;;b;F;;$$V,,, r4   c                 ~    |j         r| j                            |           n| j                            |           |S r6   )r   r`  r  r_  r$  s     r2   r  zArgumentParser._add_action=  sB      	2O''////))&111r4   c                 $    d | j         D             S )Nc                      g | ]}|j         	|S r<   rU  rp   r   s     r2   rs   z8ArgumentParser._get_optional_actions.<locals>.<listcomp>E  s0     * * *(* * * *r4   r  r:   s    r2   _get_optional_actionsz$ArgumentParser._get_optional_actionsD  s%    * *"m* * * 	*r4   c                 $    d | j         D             S )Nc                      g | ]}|j         	|S r<   rU  rq  s     r2   rs   z:ArgumentParser._get_positional_actions.<locals>.<listcomp>J  s0     . . .,. . . .r4   rr  r:   s    r2   rk  z&ArgumentParser._get_positional_actionsI  s%    . ."m. . . 	.r4   c                     |                      ||          \  }}|r:t          d          }|                     |d                    |          z             |S Nzunrecognized arguments: %sr   )r  rx   r  r*   r+   rr   rZ  rX  r  s        r2   
parse_argszArgumentParser.parse_argsQ  sW    **4;;
d 	-011CJJsSXXd^^+,,,r4   c                    |t           j        dd          }nt          |          }|t                      }| j        D ]N}|j        t          ur>t          ||j                  s)|j        t          urt          ||j        |j                   O| j
        D ].}t          ||          st          ||| j
        |                    /| j        rT	 |                     ||          \  }}nR# t          $ r,}|                     t          |                     Y d }~n!d }~ww xY w|                     ||          \  }}t          |t                     r=|                    t%          |t                                t'          |t                      ||fS rb   )r  rX  r7   r   r  r'  r   r  r   rg  r  r^  _parse_known_argsr   r  r   r  r   rO  delattr)r+   rr   rZ  r   r'  errs         r2   r  zArgumentParser.parse_known_argsX  s   <9QRR=DD ::D !I m 	H 	HF{(**y&+66 H~X55	6;GGG N 	? 	?D9d++ ?	4)=>>>  	F%"&"8"8y"I"I	44  % % %

3s88$$$$$$$$% #44T9EEOIt9566 	8KK	+BCCDDDI6777$s   C% %
D/"DDc           	      n    !  j                                        i  j        D ]v}|j        }t	          |j                  D ]X\  }}                    |g           }|                    |d |                    |                    ||dz   d                     Ywi g }t                    }	t	          |	          D ]q\  }}
|
dk    r0|                    d           |	D ]}
|                    d           ; 	                    |
          }|d}n||<   d}|                    |           rd
                    |          t                      t                      d fd	! !fd}                                  !fd	}g d
 rt                    }nd} |k    rmt           fdD                       } |k    r |           }| k    r| ;|  vr! |         }                    |           |  |             |k    m |           }                    |d                     g } j        D ]}|vr|j        r#|                    t#          |                     0|j        zt'          |j        t(                    r`t+          |j                  rK|j        t/          |j                  u r/t1          |j                             ||j                             |r8                     t7          d          d
                    |          z              j        D ]d}|j        r[|j        D ]}|v r nL	d |j        D             }t7          d          }                     |d
                    |          z             efS )Nrc   r`  r  AOrt   c                 h   	                     |                                | |          }|| j        urc
                     |                                | g           D ]7}|
v r1t	          d          }t          |          }t          | ||z            8|t          ur | ||           d S d S )Nznot allowed with argument %s)r   _get_valuesr   r   rx   r@  r   r   )r   argument_stringsr   argument_valuesconflict_actionr  action_nameaction_conflictsrZ  seen_actionsseen_non_default_actionsr+   s          r2   take_actionz5ArgumentParser._parse_known_args.<locals>.take_action  s    V$$$"..v7GHHO
 fn44(,,V444'7';';FB'G'G G GO&*BBB >??&6&G&G+FC+4EFFF C h..tYGGGGG /.r4   c                    |          }|\  }}}}j         }g }	 |                     |                     | dz   S |) ||d          }j        }	|dk    r|d         |	vr|dk    r|s
|d         |	v r"t          d          }
t	          ||
|z            |                    |g |f           |d         }||d         z   }j        }||v r5||         }|dd          }|sd x}}n|d         dk    rd}|dd          }nd}n                    ||z              | dz   }n|dk    r!| dz   }|g}|                    |||f           ngt          d          }
t	          ||
|z            | dz   }|d          } |||          }||z   }||         }|                    |||f           n|D ]\  }}} |||           |S )NTrc   r  r   rt   zignored explicit argument %rr   )_match_argumentr&   r  rx   r   r  )start_indexoption_tupler   r   sepexplicit_argmatch_argumentaction_tuples	arg_countr  r  charoptionals_mapstoprr   r   selected_patternsr-   arg_strings_patternextrasoption_string_indicesr+   r  s                    r2   consume_optionalz:ArgumentParser._parse_known_args.<locals>.consume_optional  s    1=L7C4FM3 "1NMB >MM+k":;;;&?*  + .vs ; ;I
 !-E!Q)!,E99(B.. L,q/U":":"#$B"C"CC"/l8J"K"KK%,,fb--HIII,Q/(,|A(>(,(C(M99%2=%AF+7+;L#/ )59 9ll!-aC!7!7&)/;ABB/?&("MM$*=>>>#.?D! #a*Q ,~%,,fdM-JKKK
   >??+FC,4FGGG (!OE(;EFF(C% .v7H I II 9,D&uTz2D!((&$)FGGGEBN 0= 9 9+mFD-8888Kr4   c                     
j         }| d          } |	|          }t          	|          D ]#\  }}| | |z            }| |z  }  ||           $	t          |          d          	d d <   | S r6   )_match_arguments_partialzipr   )r  match_partialselected_pattern
arg_countsr   r  rr   r-   r  r   r+   r  s          r2   consume_positionalsz=ArgumentParser._parse_known_args.<locals>.consume_positionals  s     9M2;<<@&{4DEEJ &)j%A%A * *!	";i0G#GHy(FD)))) )Z)9)9:KNr4   r   r   c                      g | ]
}|k    |S r<   r<   )rp   r   r  s     r2   rs   z4ArgumentParser._parse_known_args.<locals>.<listcomp>9  s.     ,) ,) ,)K'' '''r4   z(the following arguments are required: %sr!   c                 H    g | ]}|j         t          ut          |           S r<   )r   r   r@  rq  s     r2   rs   z4ArgumentParser._parse_known_args.<locals>.<listcomp>x  s7     = = =!' &8 ; ; .f55 ; ; ;r4   z#one of the arguments %s is requiredr   r6   )r[  _read_args_from_filesr  r   r   r  r   iterr&   _parse_optionalr*   r   rk  rN   rM   r  r   r@  r   r  r   r  r'  rO  rg  
_get_valuer  rx   )"r+   r-   rZ  r#  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_actionsr   r   rS  r  r  r  r  r  r   r  r  r  r  s"   ```                      @@@@@@@@@r2   r{  z ArgumentParser._parse_known_args~  sU   %144[AAK : 	8 	8K'6M#,[-G#H#H 8 8<,77bII	  rr!2333  q1uvv!677778 !##% ,,&'788 	9 	9MAz T!!(//444"2 9 9J,33C88889  $33J??'!GG/;)!,!G(//8888 !gg&>?? uu#&55 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H*S	 S	 S	 S	 S	 S	 S	 S	 S	 S	n 2244	 	 	 	 	 	 	 	 	(   	)&)*?&@&@##&(#444 (+ ,) ,) ,) ,)2,) ,) ,) (* (*$ 666(;(;K(H(H% );66"7K"7K "777%k2J&JKg&&&6 +*;77K5 444: )(55
 	k*++./// m 	I 	IF\))? I$++,<V,D,DEEEE 2"6>377 3	6;77 3 ')V[*I*III	6; $ G GI I I  	4JJqCDDyy!1223 4 4 4 4 	6 	6E~ 6#2 
6 
6F!999 :
= =+0+?= = =E ABBCJJsSXXe__4555 &  r4   c                 <   g }|D ]}|r|d         | j         vr|                    |           *	 t          |dd                    5 }g }|                                                                D ]/}|                     |          D ]}|                    |           0|                     |          }|                    |           d d d            n# 1 swxY w Y   # t          $ r-}| 	                    t          |                     Y d }~d }~ww xY w|S r  )r[  r&   r   readr0  convert_arg_line_to_argsr  r   r  r  r   )r+   r-   new_arg_stringsr  	args_filearg_liner/   r}  s           r2   r  z$ArgumentParser._read_args_from_files  s   % 	) 	)J  )Ad6P!P!P&&z2222	)jn-- <&((1(8(8(C(C(E(E 8 8H'+'D'DX'N'N 8 8 + 2 23 7 7 7 78&*&@&@&M&M'..{;;;< < < < < < < < < < < < < < <  ) ) )JJs3xx(((((((() s<   C"BC
C"C	C"C	C""
D,"DDc                     |gS r6   r<   )r+   r  s     r2   r  z'ArgumentParser.convert_arg_line_to_args  s
    zr4   c                    |                      |          }t          j        ||          }|d t          d          t          t          d          t
          t          d          i}|                    |j                  }|t          dd|j                  |j        z  }t          ||          t          |                    d                    S )Nzexpected one argumentzexpected at most one argumentzexpected at least one argumentzexpected %s argumentzexpected %s argumentsrc   )_get_nargs_patternrW   r  rx   r   r   r   r   r   r   r   r   )r+   r   r  nargs_patternr  nargs_errorsr  s          r2   r  zArgumentParser._match_argument  s    //77	-)<== =a/00!;<<Q?@@L
 ""6<00C{56%|- -/5|<  ,,, 5;;q>>"""r4   c                 8    g }t          t          |          dd          D ]w}|d |         }d                     fd|D                       }t          j        ||          }|3|                    d |                                D                         nx|S )Nr   r   rt   c                 :    g | ]}                     |          S r<   )r  )rp   r   r+   s     r2   rs   z;ArgumentParser._match_arguments_partial.<locals>.<listcomp>  s7     < < <#)  $66v>> < < <r4   c                 ,    g | ]}t          |          S r<   )r   )rp   r  s     r2   rs   z;ArgumentParser._match_arguments_partial.<locals>.<listcomp>  s    HHHvs6{{HHHr4   )r   r   r*   rW   r  r   r   )r+   r   r  r  r   actions_slicer  r  s   `       r2   r  z'ArgumentParser._match_arguments_partial  s     s7||Q++ 	 	A#BQBKMgg < < < <-:< < < = =GIg':;;E HHHHHIII !
 r4   c                 t   |sd S |d         | j         vrd S || j        v r| j        |         }||d d fS t          |          dk    rd S |                    d          \  }}}|r|| j        v r| j        |         }||||fS |                     |          }t          |          dk    rLd                    d |D                       }||d}t          d          }	|                     |	|z             nt          |          dk    r|\  }
|
S | j        	                    |          r	| j
        sd S d|v rd S d |d d fS )	Nr   rc   r   r!   c                     g | ]	\  }}}}|
S r<   r<   )rp   r   r   r  r  s        r2   rs   z2ArgumentParser._parse_optional.<locals>.<listcomp>  s6     !O !O !O<FM3 "/ !O !O !Or4   )r(  matchesz4ambiguous option: %(option)s could match %(matches)sr   )r  r  r   	partition_get_option_tuplesr*   rx   r  r  r  r  )r+   r  r   r   r  r  option_tuplesrQ  rr   r  r  s              r2   r  zArgumentParser._parse_optional  s    	4 !} 1114 4440<F:tT11 z??a4 ,6+?+?+D+D(sL 	<=D$???0?F=#|;; //
;; }!!ii !O !O@M!O !O !O P PG(W==DJKKCJJsTz"""" 1$$)ML
 (..z:: 	6 t *4 Zt++r4   c                    g }| j         }|d         |v rx|d         |v rn| j        rf|                    d          \  }}}|sd x}}| j        D ]?}|                    |          r(| j        |         }||||f}|                    |           @n|d         |v r|d         |vr|}|d d         }	|dd          }
| j        D ]n}||	k    r)| j        |         }||d|
f}|                    |           1|                    |          r(| j        |         }||d d f}|                    |           on%|                     t          d          |z             |S )Nr   rc   r   rD   rt   zunexpected option string: %s)r  r]  r  r  rb  r&   r  rx   )r+   r   r  r  option_prefixr  r  r   r   short_option_prefixshort_explicit_args              r2   r  z!ArgumentParser._get_option_tuples  s    !u$$q)9U)B)B  +3@3J3J33O3O0sL .)--C,%)%@ + +M$//>> +!%!<]!K$mS,Fc***
 1&&=+;5+H+H)M"/"3!.qrr!2!%!< ' ' $777!8GF -5GGCMM#&&&&"--m<< '!8GF -t;CMM#&&&' JJq788=HIII r4   c                 b   |j         }|d}no|t          k    rd}na|t          k    rd}nS|t          k    rd}nE|t          k    rd}n7|t
          k    rd}n)|t          k    rd}ndd	                    d
|z            z  }|j        r,|	                    d	d          }|	                    dd          }|S )Nz(-*A-*)z(-*A?-*)z	(-*[A-]*)z
(-*A[A-]*)z([-AO]*)z(-*A[-AO]*)z(-*-*)z(-*%s-*)z-*r  rt   r  )
r   r   r   r   r   r   r   r*   r   r*  )r+   r   r   r  s       r2   r  z!ArgumentParser._get_nargs_pattern&	  s      =%MM h&MM l""'MM k!!(MM i&MM f__)MM h$MM '3;)?)??M   	;)11$;;M)11#r::M r4   c                     |                      ||          \  }}|r:t          d          }|                     |d                    |          z             |S rw  )parse_known_intermixed_argsrx   r  r*   rx  s        r2   parse_intermixed_argsz$ArgumentParser.parse_intermixed_argsW	  sW    55dIFF
d 	-011CJJsSXXd^^+,,,r4   c                    |                                  d D             }|rt          d|d         j        z            fd| j        D             rt          d          	 | j        }	 | j        !|                                 dd          | _        D ]2}|j        |_        t          |_        |j        |_	        t          |_        3| 
                    ||          \  }}D ]a}t          ||j                  rJt          ||j                  g k    r1ddlm}  |d|j        d	|           t!          ||j                   b	 D ]}|j        |_        |j	        |_        n"# D ]}|j        |_        |j	        |_        w xY w|                                 }	 |D ]}|j        |_        d
|_        | j        D ]}	|	j        |	_        d
|	_        | 
                    ||          \  }}
|D ]}|j        |_        | j        D ]}	|	j        |	_        n,# |D ]}|j        |_        | j        D ]}	|	j        |	_        w xY w	 || _        n# || _        w xY w||
fS )Nc                 <    g | ]}|j         t          t          fv |S r<   )r   r   r   rq  s     r2   rs   z>ArgumentParser.parse_known_intermixed_args.<locals>.<listcomp>l	  s3     5 5 5 333 333r4   z3parse_intermixed_args: positional arg with nargs=%sr   c                 :    g | ]}|j         D ]}|v |j        S r<   )r   r'  )rp   r   r   r   s      r2   rs   z>ArgumentParser.parse_known_intermixed_args.<locals>.<listcomp>r	  sI     I I IE.I I&K2G2G K2G2G2G2Gr4   z;parse_intermixed_args: positional in mutuallyExclusiveGroup   )rE  zDo not expect z in F)rk  r  r   r  r   r   
save_nargsr   r   save_defaultr  r  r'  rO  rD  rE  r|  rs  r   save_required)r+   rr   rZ  a
save_usager   remaining_argsrE  r   r   r  r   s              @r2   r  z*ArgumentParser.parse_known_intermixed_args^	  sD    22445 5+ 5 5 5 	9 --.qTZ8 9 9 9I I I IT%D I I I 	7 6 7 7 7.	$J9:%!%!2!2!4!4QRR!8DJ) . .F(.F%#+FL*0.F'%-FNN,0,A,A$BK-M -M)	>) 8 8F	6;77 8 '	6; ? ? C C111111iiPQQQ	6;7778 * 9 9F#)#4FL%+%8FNN9k 9 9F#)#4FL%+%8FNN9 2244I9 ( , ,F+1?F(&+FOO!< + +E*/.E'%*ENN$($9$9.:C%E %E!	6 ( ; ;F&,&:FOO!< 9 9E%*%8ENN9 ( ; ;F&,&:FOO!< 9 9E%*%8ENN9 9 $DJJDJ####&  s>   $I ,CE% I %FI AH *(I )H;;I 	Ic                     j         s<j        t          t          fvr'	 |                    d           n# t
          $ r Y nw xY w|sij        t          k    rYj         rj        }nj        }t          |t                    r,                     |          }                     |           n3|s?j        t          k    r/j         s(j        j        }n|}                     |           nt          |          dk    rAj        d t          fv r1|\  }                     |          }                     |           nj        t          k    r fd|D             }n~j        t          k    r, fd|D             }                     |d                    nBj        t          k    rt          }n* fd|D             }|D ]}                     |           |S )Nr`  rc   c                 <    g | ]}                     |          S r<   r  rp   vr   r+   s     r2   rs   z.ArgumentParser._get_values.<locals>.<listcomp>	  '    EEEAT__VQ//EEEr4   c                 <    g | ]}                     |          S r<   r  r  s     r2   rs   z.ArgumentParser._get_values.<locals>.<listcomp>	  r  r4   r   c                 <    g | ]}                     |          S r<   r  r  s     r2   rs   z.ArgumentParser._get_values.<locals>.<listcomp>	  r  r4   )r   r   r   r   r  r   r   rK  r   r  r   r  _check_valuer   r   r   )r+   r   r-   r1   r  r  s   ``    r2   r  zArgumentParser._get_values	  sK   $ 	fi=P)P)P""4((((     *	-v|x77$ '%%% 166!!&%000  	-&,,">">' #?~)#fe,,,, ""v|h7G'G'G%KJOOFJ77Efe,,,, \Y&&EEEEEEEEEE \V##EEEEEEEEEfeAh//// \X%%EE FEEEEEEEE - -!!&!,,,, s   6 
AAc                 4   |                      d|j        |j                  }t          |          s"t          d          }t	          |||z            	  ||          }n# t
          $ rL}t          |j        dt          |j                            }t          |          }t	          ||          d }~wt          t          f$ rP t          |j        dt          |j                            }||d}t          d          }t	          |||z            w xY w|S )Nr#   z%r is not callabler$   )r#   r1   z!invalid %(type)s value: %(value)r)r  r#   r  rx   r   r   rO  r'   r   r  r   )	r+   r   r  r  r  r  r}  r0   rr   s	            r2   r  zArgumentParser._get_value	  s*   &&vv{FKHH		"" 	9())Ci888	4Yz**FF ! 	- 	- 	-6;
D4E4EFFDc((C,,, :& 	4 	4 	46;
D4E4EFFD :66D788Cd
333		4 s   A   
D*AB11A$Dc                     |j         [||j         vrT|d                    t          t          |j                             d}t	          d          }t          |||z            d S d S )Nr!   )r1   r  z3invalid choice: %(value)r (choose from %(choices)s))r  r*   r   r'   rx   r   )r+   r   r1   rr   r  s        r2   r  zArgumentParser._check_value	  sr    >%%v~*E*E"#yyT6>)B)BCCE EDIJJCd
333	 &%*E*Er4   c                     |                                  }|                    | j        | j        | j                   |                                S r6   )r  r   r   r  r  r}   )r+   rk   s     r2   r   zArgumentParser.format_usage
  sK    ''))	DJ ;	= 	= 	=$$&&&r4   c                    |                                  }|                    | j        | j        | j                   |                    | j                   | j        D ]d}|                    |j	                   |                    |j                   |
                    |j                   |                                 e|                    | j                   |                                S r6   )r  r   r   r  r  r   r  r  r   r   r   r   r   rY  r}   )r+   rk   action_groups      r2   r}   zArgumentParser.format_help
  s    ''))	 	DJ ;	= 	= 	= 	4+,,, !/ 	$ 	$L##L$6777|7888##L$?@@@!!#### 	4;''' $$&&&r4   c                 8    |                      | j                  S )Nr   )rZ  r\   r:   s    r2   r  zArgumentParser._get_formatter%
  s    ###333r4   c                 r    |t           j        }|                     |                                 |           d S r6   )r  r  r  r   r+   files     r2   print_usagezArgumentParser.print_usage+
  s6    <;DD--//66666r4   c                 r    |t           j        }|                     |                                 |           d S r6   )r  r  r  r}   r  s     r2   r  zArgumentParser.print_help0
  s6    <;DD,,..55555r4   c                     |r>|pt           j        }	 |                    |           d S # t          t          f$ r Y d S w xY wd S r6   )r  stderrwriter  r  )r+   rD  r  s      r2   r  zArgumentParser._print_message5
  sd     	&4;D

7#####"G,   		 	s   ) >>r   c                 r    |r |                      |t          j                   t          j        |           d S r6   )r  r  r  r  )r+   statusrD  s      r2   r  zArgumentParser.exit@
  s8     	6555	&r4   c                     	 |                      t          j                   | j        |d}|                     dt          d          |z             d S )N)r\   rD  rD   z%(prog)s: error: %(message)s
)r  r  r  r\   r  rx   )r+   rD  rr   s      r2   r  zArgumentParser.errorE
  sV    	 	%%%	g66		!Q7884?@@@@@r4   rH  r6   )r   N)"r$   r=   r>   r   r`   r(   rm  r  rs  rk  ry  r  r{  r  r  r  r  r  r  r  r  r  r  r  r  r   r}   r  r  r  r  r  r  ri  rj  s   @r2   r   r     sM       , !!.!'+"&")"#=0 =0 =0 =0 =0 =0D	? 	? 	?  >  * * *
. . .   $ $ $ $LA! A! A!F  2  # # #,   7, 7, 7,r( ( (T+ + +b   H! H! H! H!Z6 6 6p  44 4 4' ' '' ' '.4 4 47 7 7 7
6 6 6 6
      
A A A A A A Ar4   r   )2__version____all__osrU  rerW   sysr  rD  r   rx   r   r   r   r   r   r   r   r  r*  r   rB   r   r	   r
   r   r   r@  	Exceptionr   r   r   r   rl  rs  ry  r  r  r  r  r  r  r  r  r   r   r  r  r  r   r<   r4   r2   <module>r     s  ;z   ,              * * * * * * * *		.     v   >	 	 	"G G G G GF G G GTQ Q Q Q Q- Q Q Q! ! ! ! !6 ! ! !    M   :$ $ $ $ $} $ $ $&  ? ? ? ? ?I ? ? ?(	 	 	 	 		 	 	 	\@ \@ \@ \@ \@ \@ \@ \@~$/ $/ $/ $/ $/F $/ $/ $/N .  .  .  .  .6  .  .  .F2 2 2 2 2 2 2 2.    (   "    )   "#- #- #- #- #-F #- #- #-L- - - - - - - -61 1 1 1 16 1 1 1.    &   &    V   8bL bL bL bL bL bL bL bLH- - - - -M - - -1: 1: 1: 1: 1:v 1: 1: 1:n$ $ $ $ $  $ $ $(s8 s8 s8 s8 s8 s8 s8 s8l	'; '; '; '; ';& '; '; ';TE E E E En E E E8XA XA XA XA XA%'8 XA XA XA XA XAr4   