
    4bh#                       	 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 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/      Z0 G d@ dAe0      Z1 G dB dCee/      Z2y)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y)_AttributeHolderc                    t        |       j                  }g }i }| j                         D ]  }|j                  t	        |              | j                         D ]1  \  }}|j                         r|j                  |d|       -|||<   3 |r|j                  dt	        |      z         |ddj                  |      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          2/opt/python-3.12.12/usr/lib/python3.12/argparse.py__repr__z_AttributeHolder.__repr__v   s    J''		>>#CtCy) $++-KD%  """dE#:;"'	$	 .
 vY78$dii&<==    c                 H    t        | j                  j                               S N)list__dict__itemsr+   s    r2   r(   z_AttributeHolder._get_kwargs   s    DMM'')**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   s    >+r4   r   c                 `    | g S t        |       t        u r| d d  S dd l}|j                  |       S Nr   )r#   r7   copy)r9   rA   s     r2   _copy_itemsrB      s5    }	 E{dQx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y) r   Nc                    |#dd l }|j                         j                  }|dz  }|| _        || _        t        |t        |dz
  |dz              | _        || _        d| _	        d| _
        d| _        | j                  | d       | _        | j                  | _        t        j                   dt        j"                        | _        t        j                   d      | _        y )Nr         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widthrG   s         r2   __init__zHelpFormatter.__init__   s     =,,.66EQJE
!1"%&7&)%"*6F6J&K#M "#!]]46 $ 2 2#&;;vsyy#A #&;;z#: r4   c                 l    | xj                   | j                  z  c_         | xj                  dz  c_        y N   rP   rK   rQ   r:   s    r2   _indentzHelpFormatter._indent   s'     6 66qr4   c                 l    | xj                   | j                  z  c_         | xj                  dz  c_        y ra   rc   r:   s    r2   _dedentzHelpFormatter._dedent   s'     6 66qr4   c                       e Zd ZddZd Zy)HelpFormatter._SectionNc                 <    || _         || _        || _        g | _        y r6   )	formatterparentheadingr9   )r+   rj   rk   rl   s       r2   r_   zHelpFormatter._Section.__init__   s    &DN DK"DLDJr4   c           	         | j                   | j                  j                          | j                  j                  } || j                  D cg c]
  \  }} ||  c}}      }| j                   | j                  j                          |sy| j                  t        urM| j                  A| j                  j                  }t        d      t        | j                        z  }d|d|fz  }nd} |d||dg      S c c}}w )N z%(heading)s:)rl   %*s%s

)rk   rj   rd   _join_partsr9   rf   rl   r   rP   _dict)r+   r*   funcargs	item_helpcurrent_indentheading_textrl   s           r2   format_helpz"HelpFormatter._Section.format_help   s    {{&&&(>>--DDJJGJjdDdDkJGHI{{&&&(  ||8+0H!%!?!? 043MM#~r<&HH w	4899# Hs   C;
r6   )r$   r=   r>   r_   ry   r<   r4   r2   rS   rh      s    		:r4   rS   c                 R    | j                   j                  j                  ||f       y r6   )rU   r9   r&   )r+   rt   ru   s      r2   	_add_itemzHelpFormatter._add_item   s     ##**D$<8r4   c                     | j                          | j                  | | j                  |      }| j                  |j                  g        || _        y r6   )rd   rS   rU   r{   ry   )r+   rl   sections      r2   start_sectionzHelpFormatter.start_section   s?    --d&;&;WEw**B/ 'r4   c                 Z    | j                   j                  | _         | j                          y r6   )rU   rk   rf   r:   s    r2   end_sectionzHelpFormatter.end_section   s     $ 5 5 < <r4   c                 V    |t         ur!|| j                  | j                  |g       y y y r6   )r   r{   _format_text)r+   texts     r2   add_textzHelpFormatter.add_text   s-    xD$4NN4,,tf5 %5r4   c                 Z    |t         ur#||||f}| j                  | j                  |       y y r6   )r   r{   _format_usage)r+   usageactionsgroupsprefixru   s         r2   	add_usagezHelpFormatter.add_usage   s1     '661DNN4--t4 !r4   c                    |j                   t        ur| j                  }t         ||            | j                  z   g}| j                  |      D ]/  }|j                  t         ||            | j                  z          1 t        |      }t        | j                  |      | _        | j                  | j                  |g       y y r6   )helpr   _format_action_invocationlenrP   _iter_indented_subactionsr&   rM   rR   r{   _format_action)r+   actionget_invocationinvocation_lengths	subactionaction_lengths         r2   add_argumentzHelpFormatter.add_argument  s    ;;h& ";;N"%nV&<"=@T@T"T!U!;;FC	"))#nY.G*H4K_K_*_` D   23M&)$*A*A*7'9D# NN4..9 'r4   c                 4    |D ]  }| j                  |        y r6   )r   )r+   r   r   s      r2   add_argumentszHelpFormatter.add_arguments  s    Ff% r4   c                     | j                   j                         }|r0| j                  j                  d|      }|j	                  d      dz   }|S )N

rp   )rT   ry   rZ   substrip)r+   r   s     r2   ry   zHelpFormatter.format_help  sI    !!--/++//=D::d#d*Dr4   c                 ^    dj                  |D cg c]  }|r
|t        ur| c}      S c c}w )Nrn   )r*   r   )r+   part_stringsparts      r2   rq   zHelpFormatter._join_parts$  s=    ww$0:$0DD$8 $0: ; 	; :s   *c                    |t        d      }||t        | j                        z  }n||sdt        | j                        z  }n|dt        | j                        z  }g }g }|D ]1  }|j                  r|j	                  |       !|j	                  |       3 | j
                  }	 |	||z   |      }
dj                  ||
fD cg c]  }|s|	 c}      }| j                  | j                  z
  t        |      t        |      z   kD  r1d} |	||      } |	||      }t        j                  ||      }t        j                  ||      }dfd	}t        |      t        |      z   dz  k  r[dt        |      t        |      z   dz   z  }|r' ||g|z   ||      }|j                   |||             nw|r ||g|z   ||      }nf|g}nbdt        |      z  }||z   } |||      }t        |      dkD  r2g }|j                   |||             |j                   |||             |g|z   }d	j                  |      }||d
S c c}w )Nzusage: r[   z%(prog)s z%\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+c                    g }g }t        |      }|t        |      dz
  }n|dz
  }| D ]d  }|dz   t        |      z   kD  r,|r*|j                  |dj                  |      z          g }|dz
  }|j                  |       |t        |      dz   z  }f |r#|j                  |dj                  |      z          ||d   |d  |d<   |S )Nrb   r   r   )r   r&   r*   )	partsindentr   lineslineindent_lengthline_lenr   
text_widths	           r2   	get_linesz.HelpFormatter._format_usage.<locals>.get_linesY  s    ED$'KM)#&v;?#01#4 %#a<#d)3j@T!LL#((4.)@A#%D'4q'8HD) CIM1 !& Vchhtn%<=)#(8MN#;a Lr4   g      ?rb   rp   r   r6   )rr   rs   rJ   option_stringsr&   _format_actions_usager*   rO   rP   r   rV   findallextend)r+   r   r   r   r   r[   	optionalspositionalsr   formataction_usagespart_regexp	opt_usage	pos_usage	opt_parts	pos_partsr   r   r   r   r   s                        @r2   r   zHelpFormatter._format_usage)  sb   >y\F Ddjj11E ]74::!66E ]$** 55D IK!(($$V,&&v.	 " //F!)k"96BLHH$)=C)=Aa)=CDE t';';;J6{SZ'*4 
 #9f5	";7	KKY?	KKY?	
!, v;T*dZ.?? CK#d)$;a$?@F  )4&9*<ff MYy&%AB" )4&9*<ff M!% !3v;.F%	1E%eV4E5zA~ "Yy&%ABYy&%AB!FUNE 		%( $U++G Ds   
I	I	c                    t               }i }|D ]4  }|j                  st        d|       	 |j                  |j                  d         }t	        |j                        }||z   }||| |j                  k(  sjd}	|j                  D ]+  }
|j                  |
       |
j                  t        u s'|	dz  }	- ||	z
  }|s|j                  s/||v r||xx   dz  cc<   nd||<   ||v r||xx   dz  cc<   n9d||<   n3|dkD  r.||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
||<   	 7 g }t        |      D ]U  \  }}
|
j                  t        u rd|j                  d        |j                  |      d
k(  r|j                  |       P|j                  |dz         d
k(  sh|j                  |dz          }|
j                  sN| j                  |
      }| j!                  |
|      }|
|v r|d   dk(  r|d   dk(  r|dd }|j                  |       |
j                  d   }|
j"                  dk(  r|
j%                         }n*| j'                  |
      }| j!                  |
|      }|d|}|
j                  s	|
|vrd|z  }|j                  |       X t)        |d      D ]  }||   g|||  dj+                  |D cg c]  }||	 c}      }d}d}t-        j.                  d|z  d|      }t-        j.                  d|z  d|      }t-        j.                  |d|d|      }|j1                         }|S # t        $ r Y Mw xY wc c}w )Nzempty group r   rb   z [[]z (r    r"   |r   [%s]T)reversez[\[(]z[\])]z(%s) z\1 (%s)z *rn   )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*   rV   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_stringitemr   opencloses                         r2   r   z#HelpFormatter._format_actions_usage  s   E'' <w!788&)e&:&:1&=> &))=)=%>"005%)=)==/0,"'"6"6%))&1!;;(2494 #7
 -?AY,Y)0  >> G+#ENd2N-0GEN'>#CLC/L+.GCL.2 G+#ENd2N-0GEN'>#CLC/L+.GCL"519c2%(
 3S Z "7+IAv {{h&T";;q>S(KKN[[Q'3.KKA& **BB6J((9 ]*Aw#~$r(c/#Abz T" !' 5 5a 8 <<1$!..0D
 #DDVLG"&"3"3FG"DK&3[AD 6+F!D=D T"[ ,` .A!!*E!AJ / xx%D%$43C%DE wwx$t4wwx%'5wwD%0#t<zz| O  x Es   MM M 	MMc                     d|v r|t        | j                        z  }t        | j                  | j                  z
  d      }d| j                  z  }| j                  |||      dz   S )Nz%(prog)r      r   r   )rs   rJ   rM   rO   rP   
_fill_text)r+   r   r   r   s       r2   r   zHelpFormatter._format_text  s`    $DJJ//Dt';';;R@
t+++tZ86AAr4   c                 `   t        | j                  dz   | j                        }t        | j                  |z
  d      }|| j
                  z
  dz
  }| j                  |      }|j                  s| j
                  d|f}d|z  }n<t        |      |k  r| j
                  d||f}d|z  }d}n| j
                  d|f}d|z  }|}|g}|j                  r{|j                  j                         ra| j                  |      }	|	rp| j                  |	|      }
|j                  dd|
d   fz         |
dd  D ]  }|j                  d|d|fz          n"|j                  d      s|j                  d       | j                  |      D ]"  }|j                  | j                  |             $ | j!                  |      S )	NrE   r   rn   ro   z	%*s%-*s  r   rb   rp   )rL   rR   rN   rM   rO   rP   r   r   r   r   _expand_help_split_linesr&   endswithr   r   rq   )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33a7 335}4b9
$t';';;a?66v> {{&&M9C%OM </&&L-GC'#-ML &&M9C%OM(L  ;;6;;,,.))&1I!..y*E
Y,JqM)JJK&qrNDLLmR-F!FG + ''-LL 77?ILL,,Y78 @ &&r4   c                    |j                   s8| j                  |      }dj                   | j                  ||      d            S g }|j                  dk(  r|j                  |j                          nJ| j                  |      }| j                  ||      }|j                   D ]  }|j                  |d|        dj                  |      S )Nr   rb   r   r!   )	r   r   r*   _metavar_formatterr   r   r   r   r&   )r+   r   r   r   r   r   s         r2   r   z'HelpFormatter._format_action_invocation4  s    $$>>vFG88DD33FGDQGHH E ||q V223
 @@H"//@%+%:%:MLLM;!GH &; 99U##r4   c                     |j                   |j                   n;|j                  -ddj                  t        t        |j                              z  n|fd}|S )N{%s},c                 4    t        t              rS f| z  S r6   )
isinstancetuple)
tuple_sizeresults    r2   r   z0HelpFormatter._metavar_formatter.<locals>.formatS  s    &%(zJ..r4   )metavarchoicesr*   mapstr)r+   r   default_metavarr   r   s       @r2   r   z HelpFormatter._metavar_formatterK  sO    >>%^^F^^'chhs3'?@@F$F	/
 r4   c                    | j                  ||      }|j                  d |d      z  }|S |j                  t        k(  rd |d      z  }|S |j                  t        k(  r$ |d      }t	        |      dk(  rd|z  }|S d|z  }|S |j                  t
        k(  rd |d      z  }|S |j                  t        k(  rd}|S |j                  t        k(  rd	 |d      z  }|S |j                  t        k(  rd
}|S 	 t        |j                        D cg c]  }d }}dj                  |       ||j                        z  }|S c c}w # t        $ r t        d      d w xY w)Nz%srb   r   rE   z[%s [%s ...]]z[%s ...]z%s [%s ...]r   z%s ...rn   zinvalid nargs valuer   )r   r   r   r   r   r   r   r   r   r   	TypeErrorr   r*   )r+   r   r   get_metavarr   r   rr   formatss           r2   r   zHelpFormatter._format_argsZ  s   --foF<<KN*F. - \\X%k!n,F* ) \\\)!!nG7|q (72"  $g-  \\[("[^3F  \\Y&F  \\V#A.F  \\X%F B).v||)<=)<A4)<= XXg&V\\)BBF	 > B !67TABs   2D? 		D:D? :D? ?Ec                 x   t        t        |      | j                        }t        |      D ]  }||   t        u s||=  t        |      D ]$  }t        ||   d      s||   j                  ||<   & |j                  d      %dj                  t        t        |d               |d<   | j                  |      |z  S )Nr   r$   r   r!   )rs   varsrJ   r7   r   hasattrr$   r   r*   r   r   _get_help_string)r+   r   paramsr0   s       r2   r   zHelpFormatter._expand_helpv  s    d6l4LDd|x'4L ! LDvd|Z0%d|44t ! ::i , $		#c6)3D*E FF9$$V,v55r4   c              #      K   	 |j                   }| j                           |       E d {    | j                          y 7 # t        $ r Y y w xY wwr6   )_get_subactionsrd   rf   AttributeError)r+   r   get_subactionss      r2   r   z'HelpFormatter._iter_indented_subactions  sN     	#33N LLN%'''LLN (	  		s1   AA AA A	AAAAc                     | j                   j                  d|      j                         }dd l}|j	                  ||      S )Nr   r   )rY   r   r   textwrapwrap)r+   r   r^   r  s       r2   r   zHelpFormatter._split_lines  s9    ''++C6<<> 	}}T5))r4   c                     | j                   j                  d|      j                         }dd l}|j	                  ||||      S )Nr   r   )initial_indentsubsequent_indent)rY   r   r   r  fill)r+   r   r^   r   r  s        r2   r   zHelpFormatter._fill_text  sF    ''++C6<<>}}T5,2/5  7 	7r4   c                     |j                   S r6   )r   r+   r   s     r2   r  zHelpFormatter._get_help_string      {{r4   c                 6    |j                   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   )rE      Nr6   )r$   r=   r>   r_   rd   rf   objectrS   r{   r~   r   r   r   r   r   ry   rq   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r<   r4   r2   r   r      s     #$#%	;>
:6 :@9(65
:"&;
_,BqfB.'`$.8
6*7#r4   r   c                       e Zd Z	 d Zy)r	   c                 X    dj                  fd|j                  d      D              S )Nrn   c              3   (   K   | ]	  }|z     y wr6   r<   ).0r   r   s     r2   	<genexpr>z9RawDescriptionHelpFormatter._fill_text.<locals>.<genexpr>  s     P1Ov}1Os   T)keepends)r*   
splitlines)r+   r   r^   r   s      `r2   r   z&RawDescriptionHelpFormatter._fill_text  s#    wwP$1OPPPr4   N)r$   r=   r>   r   r<   r4   r2   r	   r	     s    Qr4   r	   c                       e Zd Z	 d Zy)r
   c                 "    |j                         S r6   )r#  )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y)r   c                     	 |j                   }|d}d|vrF|j                  t        ur4t        t        g}|j
                  s|j                  |v r|t        d      z  }|S )Nrn   z
%(default)z (default: %(default)s))r   r   r   r   r   r   r   rr   )r+   r   r   defaulting_nargss       r2   r  z.ArgumentDefaultsHelpFormatter._get_help_string  se    	 {{<Dt#~~X-$,l#; ((FLL<L,LA7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y)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   r+  r  s     r2   r   z<MetavarTypeHelpFormatter._get_default_metavar_for_positional  r,  r4   N)r$   r=   r>   r   r   r<   r4   r2   r   r     s    $$r4   r   c                 
   | y | j                   rdj                  | j                         S | j                  d t        fvrm| j                  }t	        |t
              s|S | j                  t        k(  rt        |      dk(  rd|z  S | j                  t        k(  rd|z  S dj                  |      S | j                  d t        fvr| j                  S | j                  r,ddj                  t        t        | j                              z  S y )N/rE   z%s[, %s]r!   r   r   )r   r*   r   r   r   r   r   r   r   r   r  r   r   r   )argumentr   s     r2   _get_action_namer1    s    		 	 xx//00			$!1	1""'5)N>>\)c'la.?''^^{*''99W%%	tX.	.}}			S(*:*:!;<<<r4   c                       e Zd Z	 d Zd Zy)r   c                 2    t        |      | _        || _        y r6   )r1  argument_namemessage)r+   r0  r5  s      r2   r_   zArgumentError.__init__  s    -h7r4   c                 ~    | j                   d}nt        d      }|t        | j                  | j                         z  S )Nz%(message)sz'argument %(argument_name)s: %(message)s)r5  r4  )r4  rr   rs   r5  )r+   r   s     r2   __str__zArgumentError.__str__  sA    %"F@AFT\\+/+=+=? ? 	?r4   N)r$   r=   r>   r_   r7  r<   r4   r2   r   r     s    ?r4   r   c                       e Zd Z	 y)r   N)r$   r=   r>   r<   r4   r2   r   r     s    Jr4   r   c                   :    e Zd Z	 	 	 	 	 	 	 	 	 ddZd Zd ZddZy)r   Nc                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        y r6   
r   r  r   constr   r#   r   r   r   r   )r+   r   r  r   r<  r   r#   r   r   r   r   s              r2   r_   zAction.__init__Q  sK     -	

	 	r4   c                 L    g d}|D cg c]  }|t        | |      f c}S c c}w )Nr;  getattrr+   namesr0   s      r2   r(   zAction._get_kwargsg  s/    
 9>>wtT*+>>>   !c                      | j                   d   S r@   )r   r:   s    r2   r   zAction.format_usagev  s    ""1%%r4   c                 *    t        t        d            )Nz.__call__() not defined)NotImplementedErrorrr   r+   parser	namespacevaluesr   s        r2   __call__zAction.__call__y  s    !!$=">??r4   NNNNNFNNr6   )r$   r=   r>   r_   r(   r   rJ  r<   r4   r2   r   r     s7    0j ,?&@r4   r   c                   :     e Zd Zdeeddef fd	ZddZd Z xZS )r   NFc	                 b   g }	|D ]>  }
|	j                  |
       |
j                  d      s&d|
dd  z   }
|	j                  |
       @ dD ].  }t               |   t        ust	        j
                  |dd       0 |t        u rd }|t        u rd }|t        u rd }t        |   |	|d||||||		       y )
N----no-rE   )r#   r   r   zP{name!r} is deprecated as of Python 3.12 and will be removed in Python {remove}.)      )remover   )	r   r  r   r   r#   r   r   r   r   )r&   
startswithlocals_deprecated_defaultwarnings_deprecatedsuperr_   )r+   r   r  r   r#   r   r   r   r   _option_stringsr   
field_name	__class__s               r2   r_   zBooleanOptionalAction.__init__  s     +M""=1''- '-*; ;&&}5 , 9Jx
#+>>$$2"	$ 9 &&D))G))G* 	 		r4   c                 p    || j                   v r(t        || j                  |j                  d              y y )NrO  )r   setattrr  rS  rF  s        r2   rJ  zBooleanOptionalAction.__call__  s3    D///Ityym.F.Fw.O*OP 0r4   c                 8    dj                  | j                        S )Nz | )r*   r   r:   s    r2   r   z"BooleanOptionalAction.format_usage  s    zz$--..r4   r6   )r$   r=   r>   rU  r_   rJ  r   __classcell__r[  s   @r2   r   r     s(     ),,-`Q/r4   r   c                   8     e Zd Z	 	 	 	 	 	 	 	 d fd	ZddZ xZS )_StoreActionc                     |dk(  rt        d      ||t        k7  rt        dt        z        t        t        |   |||||||||	|

       y )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 constr;  )r   r   rX  rb  r_   r+   r   r  r   r<  r   r#   r   r   r   r   r[  s              r2   r_   z_StoreAction.__init__  ss     A: K L L (!2?(JKKlD*) 	+ 
	r4   c                 2    t        || j                  |       y r6   )r]  r  rF  s        r2   rJ  z_StoreAction.__call__  s    	499f-r4   rK  r6   r$   r=   r>   r_   rJ  r_  r`  s   @r2   rb  rb    s'    
 :.r4   rb  c                   2     e Zd Z	 	 	 	 	 d fd	ZddZ xZS )_StoreConstActionc           	      :    t         t        |   ||d||||       y )Nr   )r   r  r   r<  r   r   r   )rX  ri  r_   	r+   r   r  r<  r   r   r   r   r[  s	           r2   r_   z_StoreConstAction.__init__  s/     	/) 	0 	r4   c                 F    t        || j                  | j                         y r6   )r]  r  r<  rF  s        r2   rJ  z_StoreConstAction.__call__  s    	499djj1r4   NNFNNr6   rg  r`  s   @r2   ri  ri    s    
 "2r4   ri  c                   &     e Zd Z	 	 	 d fd	Z xZS )_StoreTrueActionc                 8    t         t        |   ||d|||       y )NTr   r  r<  r   r   r   )rX  ro  r_   r+   r   r  r   r   r   r[  s         r2   r_   z_StoreTrueAction.__init__  s,     	.) 	/ 	r4   )FFNr$   r=   r>   r_   r_  r`  s   @r2   ro  ro    s    
  r4   ro  c                   &     e Zd Z	 	 	 d fd	Z xZS )_StoreFalseActionc                 8    t         t        |   ||d|||       y )NFrq  )rX  ru  r_   rr  s         r2   r_   z_StoreFalseAction.__init__  s,     	/) 	0 	r4   )TFNrs  r`  s   @r2   ru  ru    s    
  r4   ru  c                   8     e Zd Z	 	 	 	 	 	 	 	 d fd	ZddZ xZS )_AppendActionc                     |dk(  rt        d      ||t        k7  rt        dt        z        t        t        |   |||||||||	|

       y )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 appropriaterd  r;  )r   r   rX  rx  r_   re  s              r2   r_   z_AppendAction.__init__  ss     A: O P P (!2?(JKKmT+) 	, 
	r4   c                     t        || j                  d       }t        |      }|j                  |       t	        || j                  |       y r6   )r?  r  rB   r&   r]  r+   rG  rH  rI  r   r9   s         r2   rJ  z_AppendAction.__call__4  :    	499d3E"V	499e,r4   rK  r6   rg  r`  s   @r2   rx  rx    s'    
 :-r4   rx  c                   2     e Zd Z	 	 	 	 	 d fd	ZddZ xZS )_AppendConstActionc           
      <    t         t        |   ||d|||||       y )Nr   )r   r  r   r<  r   r   r   r   )rX  r~  r_   rk  s	           r2   r_   z_AppendConstAction.__init__=  s2     	 $0) 	1 	r4   c                     t        || j                  d       }t        |      }|j                  | j                         t        || j                  |       y r6   )r?  r  rB   r&   r<  r]  r{  s         r2   rJ  z_AppendConstAction.__call__O  s>    	499d3E"TZZ 	499e,r4   rm  r6   rg  r`  s   @r2   r~  r~  ;  s    
 $-r4   r~  c                   .     e Zd Z	 	 	 d fd	ZddZ xZS )_CountActionc                 8    t         t        |   ||d|||       y )Nr   )r   r  r   r   r   r   )rX  r  r_   rr  s         r2   r_   z_CountAction.__init__X  s+     	lD*) 	+ 	r4   c                 n    t        || j                  d       }|d}t        || j                  |dz          y )Nr   rb   )r?  r  r]  )r+   rG  rH  rI  r   counts         r2   rJ  z_CountAction.__call__f  s2    	499d3=E	499eai0r4   )NFNr6   rg  r`  s   @r2   r  r  V  s    
 1r4   r  c                   .     e Zd Zeedf fd	ZddZ xZS )_HelpActionNc                 6    t         t        |   |||d|       y )Nr   r   r  r   r   r   )rX  r  r_   )r+   r   r  r   r   r[  s        r2   r_   z_HelpAction.__init__o  s(    
 	k4)) 	* 	r4   c                 D    |j                          |j                          y r6   )
print_helpexitrF  s        r2   rJ  z_HelpAction.__call__{  s    r4   r6   r$   r=   r>   r   r_   rJ  r_  r`  s   @r2   r  r  m  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|       || _        y )Nz&show program's version number and exitr   r  )rr   rX  r  r_   version)r+   r   r  r  r   r   r[  s         r2   r_   z_VersionAction.__init__  sA     <=>Dnd,) 	- 	 r4   c                     | j                   }||j                   }|j                         }|j                  |       |j                  |j	                         t
        j                         |j                          y r6   )r  _get_formatterr   _print_messagery   _sysstdoutr  )r+   rG  rH  rI  r   r  rj   s          r2   rJ  z_VersionAction.__call__  s[    ,,?nnG))+	7#i335t{{Cr4   r6   r  r`  s   @r2   r  r    s     ! r4   r  c                   R     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j                  |      z  z  }t        t        j                  |       }|j	                  g |||       y )Nr   r!   )r   r  r   r   )r*   rX  r  _ChoicesPseudoActionr_   )r+   r0   aliasesr   r   r  supr[  s          r2   r_   z/_SubParsersAction._ChoicesPseudoAction.__init__  sU    !!Gd7TYYw%777)>>ECLLD!(  *r4   rs  r`  s   @r2   r  r    s    	* 	*r4   r  FNc           	          || _         || _        i | _        g | _        t        t
        |   ||t        | j                  |||       y )N)r   r  r   r   r   r   r   )_prog_prefix_parser_class_name_parser_map_choices_actionsrX  r  r_   r   )	r+   r   r[   parser_classr  r   r   r   r[  s	           r2   r_   z_SubParsersAction.__init__  sU     !) " "/))) 	0 	r4   c                    |j                  d      | j                  d||d<   |j                  dd      }|| j                  v rt	        | t        d      |z        |D ](  }|| j                  v st	        | t        d      |z         d|v r?|j                  d      }| j                  |||      }| j                  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   rr   r  r  r&   r  )r+   r0   kwargsr  aliasr   choice_actionrG  s           r2   
add_parserz_SubParsersAction.add_parser  s   ::f%(,(9(94@F6N**Y+4(((a(C&Dt&KLLE---#!=>FH H  V::f%D 55dGTJM!!((7 $##-f-&,d# E+1D!!%(  r4   c                     | j                   S r6   )r  r:   s    r2   r
  z!_SubParsersAction._get_subactions  s    $$$r4   c                     |d   }|dd  }| j                   t        urt        || j                   |       	 | j                  |   }|j                  |d       \  }	}t        |	      j                         D ]  \  }
}t        ||
|        |rAt        |t              st        |t        g        t        |t              j                  |       y y # t        $ r9 |dj                  | j                        d}t        d      |z  }t        | |      w xY w)Nr   rb   r!   )parser_namer   z5unknown parser %(parser_name)r (choices: %(choices)s))r  r   r]  r  KeyErrorr*   rr   r   parse_known_argsr  r9   r  _UNRECOGNIZED_ARGS_ATTRr?  r   )r+   rG  rH  rI  r   r  r-   ru   msgsubnamespacekeyr1   s               r2   rJ  z_SubParsersAction.__call__  s   QiQRj 99H$Ityy+6	+**;7F %+$;$;K$N!k|,224JCIsE* 5 9&=>	#:B?I67>>{K #  	+#.#yy)>)>?ADKLtSCc**		+s   C ADr6   )r$   r=   r>   r   r  r   r_   r  r
  rJ  r_  r`  s   @r2   r  r    s2    *v * .<%Lr4   r  c                       e Zd ZddZy)_ExtendActionNc                     t        || j                  d       }t        |      }|j                  |       t	        || j                  |       y r6   )r?  r  rB   r   r]  r{  s         r2   rJ  z_ExtendAction.__call__  r|  r4   r6   )r$   r=   r>   rJ  r<   r4   r2   r  r    s    -r4   r  c                   "    e Zd Z	 ddZd Zd Zy)r   Nc                 <    || _         || _        || _        || _        y r6   )_mode_bufsize	_encoding_errors)r+   modebufsizeencodingerrorss        r2   r_   zFileType.__init__  s    
!r4   c                 F    |dk(  rd j                   v r8d j                   v rt        j                  j                  S t        j                  S t	         fddD              r8d j                   v rt        j
                  j                  S 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   y wr6   )r  )r   cr+   s     r2   r!  z$FileType.__call__.<locals>.<genexpr>(  s     4eQ$**_es   waxzargument "-" with mode %r)filenameerrorz$can't open '%(filename)s': %(error)s)r  r  stdinbufferanyr  rr   r   r   r  r  r  OSErrorr   )r+   stringr  eru   r5  s   `     r2   rJ  zFileType.__call__#  s    S=djj ,/4::,=tzz((M4::M4e44-0DJJ->t{{))ODKKO34tzzA o%	4

DMM4>>& & 	4 &3D>?G#GdN33	4s   =6C4 4	D =DD c           
      L   | j                   | j                  f}d| j                  fd| j                  fg}dj	                  |D cg c]  }|dk7  s	t        |       c}|D cg c]  \  }}||d| c}}z         }t        |       j                  d|dS c c}w c c}}w )Nr  r  r!   r   r   r    r"   )r  r  r  r  r*   r'   r#   r$   )r+   ru   r  r/   kwargs_strs         r2   r3   zFileType.__repr__7  s    zz4==(t~~.4<<0HI994E4C3"9d3i4EAG 2gb#!$ *,S1 22 3  :..99 F2s   
BB#B )r  r   NN)r$   r=   r>   r_   rJ  r3   r<   r4   r2   r   r     s     4(:r4   r   c                        e Zd Z	 d Zd Zd Zy)r   c                 2    |D ]  }t        | |||           y r6   )r]  )r+   r  r0   s      r2   r_   zNamespace.__init__J  s    DD$t- r4   c                 \    t        |t              st        S t        |       t        |      k(  S r6   )r   r   NotImplementedr  )r+   others     r2   __eq__zNamespace.__eq__N  s%    %+!!DzT%[((r4   c                     || j                   v S r6   )r8   )r+   r  s     r2   __contains__zNamespace.__contains__S  s    dmm##r4   N)r$   r=   r>   r_   r  r  r<   r4   r2   r   r   C  s    .)
$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 | _        | 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                  ddt&               | j)                          g | _        i | _        g | _        g | _        i | _        t5        j6                  d      | _        g | _        y )Nr   storestore_const
store_truestore_falser&   append_constr  r   r  parsersr   z^-\d+$|^-\d*\.\d+$)rX  r  r_   descriptionargument_defaultprefix_charsconflict_handler_registriesregisterrb  ri  ro  ru  rx  r~  r  r  r  r  r  _get_handler_actions_option_string_actions_action_groups_mutually_exclusive_groups	_defaultsrV   rW   _negative_number_matcher_has_negative_number_optionals)r+   r  r  r  r  r[  s        r2   r_   z_ActionsContainer.__init__Y  s\   
 	/1& 0( 0  	hl3h6h/@Ah.>?h/@Ah-8h0BCh6h4h	>:h	+<=h-8 	 &(# !*,'  ),4I(J% /1+r4   c                 F    | j                   j                  |i       }|||<   y r6   )r  
setdefault)r+   registry_namer1   r  registrys        r2   r  z_ActionsContainer.register  s#    ##..}bA r4   c                 @    | j                   |   j                  ||      S r6   )r  r   )r+   r  r1   r   s       r2   _registry_getz_ActionsContainer._registry_get  s     .225'BBr4   c                     | j                   j                  |       | j                  D ]%  }|j                  |v s||j                     |_        ' y r6   )r  updater  r  r   )r+   r  r   s      r2   set_defaultsz_ActionsContainer.set_defaults  s@    f% mmF{{f$!'!4 $r4   c                     | j                   D ],  }|j                  |k(  s|j                   |j                  c S  | j                  j	                  |d       S r6   )r  r  r   r  r   )r+   r  r   s      r2   get_defaultz_ActionsContainer.get_default  sH    mmF{{d"v~~'A~~% $ ~~!!$--r4   c                    	 | j                   }|rt        |      dk(  r.|d   d   |vr$|rd|v rt        d       | j                  |i |}n | j                  |i |}d|vrA|d   }|| j
                  v r| j
                  |   |d<   n| j                  | j                  |d<   | j                  |      }t        |      st        d|d       |di |}| j                  d|j                  |j                        }t        |      st        |d	      |t        u rt        |d
      t        | d      r!	 | j                         j                  |d        | j!                  |      S # t        $ r t        d      w xY w)Nrb   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+   ru   r  charsr  action_classr   	type_funcs           r2   r   z_ActionsContainer.add_argument  s   	 !!s4yA~$q'!*E*A&( !NOO0T00$A&AF /T..??F F"&>Dt~~%$(NN4$8y!&&2$($9$9y! --f5%lDEE'' &&vv{{FKKH		"Y@AA 2;> ? ? 4)*Q##%2264@ ''  Q !OPPQs   9 E* *E?c                 Z    t        | g|i |}| j                  j                  |       |S r6   )_ArgumentGroupr  r&   )r+   ru   r  r   s       r2   add_argument_groupz$_ActionsContainer.add_argument_group  s/    t5d5f5""5)r4   c                 T    t        | fi |}| j                  j                  |       |S r6   )_MutuallyExclusiveGroupr  r&   )r+   r  r   s      r2   add_mutually_exclusive_groupz._ActionsContainer.add_mutually_exclusive_group  s*    '77''..u5r4   c                 V   | j                  |       | j                  j                  |       | |_        |j                  D ]  }|| j
                  |<    |j                  D ]F  }| j                  j                  |      s| j                  r,| j                  j                  d       H |S )NT)	_check_conflictr  r&   	containerr   r  r  matchr  )r+   r   r   s      r2   r  z_ActionsContainer._add_action  s    V$ 	V$ $22M9?D''6 3 $22M,,22=A::77>>tD 3 r4   c                 :    | j                   j                  |       y r6   )r  rR  r  s     r2   _remove_actionz _ActionsContainer._remove_action  s    V$r4   c                    i }| j                   D ]B  }|j                  |v r#t        d      }t        ||j                  z        |||j                  <   D i }|j                   D ]r  }|j                  |vr?| j	                  |j                  |j
                  |j                        ||j                  <   |j                  D ]  }||j                     ||<    t |j                  D ]^  }|j                  |u r| }n||j                  j                     }|j                  |j                        }|j                  D ]  }|||<   	 ` |j                  D ]#  }|j                  ||       j                  |       % y )Nz.cannot merge actions - two groups are named %r)titler  r  )r   )r  r  rr   r   r  r  r  r   r  
_containerr  r   r  r   r  )	r+   r  title_group_mapr   r  	group_mapr   contmutex_groups	            r2   _add_container_actionsz(_ActionsContainer._add_container_actions   sp   ((E{{o-HI !455+0OEKK(	 ) 	--E {{/1/3/F/F++ % 1 1%*%;%; 0G 0=,  ..$3EKK$@	&! / ." 99E9,&u'7'7'='=>;; < )K  ..$/	&! / :  ((FMM&$'33F; )r4   c                     d|v rt        d      }t        |      |j                  d      }|t        t        t
        t        dfvrd|d<   t        ||g       S )Nr   z1'required' is an invalid argument for positionalsr   r   Tr  r   )rr   r  r   r   r   r   r   rs   )r+   r  r  r  r   s        r2   r  z(_ActionsContainer._get_positional_kwargs,  s]    GHCC.  

7#<HaHH!%F: Fb99r4   c                    g }g }|D ]~  }|d   | j                   vr(|| j                   d}t        d      }t        ||z        |j                  |       t	        |      dkD  s\|d   | j                   v sn|j                  |        |j                  dd       }|U|r|d   }n|d   }|j                  | j                         }|st        d      }t        |z        |j                  dd      }t        |||	      S )
Nr   )optionr  zNinvalid option string %(option)r: must start with a character %(prefix_chars)rrb   r  z%dest= is required for options like %rr  rr   r  )	r  rr   r   r&   r   r   lstripreplacers   )	r+   ru   r  r   long_option_stringsr   r  r  dest_option_strings	            r2   r  z&_ActionsContainer._get_optional_kwargs;  s    !M #t'8'88"/(,(9(9; G H t,, !!-0=!A%-*:d>O>O*O#**=9 " zz&$'<"%8%;"%3A%6"%,,T->->?D?@ }!455<<S)D FnEEr4   c                 L    |j                  d|      }| j                  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  r?  r  rr   r   )r+   handler_func_namer  s      r2   r  z_ActionsContainer._get_handlera  sV    1D4I4II	:4!233 	:;<CS4#8#8899	:s	    -A
c                     g }|j                   D ]3  }|| j                  v s| j                  |   }|j                  ||f       5 |r| j                         } |||       y y r6   )r   r  r&   r  )r+   r   confl_optionalsr   confl_optionalr  s         r2   r  z!_ActionsContainer._check_conflictj  sm     #22M ; ;;!%!<!<]!K&&~'FG 3 #002V_5 r4   c                     t        ddt        |            }dj                  |D cg c]  \  }}|	 c}}      }t        ||z        c c}}w )Nzconflicting option string: %szconflicting option strings: %sr!   )r   r   r*   r   )r+   r   conflicting_actionsr5  r   conflict_strings         r2   _handle_conflict_errorz(_ActionsContainer._handle_conflict_errorx  sf    :;235 ))(;%=(; *? &3(;%= > FGo$=>>%=s   A

c                     |D ]d  \  }}|j                   j                  |       | j                  j                  |d        |j                   rJ|j                  j                  |       f y r6   )r   rR  r  r   r  r  )r+   r   r)  r   s       r2   _handle_conflict_resolvez*_ActionsContainer._handle_conflict_resolve  s^     &9!M6 !!((7''++M4@ ((  //7 &9r4   r6   )r$   r=   r>   r_   r  r  r  r  r   r  r  r  r  r  r  r  r   r  r  r+  r-  r_  r`  s   @r2   r  r  W  sc    01j!C5.1(f

*%*<X: FD<:6?8r4   r  c                   >     e Zd Zd fd	Z fdZ fdZ fdZ xZS )r  c                    |j                   } |d|j                          |d|j                          |d|j                         t        t
        |   } |dd|i| || _        g | _        |j                  | _	        |j                  | _
        |j                  | _        |j                  | _        |j                  | _        |j                  | _        y )Nr  r  r  r  r<   )r  r  r  r  rX  r  r_   r  r   r  r  r  r  r  r  )r+   r  r  r  r  r  
super_initr[  s          r2   r_   z_ArgumentGroup.__init__  s    ""!9#=#=>~y556!9#=#=>>49
5{5f5 
  %00!**&/&F&F#",,44 	+*3*N*N'r4   c                 d    t         t        |   |      }| j                  j	                  |       |S r6   )rX  r  r  r   r&   r+   r   r[  s     r2   r  z_ArgumentGroup._add_action  s-    ~t8@""6*r4   c                 b    t         t        |   |       | j                  j	                  |       y r6   )rX  r  r  r   rR  r2  s     r2   r  z_ArgumentGroup._remove_action  s&    nd26:""6*r4   c                 Z    t        j                  dt        d       t        |   |i |S )Nz&Nesting argument groups is deprecated.rE   category
stacklevel)rV  warnDeprecationWarningrX  r  r+   ru   r  r[  s      r2   r  z!_ArgumentGroup.add_argument_group  s/    4'	

 w)4:6::r4   NN)r$   r=   r>   r_   r  r  r  r_  r`  s   @r2   r  r    s    O,
+; ;r4   r  c                   6     e Zd Zd fd	Zd Zd Z fdZ xZS )r
  c                 H    t         t        |   |       || _        || _        y r6   )rX  r
  r_   r   r  )r+   r  r   r[  s      r2   r_   z _MutuallyExclusiveGroup.__init__  s!    %t5i@ #r4   c                     |j                   rt        d      }t        |      | j                  j	                  |      }| j
                  j                  |       |S )Nz-mutually exclusive arguments must be optional)r   rr   r   r  r  r   r&   )r+   r   r  s      r2   r  z#_MutuallyExclusiveGroup._add_action  sK    ??CDCS/!,,V4""6*r4   c                 p    | j                   j                  |       | j                  j                  |       y r6   )r  r  r   rR  r  s     r2   r  z&_MutuallyExclusiveGroup._remove_action  s(    &&v.""6*r4   c                 Z    t        j                  dt        d       t        |   |i |S )Nz0Nesting mutually exclusive groups is deprecated.rE   r5  )rV  r8  r9  rX  r  r:  s      r2   r  z4_MutuallyExclusiveGroup.add_mutually_exclusive_group  s/    >'	

 w3TDVDDr4   )F)r$   r=   r>   r_   r  r  r  r_  r`  s   @r2   r
  r
    s    $
+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 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        | 
  } ||||	|
       |0t        j                  j                  t        j                  d         }|| _        || _	        || _
        || _        || _        || _        || _        || _        | j                   } |t#        d            | _         |t#        d            | _        d | _        d }| j+                  dd |       d|v rdn|d   }| j                  r,| j-                  |dz   |d	z  d
z   d
t.        t#        d             |D ];  }| j1                  |       	 |j2                  }| j2                  j5                  |       = y # t6        $ r Y Jw xY w)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  hrE   r   zshow this help message and exit)r   r   r   )rX  r   r_   _ospathbasenamer  argvr[   r   epilogformatter_classfromfile_prefix_charsadd_helpallow_abbrevexit_on_errorr  rr   _positionals
_optionals_subparsersr  r   r   r  r  r  r  )r+   r[   r   r  rK  parentsrL  r  rM  r  r  rN  rO  rP  	superinit	add_grouprE  default_prefixrk   defaultsr[  s                       r2   r_   zArgumentParser.__init__  sp    .$8	k+#3#3	5 <88$$TYYq\2D	
.%:" (*++	%a(>&?@#AiL1	fdH- !$| 3a==s"N1$4V$;x89  ; F''/0!++ %%h/  " s   5E	E+*E+c                 L    g d}|D cg c]  }|t        | |      f c}S c c}w )N)r[   r   r  rL  r  rN  r>  r@  s      r2   r(   zArgumentParser._get_kwargs.  s/    
 9>>wtT*+>>>rB  c                    | j                   t        d t        d            |j                  dt	        |              d|v sd|v rE|j                  dt        d            }|j                  dd       }| j                  ||      | _         n| j                  | _         |j                  d      k| j                         }| j                         }| j                  }|j                  | j                  ||d       |j                         j                         |d<   | j!                  |d      } |d
d	g i|}| j                   j#                  |       |S )Nz(cannot have multiple subparser argumentsr  r  r  subcommandsr[   rn   r  r   r<   )rS  r   rr   r  r#   r   r  rQ  r   r  _get_positional_actionsr  r   r   ry   r   r   r  )	r+   r  r  r  rj   r   r   parsers_classr   s	            r2   add_subparserszArgumentParser.add_subparsers<  s:   'a(R&STT 	.$t*5f 7JJw-(89E **]D9K#66ukJD#00D ::f%++-I668K44F

KD&224::<F6N ..vyA;b;F;$$V, r4   c                     |j                   r| j                  j                  |       |S | j                  j                  |       |S r6   )r   rR  r  rQ  r  s     r2   r  zArgumentParser._add_action[  s?      OO''/  ))&1r4   c                 X    | j                   D cg c]  }|j                  r| c}S c c}w r6   r  r   r  s     r2   _get_optional_actionsz$ArgumentParser._get_optional_actionsb  s4    "mm*+F(( +* 	* *   'c                 X    | j                   D cg c]  }|j                  s| c}S c c}w r6   ra  r  s     r2   r\  z&ArgumentParser._get_positional_actionsg  s4    "mm.+F,, +. 	. .rc  c                     | j                  ||      \  }}|rHt        d      dj                  |      z  }| j                  r| j	                  |       |S t        d |      |S Nzunrecognized arguments: %sr   )r  rr   r*   rP  r  r   r+   ru   rH  rJ  r  s        r2   
parse_argszArgumentParser.parse_argso  sb    **4;
d01CHHTNBC!!

3  $D#..r4   c                 *    | j                  ||d      S )NF
intermixed)_parse_known_args2)r+   ru   rH  s      r2   r  zArgumentParser.parse_known_argsy  s    &&tY5&IIr4   c                    |t         j                  dd  }nt        |      }|
t               }| j                  D ]`  }|j
                  t        ust        ||j
                        r-|j                  t        us@t        ||j
                  |j                         b | j                  D ])  }t        ||      rt        ||| j                  |          + | j                  r	 | j                  |||      \  }}n| j                  |||      \  }}t        |t               r/|j#                  t%        |t                      t'        |t                ||fS # t        $ r$}| j                  t        |             Y d }~kd }~ww xY wra   )r  rJ  r7   r   r  r  r   r  r   r]  r  rP  _parse_known_argsr   r  r   r  r   r?  delattr)r+   ru   rH  rk  r   r  errs          r2   rl  z!ArgumentParser._parse_known_args2|  sD   <99QR=D :D !I mmF{{(*y&++6~~X5	6;;G	 $ NND9d+	4)=> #
 %"&"8"8y*"U	4 #44T9jQOIt956KK	+BCDI67$ ! %

3s8$$%s   "E 	E?E::E?c           	          !"#$%&  j                    j                        i  j                  D ]h  }|j                  }t	        |j                        D ]B  \  }}j                  |g       }|j                  |d |        |j                  ||dz   d         D j i "g }	t              }
t	        |
      D ]b  \  }}|dk(  r*|	j                  d       |
D ]  }|	j                  d        5 j                  |      }|d}n|"|<   d}|	j                  |       d dj                  |	      t               $t               %d$% fd	& !" &fd} j                         ## &fd	}g  g !d
}"rt        "      }nd}||k  rut        "D cg c]	  }||k\  r| c}      }|s||k7  r ||      }||kD  r|}:|}|"vr,|| } j                  |       !j                  ||        |} ||      }||k  ru|s ||      } j                  |d         n j                  |d         !j                  |d         dj                  !      !t         !      D cg c]  \  }}|dk7  s| c}}!j!                  dd       |d
      }t	        !      D ]  \  }}|s n|dk7  s|dz  }d  |<     D cg c]  }||	 c} g } j"                  D ]  }|$vs|j$                  r|j                  t'        |             /|j(                  <t+        |j(                  t,              sWt/        |j0                        sn|j(                  t3        |j0                        u st5        |j0                   j7                  ||j(                                |r't9        d t;        d      dj                  |      z         j                  D ]  }|j$                  s|j                  D ]  }|%v s & |j                  D cg c]  }|j<                  t>        urt'        |      ! }}t;        d      }t9        d |dj                  |      z          fS c c}w c c}}w c c}w c c}w )Nrb   rN  r  AOrn   c                 2   	j                  |        j                  | |      }| j                  s|rQ
j                  |        j                  | g       D ]+  }|
v st	        d      }t        |      }t        | ||z         |t        ur | ||       y y )Nznot allowed with argument %s)r   _get_valuesr   r   rr   r1  r   r   )r   argument_stringsr   argument_valuesconflict_actionr  action_nameaction_conflictsrH  seen_actionsseen_non_default_actionsr+   s          r2   take_actionz5ArgumentParser._parse_known_args.<locals>.take_action  s    V$"..v7GHO $$(8(,,V4'7';';FB'GO&*BB >?&6&G+FC+4EFF	 (H h.tYG /r4   c                    |    }t        |      dkD  rLdj                  |D cg c]	  \  }}}}| c}}}}      }|    |d}t        d      }t        d ||z        |d   \  }}}}j                  }	g }
	 |*j                  |           j                  d       | dz   S | |	|d      }j                  }|dk(  r|d   |vr|dk7  r|s|d   |v rt        d	      }t        |||z        |
j                  |g |f       |d   }||d   z   }j                  }||v r$||   }|dd  }|sd x}}n|d   d
k(  rd
}|dd  }nd}nj                  ||z          j                  d       | dz   }np|dk(  r| dz   }|g}|
j                  |||f       nNt        d	      }t        |||z        | dz   }|d  } |	||      }||z   }|| }|
j                  |||f       nh|
D ]  \  }}} |||        |S c c}}}}w )Nrb   r!   )r  matchesz4ambiguous option: %(option)s could match %(matches)sr   rs  rr  rn   zignored explicit argument %rr   )r   r*   rr   r   _match_argumentr&   r  r  )start_indexoption_tuplesr   r   sepexplicit_argrC  ru   r  match_argumentaction_tuples	arg_countr  charoptionals_mapstopr   selected_patternsr-   arg_strings_patternextrasextras_patternoption_string_indicesr+   r}  s                     r2   consume_optionalz:ArgumentParser._parse_known_args.<locals>.consume_optional  s    2+>M=!A%))DQ%SDQ@sL &3DQ%S T"-k":wONO#D#*557DQ7G4FM3 "11NM >MM+k":;"))#.&?*  + .vs ;I
 !--E!Q)!,E9(B.,q/U":"#$B"CC"/l8J"KK%,,fb--HI,Q/(,|A(>(,(C(C(M9%2=%AF+7+;L#/59 9l!-aC!7&)/;AB/?&("MM$*=>*11#6#.?D! #a*Q ,~%,,fdM-JK
   >?+FC,4FGG (!OE(;EF(C% .v7H II 9,D&uT2D!((&$)FGI R 0=+mFD-8 0=Ko%Ss   G9c                    
j                   }| d  } |	|      }t        	|      D ]  \  }}| | |z    }|j                  t        k(  r|    dk(  rO|j	                  d       n=|j                  t
        k7  r*j                  d| | |z         dk\  r|j	                  d       | |z  }  ||        	t        |      d  	d d  | S )Nr  rN  r   )_match_arguments_partialzipr   r   rR  r   findr   )r  match_partialselected_pattern
arg_countsr   r  ru   r-   r  r   r+   r}  s          r2   consume_positionalsz=ArgumentParser._parse_known_args.<locals>.consume_positionalsI  s     99M2;<@&{4DEJ &)j%A!	";i0GH<<6)*;73>D)\\Y.+00k1<y1HJMNOD)y(FD) &B  )Z)9:KNr4   r   r   z(the following arguments are required: %sr!   z#one of the arguments %s is requiredr   r6   ) rM  _read_args_from_filesr  r   r   r  r   iterr&   _parse_optionalr*   r   r\  rM   rL   r  r  r  r   r1  r   r   r   r  r  r?  r]  
_get_valuer   rr   r   r   )'r+   r-   rH  rk  r  r   r   mutex_action	conflictsarg_string_pattern_partsarg_strings_iter
arg_stringr  patternr  r  r  max_option_string_indexr   next_option_string_indexpositionals_end_indexstrings
stop_indexr   r  required_actionsr   r   rA  r  rz  r  r  r  r  r   r{  r|  r}  s'   ```                           @@@@@@@@@r2   rn  z ArgumentParser._parse_known_args  s   %%144[AK ::K'66M#,[-G-G#H<,77bI	  r!23  q1uv!67 $I ; !##% ,&'78MAz T!(//4"2J,33C8 #3 !% 4 4Z @ (!G/<)!,!G(//8# 9( !gg&>? u#&5 	H 	H(]	 ]	B 224	 	:  &)*?&@#&(#44 (+2,)2EK' 2,) (*$ +1I"I(;K(H% );6"7K"7K "77%k2JKg&%%&9+F^&_`6 +;7K7 44: ,[9J MM+jk23MM+kl34!!"5kl"CDWW^4N *-V^)DQ)DAS1)DQK"0"8"8b"A,Q/J!.11!8!OJ $F1I 2 "(9A1=a9F mmF\)??$++,<V,DE 2"6>>37	6;;7')V[[*II	6;; $ GI $  a(R&Syy!12'3 4 4 44E~~#22F!99 3 ,1+?+?=+? &8 ; .f5+?  = ABC'cCHHUO.CDD 5 &  s,)L R :D=s$   Q&,Q+:Q+Q1Q1$Q6c                     g }|D ]  }|r|d   | j                   vr|j                  |       (	 t        |dd  t        j                         t        j
                               5 }g }|j                         j                         D ])  }| j                  |      D ]  }|j                  |        + | j                  |      }|j                  |       d d d         |S # 1 sw Y   xY w# t        $ r}t        d t        |            d }~ww xY w)Nr   rb   )r  r  )rM  r&   r   r  getfilesystemencodinggetfilesystemencodeerrorsreadr#  convert_arg_line_to_argsr  r   r  r   r   )r+   r-   new_arg_stringsr  	args_filearg_liner/   rp  s           r2   r  z$ArgumentParser._read_args_from_files  s   %J Ad6P6P!P&&z28jn'+'A'A'C%)%C%C%EGJS&((1(8(C(C(EH'+'D'DX'N + 2 23 7 (O )F '+&@&@&M'..{;G &, G G  8'c#h778s0   5C*#A/CC*C'	#C**	D3DDc                     |gS r6   r<   )r+   r  s     r2   r  z'ArgumentParser.convert_arg_line_to_args  s
    zr4   c                 x   | j                  |      }t        j                  ||      }|xd t        d      t        t        d      t
        t        d      i}|j                  |j                        }|$t        dd|j                        |j                  z  }t        ||      t        |j                  d            S )Nzexpected one argumentzexpected at most one argumentzexpected at least one argumentzexpected %s argumentzexpected %s argumentsrb   )_get_nargs_patternrV   r  rr   r   r   r   r   r   r   r   r   )r+   r   r  nargs_patternr  nargs_errorsr  s          r2   r  zArgumentParser._match_argument  s    //7		-)<= =a/0!;<Q?@L
 ""6<<0C{56%||-/5||<  ,, 5;;q>""r4   c           	         t        t        |      dd      D ]  }|d | }dj                  |D cg c]  }| j                  |       c}      }t	        j
                  ||      }|O|j                         D cg c]  }t        |       }	}|j                         t        |      k  r(||j                            dk(  r|	r|	d   s|	d= |	r|	d   s|	c S  g S c c}w c c}w )Nr   r   rn   rs  )r   r   r*   r  rV   r  r   r   )
r+   r   r  r   actions_slicer   r  r  r  r   s
             r2   r  z'ArgumentParser._match_arguments_partial  s     s7|Q+A#BQKMgg-:<-:6  $66v>-:< =GIIg':;E 49LLNCN&#f+NCIIK#&9"::+EIIK8C? "2J ! , 	< Ds   C
8Cc                    |sy |d   | j                   vry || j                  v r| j                  |   }||d d fgS t        |      dk(  ry |j                  d      \  }}}|r$|| j                  v r| j                  |   }||||fgS | j	                  |      }|r|S | j
                  j                  |      r| j                  sy d|v ry d |d d fgS )Nr   rb   r   r   )r  r  r   	partition_get_option_tuplesr  r  r  )r+   r  r   r   r  r  r  s          r2   r  zArgumentParser._parse_optional	  s    !} 1 11 44400<FZt455 z?a ,6+?+?+D(sL=D$?$??00?F]C>?? //
;  
 ((..z:66 * z4.//r4   c                    g }| j                   }|d   |v ry|d   |v rr| j                  rd|j                  d      \  }}}|sd x}}| j                  D ]:  }|j	                  |      s| j                  |   }||||f}|j                  |       < |S |d   |v r|d   |vr|j                  d      \  }}}|sd x}}|d d }	|dd  }
| j                  D ]s  }||	k(  r'| j                  |   }||d|
f}|j                  |       /| j                  s<|j	                  |      sN| j                  |   }||||f}|j                  |       u |S t        d t        d      |z        )Nr   rb   r   rE   rn   zunexpected option string: %s)r  rO  r  r  rS  r&   r   rr   )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  3@3J3J33O0sL)--C,%)%@%@M$//>!%!<!<]!K$mS,Fc*	 &A> - 1&=+;5+H/</F/Fs/K,M3%))l"/"3!.qr!2!%!<!< $77!88GF -5GGCMM#&&&=+C+CM+R!88GF -lBCMM#& "=   a(F&G-&WXXr4   c                 J   |j                   }|j                  }|
|rd}|S d}|S |t        k(  r
|rd}|S d}|S |t        k(  r
|rd}|S d}|S |t        k(  r
|rd}|S d}|S |t
        k(  r
|rd	}|S d
}|S |t        k(  r
|rd}|S d}|S |t        k(  r
|rd}|S d}|S |rd|z  nd|z  }|S )Nz([A])z(-*A-*)z(A?)z(-*A?-*)z(A*)z	(-*[A-]*)z(A+)z
(-*A[A-]*)z([AO]*)z(.*)z(A[AO]*)z(-*A[-AO]*)z()z(-*)z
([AO]{%d})z((?:-*A){%d}-*))r   r   r   r   r   r   r   r   )r+   r   r   r  r  s        r2   r  z!ArgumentParser._get_nargs_patternj	  sL    && ='-GM> ? 4=M> 9 h&,FM6 7 3=M6 1 l"&,FM. / 3>M. ) k!&,FM& ' 3?M& ! i)/IM  6<M  f_*0JM  7DM  h$*DM  17M  5;L50@QTY@YM r4   c                     | j                  ||      \  }}|rHt        d      dj                  |      z  }| j                  r| j	                  |       |S t        d |      |S rf  )parse_known_intermixed_argsrr   r*   rP  r  r   rg  s        r2   parse_intermixed_argsz$ArgumentParser.parse_intermixed_args	  sb    55dIF
d01CHHTNBC!!

3  $D#..r4   c                     | j                         }|D cg c]  }|j                  t        t        fv r| }}|rt	        d|d   j                  z        | j                  ||d      S c c}w )Nz3parse_intermixed_args: positional arg with nargs=%sr   Trj  )r\  r   r   r   r  rl  )r+   ru   rH  r   r   as         r2   r  z*ArgumentParser.parse_known_intermixed_args	  s     224"- 5+ 33 + 5 --.qTZZ8 9 9 &&tY4&HH5s   !A)c                    |sv|j                   t        k(  rc|j                  r|j                  }n|j                  }t        |t              r,|t        ur$| j                  ||      }| j                  ||       |S |sO|j                   t        k(  r<|j                  s0|j                   |j                  }| j                  ||       |S |}|S t        |      dk(  r>|j                   d t        fv r*|\  }| j                  ||      }| j                  ||       |S |j                   t        k(  r!|D cg c]  }| j                  ||       }}|S |j                   t        k(  r6|D cg c]  }| j                  ||       }}| j                  ||d          |S |j                   t        k(  rt        }|S |D cg c]  }| j                  ||       }}|D ]  }| j                  ||        |S c c}w c c}w c c}w )Nrb   r   )r   r   r   r<  r   r   r   r   r  _check_valuer   r   r   r   )r+   r   r-   r1   r  vs         r2   ru  zArgumentParser._get_values	  s   v||x7$$%%%x*?6!!&%0P I &,,,">''~~)!!&%0@ 9 $8 3 "v||h7G'G%KJOOFJ7Efe,, ' \\Y&9DEAT__VQ/EE$  \\V#9DEAT__VQ/EEfeAh/  \\X%E  :EEAT__VQ/EE!!&!,  % F F Fs   -G(!G-2G2c                    | j                  d|j                  |j                        }t        |      st        d      }t	        |||z        	  ||      }|S # t
        $ r}t        |      }t	        ||      d }~wt        t        f$ rJ t        |j                  dt        |j                              }||d}t        d      }t	        |||z        w xY w)Nr#   z%r is not callabler$   )r#   r1   z!invalid %(type)s value: %(value)r)r  r#   r  rr   r   r   r   r  r   r?  r'   )	r+   r   r  r  r  r   rp  r0   ru   s	            r2   r  zArgumentParser._get_value	  s    &&vv{{FKKH		"()Ci88	4z*F  ! 	-c(C,, :& 	46;;
D4EFD :6D78Cd
33		4s   A 	C!A88ACc                     |j                   }|ot        |t              rt        |      }||vrOt        |      dj	                  t        t        |j                               d}t        d      }t        |||z        y y )Nr!   )r1   r   z3invalid choice: %(value)r (choose from %(choices)s))r   r   r   r  r*   r   rr   r   )r+   r   r1   r   ru   r  s         r2   r  zArgumentParser._check_value
  sx    ..'3'w-G#!$U#'99Sfnn-E#FHMN#FC$J77	 $ r4   c                     | j                         }|j                  | j                  | j                  | j                         |j                         S r6   )r  r   r   r  r  ry   )r+   rj   s     r2   r   zArgumentParser.format_usage
  sB    '')	DJJ ;;	=$$&&r4   c                    | j                         }|j                  | j                  | j                  | j                         |j                  | j                         | j                  D ]c  }|j                  |j                         |j                  |j                         |j                  |j                         |j                          e |j                  | j                         |j                         S r6   )r  r   r   r  r  r   r  r  r~   r  r   r   r   rK  ry   )r+   rj   action_groups      r2   ry   zArgumentParser.format_help
  s    '')	 	DJJ ;;	= 	4++, !//L##L$6$67|778##L$?$?@!!#	 0 	4;;' $$&&r4   c                 :    | j                  | j                        S )Nr   )rL  r[   r:   s    r2   r  zArgumentParser._get_formatter/
  s    ###33r4   c                 h    |t         j                  }| j                  | j                         |       y r6   )r  r  r  r   r+   files     r2   print_usagezArgumentParser.print_usage5
  s)    <;;DD--/6r4   c                 h    |t         j                  }| j                  | j                         |       y r6   )r  r  r  ry   r  s     r2   r  zArgumentParser.print_help:
  s)    <;;DD,,.5r4   c                     |r'|xs t         j                  }	 |j                  |       y y # t        t        f$ r Y y w xY wr6   )r  stderrwriter  r  )r+   r5  r  s      r2   r  zArgumentParser._print_message?
  sB    &4;;D

7#  #G, s   + ==c                 r    |r | j                  |t        j                         t        j                  |       y r6   )r  r  r  r  )r+   statusr5  s      r2   r  zArgumentParser.exitJ
  s%    5		&r4   c                     	 | j                  t        j                         | j                  |d}| j	                  dt        d      |z         y )N)r[   r5  rE   z%(prog)s: error: %(message)s
)r  r  r  r[   r  rr   )r+   r5  ru   s      r2   r  zArgumentParser.errorO
  sB    	 	%		g6		!Q784?@r4   r;  r6   )r   N)#r$   r=   r>   r   r_   r(   r^  r  rb  r\  rh  r  rl  rn  r  r  r  r  r  r  r  r  r  ru  r  r  r   ry   r  r  r  r  r  r  r_  r`  s   @r2   r   r     s    , !!.!'+"&")"#=0D	?>*
.J$Lg!R	6#,",0\*X(\I*1f2
8''.47
6

Ar4   r   )3__version____all__osrG  rerV   sysr  rV  r   rr   r   r   r   r   r   r   r   r  r  r   rB   r   r	   r
   r   r   r1  	Exceptionr   r   r   rU  r   rb  ri  ro  ru  rx  r~  r  r  r  r  r  r   r   r  r  r
  r   r<   r4   r2   <module>r     s  ;z ,     *		. v >	"DF DNQ- Q!6 !M :$} $&.?I ?(		 	\@ \@@ h 6/F 6/r .6  .F2 2.( ") "#-F #-L- -616 1.& &V 8cL cLJ-M -1:v 1:n$  $(v8 v8r	';& ';TEn E8DA%'8 DAr4   