
    /hh                    v   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKJr  S SKJr  S SKJr  S SKJrJr  S SKJr   " S S\R.                  5      r " S	 S
\R2                  5      r " S S\R2                  5      r\R6                   " S S\5      5       r " S S\5      r " S S\5      r " S S\ 5      r!S r" " S S\RF                  5      r$ " S S\%5      r&\4r'\&" S\'0 5      r( " S S\(5      r) " S S\(5      r* " S S \(5      r+ " S! S"\(5      r, " S# S$\(5      r- " S% S&\(5      r. " S' S(\(5      r/ " S) S*\(5      r0 " S+ S,\(5      r1 " S- S.\(5      r2 " S/ S0\(5      r3 " S1 S2\(5      r4 " S3 S4\(5      r5 " S5 S6\(5      r6 " S7 S8\(5      r7 " S9 S:\(5      r8 " S; S<\(5      r9 " S= S>\(5      r: " S? S@\(5      r; " SA SB\(5      r< " SC SD\(5      r= " SE SF\(5      r> " SG SH\(5      r? " SI SJ\(5      r@ " SK SL\(5      rA " SM SN\(5      rB " SO SP\(5      rC " SQ SR\(5      rD " SS ST\(5      rE " SU SV\(5      rF " SW SX\(5      rG " SY SZ\(5      rH " S[ S\\(5      rI " S] S^\(5      rJ " S_ S`\(5      rK " Sa Sb\(5      rL " Sc Sd\(5      rM " Se Sf\(5      rN " Sg Sh\(5      rO " Si Sj\(5      rP " Sk Sl\(5      rQ " Sm Sn\(5      rR " So Sp\5      rS " Sq Sr\(5      rT " Ss St\(5      rU " Su Sv\(5      rV " Sw Sx\(5      rW " Sy Sz\(5      rX " S{ S|\(5      rY " S} S~\(5      rZ " S S\(5      r[ " S S\(5      r\ " S S\(5      r] " S S\(5      r^ " S S\(5      r_ " S S\(5      r` " S S\(5      ra " S S\(5      rb " S S\(5      rc " S S\(5      rd " S S\(5      re " S S\(5      rf " S S\(5      rg " S S\(5      rh " S S\(5      ri " S S\(5      rj " S S\(5      rk " S S\(5      rl " S S\(5      rm " S S\(5      rn " S S\(5      ro " S S\(5      rp " S S\(5      rq " S S\(5      rr " S S\(5      rs " S S\(5      rt " S S\(5      ru " S S\(5      rv " S S\(5      rw " S S\(5      rx " S S\(5      ry " S S\(5      rz " S S\(5      r{ " S S\(5      r| " S S\(5      r} " S S\(5      r~ " S S\(5      r " S S\(5      r " S S\(5      r " S S\\(5      r " S S\\(5      r " S S\5      r\" 5       r\" 5       r " S S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r " S S\5      r " S S\\(5      r " S S\\(5      r " S S\\(5      r " S S\5      r\GR&                   " S S\\(5      5       r\GR&                   " S S\\(5      5       r\GR&                   " S S\\(5      5       r\GR&                   " S S\5      5       r " S S\5      r " S S\5      r " S S\(5      r " S S\(5      r " S S\(5      r " S S\5      r " S S\(5      r " S S\5      r " S S\(5      r " S GS \5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS	 GS
\5      r " GS GS\\5      r " GS GS\\5      r " GS GS\\5      r " GS GS\\5      r " GS GS\\5      r " GS GS\\5      r " GS GS\\5      r " GS GS\\5      r " GS GS\\5      r " GS GS\\5      r " GS GS \\5      r " GS! GS"\\5      r " GS# GS$\5      r " GS% GS&\\5      r " GS' GS(\\5      r " GS) GS*\\5      r " GS+ GS,\\5      r " GS- GS.\\5      r " GS/ GS0\\5      r " GS1 GS2\\5      r " GS3 GS4\\5      r " GS5 GS6\5      r " GS7 GS8\5      r " GS9 GS:\5      r " GS; GS<\%5      r\4r'\" GS=\'0 5      r " GS> GS?\5      r " GS@ GSA\5      r " GSB GSC\5      r " GSD GSE\5      r " GSF GSG\5      r " GSH GSI\5      r " GSJ GSK\5      r " GSL GSM\5      r " GSN GSO\5      r " GSP GSQ\5      r " GSR GSS\5      r " GST GSU\5      r " GSV GSW\5      r " GSX GSY\5      r " GSZ GS[\5      r " GS\ GS]\5      r " GS^ GS_\5      r " GS` GSa\5      r " GSb GSc\5      r " GSd GSe\5      r " GSf GSg\5      r " GSh GSi\5      r " GSj GSk\5      r " GSl GSm\5      r " GSn GSo\5      r " GSp GSq\5      r " GSr GSs\5      r " GSt GSu\5      r " GSv GSw\5      r " GSx GSy\5      r " GSz GS{\5      r " GS| GS}\5      r " GS~ GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      r " GS GS\5      Gr  " GS GS\5      GrGS GrG\GS:X  a]  G\" \GR
                  5      GS:  a1  \GR
                  GS   GS:X  a  \" \5        \GR                  " S 5        \GR                  " 5         gg(      N)StrEnum)captured_stderr)	os_helper)TestTranslationsBaseupdate_translation_snapshots)mockc                   2   ^  \ rS rSrSU 4S jjrS rSrU =r$ )StdIOBuffer   c                    > UR                  S5      n[        TU ]	  [        R                  " [        R
                  " U5      5      SUS9  g )Nutf-8)newline)encodesuper__init__ioBufferedWriterBytesIO)selfinitial_valuer   	__class__s      ;/opt/python-3.13.8/usr/lib/python3.13/test/test_argparse.pyr   StdIOBuffer.__init__!   s@    %,,W5**2::m+DE ' 	 	3    c                     U R                  5         U R                  R                  R                  5       R	                  S5      $ )Nr   )flushbufferrawgetvaluedecoder   s    r   r   StdIOBuffer.getvalue&   s-    

{{'')0099r    ) 
)__name__
__module____qualname____firstlineno__r   r   __static_attributes____classcell__r   s   @r   r
   r
      s    3
: :r   r
   c                        \ rS rSrS rS rSrg)StdStreamTest+   c                    [         R                  " 5       n[        R                  " S 5         [        R
                  " S5         UR                  SSS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nargparse._sys.exitr   foo)statusmessage)argparseArgumentParser
contextlibredirect_stderrr   patchexitr   parsers     r   test_skip_invalid_stderr&StdStreamTest.test_skip_invalid_stderr-   sX    ((*&&t,JJ+,KKq%K0 - -,,, -,s#   A6A%A6%
A3	/A66
Bc                    [         R                  " 5       nUR                  UR                  [        R
                  " UR                  S/5      4 H  nU R                  US9   [        R                  " S 5         [        5        n[        R                  " U5         [        R                  " S5         U" 5         U R                  UR                  5       S5        S S S 5        S S S 5        S S S 5        S S S 5        S S S 5        M     g ! , (       d  f       N3= f! , (       d  f       N<= f! , (       d  f       NE= f! , (       d  f       NN= f! , (       d  f       GM  = f)N-h)funcr1   zusage:)r5   r6   print_usage
print_help	functoolspartial
parse_argssubTestr7   redirect_stdoutr
   r8   r   r9   assertRegexr   )r   r<   rA   mocked_stderrs       r   test_skip_invalid_stdout&StdStreamTest.test_skip_invalid_stdout5   s    ((*f//$8
D $'**40**=9

/0  !7!7!99E 1 :  1 ('
 10 :9  10 ('sl   !E
8D9D(	D1(DD!D(	)D91E

DD
D%!D(	(
D62D99
EE


E	r#   N)r&   r'   r(   r)   r=   rK   r*   r#   r   r   r.   r.   +   s    1Fr   r.   c                       \ rS rSrS rSrg)TestCaseH   c                 V    U R                  [        R                  " 5       5      nSUS'   g )N80COLUMNS)enterContextr   EnvironmentVarGuardr   envs     r   setUpTestCase.setUpJ   s&     	 = = ?@Ir   r#   N)r&   r'   r(   r)   rW   r*   r#   r   r   rN   rN   H   s    r   rN   c                   ,    \ rS rSrS rS rS rS rSrg)TempDirMixinR   c                     [         R                  " 5       U l        [        R                  " 5       U l        [        R                  " U R                  5        g N)tempfilemkdtemptemp_dirosgetcwdold_dirchdirr!   s    r   rW   TempDirMixin.setUpU   s/     ((*yy{
r   c                    [         R                  " U R                  5        [         R                  " U R                  SS9 H\  u  pnU HP  n[         R
                  " [         R                  R                  U R                  U5      [        R                  5        MR     M^     [        R                  " U R                  S5        g )NF)topdownT)ra   rd   rc   walkr`   chmodpathjoinstatS_IWRITEshutilrmtree)r   rootdirsfilesnames        r   tearDownTempDirMixin.tearDownZ   st    
!#!FDdmmT:DMMJ  "G 	dmmT*r   c                     [         R                  R                  U R                  U5      n[	        USSS9 nUR                  U5        S S S 5        U$ ! , (       d  f       U$ = f)Nwr   encoding)ra   rj   rk   r`   openwrite)r   filename	file_pathfiles       r   create_writable_file!TempDirMixin.create_writable_filea   sN    GGLL9	)S73tJJx  4 43s   A
A!c                 l    [         R                  " U R                  U5      [        R                  5        g r]   )ra   ri   r   rl   S_IREAD)r   r|   s     r   create_readonly_file!TempDirMixin.create_readonly_fileg   s    
**84dllCr   )rc   r`   N)	r&   r'   r(   r)   rW   rt   r   r   r*   r#   r   r   rZ   rZ   R   s     
+Dr   rZ   c                       \ rS rSrS rSrg)Sigj   c                     Xl         X l        g r]   argskwargsr   r   r   s      r   r   Sig.__init__l   s    	r   r   Nr&   r'   r(   r)   r   r*   r#   r   r   r   r   j   s    r   r   c                   &    \ rS rSrS rS rS rSrg)NSq   c                 :    U R                   R                  U5        g r]   )__dict__update)r   r   s     r   r   NS.__init__s   s    V$r   c                     [        U R                  R                  5       5      nSR                  U Vs/ s H  nSU-  PM
     sn5      n[	        U 5      R
                  < SU< S3$ s  snf )Nz, z%s=%r())sortedr   itemsrk   typer&   )r   sorted_itemstup	kwarg_strs       r   __repr__NS.__repr__v   sU    dmm1134IIEw}EF	:..	:: Fs   A&c                 0    [        U 5      [        U5      :H  $ r]   )varsr   others     r   __eq__	NS.__eq__{   s    DzT%[((r   r#   N)r&   r'   r(   r)   r   r   r   r*   r#   r   r   r   r   q   s    %;
)r   r   c                       \ rS rSrSS jrSrg)ArgumentParserError   Nc                 `    [         R                  XX#5        Xl        X l        X0l        X@l        g r]   )	Exceptionr   r4   stdoutstderr
error_code)r   r4   r   r   r   s        r   r   ArgumentParserError.__init__   s&    4&9$r   )r   r4   r   r   )NNNr   r#   r   r   r   r      s    %r   r   c           
      ,   [        [        R                  [        5      (       d#  [        [        R                  [        5      (       a  U " U0 UD6$ [        R                  n[        R                  n[        5       [        l        [        5       [        l          U " U0 UD6n[        [        U5      5       H  n[        XV5      nU[        R                  L a  [        XVU5        M/  U[        R                  R                  L a  [        XV[        US[        5      5        Mi  U[        R                  L a  [        XVU5        M  U[        R                  R                  L d  M  [        XV[        US[        5      5        M     UU[        l        U[        l        $ ! [         a[  nUR                  n	[        R                  R                  5       n
[        R                  R                  5       n[        SXU	5      S eS nAff = f! U[        l        U[        l        f = f)Nr   
SystemExit)
isinstancesysr   r
   r   listr   getattrsetattrr   BIN_STDOUT_SENTINELBIN_STDERR_SENTINELr   coder   r   )rF   r   r   
old_stdout
old_stderrresultkeyattrer   r   r   s               r   stderr_to_parser_errorr      s    #**k**j[.Q.Q4*6** JJCJCJ 	>00FDL)v+3::%F4SZZ...FXGZ)[\SZZ'F4SZZ...FXGZ)[\ *   

  	>66DZZ((*FZZ((*F%fd49=>		>  

s,   CF  F 
G8AG33G88G; ;Hc                   @   ^  \ rS rSrU 4S jrU 4S jrU 4S jrSrU =r$ )ErrorRaisingArgumentParser   c                 >   > [         [        U ]
  n[        U/UQ70 UD6$ r]   )r   r   rF   r   )r   r   r   rF   r   s       r   rF   %ErrorRaisingArgumentParser.parse_args   s%    5tG
%jB4B6BBr   c                 >   > [         [        U ]
  n[        U/UQ70 UD6$ r]   )r   r   r:   r   )r   r   r   r:   r   s       r   r:   ErrorRaisingArgumentParser.exit   s%    /;%d<T<V<<r   c                 >   > [         [        U ]
  n[        U/UQ70 UD6$ r]   )r   r   errorr   )r   r   r   r   r   s       r   r    ErrorRaisingArgumentParser.error   s%    0$=%e=d=f==r   r#   )	r&   r'   r(   r)   rF   r:   r   r*   r+   r,   s   @r   r   r      s    C=> >r   r   c                       \ rS rSrS rSrg)ParserTesterMetaclass   c                    US:X  a  g [        U S5      (       d  [        5       U l        [        U S5      (       d  [        U l        S nS nS nS nS n " S	 S
[
        5      n	XEU4 H  n
Xx4 H  nU	" X
U5        M     M     g )NParserTestCaseparser_signatureparser_classc                 b    U H)  nU R                   " UR                  0 UR                  D6  M+     g r]   )add_argumentr   r   )r<   argument_signaturessigs      r   	no_groups1ParserTesterMetaclass.__init__.<locals>.no_groups   s'    *##SXX<< +r   c                     U R                  S5      nU H)  nUR                  " UR                  0 UR                  D6  M+     g )Nr2   )add_argument_groupr   r   r   )r<   r   groupr   s       r   	one_group1ParserTesterMetaclass.__init__.<locals>.one_group   s7    --e4E*""CHH;

; +r   c                     [        U5       H?  u  p#U R                  SU-  5      nUR                  " UR                  0 UR                  D6  MA     g )Nzfoo:%i)	enumerater   r   r   r   )r<   r   ir   r   s        r   many_groups3ParserTesterMetaclass.__init__.<locals>.many_groups   sC    #$7811(Q,?""CHH;

; 9r   c                 $    U R                  U5      $ r]   )rF   )r<   r   s     r   listargs0ParserTesterMetaclass.__init__.<locals>.listargs   s    $$T**r   c                     [         R                  nUS   /U-   [         l         U R                  5       U[         l        $ ! U[         l        f = f)Nr   )r   argvrF   )r<   r   old_sys_argvs      r   sysargs/ParserTesterMetaclass.__init__.<locals>.sysargs   s>    88L$Q(4/CH(((*'<s	   ? Ac                   ,    \ rS rSrS rS rS rS rSrg)0ParserTesterMetaclass.__init__.<locals>.AddTests   c                 F   X l         X0l        U R                   R                  nU R                  R                  nU R                  U R                  4 H=  nUR                  nXtU4nSR                  U5      n	U4S jn
 Xl        [        XU
5        M?     g ! [         a     Nf = f)N_c                     U" U 5        g r]   r#   r   	test_funcs     r   wrapperJParserTesterMetaclass.__init__.<locals>.AddTests.__init__.<locals>.wrapper  	    !$r   )_add_arguments_parse_argsr&   test_failurestest_successesrk   	TypeErrorr   )r   
tester_clsadd_argumentsrF   add_arguments_nameparse_args_namer   	func_namenames	test_namer   s              r   r   9ParserTesterMetaclass.__init__.<locals>.AddTests.__init__   s    &3##- %)%8%8%A%A""&"2"2";";"&"4"4d6I6I!JI ) 2 2I%?JE #I09 (+4( J7; "K % s   <B
B B c                     UR                   R                  nUR                   R                  nUR                  " U0 UD6nU R	                  XAR
                  5        U$ r]   )r   r   r   r   r   r   )r   testerr   r   r<   s        r   _get_parser<ParserTesterMetaclass.__init__.<locals>.AddTests._get_parser  sR    ..330077,,d=f=##F,F,FGr   c                 >   U R                  U5      nUR                   HY  nUR                  5       nUR                  US9   UR	                  [
        US9   UR                  U5        S S S 5        S S S 5        M[     g ! , (       d  f       N= f! , (       d  f       M~  = f)Nr   )msg)r  failuressplitrG   assertRaisesr   rF   )r   r  r<   args_strr   s        r   r   >ParserTesterMetaclass.__init__.<locals>.AddTests.test_failures  s}    ))&1 &H#>>+DT2#001D$0O"--d3 P 32 !0 PO 32s$    BA<'B<
B
B
B	c                 2   U R                  U5      nUR                   Hd  u  p4[        U[        5      (       a  UR	                  5       nUR                  US9   U R                  X#5      nUR                  XE5        S S S 5        Mf     g ! , (       d  f       Mx  = f)Nr  )r  	successesr   strr
  rG   r   assertEqual)r   r  r<   r   expected_ns	result_nss         r   r   ?ParserTesterMetaclass.__init__.<locals>.AddTests.test_successes"  sz    ))&1)/)9)9%D!$,,#zz|T2$($4$4V$B	**;B 32 *: 32s   #B
B	)r   r   N)	r&   r'   r(   r)   r   r  r   r   r*   r#   r   r   AddTestsr      s    <&4Cr   r  )hasattrr   r   r   r   object)clsrs   basesbodydictr   r   r   r   r   r  r   rF   s               r   r   ParserTesterMetaclass.__init__   s    ## s.//#&5C sN++9C
	=
	<	<	+	(+	Cv +	C^ (K@M'1
Z8 2 Ar   r#   Nr   r#   r   r   r   r      s     a9r   r   r   c            	       x    \ rS rSr\" S5      /r/ SQrS\" SS94S\" SS94S	\" SS94S
\" SS94S\" SS94/rSr	g)TestOptionalsSingleDashi8  -x)r  a--foo-x --fooz-x -yr$   Nx-x ar  -xaz-x -1-1z-x-1r#   
r&   r'   r(   r)   r   r   r	  r   r  r*   r#   r   r   r  r  8  sX     t9+8H	R$Z	c	S		"t*	dIr   r  c                   $   \ rS rSr\" SSS9\" SSSS9\" S	5      /r/ S
QrS\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94/rSr	g)TestOptionalsSingleDashCombinediF  r  
store_trueactionz-yyystore_const*   r,  const-z)r  r   r%  r!  z-x -zz-z -xz-yxz-yz az-yyyxz-yyyzaz-xyzaz-x=r$   FN)r#  yyyzT-zar  -z az-xzaz-xz az-x -zaz-x -z a-yz-x -yyy -zaz-x -yyy -z ar#   r'  r#   r   r   r)  r)  F  s    	D&F=3D	
CH 
R%TT*+	rDdd+,	U,-	e-.	d,-	"t-.	2$#./	B43/0	rErT*+	et,-	TrS12	dc23Ir   r)  c            	       x    \ rS rSr\" S5      /r/ SQrS\" SS94S\" SS94S	\" S
S94S\" SS94S\" SS94/rSr	g)TestOptionalsSingleDashLongi`  -foo)r9  r  r   z
-foo --fooz-foo -y-fooar$   Nr2   z-foo ar  z-foo -1r&  z-fo a-f ar#   r'  r#   r   r   r8  r8  `  sX     v;-GH	RD\	2#;	B4L!	"+	Ir   r8  c                       \ rS rSr\" S5      \" S5      \" S5      /r/ SQrS\" SSSS94S	\" S
SSS94S\" S
SSS94S\" SSSS94S\" SSSS94S\" SS
SS94S\" SSS
S94/rSr	g)&TestOptionalsSingleDashSubsetAmbiguousin  -f-foobar-foorab)r?  r9  -fo-foo bz-foobz-foobaz-foorar$   N)ffoobarfoorabr<  r  -fa-foaoar:  ooa	-foobar a	-foorab ar#   r'  r#   r   r   r>  r>  n  s     t9c)nc)nEKH	R$tD12	c$t45	Sd34	d456	"uT$78	b4D9:	b4S9:Ir   r>  c                      \ rS rSr\" S5      \" S5      /r/ SQrS\" SSS94S\" S	SS94S
\" S	SS94S\" SS	S94S\" SS	S94S\" S	SS94S\" S	SS94S\" SS	S94S\" SS	S94S\" S	SS94S\" S	SS94S\" SS	S94S\" SS	S94/rSr	g) TestOptionalsSingleDashAmbiguousi~  r@  rA  )	r?  r<  rG  rH  r9  rB  rC  z-f=az-foo=br$   N)rE  rF  z-foob ar  z-foob=az-foor az-foor=az-fooba az-fooba=az-foora az-foora=arK  z	-foobar=arL  z	-foorab=ar#   r'  r#   r   r   rN  rN  ~  s     y>3y>:"H 
RtD)*	Bc$/0	Bc$/0	Bd3/0	Bd3/0	Rs401	Rs401	RtC01	RtC01	bD12	bD12	bS12	bS12Ir   rN  c                   h    \ rS rSr\" SSS9/r/ SQrS\" SS94S	\" S
S94S\" S
S94S\" SS94/rSr	g)TestOptionalsNumerici  r&  onedest)r&  r  z-1 --fooz-1 -yz-1 -1z-1 -2r$   N)rQ  z-1 ar  z-1az-1-2-2r#   r'  r#   r   r   rP  rP    sP     t%01AH	RD\		s		Ir   rP  c            	       x    \ rS rSr\" S5      /r/ SQrS\" SS94S\" SS94S	\" SS94S
\" SS94S\" SS94/rSr	g)TestOptionalsDoubleDashi  r   )r   r?  r<  r  z--foo -xz--foo --barr$   Nr;  z--foo ar  z--foo=az
--foo -2.5z-2.5z
--foo=-2.5r#   r'  r#   r   r   rV  rV    sX     w<.FH	RD\	B3K 	B3K 	rf~&	rf~&Ir   rV  c                       \ rS rSr\" SSS9\" S5      /r/ SQrS\" SS	S
94S\" SSS
94S\" SS	S
94S\" SS	S
94S\" SS	S
94S\" SS	S
94/rSr	g	)#TestOptionalsDoubleDashPartialMatchi  --badgerr*  r+  z--bat)--bar--b--ba--b=2z--ba=4	--badge 5r$   FN)badgerbatz--bat XX--badT--badg--badger#   r'  r#   r   r   rX  rX    s     	J|,G HH	Ru$'(	Be-.	"Dd+,	2Tt,-	Bd-.	Rt./Ir   rX  c                       \ rS rSr\" SSS9\" S5      /r/ SQrS\" SS	S
94S\" SSS
94S\" SSS
94S\" SS	S
94S\" SS	S
94S\" SS	S
94S\" SS	S
94/rSr	g	)"TestOptionalsDoubleDashPrefixMatchi  rY  r*  r+  r\  )rZ  r[  r\  r]  r^  r$   FN)r_  baz--ba Xra  z--ba=Xrb  Trc  rd  r#   r'  r#   r   r   rf  rf    s     	J|,F >H	Ru&'	2Us+,	2Us+,	"DT*+	2Td+,	Bdt,-	Rt-.Ir   rf  c                       \ rS rSr\" SSS9\" S5      \" SSSS	9/r/ S
QrS\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94/rSr	g)TestOptionalsSingleDoubleDashi  r?  r*  r+  rZ  -bazr-  r.  r/  )rZ  -fbarz-fbazz-bazf-b BBr$   FNrD  barbazTz--ba Brm  z
-f --bar Bz-f -bz-ba -fr#   r'  r#   r   r   ri  ri    s     	D&GF=3
 AH	R%Tt,-	rDd-.	23D12	rDct45	"t2./	2$B/0Ir   ri  c                       \ rS rSr\" SSS9r\" SSS9\" S5      \" S	S
SS9/r/ SQrS\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94/r	Sr
g)!TestOptionalsAlternatePrefixCharsi  +:/Fprefix_charsadd_help+fr*  r+  ::bar/bazr-  r.  r/  )rZ  rk  rl  rm  r?  --bar Brj  r@   --helpz+hz::helpz/helpr$   Nrn  T::ba Brm  
+f ::bar B+f /b/ba +fr#   r&   r'   r(   r)   r   r   r   r	  r   r  r*   r#   r   r   rr  rr    s     >D&GF=3
 qH	R%Tt,-	rDd-.	23D12	rDct45	"t2./	2$B/0Ir   rr  c                       \ rS rSr\" SSS9r\" SSS9\" S5      \" S	S
SS9/r/ SQrS\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94/r	Sr
g)*TestOptionalsAlternatePrefixCharsAddedHelpi  rs  Trt  rw  r*  r+  rx  ry  r-  r.  r/  )rZ  rk  rl  rm  r?  rz  rj  r$   FNrn  r|  rm  r}  r~  r  r#   r  r#   r   r   r  r    s    
 =D&GF=3
 HH	R%Tt,-	rDd-.	23D12	rDct45	"t2./	2$B/0Ir   r  c            
           \ rS rSr\" SSS9r\" SSS9\" SSS9\" S	SS9/r/ S
QrS\" SSSS94S\" SSSS94S\" SSSS94S\" SSSS94/r	Sr
g)2TestOptionalsAlternatePrefixCharsMultipleShortArgsi  z+-Frt  r  r*  r+  z+yz+z)-wz-xyzz+xr6  z+xyzr$   r#  yr3  Tz+y -xz+yz -xr#   Nr  r#   r   r   r  r    s     u=D&D&D&
H 
R%5E*+	rDEU+,	"ttu-.	2-.	Ir   r  c            	       |    \ rS rSr\" SSSSSS9/r/ SQrS	\" S
S94S\" SS94S\" SS94S\" SS94S\" SS94/rSr	g)TestOptionalsShortLongi)  -v	--verbose-nz--noisyr*  r+  )z--x --verbosez-Nr  z-v xr$   F)verboseTr#   Nr'  r#   r   r   r  r  )  sk     	D+tY|D 4H	R	r$ 	b&'	r$ 	Bt$%Ir   r  c            	       |    \ rS rSr\" S5      \" SSS9/rS/rS\" SS	S
94S\" S	SS
94S\" SSS
94S\" SSS
94/rSr	g	)TestOptionalsDesti9  z	--foo-bar--bazzabbazrR  r  z--foo-bar frD  N)foo_barr  z--baz ggz--foo-bar h --baz ihr   z--baz j --foo-bar kkjr#   r'  r#   r   r   r  r  9  se     {+Sx-HIuH	3t45	BtC01	3s ;<	3s ;<	Ir   r  c                   l    \ rS rSr\" S5      \" SSS9/rS/rS\" SSS	94S
\" SSS	94S\" SSS	94/rSr	g)TestOptionalsDefaultiF  r  r6  r.  defaultr  r$   Nr#  r  z-xxr#  z-yyr  r#   r'  r#   r   r   r  r  F  sT     t9c$&;<uH	R$"	SB 	TS!"Ir   r  c                   N    \ rS rSr\" S5      /rSS/rS\" SS94S\" SS94/rSr	g)	TestOptionalsNargsDefaultiR  r  r  r$   Nr"  r$  r#   r'  r#   r   r   r  r  R  s8     t9+T{H	R$Z	cIr   r  c                   N    \ rS rSr\" SSS9/rSS/rS\" SS94S	\" S/S94/rS
r	g)TestOptionalsNargs1i]  r     nargsr  r$   Nr"  r$  r#   r'  r#   r   r   r  r  ]  s>     t1-.T{H	R$Z	seIr   r  c                   P    \ rS rSr\" SSS9/r/ SQrS\" SS94S	\" / S
QS94/rSr	g)TestOptionalsNargs3ih  r     r  )r  r  r$  -x a ba -xa -x br$   Nr"  z-x a b cr  bcr#   r'  r#   r   r   r  r  h  s9     t1-.>H	R$Z	R/*+Ir   r  c                      \ rS rSr\" SSS9\" SSSS9\" SSS	S
9\" SS\SSS9/rS/rS\" SSS	SS94S\" SSS	SS94S\" SSS	SS94S\" SSS	SS94S\" SSS	SS94S\" SSSSS94S\" SSSSS94S\" SSS	SS94S\" SSS	SS94/	r	Sr
g)TestOptionalsNargsOptionalis  r  ?r  r  r.  )r  r0  r6  spamr  r  r1  4284)r  r   r0  r  2r$   NT   rw   r#  r  r3  z-w 2z-x 2z-y 2z-z 2   r#   r&   r'   r(   r)   r   intr   r	  r   r  r*   r#   r   r   r  r  s  s     	DD2&DV,D#T4@	 uH	R$$&B/0	rDDFb12	cTVr23	rDB&B/0	dcVr23	rDDDB/0	ddcR01	rDDFb12	ddf23
Ir   r  c                       \ rS rSr\" SSS9\" SSSS9/rS/rS	\" S
SS94S\" / SS94S\" S/SS94S\" SS/SS94S\" S
/ S94S\" S
S/S94S\" S
SS/S94/rSr	g
)TestOptionalsNargsZeroOrMorei  r  *r  r6  r  r  r  r$   Nr  r$  r  r  -y a-y a br#   r'  r#   r   r   r  r    s     	DDV, uH	R$&!"	rB&!"	sev&'	2c
f-.	rDB 	dse$%	2c
+,Ir   r  c            
           \ rS rSr\" SSS9\" SSSS9/r/ SQrS	\" S
SS94S\" S/SS94S\" SS/SS94S\" S
S/S94S\" S
SS/S94/rSr	g
)TestOptionalsNargsOneOrMorei  r  +r  r6  r  r  )r  r  r6  r  za -y br$   Nr  r$  r  r  r  r  r  r#   r'  r#   r   r   r  r    s     	DDV, 3H	R$&!"	sev&'	2c
f-.	dse$%	2c
+,Ir   r  c                       \ rS rSr\" SSS9\" S\\" S5      S9/r/ SQrS	\	" S
S
S94S\	" SS
S94S\	" SS
S94S\	" S
SS94S\	" S
SS94S\	" SSS94/r
Srg
)TestOptionalsChoicesi  r?  abcchoicesz-g   r   r  )r  z-f dz-f abz-fadz-gaz-g 6r$   N)rD  r  r<  r  z-f cr  z-g 0r   z-g 03r  z-fb -g4r     r#   r&   r'   r(   r)   r   r  ranger   r	  r   r  r*   r#   r   r   r  r    s     	D% DsE!H-/ =H	R$$ 	cT"#	cT"#	da!	"tq/"	BN#Ir   r  c                   N    \ rS rSr\" S\SS9/rSS/rS\" SS	94S
\" SS	94/r	Sr
g)TestOptionalsRequiredi  r  Tr   requiredr  r$   -x 1r  r"  z-x42r.  r#   Nr  r#   r   r   r  r    sB     	DsT* RyH	a	bIr   r  c                   L    \ rS rSr\" SSS9/rSS/rS\" SS	94S
\" SS	94/rSr	g)TestOptionalsActionStorei  r  storer+  r  r  r$   Nr"  z-xfoor2   r#   r'  r#   r   r   r  r    s<     tG45V}H	R$Z	"u+Ir   r  c                   L    \ rS rSr\" SS\S9/rS/rS\" SS94S\" \S94/r	S	r
g)
TestOptionalsActionStoreConsti  r6  r-  r/  r  r$   Nr  r#   )r&   r'   r(   r)   r   r  r   r	  r   r  r*   r#   r   r   r  r    s<     tMHIuH	R$Z	rF|Ir   r  c                   L    \ rS rSr\" SSS9/r/ SQrS\" SS94S\" S	S94/rS
r	g)TestOptionalsActionStoreFalsei  r1  store_falser+  )r  r4  r5  r$   T)r3  Fr#   Nr'  r#   r   r   r  r    s8     tM:;#H	R$Z	rE{Ir   r  c                   L    \ rS rSr\" SSS9/r/ SQrS\" SS94S\" S	S94/rS
r	g)TestOptionalsActionStoreTruei  z--appler*  r+  )r  z	--apple=bz	--apple br$   F)appleTr#   Nr'  r#   r   r   r  r    s8     y>?.H	Re_	BTN#Ir   r  c            	           \ rS rSr\" S\R                  S9/rSS/rS\	" SS94S\	" S	S94S
\	" SS94S\	" SS94S\	" S	S94/r
S rS rSrg)TestBooleanOptionalActioni  r   r+  	--foo bar	--foo=barr$   Nr;  T--no-fooFz--foo --no-fooz--no-foo --fooc                    [         R                  " 5       nU R                  [        5       nUR	                  SS[         R
                  S9  S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   Tr0  r,  z*got an unexpected keyword argument 'const')	r5   r6   r  r   r   BooleanOptionalActionassertInr  	exceptionr   r<   cms      r   
test_const$TestBooleanOptionalAction.test_const  sc    ((*y)RtH<Z<Z[ * 	BCDUV *)s    A99
Bc                    [         R                  " 5       nU R                  [        5         UR	                  S[         R
                  S S9  S S S 5        U R                  [        5         UR	                  S[         R
                  [        S9  S S S 5        U R                  [        5         UR	                  S[         R
                  S S9  S S S 5        U R                  [        5         UR	                  S[         R
                  SS9  S S S 5        U R                  [        5         UR	                  S[         R
                  S S	9  S S S 5        U R                  [        5         UR	                  S
[         R
                  SS	9  S S S 5        g ! , (       d  f       GNE= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N-a)r,  r   -b-c)r,  metavar-dd-e)r,  r  r?  r#   )r5   r6   assertWarnsDeprecationWarningr   r  boolr;   s     r   test_deprecated_init_kw1TestBooleanOptionalAction.test_deprecated_init_kw  s   ((*0155    2 0155    2 0155    2 0155    2 0155    2 0155    21A 21 21 21 21 21 21sG    F	($F) F-& F># G  G 	
F
F*-
F;>
G
G 
G.r#   )r&   r'   r(   r)   r   r5   r  r   r	  r   r  r  r  r*   r#   r   r   r  r    sr     wx/M/MNO[)H	RD\	",	RE]#	2%=)	2$<(IW)r   r  c                   `    \ rS rSr\" SS\R                  S9/rS/rS\	" SS94S\	" SS94/r
S	rg
)!TestBooleanOptionalActionRequiredi7  r   T)r  r,  r$   r;  r  Fr#   N)r&   r'   r(   r)   r   r5   r  r   r	  r   r  r*   r#   r   r   r  r  7  sF     	Gd8+I+IJ tH	",	RE]#Ir   r  c                   `    \ rS rSr\" SSS9/r/ SQrS\" SS94S	\" S
/S94S\" S
S/S94/rSr	g)TestOptionalsActionAppendiC  r  appendr+  r  r  a --baz	--baz a br$   Nrp  --baz ar  --baz a --baz br  r#   r'  r#   r   r   r  r  C  sK     wx895H	RD\	BC5M"	BC:./Ir   r  c                   h    \ rS rSr\" SSS/S9/r/ SQrS\" S/S94S	\" SS
/S94S\" / SQS94/rSr	g)$TestOptionalsActionAppendWithDefaultiO  r  r  ra  r,  r  r  r$   r  r   r  r  )ra  r  r  r#   Nr'  r#   r   r   r  r  O  sP     wx#GH5H	RSE]	BC:&'	B?34Ir   r  c                       \ rS rSr\" SSS9\" SSS9\" SSS9\" SSS9/r/ S	QrS
\" SSSSS94S\" S/SSSS94S\" SS/SSS94S\" SSSSS94S\" SSSSS94/rSr	g)!TestConstActionsMissingConstKwargi[  r?  append_constr+  r   r  r-  rZ  )z-f vr  r  r$   N)rD  r2   r  ro  r#   r'  r#   r   r   r  r  [  s     	D(GN+D'GM*	 2H	R$DDd34	rTF$78	"t$4T:;	rDdd56	"t489Ir   r  c            	       t    \ rS rSr\" SS\S9\" SSSS9/r/ S	QrS
\" SS94S\" \/S94S\" \S\S/S94/r	Sr
g)TestOptionalsActionAppendConstin  r  r  r/  r  r  r  r,  rS  r  r  za -cz-bxz-b xr$   Nr  -b -cx -b -cyzr#  yzr#   r&   r'   r(   r)   r   r   r   r	  r   r  r*   r#   r   r   r	  r	  n  sc     	Dy9D, 2H	R$Z	rYK !	2CD ABCIr   r	  c            
       ~    \ rS rSr\" SS\S/S9\" SSSS	9/r/ S
QrS\" S/S94S\" S\/S94S\" S\S\S/S94/r	Sr
g))TestOptionalsActionAppendConstWithDefaulti}  r  r  ra  )r,  r0  r  r  r  r  r
  r  r$   r  r  r#  r  r#   Nr  r#   r   r   r  r  }  sn     	Dy3%HD, 2H	R3%[	rS)$%&	2ii FGHIr   r  c                   L    \ rS rSr\" SSS9/r/ SQrS\" SS94S\" S	S94/rS
r	g)TestOptionalsActionCounti  r  countr+  )r  r$  z-x bz	-x a -x br$   Nr"  r  r#   r'  r#   r   r   r  r    s7     tG451H	R$Z	rAwIr   r  c                       \ rS rSr\" S5      \" S5      \" SSS9/rSS/rS	\" S
S
SS94S\" SS
SS94S\" SS
SS94S\" S
SSS94S\" S
SSS94S\" SS
SS94/rSr	g
)"TestOptionalsAllowLongAbbreviationi  r   --foobaz--foobler*  r+  z--foob 5--foobr$   NF)r2   foobazfooblez--foo 77z--foo=7z	--fooba ar  z	--fooba=az--foobl --foo gr  Tr#   r'  r#   r   r   r  r    s     	GJJ|,
 H%H	RDe45	B3tE:;	B3tE:;	bT#e<=	bT#e<=	B3tDABIr   r  c            	           \ rS rSr\" SS9r\" S5      \" SSS9\" S5      /r/ S	QrS
\" SSSS94S\" SSSS94S\" SSSS94/r	Sr
g)%TestOptionalsDisallowLongAbbreviationi  Fallow_abbrevr   --foodler*  r+  --foonly)-foon 3z--foon 3--foodz--food --foo 2r$   Nr2   foodlefoonlyz--foo 33z--foonly 7 --foodle --foo 2r  Tr  r#   r  r#   r   r   r  r    sq     .GJ|,J
 CH	RDt45	B3uT:;	&s4(LMIr   r  c            	           \ rS rSr\" SSS9r\" S5      \" SSS9\" S	5      /r/ S
QrS\" SSSS94S\" SSSS94S\" SSSS94/r	Sr
g)0TestOptionalsDisallowLongAbbreviationPrefixCharsi  r  Fru  r   z++fooz++foodler*  r+  z++foonly)z+foon 3z++foon 3z++foodz++food ++foo 2r$   Nr%  z++foo 3r(  z++foonly 7 ++foodle ++foo 2r  Tr  r#   r  r#   r   r   r*  r*    ss     %@GJ|,J
 CH	RDt45	B3uT:;	&s4(LMIr   r*  c            	           \ rS rSr\" SS9r\" S5      \" SSS9\" S5      /r/ S	QrS
\" SSSS94S\" SSSS94S\" SSSS94/r	Sr
g)/TestOptionalsDisallowSingleDashLongAbbreviationi  Fr  r9  z-foodler*  r+  z-foonly)r#  z-foodz-food -foo 2r$   Nr%  z-foo 3r(  z-foonly 7 -foodle -foo 2r  Tr  r#   r  r#   r   r   r-  r-    sp     .FIl+I
 4H	RDt45	2#eD9:	#RCS%IJIr   r-  c                       \ rS rSr\" SS9r\" S5      \" SSS9/rSS/rS	\" S
S
S94S\" SS
S94S\" SS
S94S\" S
SS94S\" SSS94S\" SSS94/r	Sr
g
)/TestDisallowLongAbbreviationAllowsShortGroupingi  Fr  z-rr  r  r+  z-c -rr$   Nrr  z-rar  z-rccccz-ccr  z-cc -raz-ccrccr#   r  r#   r   r   r/  r/    s     .D	D! gH	R$$ 	SD!"	dd#$	TQ 	BN#	2?#Ir   r/  c                       \ rS rSr\" SSS9r\" S5      \" SSS9/rSS	/rS
\" SSS94S\" SSS94S\" SSS94S\" SSS94S\" SSS94S\" SSS94/r	Sr
g)5TestDisallowLongAbbreviationAllowsShortGroupingPrefixi  r  Fr+  z+rz+cr  r+  z+c +rr$   Nr0  z+rar  z+rccr2  z+ccr  z+cc +raz+ccrccr#   r  r#   r   r   r4  r4    s     %@D	D! gH	R$$ 	SD!"	dd#$	TQ 	BN#	2?#Ir   r4  c                   <    \ rS rSr " S S\5      rS rS rS rSr	g)	TestStrEnumChoicesi  c                        \ rS rSrSrSrSrSrg)TestStrEnumChoices.Colori  redgreenbluer#   N)r&   r'   r(   r)   REDGREENBLUEr*   r#   r   r   Colorr8    s    r   r?  c                     [         R                  " 5       nUR                  SU R                  S9  UR	                  SS/5      nU R                  UR                  U R                  R                  5        g )N--colorr  r9  )r5   r6   r   r?  rF   r  colorr<  r   r<   r   s      r   test_parse_enum_value(TestStrEnumChoices.test_parse_enum_value	  sX    ((*Itzz:  )U!34TZZ^^4r   c                     [         R                  " 5       nUR                  SU R                  SS9  U R	                  SUR                  5       5        U R	                  SUR                  5       5        g )NrA  zChoose a colorr  helpz[--color {red,green,blue}]z  --color {red,green,blue})r5   r6   r   r?  r  format_usageformat_helpr;   s     r   'test_help_message_contains_enum_choices:TestStrEnumChoices.test_help_message_contains_enum_choices  sZ    ((*Itzz@PQ2F4G4G4IJ2F4F4F4HIr   c                     [         R                  " SS9nUR                  SU R                  S9  U R	                  [         R
                  SUR                  SS/5        g )NFexit_on_errorrA  r  z9invalid choice: 'yellow' \(choose from red, green, blue\)yellow)r5   r6   r   r?  assertRaisesRegexArgumentErrorrF   r;   s     r   $test_invalid_enum_value_raises_error7TestStrEnumChoices.test_invalid_enum_value_raises_error  sT    ((u=Itzz:""H!		
r   r#   N)
r&   r'   r(   r)   r   r?  rD  rK  rS  r*   r#   r   r   r6  r6    s     
5J
r   r6  c                   @    \ rS rSr\" S5      /r/ SQrS\" SS94/rSr	g)TestPositionalsNargsNonei#  r2   r$   r  a br  r;  r#   Nr'  r#   r   r   rV  rV  #  s(     u:, H	bSkIr   rV  c                   @    \ rS rSr\" SSS9/r/ SQrS\" S/S94/rSr	g	)
TestPositionalsNargs1i-  r2   r  r  rW  r  r;  r#   Nr'  r#   r   r   rZ  rZ  -  s.     uA./ H	bcUmIr   rZ  c                   B    \ rS rSr\" SSS9/r/ SQrS\" SS/S	94/rS
r	g)TestPositionalsNargs2i7  r2   r  r  )r$   r  r  a b crX  r  r  r;  r#   Nr'  r#   r   r   r\  r\  7  s1     uA./'H	Sz"#Ir   r\  c                   ^    \ rS rSr\" SSS9/rS/rS\" / S94S\" S/S94S	\" SS
/S94/rSr	g)TestPositionalsNargsZeroOrMoreiA  r2   r  r  r  r$   r;  r  rX  r  r#   Nr'  r#   r   r   r_  r_  A  sM     uC01vH	RBZ	bcUm	Sz"#Ir   r_  c                   `    \ rS rSr\" SSSS9/rS/rS\" SS94S	\" S	/S94S
\" S	S/S94/rSr	g)%TestPositionalsNargsZeroOrMoreDefaultiM  r2   r  ro  r  r  r$   r;  r  rX  r  r#   Nr'  r#   r   r   ra  ra  M  sO     uC?@vH	RE]	bcUm	Sz"#Ir   ra  c                   R    \ rS rSr\" SSS9/rSS/rS\" S/S94S	\" SS
/S94/rSr	g)TestPositionalsNargsOneOrMoreiY  r2   r  r  r$   r  r  r;  rX  r  r#   Nr'  r#   r   r   rc  rc  Y  sC     uC01DzH	bcUm	Sz"#Ir   rc  c                   L    \ rS rSr\" SSS9/rSS/rS\" SS	94S
\" S
S	94/rSr	g)TestPositionalsNargsOptionalid  r2   r  r  r  rX  r$   Nr;  r  r#   r'  r#   r   r   re  re  d  s<     uC01e}H	RD\	bSkIr   re  c                   N    \ rS rSr\" SSSS9/rSS/rS\" SS	94S
\" S
S	94/rSr	g)#TestPositionalsNargsOptionalDefaultio  r2   r  r.  r  r  rX  r$   r;  r  r#   Nr'  r#   r   r   rg  rg  o  s>     uC<=e}H	RBZ	bSkIr   rg  c                   P    \ rS rSr\" SS\SS9/r/ SQrS\" SS	94S
\" SS	94/r	Sr
g),TestPositionalsNargsOptionalConvertedDefaultiz  r2   r  r  r  r   r  )r  rX  1 2r$   r.  r;  1r  r#   Nr  r#   r   r   ri  ri  z  s@     	E35 $H	RBZ	bQiIr   ri  c                   P    \ rS rSr\" S5      \" S5      /r/ SQrS\" SSS94/rS	r	g
)TestPositionalsNargsNoneNonei  r2   ro  )r$   r  r  r]  rX  r  r  r2   ro  r#   Nr'  r#   r   r   rn  rn    s2     u:s5z2'H	s$%Ir   rn  c                   P    \ rS rSr\" S5      \" SSS9/r/ SQrS\" SS	/S
94/rSr	g)TestPositionalsNargsNone1i  r2   ro  r  r  )r$   r   r  r]  rX  r  r  ro  r#   Nr'  r#   r   r   rq  rq    s7     u:s5':;*H	s&'Ir   rq  c                   R    \ rS rSr\" SSS9\" S5      /r/ SQrS\" SS	/S
S94/rSr	g)TestPositionalsNargs2Nonei  r2   r  r  ro  r$   r   r  rX  a b c dr]  r  r  r  ro  r#   Nr'  r#   r   r   rs  rs    s9     uA.E
;3H	"#s-.Ir   rs  c                   *   \ rS rSr\" S5      \" S5      \" SSS9/r/ SQrS\" S	S/ S
94S\" S	SS/S
94S\" S	SSS/S
94S\" SS/ S
94S\" SS/ S
94S\" SSS/S
94S\" SSS/S
94S\" SSS/S
94S\" SSSS/S
94S\" SSSS/S
94S\" SSSS/S
94/rSr	g	)"TestPositionalsNargsNoneZeroOrMorei  r  r2   ro  r  r  )r$   r   
a b -x X cr  Nr#  r2   ro  rX  r  r]  r  -x X ara  a -x X-x X a ba -x X ba b -x X
-x X a b c
a -x X b c
a b c -x Xr#   r'  r#   r   r   rw  rw    s     t9c%j#e32GH*H	b4Sb)*	Ts./	"t3*56	2"-.	2"-.	R#3SE23	R#3SE23	R#3SE23	rCSsCj9:	rCSsCj9:	rCSsCj9:Ir   rw  c                       \ rS rSr\" S5      \" S5      \" SSS9/r/ SQrS\" S	S
S/S94S\" S	S
SS/S94S\" SS
S/S94S\" SS
S/S94S\" SS
S/S94S\" SS
SS/S94S\" SS
SS/S94S\" SS
SS/S94/rSr	g	)!TestPositionalsNargsNoneOneOrMorei  r  r2   ro  r  r  r$   r   r  rx  rX  Nr  r  ry  r]  r  r|  ra  r}  r~  r  r  r  r#   r'  r#   r   r   r  r    s     t9c%j#e32GH/H	Ts./	"t3*56	R#3SE23	R#3SE23	R#3SE23	rCSsCj9:	rCSsCj9:	rCSsCj9:	Ir   r  c                       \ rS rSr\" S5      \" S5      \" SSS9/r/ SQrS\" S	SS	S
94S\" S	SSS
94S\" SSS	S
94S\" SSS	S
94S\" SSSS
94S\" SSSS
94S\" SSSS
94/rSr	g	) TestPositionalsNargsNoneOptionali  r  r2   ro  r  r  r$   r   r]  r  Nry  rX  r  rz  ra  r{  r|  r}  r~  r#   r'  r#   r   r   r  r    s     t9c%j#e32GH%H	b4Sd+,	Ts,-	2$/0	2$/0	R#3C01	R#3C01	R#3C01Ir   r  c                       \ rS rSr\" S5      \" SSS9\" S5      /r/ SQrS\" S	/ SS
94S\" S	S/SS
94S\" S	SS/SS
94S\" S/ SS
94S\" S/ SS
94S\" SS/SS
94S\" SS/SS
94S\" SSS/SS
94S\" SSS/SS
94/	rSr	g	)"TestPositionalsNargsZeroOrMoreNonei  r  r2   r  r  ro  )r$   r   r}  r  rx  r  Nry  rX  r  r]  r  rz  ra  r{  r|  r~  r  r  r#   r'  r#   r   r   r  r    s     t9c%s&;SZHDH	b4RS)*	Tu#./	"t#s56	2-.	2-.	R#C5c23	R#C5c23	rCc3ZS9:	rCc3ZS9:
Ir   r  c                       \ rS rSr\" S5      \" SSS9\" S5      /r/ SQrS\" S	S
/SS94S\" S	S
S/SS94S\" SS
/SS94S\" SS
/SS94S\" SS
/SS94S\" SS
S/SS94S\" SS
S/SS94/rSr	g	)!TestPositionalsNargsOneOrMoreNonei  r  r2   r  r  ro  )r$   r   r  r  rx  rX  Nr  r  ry  r]  r  r|  ra  r}  r~  r  r  r#   r'  r#   r   r   r  r    s     t9c%s&;SZH=H	Tu#./	"t#s56	R#C5c23	R#C5c23	R#C5c23	rCc3ZS9:	rCc3ZS9:Ir   r  c                   `    \ rS rSr\" SSSS9\" S5      /r/ SQrS\" SSS	94S
\" SSS	94/rSr	g) TestPositionalsNargsOptionalNonei  r2   r  r.  r  ro  r  r  ro  rX  r  r#   Nr'  r#   r   r   r  r    sF     uC<c%jI%H	bRS!"	s$%Ir   r  c                   f    \ rS rSr\" SSS9\" SSS9/r/ SQrS\" S	S
// S94S\" S	S
/S/S94/rSr	g)TestPositionalsNargs2ZeroOrMorei	  r2   r  r  ro  r  r$   r   r  rX  r  r  ro  r]  r  r#   Nr'  r#   r   r   r  r  	  sQ     uA.E0EF!H	Szr*+	"#s#/0Ir   r  c                   R    \ rS rSr\" SSS9\" SSS9/r/ SQrS\" S	S
/S/S94/rSr	g)TestPositionalsNargs2OneOrMorei  r2   r  r  ro  r  )r$   r   r  rX  r]  r  r  r  ro  r#   Nr'  r#   r   r   r  r    s>     uA.E0EF(H	"#s#/0Ir   r  c                   d    \ rS rSr\" SSS9\" SSS9/r/ SQrS\" S	S
/SS94S\" S	S
/SS94/rSr	g)TestPositionalsNargs2Optionali  r2   r  r  ro  r  )r$   r   r  ru  rX  r  r  Nro  r]  r  r#   r'  r#   r   r   r  r    sO     uA.E0EF,H	Szt,-	"#s-.Ir   r  c                   x    \ rS rSr\" SSS9\" SSS9/rSS/rS	\" / S	/S
94S\" S	/S/S
94S\" S	S/S/S
94/rSr	g)TestPositionalsNargsZeroOrMore1i)  r2   r  r  ro  r  r$   r   r  ro  rX  r  r]  r  r#   Nr'  r#   r   r   r  r  )  sf     uC0#e12EFGH	bRcU#$	u3%()	"#s#/0Ir   r  c                   f    \ rS rSr\" SSS9\" SSS9/r/ SQrS\" S	/S
/S94S\" S	S
/S/S94/rSr	g)TestPositionalsNargsOneOrMore1i5  r2   r  r  ro  r  r  rX  r  r  ro  r]  r  r#   Nr'  r#   r   r   r  r  5  sQ     uC0#e12EF!H	u3%()	"#s#/0Ir   r  c                   `    \ rS rSr\" SSS9\" SSS9/r/ SQrS\" S	S/S
94S\" SS/S
94/rSr	g	)TestPositionalsNargsOptional1i@  r2   r  r  ro  r  r  r  Nro  rX  r  r#   r'  r#   r   r   r  r  @  sK     uC0#e12EF%H	bTu%&	s&'Ir   r  c                      \ rS rSr\" S5      \" S5      \" SSS9\" SSS9/r/ S	QrS
\" SS/ S/S94S\" SSS/S/S94S\" SS/ S/S94S\" SS/ S/S94S\" SS/ S/S94S\" SSS/S/S94S\" SSS/S/S94S\" SSS/S/S94/rSr	g)#TestPositionalsNargsNoneZeroOrMore1iK  r  r2   ro  r  r  rp  r  r  rX  Nr  r  r#  r2   ro  rp  r]  r  r|  ra  r}  r~  r  r  r  r#   r'  r#   r   r   r  r  K  s     	D	E
EE	 0H	Ts67	"t3%cU;<	R#3BSE:;	R#3BSE:;	R#3BSE:;	rCSse#?@	rCSse#?@	rCSse#?@	Ir   r  c                   8   \ rS rSr\" S5      \" S5      \" SSS9\" SSS9/r/ S	QrS
\" SSS/S/S94S\" SSSS/S/S94S\" SSS/S/S94S\" SSS/S/S94S\" SSS/S/S94S\" SSS/S/S94S\" SSSS/S/S94S\" SSSS/S/S94S\" SSSS/S/S94/	rSr	g)"TestPositionalsNargsNoneOneOrMore1ia  r  r2   ro  r  r  rp  r  )r$   r   r  r  za b -x X c dza b c -x X dr]  Nr  r  r  r  ru  r  r  ra  r  rx  r  z-x X a b c dza -x X b c dza b c d -x Xr#   r'  r#   r   r   r  r  a  s    	D	E
EE	 GH	"t3%cU;<	B3S#JSEBC	rCSse#?@	rCSse#?@	rCSse#?@	rCSse#?@	csc
FG	csc
FG	csc
FG
Ir   r  c                   
   \ rS rSr\" S5      \" S5      \" SSSS9\" SS	S
9/r/ SQrS\" SSSS/S94S\" SSSS/S94S\" SSSS/S94S\" SSSS/S94S\" SSSS/S94S\" SSSS/S94S\" SSSS/S94S\" SSSS/S94/rSr	g)!TestPositionalsNargsNoneOptional1ix  r  r2   ro  r        ?r  rp  r  r  r  rX  Nr  r  r  r]  r  r|  ra  r}  r~  r  r  r  r#   r'  r#   r   r   r  r  x  s     	D	E
Ee,E	 0H	TsC59:	"t#C59:	R#3Eu=>	R#3Eu=>	R#3Eu=>	rCScu=>	rCScu=>	rCScu=>	Ir   r  c                   n    \ rS rSr\" SSS9\" SSSS9/rSS	/rS
\" SSS94S\" SSS94S\" SSS94/rSr	g)$TestPositionalsNargsOptionalOptionali  r2   r  r  ro  r.  r  r   r]  r$   Nro  r  rX  r  r#   r'  r#   r   r   r  r    sb     	EEb) !H	RDb!"	bSb!"	s$%Ir   r  c            	           \ rS rSr\" SSS9\" SSS9/rS/rS\" S	/ S
94S\" S/ S
94S\" SS/S
94S\" SSS/S
94/rSr	g	)&TestPositionalsNargsOptionalZeroOrMorei  r2   r  r  ro  r  r   r$   Nro  r  rX  r  r]  r  r#   r'  r#   r   r   r  r    sm     uC0#e32GHyH	RDb!"	bSb!"	s&'	"3*-.	Ir   r  c                   t    \ rS rSr\" SSS9\" SSS9/rSS/rS	\" S
S	/S94S\" S	S/S94S\" S	SS/S94/rSr	g
)%TestPositionalsNargsOptionalOneOrMorei  r2   r  r  ro  r  r$   r   r  Nro  rX  r  r]  r  r#   r'  r#   r   r   r  r    sb     uC0#e32GHG}H	bTu%&	s&'	"3*-.Ir   r  c                   X    \ rS rSr\" S\" S5      S9/r/ SQrS\" SS94S\" SS94/r	S	r
g
)TestPositionalsChoicesStringi  r  abcdefgr  r$   r   r  r  efr  r  r  r#   N)r&   r'   r(   r)   r   setr   r	  r   r  r*   r#   r   r   r  r    s<     vs9~>?-H	bcl	bclIr   r  c                   Z    \ rS rSr\" S\\" S5      S9/r/ SQrS\	" SS94S	\	" S
S94/r
Srg)TestPositionalsChoicesInti  r     r  r  4r  r  15   r#   Nr  r#   r   r   r  r    s>     vCrCD-H	baj	rr{Ir   r  c                   T    \ rS rSr\" SSS9\" SSSS9/r/ SQrS\" S	S
S//S94/rSr	g)TestPositionalsActionAppendi  r  r  r+  r  r,  r  rt  r]  r  r  r  r  r#   Nr'  r#   r   r   r  r    sF     	F8$F81- 4H	"3c
+,-Ir   r  c                   P    \ rS rSr\" SSS9\" SSSS9/r/ SQrS\" / S	QS
94/rSr	g)TestPositionalsActionExtendi  r  extendr+  r  r  rt  r]  r  r  r#   Nr'  r#   r   r   r  r    s=     	F8$F81- 4H	"/*+Ir   r  c            	       ~    \ rS rSr\" SSS9\" SSSS9/rS	S
/rS\" SSS94S\" SSS94S\" SSS94S\" SSS94/rSr	g)"TestOptionalsNumericAndPositionalsi  r#  r  r  z-4r  r*  rS  r,  rT  z-315r$   NFr  r  Tz-4 ar#   r'  r#   r   r   r  r    sp     	CsDs<0 f~H	R$% !	b3% !	rDD!"	cT"#	Ir   r  c            
           \ rS rSr\" SSS9\" SSSS9/rS	/rS
\" SSS94S\" SSS94S\" SSS94S\" SSS94S\" SSS94/rSr	g)(TestOptionalsAlmostNumericAndPositionalsi  r#  r  r  z-k4r  r*  r  z-k3r$   NFr  rT  r  Tz-k4 ar#   r'  r#   r   r   r  r    s}     	CsEL1 wH	R$% !	rDE"#	b3% !	TT"#	"sd#$Ir   r  c                   ~    \ rS rSr\" SSSS9\" S5      /rS/rS\" S	S
//SS94S\" S
//S	S94S\" S	S
//SS94/rSr	g)!TestOptionalsAndPositionalsAppendi
  r2   r  r  r  r,  rZ  r9  rX  r  r  Nro  	--bar a ba b --bar cr  r#   r'  r#   r   r   r  r  
  sj    EX.G xH	c
|./	bseW#./	c
|56Ir   r  c                   x    \ rS rSr\" SSSS9\" S5      /rS/rS\" S	S
/SS94S\" S
/S	S94S\" S	S
/SS94/rSr	g)!TestOptionalsAndPositionalsExtendi  r2   r  r  r  rZ  r9  rX  r  r  Nro  r  r  r  r#   r'  r#   r   r   r  r    sd    EX.G xH	Szt,-	bcU,-	Szs34Ir   r  c                       \ rS rSr\" SSS9\" SSSS9/rS/rS	/\" S	S
S94S/\" SS
S94S/\" SS
S94SS	/\" S
S	S94SS/\" S
SS94SS/\" S
SS94S/\" S
SS94S/\" S
SS94/rSr	g
)$TestEmptyAndSpaceContainingArgumentsi$  r#  r  r  r6  z--yyyr  rR  r$   Nr  za badgerz	-a badgerz--yyy=a badgerz--yyy=-a badgerr#   r'  r#   r   r   r  r  $  s     	CsD'$ vH
rB$ 
rJ$/0
[D12
R$"%&

	R$*56
	b4;78
	R$*56
	b4;78	Ir   r  c                       \ rS rSr\" SS9r\" SSSSS9\" S	S
\SS9\" SSSS9/rSS/rS\	" SSSS94S\	" SSSS94S\	" SSSS94S\	" SSSS94S\	" SSSS94S\	" SSSS94/r
Srg) TestPrefixCharacterOnlyArgumentsi7  z-+ru  -r#  r  r_  )rS  r  r0  r  r  r.  )rS  r   r  z-+-r3  r*  r  r6  z+ -r$   NFr  z- Xra  z+ -3Tz- ===z===r#   )r&   r'   r(   r)   r   r   r  r   r	  r   r  r*   r#   r   r   r  r  7  s    -CcH5CcR0EL1
 e}H	R$"&'	b8rU+,	SB%()	dbE*+	TR4()	"ue,-Ir   r  c                       \ rS rSr\" SSS9\" SSS9/r/ rS\" S/ S94S\" / / S94S	\" S
// S94S\" S
/S/S94S
\" SS
/S94S\" / S
/S94S\" S/S
/S94/rSr	g)TestNargsZeroOrMoreiJ  r  r  r  r  r$   Nr  r$  r  z	-x a -- br  r  r  r#   r'  r#   r   r   r  r  J  s     t3/S1DEH	R$"	rB"~	ser"#	bC5SE*+	b4C5!"	bSE"#	2#'(Ir   r  c                       \ rS rSr\" S5      \" SSS9\" S5      /r/ SQrS\" S/ S	S
94S\" S/ SS
94S\" SSS/SS
94S\" S/ SQS	S
94S\" S/ SQS	S
94S\" S/ SQS	S
94S\" SSS/S	S
94/rSr	g	)TestNargsRemainderiZ  r#  r  ...r  r1  )r$   r1  z-z Zra  Nr  z-z Z XZz
-z Z X A BArm  z
X -z Z A B)r1  r  r  rm  z
X A -z Z B)r  r1  r  rm  
X A B -z Z)r  rm  r1  r  z	X Y --fooYr   r#   r'  r#   r   r   r  r  Z  s     s8SE%:CIF!H	b3"%&	2rS)*	rCC:56	rC#8DAB	rC#8DAB	rC#8DAB	b33.D9:Ir   r  c                      \ rS rSr\" S\S9\" S\SS9\" SSS	9/r/ S
QrS\" SS/ S94S\" SS/ S94S\" SSS/S94S\" SS/ S94S\" SS/ S94S\" SS/ S94S\" SSS/S94S\" SSS/S94S\" SSS/S94S\" SSS/S94S\" SSS/S94/r	Sr
g)TestOptionLikeij  r  r   z-3r  )r   rS  r3  r  r  )r  z-y2.5r%  z-x -az-x -3z-x -3.5z-3 -3.5z-x -2.5z	-x -2.5 az-3 -.5za x -1z-x -1 az-3 -1 ar$   Nr  z-x 2.5      @z-x 2.5 ar  z-3.5      ?z-3-.5g      z-3 .5za -3.5za -x 1g      ?z-x 1 az-3 1 ar#   )r&   r'   r(   r)   r   floatr   r	  r   r  r*   r#   r   r   r  r  j  s    	DuDu3'Cs
0H
 
R$$"%&	2tr*+	R##/0	dcR()	"ttr*+	"tsb)*	2u-.	b44C5)*	2tu-.	2tu-.	2u-.Ir   r  c                   t   \ rS rSr\" SS\\R                  S9\" SS\\R                  S9\" SS\R                  S	9\" S
S\\R                  S9\" SS\\R                  S9/r/ SQr	S\
" 5       4S\
" SS94S\
" SS/S94S\
" SS94S\
" SSS94S\
" SS/SS94S
\
" SS94S\
" SS94S\
" / S94S\
" SS/S94/
rSrg) TestDefaultSuppressi  r2   r  rj  ro  r  r  r*  r  z--qux--quux)r  r  z1 ar$   rl  r  r;  rk  r  ro  Tr  z1 --bazr2   rp  z	--baz 1 2r2   ro  rp  N)quxz--qux 1)quuxz
--quux 1 2r#   )r&   r'   r(   r)   r   r  r5   SUPPRESSr   r	  r   r  r*   r#   r   r   r  r    s    	E30A0ABE30A0ABGL(2C2CDG3S(2C2CDHCc83D3DE "H	RT
	bQi	qqc"#	",	B1$'(	bQQCT23	",	B1I	22;	r1v'Ir   r  c                       \ rS rSr\" \R                  S9r\" SSS9\" SSS9\" SS	S
9/rS/r	S\
" 5       4S\
" SS94S\
" SS/S94S\
" SS94S\
" SSS94S\
" SS/SS94/rSrg)TestParserDefaultSuppressi  argument_defaultr2   r  r  ro  r  r  r*  r+  r  r$   r  r;  rX  r  ro  Tr  r  r  r  r  r#   N)r&   r'   r(   r)   r   r5   r  r   r   r	  r   r  r*   r#   r   r   r  r    s     H,=,=>EEGL)
 vH	RT
	bSk	s&'	",	B3D)*	bSse67Ir   r  c                       \ rS rSr\" SS9r\" SSSS9\" SS	S
9\" SSS
9\" SSS9/rS/rS\" SSSSS94S\" SSSSS94S\" SS/SSS94S\" SSSSS94S\" SSSSS94S\" SS/SSS94/r	Sr
g)TestParserDefault42i  r.  r  	--versionversion1.0r,  r  r2   r  r  ro  r  r  r*  r+  r  r$   )r2   ro  rp  r  r  rX  r  Tr  r  r#   Nr  r#   r   r   r  r    s     B/K	59EEGL)	 vH	RBBB34	bSbb"56	s2r:;	"r:;	B3BD"=>	bSserBCIr   r  c                     ^  \ rS rSrU 4S jr\" SS9r\" S5      \" S5      \" SSS	9/r/ S
QrS\	R                  -   rS\" SSS/S94S\" SSSS/S94S\" S\S/S94S\" SS\/S94S\" S\SS/S94S\" SS\S/S94/ SQ\" SSS/S94/r\	R                  (       aL  \	R                  R                  S5      r\R$                  " \5      r\S\" S\S/S94S\" SS\/S94/-  rSrU =r$ SrSrU =r$ ) TestArgumentsFromFilei  c                    > [         [        U ]  5         S[        R                  " U R
                  5      S-   4SSSU R                  S-   4/nU H+  u  p#[        US5       nUR                  U5        S S S 5        M-     g ! , (       d  f       M?  = f)Nhello   
)	recursives   -a
A
@hello)invalids   @no-such-path
undecodablewb)	r   r  rW   ra   fsencoder  r  rz   r{   r   
file_textsrj   textr~   r   s        r   rW   TestArgumentsFromFile.setUp  s    #T02bkk$**-56% ,D,,u45

 %JDdD!T

4  "! %!!s   A>>
B	@fromfile_prefix_charsr  r#  r  r  r  )r$   r  ra  z@invalidz@missingzhello world!zX YNra  r  )r  r#  r  z
X -a A Y Zr  r  @hello XzX @helloz-a B @recursive Y ZzX @recursive Z -a Brm  )r  r$   ra  r  r$      @z@undecodable XzX @undecodabler   r#   )r&   r'   r(   r)   rW   r   r   r   r	  r   FS_NONASCIIr  r   r  TESTFN_UNDECODABLElstripr  ra   fsdecodedecoded_undecodabler*   r+   r,   s   @r   r  r    sM   ! 5D	CCs
 7HY222E	TSSE*+	rC33*56	R$%C512	R$#%12	SEc3Z @A	SCE3< @A	rB##78I ##2299$? kk+6rD,?C5IJrDC4G3HIJ
 	
	
 r   r  c                   x   ^  \ rS rSrU 4S jr " S S\5      r\r\" SS9r	\" SSS	9/r
/ rS
\" / SQS94/rSrU =r$ )TestArgumentsFromFileConverteri  c                    > [         [        U ]  5         S/nU H+  u  p#[        US5       nUR	                  U5        S S S 5        M-     g ! , (       d  f       M?  = f)N)r  s   hello world!
r  )r   r	  rW   rz   r{   r  s        r   rW   $TestArgumentsFromFileConverter.setUp  sP    ,d9;(

 %JDdD!T

4  "! %!!s   A		
A	c                       \ rS rSrS rSrg)>TestArgumentsFromFileConverter.FromFileConverterArgumentParseri   c              #   p   #    UR                  5        H  nUR                  5       (       d  M  Uv   M      g 7fr]   )r
  strip)r   arg_lineargs      r   convert_arg_line_to_argsWTestArgumentsFromFileConverter.FromFileConverterArgumentParser.convert_arg_line_to_args  s)     ~~'yy{{	 (s   46r#   N)r&   r'   r(   r)   r  r*   r#   r   r   FromFileConverterArgumentParserr     s    	r   r  r  r  r  r  r  r  )r  zworld!ra  r  r#   )r&   r'   r(   r)   rW   r   r  r   r   r   r   r	  r   r  r*   r+   r,   s   @r   r	  r	    sU    !*D  3L5Cs H	R234Ir   r	  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestFileTypeRepri  c                 f    [         R                  " S5      nU R                  S[        U5      5        g )Nr1  zFileType('r')r5   FileTyper  reprr   r   s     r   test_rTestFileTypeRepr.test_r  s&      %$t*5r   c                 h    [         R                  " SS5      nU R                  S[        U5      5        g )Nr  r  zFileType('wb', 1)r  r  s     r   	test_wb_1TestFileTypeRepr.test_wb_1  s)      q),d4j9r   c                 d    [         R                  " SSS9nU R                  S[        U5      5        g )Nr1  latin_1rx   z!FileType('r', encoding='latin_1')r  r  s     r   test_r_latinTestFileTypeRepr.test_r_latin   s)      y9<d4jIr   c                 f    [         R                  " SSSS9nU R                  S[        U5      5        g )Nrw   big5ignore)ry   errorsz/FileType('w', encoding='big5', errors='ignore')r  r  s     r   test_w_big5_ignore#TestFileTypeRepr.test_w_big5_ignore$  s.      vhGJd	%r   c                 f    [         R                  " SSSS9nU R                  S[        U5      5        g )Nr1  r  replacer(  z"FileType('r', 1, errors='replace')r  r  s     r   test_r_1_replace!TestFileTypeRepr.test_r_1_replace)  s+      a	:=tDzJr   r#   N)
r&   r'   r(   r)   r  r  r#  r)  r.  r*   r#   r   r   r  r    s    6:J%
Kr   r  c                        \ rS rSrS rS rSrg)StdStreamCompareri2  c                     [         R                  " U5      U l        US:X  a  [        U l        g US:X  a  [
        U l        g [        5       U l        g )Nstdout.bufferstderr.buffer)operator
attrgetterr   r   
backupattrr   r  )r   r   s     r   r   StdStreamComparer.__init__3  s=      **40?"1DO_$1DO$hDOr   c                 n     XR                  [        5      :H  $ ! [         a    XR                  :H  s $ f = fr]   )r   r   AttributeErrorr7  r   s     r   r   StdStreamComparer.__eq__A  s5    	,LL--- 	,OO++	,s    44)r7  r   Nr&   r'   r(   r)   r   r   r*   r#   r   r   r1  r1  2  s    ',r   r1  stdinr   r   zstdin.bufferr3  r4  c                   $    \ rS rSr0 rS rS rSrg)RFileiP  c                     Xl         g r]   rs   r   rs   s     r   r   RFile.__init__S      	r   c                 :   XR                   ;   a  U R                   U   nO.UR                  5       =o R                   U'   UR                  5         [        U[        5      (       d  UR                  S5      nU R                  UR                  s=:H  =(       a    U:H  $ s  $ )Nascii)seenreadcloser   r  r    rs   r   r   r  s      r   r   RFile.__eq__V  sv    II99U#D&+jjl2D99U#KKM$$$;;w'DyyEJJ..$....r   rA  N)r&   r'   r(   r)   rG  r   r   r*   r#   r   r   r?  r?  P  s    D/r   r?  c                   &  ^  \ rS rSrU 4S jr\" S\R                  " 5       S9\" S\R                  " S5      S9/r/ SQr	S\
" S	\" S5      S
94S\
" \" S5      \" S5      S
94S\
" \" S5      \" S5      S
94S\
" \\S
94S\
" S	\" S5      S
94/rSrU =r$ )TestFileTypeRia  c                   > [         [        U ]  5         S HP  n[        [        R
                  R                  U R                  U5      SSS9 nUR                  U5        S S S 5        MR     U R                  S5        g ! , (       d  f       Mu  = f)Nro  rw   r   rx   readonly)
r   rM  rW   rz   ra   rj   rk   r`   r{   r   r   	file_namer~   r   s      r   rW   TestFileTypeR.setUpd  sp    mT(*'Ibggll4==)<G-04

9%- - ( 	!!*-- -s   A<<
B	r  r  r  r1  )r  r$   znon-existent-file.txtr2   Nr#  r  
-x foo barro  
bar -x foo-x - -rO  r#   )r&   r'   r(   r)   rW   r   r5   r  r   r	  r   r?  eq_stdinr  r*   r+   r,   s   @r   rM  rM  a  s    . 	Dx((*+F**3/0 3H	Te-.	rE%LuU|<=	rE%LuU|<=	2x01	R$U:%678Ir   rM  c                   ~   ^  \ rS rSrU 4S jr\" S\R                  " S5      SS9/rS/r	S\
" \" S	5      S
94/rSrU =r$ )TestFileTypeDefaultsiy  c                    > [         [        U ]  5         [        [        R
                  R                  U R                  S5      SSS9nUR                  S5        UR                  5         g )Ngoodrw   r   rx   )
r   rY  rW   rz   ra   rj   rk   r`   r{   rI  )r   r~   r   s     r   rW   TestFileTypeDefaults.setUp{  sG    "D/1BGGLL7wO

6

r   r  r1  zno-file.txtr   r  r$   z-c goodr[  )r  r#   )r&   r'   r(   r)   rW   r   r5   r  r   r	  r   r?  r  r*   r+   r,   s   @r   rY  rY  y  sH     	Dx((-}E tHR%-012Ir   rY  c            	         ^  \ rS rSrU 4S jr\" S\R                  " S5      S9\" S\R                  " S5      S9/rSS/r	S\
" S	\" S5      S
94S\
" \" S5      \" S5      S
94S\
" \" S5      \" S5      S
94S\
" \\S
94/rSrU =r$ )TestFileTypeRBi  c                    > [         [        U ]  5         S HP  n[        [        R
                  R                  U R                  U5      SSS9 nUR                  U5        S S S 5        MR     g ! , (       d  f       Md  = f)Nro  rw   r   rx   )	r   r_  rW   rz   ra   rj   rk   r`   r{   rP  s      r   rW   TestFileTypeRB.setUp  s`    nd)+'Ibggll4==)<G-04

9%- - (- -s   A++
A:	r  rbr  r  r$   r2   NrS  rT  ro  rU  rV  r#   )r&   r'   r(   r)   rW   r   r5   r  r   r	  r   r?  	eq_bstdinr  r*   r+   r,   s   @r   r_  r_    s    & 	Dx((./F**401 bzH	Te-.	rE%LuU|<=	rE%LuU|<=	2		23	Ir   r_  c                   .    \ rS rSr\" 5       rS rS rSrg)WFilei  c                     Xl         g r]   rA  rB  s     r   r   WFile.__init__  rD  r   c                    XR                   ;  a_  SnSUR                  ;   a  UR                  S5      nUR                  U5        UR	                  5         U R                   R                  U5        U R                  UR                  :H  $ )NzCheck that file is writable.r  rF  )rG  moder   r{   rI  addrs   rJ  s      r   r   WFile.__eq__  sc    		!1Dejj {{7+KKKKMIIMM% yyEJJ&&r   rA  N)	r&   r'   r(   r)   r  rG  r   r   r*   r#   r   r   re  re    s    5D'r   re  c            
       (  ^  \ rS rSrU 4S jr\" S\R                  " S5      S9\" S\R                  " S5      S9/r/ SQr	S\
" S	\" S5      S
94S\
" S	\" S5      S
94S\
" \" S5      \" S5      S
94S\
" \" S5      \" S5      S
94S\
" \\S
94/rSrU =r$ )TestFileTypeWi  c                 f   > [         TU ]  5         U R                  S5        U R                  S5        g NrO  writabler   rW   r   r   r   r   s    r   rW   TestFileTypeW.setUp  (    !!*-!!*-r   r  rw   r  r  )r  r$   rO  r2   NrS  rp  rT  ro  rU  rV  r#   r&   r'   r(   r)   rW   r   r5   r  r   r	  r   re  	eq_stdoutr  r*   r+   r,   s   @r   rm  rm    s    . 	Dx((-.F**3/0 &H	Te-.	R$U:%678	rE%LuU|<=	rE%LuU|<=	2		23Ir   rm  c                      ^  \ rS rSrU 4S jr\" S\R                  " S5      S9\" S\R                  " S5      S9/r/ SQr	S\
" \" S	5      \" S
5      S94S\
" \\S94/rSrU =r$ )TestFileTypeXi  c                 f   > [         TU ]  5         U R                  S5        U R                  S5        g ro  rq  rr  s    r   rW   TestFileTypeX.setUp  rt  r   r  r#  r  r  )r  r$   rO  rp  rT  r2   ro  rS  rV  r#   ru  r,   s   @r   rx  rx    sp    . 	Dx((-.F**3/0 2H	rE%LuU|<=	2		23Ir   rx  c            	           \ rS rSr\" S\R                  " S5      S9\" S\R                  " S5      S9/rSS/rS\	" S\
" S5      S	94S
\	" \
" S5      \
" S5      S	94S\	" \
" S5      \
" S5      S	94S\	" \\S	94/rSrg)TestFileTypeWBi  r  r  r  r  r$   r2   NrS  rT  ro  rU  rV  r#   )r&   r'   r(   r)   r   r5   r  r   r	  r   re  
eq_bstdoutr  r*   r#   r   r   r|  r|    s    
 	Dx((./F**401 bzH	Te-.	rE%LuU|<=	rE%LuU|<=	2
45	Ir   r|  c                       \ rS rSr\" S\R                  " S5      S9\" S\R                  " S5      S9/rS\" \	" S5      \	" S5      S	94S
\" \
\
S	94/rSrg)TestFileTypeXBi  r  xbr  r  rT  r2   ro  rS  rV  r#   N)r&   r'   r(   r)   r   r5   r  r   r   re  r}  r  r*   r#   r   r   r  r    se    
 	Dx((./F**401
 
rE%LuU|<=	2
45Ir   r  c                        \ rS rSrS rS rSrg)TestFileTypeOpenArgsi  c           
      2   [         R                  nU" S5      S4U" SS5      S4U" SSS9S4U" S	S
S9S4U" SSSS5      S4/n[        R                  " S5       nU H   u  pEU" S5        UR                  " S/UQ76   M"     S S S 5        g ! , (       d  f       g = f)Nrb  )rb  NNrw   r  )rw   r  NNr,  r-  )rw   r  Nr,  r  r&  rx   )r  r  r&  Nr   l1strict)rw   r   r  r  zbuiltins.openr2   )r5   r  r   r9   assert_called_with)r   FTcasesmr   r   s         r   test_open_args#TestFileTypeOpenArgs.test_open_args  s    X-.QZ-.I&(BCv&(@AQh')AB
 ZZ(A#
U$$U2T2 $ )((s   'B
Bc                     U R                  [        5         [        R                  " S5      " S5        S S S 5        g ! , (       d  f       g = f)Nr  z-test)r  
ValueErrorr5   r  r!   s    r   test_invalid_file_type+TestFileTypeOpenArgs.test_invalid_file_type  s/    z*c"7+ +**s	   <
A
r#   N)r&   r'   r(   r)   r  r  r*   r#   r   r   r  r    s    3,r   r  c                       \ rS rSrS rSrg)!TestFileTypeMissingInitializationi  c                 6   [         R                  " 5       nU R                  [        5       nUR	                  S[         R
                  S9  S S S 5        U R                  [         R
                  < S3[        WR                  5      5        g ! , (       d  f       NF= f)Nr  r  z: is a FileType class object, instance of it must be passed)	r5   r6   r  r  r   r  r  r  r  r  s      r   test&TestFileTypeMissingInitialization.test  sq    ((*z*b8+<+<= + 	  #	
 +*s   B


Br#   Nr&   r'   r(   r)   r  r*   r#   r   r   r  r    s    	
r   r  c                   l    \ rS rSr\" S\S9\" S\S9/r/ SQrS\	" SSS	94S
\	" SSS	94S\	" SSS	94/r
Srg)TestTypeCallablei$  --eggsr  r  )r  42jz--eggs az	--eggs 2iz--eggs=42 42r.  g      E@)eggsr  z--eggs 2j -- -1.5y               @      z1024.675Ng3333@r#   )r&   r'   r(   r)   r   complexr  r   r	  r   r  r*   r#   r   r   r  r  $  s[     	H7#F 5H	$/0	bbt45	RT12Ir   r  c                       \ rS rSr " S S\5      r\" S\S9\" S\S9/r/ rS\	" \" S5      \" S	5      S
94S\	" \" S5      \" S5      S
94/r
Srg)TestTypeUserDefinedi3  c                        \ rS rSrS rS rSrg)TestTypeUserDefined.MyTypei6  c                     Xl         g r]   valuer   r  s     r   r   #TestTypeUserDefined.MyType.__init__8      Jr   c                 `    [        U 5      U R                  4[        U5      UR                  4:H  $ r]   r   r  r   s     r   r   !TestTypeUserDefined.MyType.__eq__;  '    J

+UU[[/IIIr   r  Nr<  r#   r   r   MyTyper  6      		Jr   r  r  r  r  r  r  r  rS  -xf grD  r  r#   N)r&   r'   r(   r)   rN   r  r   r   r	  r   r  r*   r#   r   r   r  r  3  sj    J J 	DvF  H	2s&+67	"vc{56Ir   r  c                       \ rS rSr " S S5      r\" S\S9\" S\S9/r/ rS\" \" S5      \" S	5      S
94S\" \" S5      \" S5      S
94/r	Sr
g)TestTypeClassicClassiI  c                        \ rS rSrS rS rSrg)TestTypeClassicClass.CiL  c                     Xl         g r]   r  r  s     r   r   TestTypeClassicClass.C.__init__N  r  r   c                 `    [        U 5      U R                  4[        U5      UR                  4:H  $ r]   r  r   s     r   r   TestTypeClassicClass.C.__eq__Q  r  r   r  Nr<  r#   r   r   Cr  L  r  r   r  r  r  r  r  r  r  rS  r  rD  r  r#   N)r&   r'   r(   r)   r  r   r   r	  r   r  r*   r#   r   r   r  r  I  sh    J J 	DqF H	2#QsV,-	"qvAcF+,Ir   r  c                       \ rS rSrS rSrg)TestTypeRegistrationi_  c                 v   S n[         R                  " 5       nUR                  SSU5        UR                  SSS9  UR                  SSS9  U R	                  UR                  SR                  5       5      [        S SS	95        U R	                  UR                  S
R                  5       5      [        SSS	95        g )Nc                     SU -  $ )Nzmy_type{%s}r#   strings    r   get_my_type.TestTypeRegistration.test.<locals>.get_my_typed  s     6))r   r   my_typer  r  r  rl  z
my_type{1}r  z-x 1 42zmy_type{42})r5   r6   registerr   r  rF   r
  r   )r   r  r<   s      r   r  TestTypeRegistration.testb  s    	* ((*	;7Dy1Ci0**399;7dl3	5**9??+<=lm<	>r   r#   Nr  r#   r   r   r  r  _  s    >r   r  c            	           \ rS rSr " S S\R
                  5      r " S S\R
                  5      r\" SS\\	SS	9\" S
\\
SSS9/r/ rS\" SSS94S\" SSS94S\" SSS94S\" SSS94/rSrg)TestActionUserDefinediv  c                       \ rS rSrSS jrSrg)$TestActionUserDefined.OptionalActioniy  Nc                      [        SS9nUS;   a  SUl        OUS;   a  SUl        O[        SU-  5      e[	        US	U5        g ! [         a  n[        SU-  5      eS nAff = f)
N      ?r  )      ?r  r  )       @r  	value: %szopt_action failed: %sr  )r   r_  AssertionErrorr   r   r   r<   	namespacer  option_stringr  r   s          r   __call__-TestActionUserDefined.OptionalAction.__call__{  su    G !dmN*)*K&e^)+K&(u)<==
 Ivu- " G)*AA*EFFGs!   A A A 
A AA r#   r]   r&   r'   r(   r)   r  r*   r#   r   r   OptionalActionr  y  s    	.r   r  c                       \ rS rSrSS jrSrg)&TestActionUserDefined.PositionalActioni  Nc                      [        SS9nUS;   a  SUl        O*US;   a  SUl        OUS;   a  SUl        O[        S	U-  5      e[	        USU5        g ! [         a  n[        S
U-  5      eS nAff = f)Nr  r_  )r.  r  r  )r  r  )r  r  r  zarg_action failed: %sr_  )r   r  r  r   r   r  s          r   r  /TestActionUserDefined.PositionalAction.__call__  s    G !lH$'+K$c\',K$c\',K$(u)<==
 Ix/ " G)*AA*EFFGs&   A A A A 
A.A))A.r#   r]   r  r#   r   r   PositionalActionr    s    	0r   r  z-sr  r  )rS  r,  r   r  r_  r  r  )r,  r   r  r  z-s0.125r  )r  r_  r  r.  z
-s 0.625 1r  r  z84 -s2r  r  r#   N)r&   r'   r(   r)   r5   Actionr  r  r   r  r  r   r	  r   r  r*   r#   r   r   r  r  v  s    . .,08?? 04 	Dvn	&H-C	, H	BE!,-	rtB'(	ruQ/0	23r*+	Ir   r  c                   D    \ rS rSr " S S\R
                  5      rS rSrg)TestActionRegistrationi  c                       \ rS rSrSS jrSrg)TestActionRegistration.MyActioni  Nc                 6    [        X R                  SU-  5        g )Nzfoo[%s])r   rS  )r   r<   r  valuesr  s        r   r  (TestActionRegistration.MyAction.__call__  s    Iyy)f*<=r   r#   r]   r  r#   r   r   MyActionr    s    	>r   r  c                 ,   [         R                  " 5       nUR                  SSU R                  5        UR	                  SSS9  U R                  UR                  S/5      [        SS95        U R                  UR                  S/5      [        S	S95        g )
Nr,  	my_actionr_  r+  rl  zfoo[1]r  r  zfoo[42])r5   r6   r  r  r   r  rF   r   r;   s     r   r  TestActionRegistration.test  s{    ((*+t}}=H[9**C512X3FG**D62Bi4HIr   r#   N)	r&   r'   r(   r)   r5   r  r  r  r*   r#   r   r   r  r    s    >8?? >
Jr   r  c                   B    \ rS rSr\" SSS\S9/rSrS\" / SQS	94/r	Sr
g
)TestActionExtendi  r   r  r  )r,  r  r   r#   z--foo f1 --foo f2 f3 f4)f1f2f3f4r;  N)r&   r'   r(   r)   r   r  r   r	  r   r  r*   r#   r   r   r  r    s4    GHCc: H	"B+C$DEIr   r  c                   J    \ rS rSr " S S\R
                  5      rS rS rSr	g)TestInvalidActioni  c                       \ rS rSrSrg)#TestInvalidAction.ActionWithoutCalli  r#   Nr&   r'   r(   r)   r*   r#   r   r   ActionWithoutCallr    s    r   r  c                     [         R                  " 5       nUR                  SU R                  S9  U R	                  [
        UR                  SS/5        g )Nr   r+  ro  )r5   r6   r   r  r  NotImplementedErrorrF   r;   s     r   test_invalid_type#TestInvalidAction.test_invalid_type  sG    ((*GD,B,BC-v/@/@7EBRSr   c                     [        5       nUR                  S5      nSUl        U R                  [        UR
                  SS/5        g )Nr   r  ro  )r   r   r   r  r   rF   r   r<   r,  s      r   test_modified_invalid_action.TestInvalidAction.test_modified_invalid_action  s?    +-$$W--v/@/@7EBRSr   r#   N)
r&   r'   r(   r)   r5   r  r  r  r  r*   r#   r   r   r  r    s    HOO TTr   r  c                      ^  \ rS rSrS r  S!S jrU 4S jrS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"U =r#$ )"TestAddSubparsersi  c                 8    U R                   " [        /UQ70 UD6  g r]   r  r   r   s      r   assertArgumentParserError+TestAddSubparsers.assertArgumentParserError      -???r   c                 d   U(       a&  [        SSUS9nUR                  US   S-  S-   SSS	9  O[        SSS
9nUR                  SSSS	9  UR                  S[        SS9  SS0nU(       a  SUS'   SUS'   OSUS'   UR                  " S50 UD6nU R	                  [
        R                  SUR                  5        [        SS9nU(       a  SUS'   U(       a  SS/US'   UR                  " S60 UD6nUR                  S[        SS9  UR                  S / S!QS"S#9  [        S$S9n	U(       a  S%U	S'   UR                  " S70 U	D6n
U
R                  S&/ S'QS(S#9  U
R                  S)[        S*S+S,9  [        S-S9nU(       a  S.US'   UR                  " S80 UD6nUR                  S/[        S0S9  UR                  S1S2S3S49  U$ )9NPROGmain description)progdescriptionru  r   r  r2   r*  foo helpr,  rH  r  r  r   ro  bar helpr   rH  r  FCOMMANDr  commandstitlecommand helprH  z(cannot have multiple subparser argumentsz1 descriptionr  z1 help1alias11alias2aliasesr  w helpr#  r  x helprG  z2 descriptionz2 helpr6  rl  r  r(  y helpr3  r  z help)r   r  rH  z3 descriptionz3 helptzt helpur  zu helpr  rH  r#   rl  )r  )r(  )r   r   r  add_subparsersrQ  r5   rR  dict
add_parserr  r  )r   subparser_helpru  r  r<   subparsers_kwargs
subparsersparser1_kwargsparser1parser2_kwargsparser2parser3_kwargsparser3s                r   r  TestAddSubparsers._get_parser  s    /);,XFQ!#e+Lz   S 0);=F:   ?J 	 	0 (/+4i()3g&(6f%**?->?
x55I%44	6
 /:%-N6")2I(>N9%''>~>T(;S/I /:%-N6"''>~>T?JSwcI /:%-N6"''>~>Ss:SH= r   c                 t   > [         TU ]  5         U R                  5       U l        U R                  SS9U l        g )NT)r  )r   rW   r  r<   command_help_parserrr  s    r   rW   TestAddSubparsers.setUp*	  s2    &&(#'#3#34#3#H r   c                     S H9  nUR                  5       nU R                  U R                  R                  U5        M;     g )N)r$   r  za az0.5 az0.5 1z0.5 1 -yz0.5 2 -w)r
  r  r<   rF   )r   r  r   s      r   test_parse_args_failures*TestAddSubparsers.test_parse_args_failures/	  s4    1H>>#D**4;;+A+A4H1r   c           
      $   U R                  U R                  R                  SR                  5       5      [	        SSSSS95        U R                  U R                  R                  SR                  5       5      [	        SS	S
SS/S95        U R                  U R                  R                  SR                  5       5      [	        SSS SS95        U R                  U R                  R                  SR                  5       5      [	        SSS/ SQS95        g )N0.5 1 b -w 7Fr     r  r2   ro  rw   r#  z0.25 --foo 2 -y 2 3j -- -1jTr  r  y              @y             )r2   ro  r  r3  z--foo 0.125 1 cr  r  z-1.5 3 11 -- a --foo 7 -- br     )r  r   r  --r  )r2   ro  r  r  )r  r<   rF   r
  r   r!   s    r   test_parse_args!TestAddSubparsers.test_parse_args6	  s    KK"">#7#7#9:5cQ#.	
 	KK""#@#F#F#HI4TSRI6	
 	KK""#4#:#:#<=4Udc2	
 	KK""#@#F#F#HI5db,JK	
r   c           
         U R                  U R                  R                  SR                  5       5      [	        SSSSS9/ 45        U R                  U R                  R                  SR                  5       5      [	        SSSSS9S/45        U R                  U R                  R                  S	R                  5       5      [	        SSSSS9S/45        U R                  U R                  R                  S
R                  5       5      [	        SSSSS9SS/45        U R                  U R                  R                  SR                  5       5      [	        SSSSS9/ SQ45        g )Nr0  Fr  r1  r  r2  z0.5 -p 1 b -w 7-p0.5 1 b -w 7 -pz0.5 1 b -q -rs -w 7z-qz-rsz0.5 -W 1 b -X Y -w 7 Z)z-Wz-Xr  r  )r  r<   parse_known_argsr
  r   r!   s    r   test_parse_known_args'TestAddSubparsers.test_parse_known_argsI	  sC   KK(()=)=)?@Esa3/4	
 	KK(():)@)@)BCEsa3/$8	
 	KK(():)@)@)BCEsa3/$8	
 	KK(()>)D)D)FGEsa3/$?	
 	KK(()A)G)G)IJEsa3/1GH	
r   c                 n    " S S5      nU R                  U R                  R                  SR                  5       US9US/45        U R	                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S	5        g )
Nc                       \ rS rSrSrg)ETestAddSubparsers.test_parse_known_args_to_class_namespace.<locals>.Ci`	  r#   Nr  r#   r   r   r  r?  `	      r   r  r9  )r  r8  Fr  r1  r  )	r  r<   r:  r
  assertIsr2   ro  rw   r#  )r   r  s     r   (test_parse_known_args_to_class_namespace:TestAddSubparsers.test_parse_known_args_to_class_namespace_	  s    	 	KK(():)@)@)Ba(PK	
 	aeeU#$a c"r   c           
         [        5       nUR                  S5        UR                  S5        UR                  5       nUR                  S5      nUR                  S5        UR                  S5        U R	                  UR                  / SQ5      [        SS S S S95        U R	                  UR                  / S	Q5      [        S SS S S95        U R                  UR
                  / S
Q5        U R	                  UR                  / SQ5      [        S S SS S95        U R	                  UR                  / SQ5      [        S S S SS95        U R	                  UR                  / SQ5      [        S S S SS95        U R                  UR
                  / SQ5        g )Nr!  r"  ro  --foz--foonew)r$  rp  ro  rp  )r&  r'  fofoonew)--foonrp  ro  )rE  rp  ro  )ro  rE  rp  )ro  r   rp  )ro  rH  rp  )ro  r$  rp  )r   r   r  r  r  rF   r   r  r   r<   r!  r#  s       r   test_abbreviation#TestAddSubparsers.test_abbreviationk	  se   +-J'J'**,
''.V$Z(**+CD5$tL	N**+CD4$tL	N&&v'8'8:PQ**+AB4tL	N**+BC4eL	N**+CD4eL	N&&v'8'8:RSr   c                    [        5       nUR                  SSSSS9  UR                  SSSSS9  U R                  UR                  SS/5      [	        S	SS
9S/45        U R                  UR                  SS/5      [	        S	SS
9S/45        U R                  UR                  S/5      [	        S	SS
9S/45        U R                  UR                  S/5        U R                  UR                  S/5      [	        SSS
9S/45        U R                  UR                  S/5      [	        SSS
9S/45        U R                  UR                  S/5      [	        S	SS
9S/45        U R                  UR                  S/5        U R                  UR                  S/5      [	        S	SS
9S/45        U R                  UR                  S/5      [	        S	S	S
9S/45        U R                  UR                  S/5        U R                  UR                  S/5        U R                  UR                  S/5        U R                  UR                  S/5      [	        S	S	S
9S/45        g )Nz-kz--knownr  r   r  r  z--newz-ur  )knownnewz-kuz-k=uz-ukz-u=kz	-kunknownz-unknownz
-k=unknownz
-ku=nknownz	-u=nknownz-knewz-ewz-kn=ewz-k-newz-kn-ewz-kne-wz-e-w)r   r   r  r:  r   r  r;   s     r   -test_parse_known_args_with_single_dash_option?TestAddSubparsers.test_parse_known_args_with_single_dash_option	  sR   +-D)GQGD''1E00$>1!,tf5	700$>1!,tf5	700%91!,tf5	7&&v'>'>I00%91!,ug6	800&:1!,vh7	900+?1!,zl;	=&&v'>'>O00,@1!,{m<	>00';1!,ug6	8&&v'>'>
K&&v'>'>
K&&v'>'>
K00(<1!,vh7	9r   c                 
   [        5       nUR                  SSS9  UR                  SS9nUR                  S5      nUR                  S5        U R	                  [        SSS	S
9UR                  SR                  5       5      5        g )Nr   r*  r+  ro  rR  rl  rp  Fr  r  rk  )r   r   r  r  r  r   rF   r
  rI  s       r   	test_destTestAddSubparsers.test_dest	  s{    +-GL9***6
'',U#3C8**5;;=9	;r   c                     UR                  S/5      nU R                  UR                  S5        U R                  UR                   S5        g )Nrunr#   )rF   r  commandr  )r   r<   rets      r   _test_required_subparsers+TestAddSubparsers._test_required_subparsers	  s@    (e, 	&&v'8'8"=r   c                     [        5       nUR                  SS9nSUl        UR                  S5        U R	                  U5        g )NrV  rR  TrU  )r   r  r  r  rX  r   r<   r!  s      r   &test_required_subparsers_via_attribute8TestAddSubparsers.test_required_subparsers_via_attribute	  sA    +-**	*:
"
e$&&v.r   c                 |    [        5       nUR                  SSS9nUR                  S5        U R                  U5        g )NrV  TrS  r  rU  )r   r  r  rX  r[  s      r   "test_required_subparsers_via_kwarg4TestAddSubparsers.test_required_subparsers_via_kwarg	  s;    +-**	D*I
e$&&v.r   c                     [        5       nUR                  SS9nUR                  S5        UR                  S5      nU R	                  UR
                  5        g )NrV  rR  rU  r#   r   r  r  rF   assertIsNonerV  r   r<   r!  rW  s       r    test_required_subparsers_default2TestAddSubparsers.test_required_subparsers_default	  sM    +-**	*:
e$##++&r   c                 F   [        5       nUR                  SS9nUR                  S5        UR                  S5        U R                  [        5       nUR                  S5        S S S 5        U R                  WR                  R                  S5        g ! , (       d  f       N5= f)NTr  r2   ro  r#   z8error: the following arguments are required: {foo,bar}
$	r   r  r  r  r   rF   rI   r  r   r   r<   r!  excinfos       r   -test_required_subparsers_no_destination_error?TestAddSubparsers.test_required_subparsers_no_destination_error	  s    +-**D*9
e$e$23wb! 4$$G	
 43   B
B c                 F   [        5       nUR                  SS9nUR                  S5        UR                  S5        U R                  [        5       nUR                  S5        S S S 5        U R                  WR                  R                  S5        g ! , (       d  f       N5= f)NTri  r2   ro  r  zLerror: argument {foo,bar}: invalid choice: 'baz' \(choose from foo, bar\)\n$rj  rk  s       r   3test_wrong_argument_subparsers_no_destination_errorETestAddSubparsers.test_wrong_argument_subparsers_no_destination_error	  s    +-**D*9
e$e$23wh' 4$$[	
 43ro  c                     [        5       nUR                  SSS9nUR                  S5        UR                  S5      nU R	                  UR
                  5        g )NrV  Fr_  rU  r#   rc  re  s       r   test_optional_subparsers*TestAddSubparsers.test_optional_subparsers	  sO    +-**	E*J
e$##++&r   c                     U R                  U R                  R                  5       S5        U R                  U R                  R                  5       [        R
                  " S5      5        g )N)usage: PROG [-h] [--foo] bar {1,2,3} ...
a?              usage: PROG [-h] [--foo] bar {1,2,3} ...

            main description

            positional arguments:
              bar         bar help
              {1,2,3}     command help

            options:
              -h, --help  show this help message and exit
              --foo       foo help
            )r  r<   rI  rJ  textwrapdedentr!   s    r   	test_helpTestAddSubparsers.test_help	  sQ    113E	G002HOO E 5 	r   c                     U R                  SS9nU R                  UR                  5       S5        U R                  UR                  5       [        R
                  " S5      5        g )Nz+:-r  z)usage: PROG [-h] [++foo] bar {1,2,3} ...
a?              usage: PROG [-h] [++foo] bar {1,2,3} ...

            main description

            positional arguments:
              bar         bar help
              {1,2,3}     command help

            options:
              -h, --help  show this help message and exit
              ++foo       foo help
            r  r  rI  rJ  rx  ry  r;   s     r   test_help_extra_prefix_chars.TestAddSubparsers.test_help_extra_prefix_chars	  s\    !!u!5,,.E	G++-x @ 0 	r   c                     [        SSS9nUR                  SSSS9  U R                  UR                  5       [        R
                  " S5      5        g )	Nr  r  r  z--non-breakingr  uR   help message containing non-breaking spaces shall not wrap at non-breaking spacesr  u7              usage: PROG [-h] [--non-breaking]

            main description

            options:
              -h, --help      show this help message and exit
              --non-breaking  help message containing non-breaking spaces shall not
                              wrap at non-breaking spaces
        r   r   r  rJ  rx  ry  r;   s     r   test_help_non_breaking_spaces/TestAddSubparsers.test_help_non_breaking_spaces
  s[    +%79]; 	 	< 	++-x 	@ 	0 		r   c                 >   [        SSS9nUR                  SSS9  U R                  UR                  5       [        R
                  " S5      5        [        SSS9nUR                  S/ SS	9  U R                  UR                  5       [        R
                  " S
5      5        g )Nr  r  r  r2   z    rH  z            usage: PROG [-h] foo

            main description

            positional arguments:
              foo         

            options:
              -h, --help  show this help message and exit
        z%(choices)srG  z            usage: PROG [-h] {}

            main description

            positional arguments:
              {}          

            options:
              -h, --help  show this help message and exit
        r  r;   s     r   test_help_blank!TestAddSubparsers.test_help_blank
  s    +%79 	 	 	++-x 	@ 	0 		 ,%792 	 	  	++-x 	@ 	0 		r   c                     U R                  SS9nU R                  UR                  5       S5        U R                  UR                  5       [        R
                  " S5      5        g )Nrs  r  z)usage: PROG [+h] [++foo] bar {1,2,3} ...
a?              usage: PROG [+h] [++foo] bar {1,2,3} ...

            main description

            positional arguments:
              bar         bar help
              {1,2,3}     command help

            options:
              +h, ++help  show this help message and exit
              ++foo       foo help
            r}  r;   s     r    test_help_alternate_prefix_chars2TestAddSubparsers.test_help_alternate_prefix_chars;
  s\    !!u!5,,.E	G++-x @ 0 	r   c                     U R                  U R                  R                  5       S5        U R                  U R                  R                  5       [        R
                  " S5      5        g )Nrw  a              usage: PROG [-h] [--foo] bar {1,2,3} ...

            main description

            positional arguments:
              bar         bar help
              {1,2,3}     command help
                1         1 help
                2         2 help
                3         3 help

            options:
              -h, --help  show this help message and exit
              --foo       foo help
            )r  r*  rI  rJ  rx  ry  r!   s    r   test_parser_command_help*TestAddSubparsers.test_parser_command_helpM
  sU    11>>@E	G11==?! * 	r   c                 h   [        SSS9nUR                  SSSS9  UR                  SS	S
9  UR                  SSSS9nUR                  S5      nUR                  S5      nU R	                  UR                  5       S5        U R	                  UR                  5       [        R                  " S5      5        g )Nr  r  r  r   r*  r  r  ro  r	  r  subcommandsr  zadditional text)r  r  rH  rl  r  z'usage: PROG [-h] [--foo] bar {1,2} ...
av              usage: PROG [-h] [--foo] bar {1,2} ...

            main description

            positional arguments:
              bar         bar help

            options:
              -h, --help  show this help message and exit
              --foo       foo help

            subcommands:
              command help

              {1,2}       additional text
            )	r   r   r  r  r  rI  rJ  rx  ry  )r   r<   r!  r#  r%  s        r   test_subparser_title_help+TestAddSubparsers.test_subparser_title_helpb
  s    +8JLGLzJE
3**7E0A + C
 '','',,,.C	E++-x @ 0 	r   c                     U R                  [        5       nU R                  R                  UR	                  5       5        S S S 5        U R                  UWR                  R                  5        g ! , (       d  f       N5= fr]   )r  r   r<   rF   r
  r  r  r   )r   r  expected_helpr  s       r   _test_subparser_help&TestAddSubparsers._test_subparser_help
  sT    23rKK""8>>#34 4(;(;< 43s   *A//
A=c                 P    U R                  S[        R                  " S5      5        g )Nz5.0 1 -ha              usage: PROG bar 1 [-h] [-w W] {a,b,c}

            1 description

            positional arguments:
              {a,b,c}     x help

            options:
              -h, --help  show this help message and exit
              -w W        w help
            r  rx  ry  r!   s    r   test_subparser1_help&TestAddSubparsers.test_subparser1_help
  "    !!*hoo ? / 	r   c                 P    U R                  S[        R                  " S5      5        g )Nz5.0 2 -ha              usage: PROG bar 2 [-h] [-y {1,2,3}] [z ...]

            2 description

            positional arguments:
              z           z help

            options:
              -h, --help  show this help message and exit
              -y {1,2,3}  y help
            r  r!   s    r   test_subparser2_help&TestAddSubparsers.test_subparser2_help
  r  r   c           
         U R                  SS9nU R                  UR                  SR                  5       5      [	        SSS SS9/ 45        U R                  UR                  SR                  5       5      [	        SSS SS9/ 45        g )	NTr  z0.5 1alias1 bFr  r  r2  z0.5 1alias2 b)r  r  r:  r
  r   r;   s     r   test_alias_invocation'TestAddSubparsers.test_alias_invocation
  s    !!$!/##O$9$9$;<Esdc2B7	
 	##O$9$9$;<Esdc2B7	
r   c                 v    U R                  SS9nU R                  UR                  SR                  5       5        g )NTr  z0.5 1alias3 b)r  r  rF   r
  r;   s     r   test_error_alias_invocation-TestAddSubparsers.test_error_alias_invocation
  s8    !!$!/&&v'8'8'6'<'<'>	@r   c                     U R                  SSS9nS U l        U R                  UR                  5       [        R
                  " S5      5        g )NT)r  r  a	              usage: PROG [-h] [--foo] bar COMMAND ...

            main description

            positional arguments:
              bar                   bar help

            options:
              -h, --help            show this help message and exit
              --foo                 foo help

            commands:
              COMMAND
                1 (1alias1, 1alias2)
                                    1 help
                2                   2 help
                3                   3 help
            )r  maxDiffr  rJ  rx  ry  r;   s     r   test_alias_help!TestAddSubparsers.test_alias_help
  sH    !!$t!D++-x @ 0 	r   )r*  r  r<   )FNF)$r&   r'   r(   r)   r  r  rW   r-  r5  r;  rB  rJ  rO  rR  rX  r\  r`  rf  rm  rq  rt  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r*   r+   r,   s   @r   r  r    s    @ >B!7rI
I
&
,
#T,98;>//'



'"&$ D$*<=
	
@
 r   r  c                   &    \ rS rSrS rS rS rSrg)TestPositionalsGroupsi
  c                    [        5       nUR                  S5        UR                  S5      nUR                  S5        UR                  S5        [        SSSS9nUR	                  S	R                  5       5      nU R                  X45        g )
Nr2   r  ro  rp  rl  r  r(  r  1 2 3)r   r   r   r   rF   r
  r  r   r<   r   expectedr   s        r   test_nongroup_first)TestPositionalsGroups.test_nongroup_first
  sv    +-E"))#.5!E"#3C0""7==?3*r   c                    [        5       nUR                  S5      nUR                  S5        UR                  S5        UR                  S5        [        SSSS9nUR	                  S	R                  5       5      nU R                  X45        g )
Nxxxr2   ro  rp  rl  r  r(  r  r  r   r   r   r   rF   r
  r  r  s        r   test_group_first&TestPositionalsGroups.test_group_first
  sv    +-))%05!E"E"#3C0""7==?3*r   c                 \   [        5       nUR                  S5      nUR                  S5        UR                  S5        UR                  S5        UR                  S5      nUR                  S5        [        SSS	S
S9nUR	                  SR                  5       5      nU R                  X45        g )Nr  r2   ro  rp  r2  frellrl  r  r(  r  )r2   ro  rp  r  z1 2 3 4r  r  s        r   test_interleaved_groups-TestPositionalsGroups.test_interleaved_groups
  s    +-))%0E"5!E"))%07##3Cs;""9??#45*r   r#   N)r&   r'   r(   r)   r  r  r  r*   r#   r   r   r  r  
  s    ++
+r   r  c                      ^  \ rS rSrS rU 4S jrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rSrU =r$ )TestParentParsersi
  c                 8    U R                   " [        /UQ70 UD6  g r]   r  r   s      r   r  +TestParentParsers.assertArgumentParserError
  r   r   c                   > [         TU ]  5         [        SS9U l        U R                  R	                  S5        U R                  R                  S5      nUR	                  S5        U R                  R	                  S5        [        SS9U l        U R                  R	                  S5        U R                  R	                  S5        U R                  R                  S	5      nUR	                  S
5        [        SS9U l        U R                  R	                  S5        [        SS9U l        U R                  R	                  S5        [        SS9U l	        U R                  R                  5       nUR	                  SSS9  UR	                  SSS9  [        R                  R                  [        R                  S   5      U l        g )NFrv  z--wr#  r6  r3  r  r  r  z--dr  r*  r+  r   )r   rW   r   wxyz_parentr   r   abcd_parentw_parentz_parentab_mutex_parentadd_mutually_exclusive_groupra   rj   basenamer   r   main_program)r   x_groupc_groupr   r   s       r   rW   TestParentParsers.setUp
  sb   5uE%%e,""55c:T"%%c*5uE%%c*%%d+""55c:U#2EB""5)2EB""3'  :5I$$AAC4545GG,,SXXa[9r   c           	          [        U R                  /S9nU R                  UR                  SR	                  5       5      [        SSSS95        g )Nparentsz-y 1 2 --w 3r(  rl  r  rw   r  r3  )r   r  r  rF   r
  r   r;   s     r   test_single_parent$TestParentParsers.test_single_parent  sE    +T5E5E4FG**>+?+?+ABcSC0	2r   c                     U R                  U R                  R                  5        [        U R                  /S9nU R                  UR                  5        g Nr  )_test_mutex_abr  rF   r   r;   s     r   test_single_parent_mutex*TestParentParsers.test_single_parent_mutex  sC    D00;;<+T5I5I4JKF--.r   c                 |    U R                   /n[        SUS9n[        U/S9nU R                  UR                  5        g )NF)rv  r  r  )r  r   r  rF   r   r  r<   s      r   test_single_granparent_mutex.TestParentParsers.test_single_granparent_mutex  s<    ''(+UGL+VH=F--.r   c                    U R                  U" / 5      [        SSS95        U R                  U" S/5      [        SSS95        U R                  U" S/5      [        SSS95        U R                  USS/5        U R                  USS/5        U R                  US/5        U R                  USS/5        U R                  USS/5        g )NFr  r  r  Tr  r  )r  r   r  )r   rF   s     r   r   TestParentParsers._test_mutex_ab%  s    Beu)=>TF+R$%-@ATF+R%4-@A&&zD$<@&&zD$<@&&zD6:&&zD$<@&&zD$<@r   c                     U R                   U R                  /n[        US9nU R                  UR	                  SR                  5       5      [        SS SSS SS95        g )Nr  z--d 1 --w 2 3 4r(  rl  r  r  )r  r  r  rw   r  r3  )r  r  r   r  rF   r
  r   r  s      r   test_multiple_parents'TestParentParsers.test_multiple_parents/  sZ    ##T%5%56+G<**+<+B+B+DEcTSC43G	Ir   c                 b   U R                   U R                  /n[        US9nU R                  UR	                  SR                  5       5      [        SSSS SS95        U R                  UR                  SR                  5       5        U R                  UR                  S	R                  5       5        g )
Nr  z
-a --w 2 3TFr  r(  )r  r  rw   r  r3  z-a --w 2 3 -bz-a -b --w 2 3)r  r  r   r  rF   r
  r   r  r  s      r   test_multiple_parents_mutex-TestParentParsers.test_multiple_parents_mutex5  s    '')9)9:+G<**<+=+=+?@desdcB	D&&446	8&&446	8r   c                     U R                  [        R                  [        R                  U R                  U R
                  /S9  g r  )r  r5   rR  r6   r  r  r!   s    r   test_conflicting_parents*TestParentParsers.test_conflicting_parents?  s9    ""##]]D$4$45 	 	7r   c                     U R                  [        R                  [        R                  U R                  U R
                  /S9  g r  )r  r5   rR  r6   r  r  r!   s    r   test_conflicting_parents_mutex0TestParentParsers.test_conflicting_parents_mutexE  s;    ""##%%t';';< 	 	>r   c           	          U R                   U R                  /n[        US9nU R                  UR	                  SR                  5       5      [        S S SS95        g )Nr  rk  r  r  )r  r  r   r  rF   r
  r   r  s      r   test_same_argument_name_parents1TestParentParsers.test_same_argument_name_parentsK  sM    ##T]]3+G<**5;;=9ddc2	4r   c           
         [        5       nUR                  5       nUR                  SU R                  /S9nUR	                  S5        U R                  UR                  SR                  5       5      [        SSSSS	95        g )
Nro  r  r   zbar -b 1 --d 2 3 4r(  rl  r  r  )r  r  r  r   )	r   r  r  r  r   r  rF   r
  r   )r   r<   r!  abcde_parsers       r   test_subparser_parents(TestParentParsers.test_subparser_parentsQ  sw    +-**,
!,,UT=M=M<N,O!!#&**+?+E+E+GHcSC37	9r   c                    [        5       nUR                  5       nU R                  /nUR                  SUS9nUR	                  S5      nUR                  S5        U R                  U R                  /nUR                  SUS9nUR                  S5        U R                  UR                  SR                  5       5      [        SS	S
S95        U R                  UR                  SR                  5       5      [        S	SSS SS
S95        U R                  UR                  SR                  5       5        U R                  UR                  SR                  5       5        g )Nr2   r  r  r  ro  r   zfoo -a 4TFr  r  zbar -b  --w 2 3 4r  r(  )r  r  rw   r  r3  r   zfoo -a -b 4zbar -b -a 4)r   r  r  r  r   r   r  r  rF   r
  r   r  )r   r<   r!  r  
abc_parserr  wxyzabe_parsers          r   test_subparser_parents_mutex.TestParentParsers.test_subparser_parents_mutexY  s>   +-**,
''(**5'*B
//	:S!##T%9%9:#..ug.F##C(**:+;+;+=>des3	5**+>+D+D+FGetsdcSI	K&&}224	6&&}224	6r   c           	          U R                   U R                  /n[        US9nUR                  5       nU R                  nU R                  U[        R                  " SR                  XD(       a  SOS5      5      5        g )Nr  aG              usage: {}{}[-h] [-b B] [--d D] [--w W] [-y Y] a z

            positional arguments:
              a
              z

            options:
              -h, --help  show this help message and exit
              -b B
              --w W

            c:
              --d D

            x:
              -y Y
         r$   )	r  r  r   rJ  r  r  rx  ry  format)r   r  r<   parser_helpprognames        r   test_parent_help"TestParentParsers.test_parent_helpl  sm    ##T%5%56+G<((*$$hoo 7" F8HS"6#'8 	9r   c           	         [        SS9nUR                  SSS9nUR                  S5        UR                  S5        UR                  5       nUR                  S5        UR                  S	5        [        U/S
9nU R	                  [
        UR                  / SQ5        UR                  5       nU R                  nU R                  U[        R                  " SR                  Xf(       a  SOS5      5      5        g )NFr  r  gdr  r  r  r  r6  r1  r  r6  r  r1  r  z            usage: {}{}[-h] [-w W] [-x X] [-y Y | -z Z]

            options:
              -h, --help  show this help message and exit
              -y Y
              -z Z

            g:
              gd

              -w W
              -x X
        r  r$   )r   r   r   r  r  r   rF   rJ  r  r  rx  ry  r  )r   parentr  r  r<   r  r  s          r   test_groups_parents%TestParentParsers.test_groups_parents  s    +U;%%CT%B	t	t//1	t	t+VH=-v/@/@"	$ ((*$$hoo 7 F8HS"6'8 	9r   c                 8    U R                  [        [        S/S9  g )Nr  r  )r  r   r   r!   s    r   test_wrong_type_parents)TestParentParsers.test_wrong_type_parents  s    )%?!Mr   c                    [        SS9nUR                  SSS9nUR                  S5        UR                  S5        UR                  5       nUR                  S5        UR                  S	5        [        S
U/S9nU R	                  [
        UR                  / SQ5        UR                  5       nU R                  U[        R                  " S5      5        g )NFr  r  r  r  r  r  r6  r1  r  )r  r  r  z            usage: PROG [-h] [-w W] [-x X] [-y Y | -z Z]

            options:
              -h, --help  show this help message and exit

            g:
              gd

              -w W
              -x X
              -y Y
              -z Z
        )r   r   r   r  r  r   rF   rJ  r  rx  ry  )r   r   r  r  r<   r  s         r   test_mutex_groups_parents+TestParentParsers.test_mutex_groups_parents  s    +U;%%CT%B	t	t**,	t	t+&J-v/@/@"	$ ((*hoo 7 ' 	r   )r  r  r  r  r  r  )r&   r'   r(   r)   r  rW   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r*   r+   r,   s   @r   r  r  
  sa    @:82
/
/AI87>496&909<N r   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	 TestMutuallyExclusiveGroupErrorsi  c                 \    [        5       nU R                  nU" [        UR                  SS9  g )Nr2   )r  )r   r  r   r  )r   r<   raisess      r   test_invalid_add_argument_group@TestMutuallyExclusiveGroupErrors.test_invalid_add_argument_group  s'    +-""y&==UKr   c                    [        5       nUR                  5       nUR                  nU R                  nU" [        USSS9  U" [        US5        U" [        USSS9  U" [        USSS9  U" [        US[
        R                  S9  g )Nr   Tri  ro  r  r  r  )r   r  r   r  r  r5   PARSER)r   r<   r   r   r  s        r   test_invalid_add_argument:TestMutuallyExclusiveGroupErrors.test_invalid_add_argument  sv    +-335))""z<4@z</z<c:z<a8z<hooFr   c                 B   [        SS9nUR                  5       nUR                  SSS9  UR                  SSS9  UR                  5       nUR                  SSS9  UR                  S	SS9  S
nU R                  UR	                  5       [
        R                  " U5      5        g )Nr  r  r   r*  r+  rZ  r  z--soupz--nutsz            usage: PROG [-h] [--foo | --bar] [--soup | --nuts]

            options:
              -h, --help  show this help message and exit
              --foo
              --bar
              --soup
              --nuts
              )r   r  r   r  rJ  rx  ry  )r   r<   group1group2r  s        r   rz  *TestMutuallyExclusiveGroupErrors.test_help  s    +8446GL9GM:446H\:H];	 	++-xx/HIr   c           	         S U l         [        SS9nUR                  SSS9nUR                  S5      nUR	                  5       nUR                  SS[        R                  S	9  UR                  S
S[        R                  S	9  SnSnUR                  U5        SU SU SU SU S3	nU R                  UR                  5       [        R                  " U5      5        g )Nr  r  r  rV  )r  rS  r2   r  r*  r  z--quietz--longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongڀLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGz>            usage: PROG foo [-h]
                            [r  zj]

            options:
              -h, --help            show this help message and exit
              z
              )r  r   r  r  r  r   r5   r  r  rJ  rx  ry  )r   r<   r  cmd_foor   longoptlongmetar  s           r   Ctest_help_subparser_all_mutually_exclusive_group_members_suppresseddTestMutuallyExclusiveGroupErrors.test_help_subparser_all_mutually_exclusive_group_members_suppressed  s    +8((z	(J%%e,446;|(BSBST9\@Q@QR"W%%Yaz 2 iq
 # 	,,.0IJr   c                     [         R                  " 5       nUR                  5       nU R                  [        5         UR                  S/5        S S S 5        g ! , (       d  f       g = f)Nr@   )r5   r6   r  r  r  rF   r   r<   r   s      r   test_empty_group1TestMutuallyExclusiveGroupErrors.test_empty_group  sH    ((*335z*tf% +**s   A
A%)r  N)
r&   r'   r(   r)   r  r  rz  r  r!  r*   r#   r   r   r
  r
    s    L
	GJ(K*&r   r
  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)MEMixini  c                     U R                  SS9R                  n[        nU R                   H;  nU R	                  US9   U R                  X!UR                  5       5        S S S 5        M=     g ! , (       d  f       MO  = fNFri  r  
get_parserrF   r   r	  rG   r  r
  r   rF   r   args_strings       r   test_failures_when_not_required'MEMixin.test_failures_when_not_required
  sa    __e_4??
#==K;/!!%[5F5F5HI 0/ )//s   !A,,
A;	c                    U R                  SS9R                  n[        nU R                  S/-    H;  nU R	                  US9   U R                  X!UR                  5       5        S S S 5        M=     g ! , (       d  f       MO  = f)NTri  r$   r  r'  r)  s       r   test_failures_when_required#MEMixin.test_failures_when_required  sh    __d_3>>
#==B4/K;/!!%[5F5F5HI 0/ 0//s   !A00
A?	c                     U R                  SS9R                  nU R                  U R                  -   nU HD  u  p4U R	                  US9   U" UR                  5       5      nU R                  XT5        S S S 5        MF     g ! , (       d  f       MX  = fr&  )r(  rF   r  successes_when_not_requiredrG   r
  r  )r   rF   r  r*  r  	actual_nss         r    test_successes_when_not_required(MEMixin.test_successes_when_not_required  sw    __e_4??
NNT%E%EE	(1$K;/&{'8'8':;	  8 0/ )2//s   	(A>>
B	c                    U R                  SS9R                  nU R                   HD  u  p#U R                  US9   U" UR	                  5       5      nU R                  XC5        S S S 5        MF     g ! , (       d  f       MX  = f)NTri  r  )r(  rF   r  rG   r
  r  )r   rF   r*  r  r2  s        r   test_successes_when_required$MEMixin.test_successes_when_required   sg    __d_3>>
(,$K;/&{'8'8':;	  8 0/ )7//s   (A//
A>	c                     U R                  SS9R                  nU R                  nU R                  U" 5       [        R
                  " U5      5        g NFri  )r(  rI  usage_when_not_requiredr  rx  ry  r   rI  expected_usages      r   test_usage_when_not_required$MEMixin.test_usage_when_not_required'  s>    6CC55)HIr   c                     U R                  SS9R                  nU R                  nU R                  U" 5       [        R
                  " U5      5        g NTri  )r(  rI  usage_when_requiredr  rx  ry  r;  s      r   test_usage_when_required MEMixin.test_usage_when_required,  s>    5BB11)HIr   c                     U R                  SS9R                  nU R                  U R                  -   nU R	                  U" 5       [
        R                  " U5      5        g r9  )r(  rJ  r:  rH  r  rx  ry  r   rJ  rH  s      r   test_help_when_not_required#MEMixin.test_help_when_not_required1  sG    oouo5AA++dii7(=>r   c                     U R                  SS9R                  nU R                  U R                  -   nU R	                  U" 5       [
        R                  " U5      5        g r@  )r(  rJ  rA  rH  r  rx  ry  rE  s      r   test_help_when_requiredMEMixin.test_help_when_required6  sG    ooto4@@''$))3(=>r   r#   N)r&   r'   r(   r)   r+  r.  r3  r6  r=  rB  rF  rI  r*   r#   r   r   r$  r$    s.    JJ99J
J
?
?r   r$  c            	           \ rS rSrSS jrSS/rS\" SSS94S	\" S
SS94S\" SSS94S\" SS
S94/rS\" SSS94/rSr	Sr
SrSrg)TestMutuallyExclusiveSimplei<  Nc                 z    [        SS9nUR                  US9nUR                  SSS9  UR                  SSS	S
S9  U$ )Nr  r  ri  rZ  r	  r  r  r  r  baz help)r  r0  rH  r   r  r   r   r  r<   r   s       r   r(  &TestMutuallyExclusiveSimple.get_parser>  sN    +833X3F747#SzJr   --bar X --baz Yz--bar X --baz--bar Xra  ro  rp  z--bar X --bar Zr  --baz Yr  r  r$   z;        usage: PROG [-h] [--bar BAR | --baz [BAZ]]
        z;        usage: PROG [-h] (--bar BAR | --baz [BAZ])
        z
        options:
          -h, --help   show this help message and exit
          --bar BAR    bar help
          --baz [BAZ]  baz help
        r#   r]   r&   r'   r(   r)   r(  r	  r   r  r1  r:  rA  rH  r*   r#   r   r   rL  rL  <  s     "?3H	B3D)*	B3D12	B4S)*	"3'(	I 
RDd#$#Dr   rL  c                       \ rS rSrSS jrS/rS\" SSSSS94S\" S	SSSS94S
\" SSSSS94S\" SS	SSS94/rS\" SSSSS94/rSr	Sr
SrSrg)TestMutuallyExclusiveLongi_  Nc                     [        SS9nUR                  SSS9  UR                  SSS9  UR                  US9nUR                  S	S
S9  UR                  SSS9  U$ )Nr  r  z--abcdez
abcde helpr  z--fghijz
fghij helpri  z--klmnoz
klmno helpz--pqrstz
pqrst helpr   r   r  rP  s       r   r(  $TestMutuallyExclusiveLong.get_parsera  sp    +8IL9IL933X3F9<89<8r   z--klmno X --pqrst Yz	--klmno Xra  )abcdefghijklmnopqrstz--abcde Y --klmno Xr  z	--pqrst Xz--pqrst X --fghij Yr$   zi    usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ] [--klmno KLMNO |
                --pqrst PQRST]
    zi    usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ] (--klmno KLMNO |
                --pqrst PQRST)
    z
    options:
      -h, --help     show this help message and exit
      --abcde ABCDE  abcde help
      --fghij FGHIJ  fghij help
      --klmno KLMNO  klmno help
      --pqrst PQRST  pqrst help
    r#   r]   rV  r#   r   r   rX  rX  _  s     &&H	bt4s$GH	SCt<	>	bt4t3GH	TD<	>I 
Rd$d$?@#Dr   rX  c                   t    \ rS rSrS rS/rS\" SSS94S\" S	SS94S
\" SSS94/rS\" SSS94/rSr	Sr
SrSrg)$TestMutuallyExclusiveFirstSuppressedi  c                     [        SS9nUR                  US9nUR                  S[        R                  S9  UR                  SSSS	9  U$ )
Nr  r  ri  r  r  r6  r  r  r  r   r  r   r5   r  rP  s       r   r(  /TestMutuallyExclusiveFirstSuppressed.get_parser  sR    +833X3F4h&7&784HEr   z-x X -yz-x Xra  Tr  z	-x X -x Yr  r6  NFr$   z&        usage: PROG [-h] [-y]
        z$        usage: PROG [-h] -y
        zm
        options:
          -h, --help  show this help message and exit
          -y          y help
        r#   rV  r#   r   r   ra  ra    st     {H	cT"#	b3$'(	rDE"#I 
R$$ #Dr   ra  c            
           \ rS rSrS r/ SQrS\" SSSS94S\" S	S	SS94S
\" S	SSS94S\" SSSS94/rS\" S	SSS94/rS=r	r
SrSrg)#TestMutuallyExclusiveManySuppressedi  c                     [        SS9nUR                  US9nUR                  nU" SS[        R                  S9  U" SS[        R                  S9  U" S	[        R                  S
9  U$ )Nr  r  ri  --spamr*  r  rY  r  z	--bladderr  rc  )r   r  r<   r   rj  s        r   r(  .TestMutuallyExclusiveManySuppressed.get_parser  sc    +833X3F  H\0A0ABJ}83D3DEKh//0r   )z--spam --badgerz--badger --bladder Bz--bladder B --spamrh  TN)r  r_  bladderrY  Fz--bladder Brm  z--spam --spamr$   z!        usage: PROG [-h]
        P
        options:
          -h, --help  show this help message and exit
        r#   r&   r'   r(   r)   r(  r	  r   r  r1  rA  r:  rH  r*   r#   r   r   rf  rf    s    H 
24d;<	RU5$?@	dC@A	"$tTBC	I 
RU467#5 1Dr   rf  c            
           \ rS rSrS r/ SQrS\" SS/ S94S\" S	S
/ S94S\" S	SS/S94S\" S	S/ SQS94/rS\" S	S/ S94/rSr	Sr
SrSrg)*TestMutuallyExclusiveOptionalAndPositionali  c                     [        SS9nUR                  US9nUR                  SSSS9  UR                  SS	S
9  UR                  SSSS9  U$ )Nr  r  ri  r   r*  FOOr  rh  SPAMr  r_  r  BADGERr  rO  rP  s       r   r(  5TestMutuallyExclusiveOptionalAndPositional.get_parser  sa    +833X3F7<eD8&183X>r   )z--foo --spam Sz
--spam S XzX --foozX Y Z --spam S	--foo X Yr   TNr2   r  r_  z--spam SFSra  zX Y Z)ra  r  r  r$   zD        usage: PROG [-h] [--foo | --spam SPAM | badger ...]
        zD        usage: PROG [-h] (--foo | --spam SPAM | badger ...)
        z
        positional arguments:
          badger       BADGER

        options:
          -h, --help   show this help message and exit
          --foo        FOO
          --spam SPAM  SPAM
        r#   rV  r#   r   r   rn  rn    s    H 
"D45	REB78	bUse45	"T/BC	I 
RER01#	Dr   rn  c                       \ rS rSrS r/ SQrS\" SSSSSS94S\" SSSSSS94S	\" SSSSSS94S
\" SSSSSS94S\" SSSSSS94S\" SSSSSS94/rS\" SSSSSS94S\" SSSSSS94S\" SSSSSS94/rS=r	r
SrSrg)#TestMutuallyExclusiveOptionalsMixedi  c                     [        SS9nUR                  SSSS9  UR                  US9nUR                  SSS	S9  UR                  S
SSS9  UR                  SSSS9  UR                  SSSS9  U$ )Nr  r  r  r*  r  r  ri  r  a helpr  b helpr6  r  r  c helprZ  rP  s       r   r(  .TestMutuallyExclusiveOptionalsMixed.get_parser  s    +8DHE33X3F48D48DDHE48Dr   )z-a -b-b -cz-a -cz-a -b -cr  TFr  r  r  r#  r  r  r  z-a -xz-y -bz-x -y -cr$   r  r6  z:        usage: PROG [-h] [-x] [-a] [-b] [-y] [-c]
        z
        options:
          -h, --help  show this help message and exit
          -x          x help
          -a          a help
          -b          b help
          -y          y help
          -c          c help
        r#   Nrl  r#   r   r   rx  rx    s     7H	rDEUeu=>	rETUeu=>	rEUdeu=>	"tu?@	"u$?@	R%5DDDABI 
R%5EUe<=	rEUetu=>	rEUeu=>#5 1	Dr   rx  c                   j    \ rS rSrSS jrSS/rS\" SSS94S	\" SS
S94/rS\" SSS94/rSr	Sr
SrSrg)TestMutuallyExclusiveInGroupi&  Nc                     [        SS9nUR                  SSS9nUR                  US9nUR                  SSS	9  UR                  S
SS	9  U$ )Nr  r  zTitled groupzGroup descriptionr  ri  rZ  r	  r  r  rN  )r   r   r  r   )r   r  r<   titled_groupmutex_groups        r   r(  'TestMutuallyExclusiveInGroup.get_parser(  sk    +800 .A 1 C 55x5H 	  z :  z :r   rR  z--baz X --bar YrS  ra  rT  rU  r  r$   z9        usage: PROG [-h] [--bar BAR | --baz BAZ]
        z9        usage: PROG [-h] (--bar BAR | --baz BAZ)
        z
        options:
          -h, --help  show this help message and exit

        Titled group:
          Group description

          --bar BAR   bar help
          --baz BAZ   baz help
        r#   r]   rV  r#   r   r   r  r  &  si     "#45H	B3D)*	B4S)*I
 
RDd#$#
Dr   r  c                       \ rS rSrS r/ SQrS\" SSSSSS94S	\" S
SSSSS94S\" S
SSSSS94S\" SSSSSS94S\" S
SSSSS94/rS\" S
SSSSS94S\" S
SSSSS94/rS=r	r
SrSrg
)1TestMutuallyExclusiveOptionalsAndPositionalsMixediN  c                     [        SS9nUR                  SSS9  UR                  SSSS	9  UR                  US
9nUR                  SSSS9  UR                  SSSS	9  UR                  SSSS	9  U$ )Nr  r  r#  r  r  r6  r*  r  r  ri  r  r  rz  r  r  r{  r  r|  rZ  rP  s       r   r(  <TestMutuallyExclusiveOptionalsAndPositionalsMixed.get_parserP  s    +8Ch/DHE33X3F3c948D48Dr   )zX A -br~  z-c X AzX Ar  Fra  r  zX -bNTzX -czX A -yzX -y -bzX -yz6        usage: PROG [-h] [-y] [-b] [-c] x [a]
        a   
        positional arguments:
          x           x help
          a           a help

        options:
          -h, --help  show this help message and exit
          -y          y help
          -b          b help
          -c          c help
        r#   rl  r#   r   r   r  r  N  s     -H	SEUcU;<	ddese<=	detse<=	2u=>	B#>?I 
b45ESE:;	deut<=#
5 1Dr   r  c                   6    \ rS rSrS rSrSrSrSrSr	Sr
SrSrg)TestMutuallyExclusiveNestediw  c                 f   [        SS9nUR                  US9nUR                  S5        UR                  S5        [        R                  " 5          [        R
                  " S[        5        UR                  US9nS S S 5        WR                  S5        UR                  S5        [        R                  " 5          [        R
                  " S[        5        UR                  US9nS S S 5        WR                  S	5        UR                  S
5        U$ ! , (       d  f       N= f! , (       d  f       NC= f)Nr  r  ri  r  r  r'  r  r  r  r?  )r   r  r   warningscatch_warningssimplefilterr  )r   r  r<   r   r  group3s         r   r(  &TestMutuallyExclusiveNested.get_parser~  s    +833X3F4 4 $$&!!(,>?777JF ' 	D!D!$$&!!(,>?88(8KF ' 	D!D! '&
 '&s   +D:+D"
D"
D0zO        usage: PROG [-h] [-a A | -b B | [-c C | -d D | [-e E | -f F]]]
        zO        usage: PROG [-h] (-a A | -b B | (-c C | -d D | (-e E | -f F)))
        z
        options:
          -h, --help  show this help message and exit
          -a A
          -b B
          -c C
          -d D
          -e E
          -f F
        Nr#   )r&   r'   r(   r)   r(  r:  rA  rH  r+  r.  r3  r6  r*   r#   r   r   r  r  w  s8    "
D '+#"&'+$#' r   r  c                   z    \ rS rSrSS jrSS/rS\" SSS94S	\" SSS94S
\" SSS94/rS\" SSS94/rSr	Sr
SrSrg)%TestMutuallyExclusiveOptionalOptionali  Nc                 x    [        SS9nUR                  US9nUR                  S5        UR                  SSS9  U$ )Nr  r  ri  r   rZ  r  r  rO  rP  s       r   r(  0TestMutuallyExclusiveOptionalOptional.get_parser  sE    +833X3F7#7#.r   --foo X --bar Yz--foo X --bar--foo Xra  ro  rS  rZ  r$   z;        usage: PROG [-h] (--foo FOO | --bar [BAR])
        z;        usage: PROG [-h] [--foo FOO | --bar [BAR]]
        z{
        options:
          -h, --help   show this help message and exit
          --foo FOO
          --bar [BAR]
        r#   r]   rl  r#   r   r   r  r    s|     	H
 
B3D)*	B4S)*	"4()I 
RDd#$#Dr   r  c                   z    \ rS rSrSS jrSS/rS\" SSS	94S
\" SSS	94S\" SSS	94/rS\" SSS	94/rSr	Sr
SrSrg)(TestMutuallyExclusiveOptionalWithDefaulti  Nc                     [        SS9nUR                  US9nUR                  S5        UR                  S[        SS9  U$ )Nr  r  ri  r   rZ  Tr]  r   r  r   r  rP  s       r   r(  3TestMutuallyExclusiveOptionalWithDefault.get_parser  sG    +833X3F7#7t<r   r  z--foo X --bar=r  ra  Tro  rS  z--bar=Fr$   z9        usage: PROG [-h] (--foo FOO | --bar BAR)
        z9        usage: PROG [-h] [--foo FOO | --bar BAR]
        zx
        options:
          -h, --help  show this help message and exit
          --foo FOO
          --bar BAR
        r#   r]   rl  r#   r   r   r  r    s|     	H
 
B3D)*	B4T*+	2$E*+I 
RDd#$#Dr   r  c                   h    \ rS rSrSS jrS/rS\" SSS94S\" SSS94/rS	\" SSS94/rS
r	Sr
SrSrg)*TestMutuallyExclusivePositionalWithDefaulti  Nc                     [        SS9nUR                  US9nUR                  S5        UR                  SS[        SS9  U$ )	Nr  r  ri  r   ro  r  Trj  r  rP  s       r   r(  5TestMutuallyExclusivePositionalWithDefault.get_parser  sI    +833X3F7#5$Er   rt  r  ra  Tro  r$   z3        usage: PROG [-h] (--foo FOO | bar)
        z3        usage: PROG [-h] [--foo FOO | bar]
        z
        positional arguments:
          bar

        options:
          -h, --help  show this help message and exit
          --foo FOO
        r#   r]   rl  r#   r   r   r  r    sj     	H 
B3D)*	bTt$%I
 
RDd#$#Dr   r  c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )MEPBasei  c                 V   > [         [        U ]  US9n[        UR                  SU/S9nU$ )Nri  F)r  rv  r  )r   r  r(  r   r  )r   r  r   r<   r   s       r   r(  MEPBase.get_parser  s4    w0(0C+uvh@r   r#   r]   )r&   r'   r(   r)   r(  r*   r+   r,   s   @r   r  r    s     r   r  c                       \ rS rSrSrg)&TestMutuallyExclusiveGroupErrorsParenti  r#   Nr  r#   r   r   r  r        r   r  c                       \ rS rSrSrg)!TestMutuallyExclusiveSimpleParenti#  r#   Nr  r#   r   r   r  r  #  r  r   r  c                       \ rS rSrSrg)TestMutuallyExclusiveLongParenti(  r#   Nr  r#   r   r   r  r  (  r  r   r  c                       \ rS rSrSrg)*TestMutuallyExclusiveFirstSuppressedParenti-  r#   Nr  r#   r   r   r  r  -  r  r   r  c                       \ rS rSrSrg))TestMutuallyExclusiveManySuppressedParenti2  r#   Nr  r#   r   r   r  r  2  r  r   r  c                       \ rS rSrSrg)0TestMutuallyExclusiveOptionalAndPositionalParenti7  r#   Nr  r#   r   r   r  r  7  r  r   r  c                       \ rS rSrSrg))TestMutuallyExclusiveOptionalsMixedParenti<  r#   Nr  r#   r   r   r  r  <  r  r   r  c                       \ rS rSrSrg)7TestMutuallyExclusiveOptionalsAndPositionalsMixedParentiA  r#   Nr  r#   r   r   r  r  A  r  r   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestSetDefaultsiI  c                    [        5       nUR                  SS9  UR                  SSS9  U R                  [        SSSS9UR	                  / 5      5        U R                  [        SSSS9UR	                  / [        5       5      5        U R                  [        SSSS9UR	                  / [        SS95      5        U R                  [        SSSS9UR	                  / [        SSS	95      5        g )
Nr2   r"  ro  r  )r  r3  r  rp  r  )r#  r3  r   set_defaultsr  r   rF   r;   s     r   test_set_defaults_no_args)TestSetDefaults.test_set_defaults_no_argsK  s    +-e$eq)eu2**2.	0eu2**2rt4	6eu2**2rE{;	=eu2**2rEQ/?@	Br   c           
         [        5       nUR                  SSS9  UR                  SSS9  U R                  [	        SSS9UR                  / 5      5        U R                  [	        SSS9UR                  / [	        5       5      5        U R                  [	        SSS9UR                  / [	        SS95      5        U R                  [	        S	SS9UR                  S
R                  5       5      5        U R                  [	        S	SS9UR                  S
R                  5       [	        5       5      5        U R                  [	        S	SS9UR                  S
R                  5       [	        SS95      5        g )Nr2   ro  r  r  xfooxr  rp  r"  rl  r  )r   r  r   r  r   rF   r
  r;   s     r   test_set_defaults_with_args+TestSetDefaults.test_set_defaults_with_argsX  s6   +-eu-D'2g/**2.	0g/**2rt4	6eu-**2rE{;	=cU+**6<<>:	<cU+**6<<>24@	BcU+**6<<>2;G	Ir   c                    [        5       nUR                  SS9  UR                  5       nUR                  S5      nUR                  SS9  U R	                  [        SSS9UR                  SR                  5       5      5        g )Nr2   r"  r  ro  r  r  )r   r  r  r  r  r   rF   r
  )r   r<   r!  parser_as       r   test_set_defaults_subparsers,TestSetDefaults.test_set_defaults_subparsersi  su    +-e$**,
((-&eu-**399;7	9r   c                     [        SS9nUR                  SS9  [        U/S9nU R                  [        SS9UR	                  / 5      5        g )NFr  r2   r"  r  r  )r   r   r<   s      r   test_set_defaults_parents)TestSetDefaults.test_set_defaults_parentsr  sH    +U;e$+VH=ef&7&7&;<r   c                     [         R                  " 5       nUR                  5       R                  S5      nUR	                  SS9  UR	                  SS9  U R                  [        SS9UR                  S/5      5        g )Nra  r  r;  r  )r5   r6   r  r  r  r  r   rF   )r   r<   xparsers      r   )test_set_defaults_on_parent_and_subparser9TestSetDefaults.test_set_defaults_on_parent_and_subparserx  sl    ((*'')44S9"#F$5$5se$<=r   c           	         [        5       nUR                  SSSSS9  UR                  S5        UR                  SSS	9  UR                  S
SS9  UR                  SSSS9  U R                  [	        SSSSS9UR                  / 5      5        UR                  SSSSS9  U R                  [	        SSSSS9UR                  / 5      5        g )NWra  r  r  r  r  r  XXr  r  r  r  r3  ZZr  WWYY)r   r  r   r  r   rF   r;   s     r   &test_set_defaults_same_as_add_argument6TestSetDefaults.test_set_defaults_same_as_add_argument  s    +-cSC37D!D$/Cs+CsD9 	cTSD9**2.	0 	dcTS9dcTS9**2.	0r   c           	         [        5       nUR                  SSSSS9  UR                  S5      nUR                  S5        UR                  SS	S
9  UR                  SSS9  UR                  SSSS9  U R	                  [        SS	SSS9UR                  / 5      5        UR                  SSSSS9  U R	                  [        SSSSS9UR                  / 5      5        g )Nr  ra  r  r  r  r2   r  r  r  r  r  r  r  r3  r  r  r  r  )r   r  r   r   r  r   rF   r   s      r   ,test_set_defaults_same_as_add_argument_group<TestSetDefaults.test_set_defaults_same_as_add_argument_group  s    +-cSC37))%04 4.3c*3c48 	cTSD9**2.	0 	dcTS9dcTS9**2.	0r   r#   N)r&   r'   r(   r)   r  r  r  r  r  r  r  r*   r#   r   r   r  r  I  s'    BI"9=>0"0r   r  c                       \ rS rSrS rSrg)TestGetDefaulti  c                    [        5       nU R                  UR                  S5      5        U R                  UR                  S5      5        UR                  S5        U R                  UR                  S5      5        U R                  UR                  S5      5        UR                  S[        SS9  U R                  UR                  S5      5        U R                  SUR                  S5      5        UR                  SS9  U R                  SUR                  S5      5        U R                  SUR                  S5      5        g )	Nr2   ro  r   rZ  r.  r]  r_  r;  )r   rd  get_defaultr   r  r  r  r;   s     r   test_get_defaultTestGetDefault.test_get_default  s   +-&,,U34&,,U34G$&,,U34&,,U34G#r:&,,U34V//67)6#5#5e#<=V//67r   r#   N)r&   r'   r(   r)   r  r*   r#   r   r   r  r    s    8r   r  c                        \ rS rSrS rS rSrg)TestNamespaceContainsSimplei  c                 v    [         R                  " 5       nU R                  SU5        U R                  SU5        g )Nr$   r#  )r5   	NamespaceassertNotInr   nss     r   
test_empty&TestNamespaceContainsSimple.test_empty  s0    !R b!r   c                     [         R                  " SSS9nU R                  SU5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  SU5        g )	Nr  r  r  r$   r#  r  xxr3  )r5   r  r  r  r  s     r   test_non_empty*TestNamespaceContainsSimple.test_non_empty  s`    !q)R c2c2r"b!r   r#   N)r&   r'   r(   r)   r  r  r*   r#   r   r   r  r    s    "
"r   r  c                       \ rS rSrS rSrg)TestHelpFormattingMetaclassi  c                 X    US:X  a  g  " S S[         5      nS H  u  pVU" XU5        M     g )NHelpTestCasec                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
6TestHelpFormattingMetaclass.__init__.<locals>.AddTestsi  c                     X l         X0l        U R                  U R                  U R                  4 H/  nUR
                  < SU< 3nU4S jn XVl        [        XU5        M1     g ! [         a     Nf = f)Nr   c                     U" U 5        g r]   r#   r   s     r   test_wrapperUTestHelpFormattingMetaclass.__init__.<locals>.AddTests.__init__.<locals>.test_wrapper  r   r   )func_suffixstd_nametest_format
test_printtest_print_filer&   r   r   )r   
test_classr  r  r   r   r  s          r   r   ?TestHelpFormattingMetaclass.__init__.<locals>.AddTests.__init__  sw    #.  ("&"2"2"&//"&"6"6"8I ,5+=+={ KI5> (09- J<@"8 % s   A$$
A10A1c                 v   [         R                  " UR                  R                  0 UR                  R                  D6n[        US/ 5       H)  nUR                  " UR                  0 UR                  D6  M+     [        US/ 5      nU HZ  u  pVUR                  " UR                  0 UR                  D6nU H)  nUR                  " UR                  0 UR                  D6  M+     M\     [        US/ 5      nU(       a?  UR                  5       n	U H)  n
U	R                  " U
R                  0 U
R                  D6  M+     U$ )Nr   argument_group_signaturessubparsers_signatures)
r5   r6   r   r   r   r   r   r   r  r  )r   r  r<   argument_sig
group_sigs	group_sigargument_sigsr   subparsers_sigsr!  subparser_sigs              r   r  BTestHelpFormattingMetaclass.__init__.<locals>.AddTests._get_parser  s=   !00,,116--446 %,F4I2$NL''):): ?*6*=*=? %O %V-H"M
0:,I"55y~~ J8A8H8HJE(5**L,=,= B-9-@-@B )6 1; #*&2I2"N"!'!6!6!8J)8"--}/A/A G1>1E1EG *9 r   c                     [        XR                  5      n[        R                  " U5      nS Ul        UR                  X25        g r]   )r   r  rx  ry  r  r  )r   r  parser_textexpected_texts       r   _test<TestHelpFormattingMetaclass.__init__.<locals>.AddTests._test   s5     '0@0@ A ( >!%""=>r   c                     U R                  U5      n[        USU R                  -  5      nU R                  X" 5       5        g )Nz	format_%s)r  r   r  r  )r   r  r<   r  s       r   r  BTestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_format  s9    ))&1 t7G7G)GH

668,r   c                    U R                  U5      n[        USU R                  -  5      n[        [        U R                  5      n[        [        U R                  [        5       5         U" 5         [        [        U R                  5      R                  5       n[        [        U R                  U5        U R                  X5        g ! [        [        U R                  U5        f = fNzprint_%s)	r  r   r  r   r  r   r
   r   r  )r   r  r<   print_
old_streamr  s         r   r  ATestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_print  s    ))&1 d6F6F)FG$S$--8
T]]KM:<H")#t}}"="F"F"HKC
;

6/ C
;s   )/C C"c                     U R                  U5      n[        USU R                  -  5      n[        5       nU" U5        UR	                  5       nU R                  X5        g r  )r  r   r  r
   r   r  )r   r  r<   r  sfiler  s         r   r  FTestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_print_file  sO    ))&1 d6F6F)FG#u#nn.

6/r   )r  r  N)r&   r'   r(   r)   r   r  r  r  r  r  r*   r#   r   r   r  r    s!    A",?-

00r   r  ))usager   )rH  r   )r  )r  rs   r  r  r  r  r  s          r   r   $TestHelpFormattingMetaclass.__init__  s5    >!F	0v F	0R&:!KSx0&:r   r#   Nr   r#   r   r   r  r    s    O1r   r  r  c            	           \ rS rSr\" SSSS9r\" SSSS	S
9\" SSSS9\" SSS9\" SSS9\" SSS9/r/ rSr\S-   r	Sr
Srg)TestHelpBiggerOptionalsi(  r  DESCRIPTIONEPILOGr  r  epilogr  r  r  0.1r  r  r*  X HELPr  --yY HELPr  r2   FOO HELPro  BAR HELPz;        usage: PROG [-h] [-v] [-x] [--y Y] foo bar
        aW  
        DESCRIPTION

        positional arguments:
          foo            FOO HELP
          bar            BAR HELP

        options:
          -h, --help     show this help message and exit
          -v, --version  show program's version number and exit
          -x             X HELP
          --y Y          Y HELP

        EPILOG
            0.1
        r#   Nr&   r'   r(   r)   r   r   r   r  r  rH  r  r*   r#   r   r   r  r  (  s     M"*, 	D+i?DH5E!E
#E
# !#E   D Gr   r  c                       \ rS rSrS r\R                  r\R                  r\R                  rSr	\	S-   r
\R                  rSrg)TestShortColumnsiL  c                 p    U R                  [        R                  " 5       5      nUR                  SS5        g )NrR   r  )rS   r   rT   r  rU   s     r   rW   TestShortColumns.setUpR  s)    	 = = ?@	4 r   z        usage: PROG
               [-h]
               [-v]
               [-x]
               [--y Y]
               foo
               bar
        a  
        DESCRIPTION

        positional arguments:
          foo
            FOO HELP
          bar
            BAR HELP

        options:
          -h, --help
            show this
            help
            message and
            exit
          -v, --version
            show
            program's
            version
            number and
            exit
          -x
            X HELP
          --y Y
            Y HELP

        EPILOG
    r#   N)r&   r'   r(   r)   rW   r  r   r   r  r  rH  r  r*   r#   r   r   r%  r%  L  sR    ! #:"J"J"9"M"M"9"S"SE   D: #:"A"AGr   r%  c            	           \ rS rSr\" SSSS9r\" SSSS	S
9\" SSSS9\" SSS9\" SSS9\" SSS9/r\" SSS9\" SSS9\" SSSS9/4/rSr\S -   r	S!r
S"rg#)$TestHelpBiggerOptionalGroupsi  r  r  r  r  r  r  r  r  r  r  r*  r  r  r  r  r  r2   r   ro  r!  zGROUP TITLEzGROUP DESCRIPTIONr  rp  zBAZ HELPr1  r  zZ HELPr  zN        usage: PROG [-h] [-v] [-x] [--y Y] [-z Z [Z ...]] foo bar baz
        a  
        DESCRIPTION

        positional arguments:
          foo            FOO HELP
          bar            BAR HELP

        options:
          -h, --help     show this help message and exit
          -v, --version  show program's version number and exit
          -x             X HELP
          --y Y          Y HELP

        GROUP TITLE:
          GROUP DESCRIPTION

          baz            BAZ HELP
          -z Z [Z ...]   Z HELP

        EPILOG
    r"  r#   Nr#  r#   r   r   r)  r)    s     M"*, 	D+i?DH5E!E
#E
# 
](;	<J'Ch/?1 	2!
E   D,Gr   r)  c                   n    \ rS rSr\" SSS9r\" SSSS9\" S	S
S9\" SSS9\" SSS9/r/ rSr\S-   r	Sr
Srg)TestHelpBiggerPositionalsi  USAGEr  r  r  r  r*  r  r  r  r  r  ekiekiekifekangzEKI HELPro  r!          usage: USAGE
        a  
        DESCRIPTION

        positional arguments:
          ekiekiekifekang  EKI HELP
          bar              BAR HELP

        options:
          -h, --help       show this help message and exit
          -x               X HELP
          --y Y            Y HELP
        r$   r#   Nr#  r#   r   r   r+  r+    sk     mDDH5E!J/E
#	 !#E   D Gr   r+  c                   v    \ rS rSr\" SSS9r\" SSSS9\" S	S
SS9/r\" SSS9\" SSSS9/4/rSr\S-   r	Sr
Srg)TestHelpReformattingi  r  ze   oddly    formatted
description

that is so long that it should go onto multiple lines when wrappedr  r  r  zoddly
    formatted -x helpr  rH  r  r2  znormal y helpr  z'
    oddly formatted group

descriptionr  r  r*  z` oddly 
formatted    -a  help  
    again, so long that it should be wrapped over multiple linesr  2        usage: PROG [-h] [-x XX] [-a] yyy
        a  
        oddly formatted description that is so long that it should go onto multiple
        lines when wrapped

        positional arguments:
          yyy         normal y help

        options:
          -h, --help  show this help message and exit
          -x XX       oddly formatted -x help

        title:
          oddly formatted group description

          -a          oddly formatted -a help again, so long that it should be wrapped
                      over multiple lines
        r$   r#   Nr#  r#   r   r   r1  r1    s     )* 	D$ &= 	>C_5 
W #0 
1 d<$% 
&		'
!E   D( Gr   r1  c                   x    \ rS rSr\" SSS9r\" SSSS9\" S	S
SS9/r\" S5      \" SSSS9/4/rSr\S-   r	Sr
Srg)TestHelpWrappingShortNamesi  r  zZD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
Dr  r  r  zxXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXr2  r  r2  dYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHALPHASr  r*  zPAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAr  r3  a  
        D DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD
        DD DD DD DD D

        positional arguments:
          yyy         YH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH
                      YHYH YHYH YHYH YHYH YHYH YHYH YHYH YH

        options:
          -h, --help  show this help message and exit
          -x XX       XHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH
                      HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HX

        ALPHAS:
          -a          AHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH
                      HHAAHHH HHAAHHH HHA
        r$   r#   Nr#  r#   r   r   r5  r5    sy     [AD$]3C\2
 
X\@B 	C!E   D, Gr   r5  c                       \ rS rSr\" SSS9r\" SSSSS	9\" S
SSS9\" SSSS9/r\" S5      \" SSSS9\" SSSS9/4/rSr\S-   r	Sr
Srg)TestHelpWrappingLongNamesi,  r,  zZD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD Dr-  r  r  r  zZV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV Vr  r  XXXXXXXXXXXXXXXXXXXXXXXXXzdXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHr2  r  yyyyyyyyyyyyyyyyyyyyyyyyyr6  r7  r  AAAAAAAAAAAAAAAAAAAAAAAAAzdAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHr3  zzzzzzzzzzzzzzzzzzzzzzzzzzdZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHr/  ag  
        D DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD
        DD DD DD DD D

        positional arguments:
          yyyyyyyyyyyyyyyyyyyyyyyyy
                                YH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH
                                YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YH

        options:
          -h, --help            show this help message and exit
          -v, --version         show program's version number and exit
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
                                XH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH
                                XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XH

        ALPHAS:
          -a AAAAAAAAAAAAAAAAAAAAAAAAA
                                AH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH
                                AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AH
          zzzzzzzzzzzzzzzzzzzzzzzzz
                                ZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH
                                ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZH
        zs        V VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV VV
        VV VV VV VV V
        r#   Nr#  r#   r   r   r9  r9  ,  s     zBD+iDD(6C5 
Xh\:XL9; 	<!
E   D<Gr   r9  c                   j   \ rS rSr\" SS9r\" SSSS9\" SS	S
S9\" SSS9\" SSSS9\" SSSS9\" SS\R                  S9\" SSS\R                  S9\" SSS\R                  S9\" S\R                  \R                  SS9/	r	\" S 5      \" S!SS"S9\" S#S$S%S9\" S&S&S	S9\" S'S'SS9/4/r
S(r\S)-   rS*rS+rg,)-TestHelpUsageib  r  r  r  r  rw   r  r  r  r#  r  r  r  r  )rH  r  r  r  r   zWhether to foorH  r,  rZ  zWhether to barT)rH  r  r,  r?  z--foobarz--barfoor+  z--bazzzBazz!)r,  r  rH  r   r6  r  r1  r  r3  r  r   a/          usage: PROG [-h] [-w W [W ...]] [-x [X ...]] [--foo | --no-foo]
                    [--bar | --no-bar]
                    [-f | --foobar | --no-foobar | --barfoo | --no-barfoo]
                    [--bazz | --no-bazz] [-y [Y]] [-z Z Z Z]
                    a b b [c] [d ...] e [e ...]
        az  
        positional arguments:
          a                     a
          b                     b
          c                     c

        options:
          -h, --help            show this help message and exit
          -w W [W ...]          w
          -x [X ...]            x
          --foo, --no-foo       Whether to foo
          --bar, --no-bar       Whether to bar
          -f, --foobar, --no-foobar, --barfoo, --no-barfoo
          --bazz, --no-bazz     Bazz!

        group:
          -y [Y]                y
          -z Z Z Z              z
          d                     d
          e                     e
        r$   r#   N)r&   r'   r(   r)   r   r   r5   r  r  r   r  r  rH  r  r*   r#   r   r   r?  r?  b  s    'D#&D#&CcCc#Cc%G*83Q3QRG*D$::	<D*j1O1OPHX;;&//g	? 
WCc*AC(#S)#S)	
 	!E   D, Gr   r?  c                   P    \ rS rSr\" SS9r\" SSS9\" SSS	S9/rS
r\S-   rSr	Sr
g)TestHelpUsageWithParenthesesi  r  r  
positionalz(example) positionalr  r8  z
--optionalz{1 (option A), 2 (option B)}zX        usage: PROG [-h] [-p {1 (option A), 2 (option B)}] (example) positional
        z
        positional arguments:
          (example) positional

        options:
          -h, --help            show this help message and exit
          -p, --optional {1 (option A), 2 (option B)}
        r$   r#   Nr&   r'   r(   r)   r   r   r   r  rH  r  r*   r#   r   r   rB  rB    sL    'L"89D,(FG
E   D Gr   rB  c                       \ rS rSr\" SSS9r/ r\" S5      \" SSS9\" S	S	S9/4\" S
5      \" SSS9\" SSS9/4/rSr\S-   r	Sr
Srg)TestHelpOnlyUserGroupsi  r  Fr  rv  xxxxr  r#  r  r  yyyyr  r6  r  z.        usage: PROG [-x X] [-y Y] a b
        zn
        xxxx:
          -x X  x
          a     a

        yyyy:
          b     b
          -y Y  y
        r$   r#   Nr#  r#   r   r   rG  rG    s     7	V3#
 	 
V#3
 		!E  	 	D Gr   rG  c                   n    \ rS rSr\" SS9r\" SSS9\" SSS9\" S	5      \" S
5      /r/ rSr\S-   r	Sr
Srg)TestHelpUsageLongProgi  <PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPr  r  r  rD  r  ra  r  r  zz        usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
               [-h] [-w W] [-x X] a b
        z
        positional arguments:
          a
          b

        options:
          -h, --help  show this help message and exit
          -w W
          -x X
        r$   r#   Nr#  r#   r   r   rL  rL    s`     )D#D#CC	 !#E  
 
D Gr   rL  c                       \ rS rSr\" SS9r\" SSS9\" SSS9\" S	S
S9\" SSS9\" S5      \" S5      /r/ rSr\S-   r	Sr
Srg) TestHelpUsageLongProgOptionsWrapi  rM  r  r  WWWWWWWWWWWWWWWWWWWWWWWWWrD  r  r:  r6  YYYYYYYYYYYYYYYYYYYYYYYYYr1  ZZZZZZZZZZZZZZZZZZZZZZZZZr  r  a          usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
               [-h] [-w WWWWWWWWWWWWWWWWWWWWWWWWW] [-x XXXXXXXXXXXXXXXXXXXXXXXXX]
               [-y YYYYYYYYYYYYYYYYYYYYYYYYY] [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
               a b
        a-  
        positional arguments:
          a
          b

        options:
          -h, --help            show this help message and exit
          -w WWWWWWWWWWWWWWWWWWWWWWWWW
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        r$   r#   Nr#  r#   r   r   rO  rO    st     )D(#D(#D(#D(#CC !#E   D Gr   rO  c                   f    \ rS rSr\" SSS9r\" S5      \" S5      \" S5      /r/ rSr\S	-   r	S
r
Srg)$TestHelpUsageLongProgPositionalsWrapi  rM  FrH  aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccz        usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
               aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
               ccccccccccccccccccccccccc
        
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc
        r$   r#   Nr#  r#   r   r   rT  rT    sU     59HHH
 !#E
   D Gr   rT  c            	           \ rS rSr\" SS9r\" SSS9\" SSS9\" S	S
S9\" SSS9\" S5      \" S5      \" S5      /r/ rSr\S-   r	Sr
Srg)TestHelpUsageOptionalsWrapi*  r  r  r  rP  rD  r  r:  r6  rQ  r1  rR  r  r  r  z        usage: PROG [-h] [-w WWWWWWWWWWWWWWWWWWWWWWWWW] [-x XXXXXXXXXXXXXXXXXXXXXXXXX]
                    [-y YYYYYYYYYYYYYYYYYYYYYYYYY] [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
                    a b c
        a9  
        positional arguments:
          a
          b
          c

        options:
          -h, --help            show this help message and exit
          -w WWWWWWWWWWWWWWWWWWWWWWWWW
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        r$   r#   Nr#  r#   r   r   rZ  rZ  *  s{     'D(#D(#D(#D(#CCC !#E   D Gr   rZ  c                       \ rS rSr\" SS9r\" S5      \" S5      \" S5      \" S5      \" S5      \" S	5      /r/ rS
r\S-   r	Sr
Srg)TestHelpUsagePositionalsWrapiP  r  r  r  r6  r1  rU  rV  rW  z        usage: PROG [-h] [-x X] [-y Y] [-z Z]
                    aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        a  
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc

        options:
          -h, --help            show this help message and exit
          -x X
          -y Y
          -z Z
        r$   r#   Nr#  r#   r   r   r\  r\  P  sh     'D	D	D	HHH !#E
   D Gr   r\  c                       \ rS rSr\" SS9r\" SSS9\" SSS9\" S	S
S9\" S5      \" S5      \" S5      /r/ rSr\S-   r	Sr
Srg)%TestHelpUsageOptionalsPositionalsWrapir  r  r  r  r:  rD  r6  rQ  r1  rR  rU  rV  rW  a          usage: PROG [-h] [-x XXXXXXXXXXXXXXXXXXXXXXXXX] [-y YYYYYYYYYYYYYYYYYYYYYYYYY]
                    [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
                    aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        aZ  
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc

        options:
          -h, --help            show this help message and exit
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        r$   r#   Nr#  r#   r   r   r^  r^  r  sq     'D(#D(#D(#HHH !#E   D Gr   r^  c                   ^    \ rS rSr\" SS9r\" SSS9\" SSS9\" S	S
S9/r/ rSr\S-   r	Sr
Srg)TestHelpUsageOptionalsOnlyWrapi  r  r  r  r:  rD  r6  rQ  r1  rR  z        usage: PROG [-h] [-x XXXXXXXXXXXXXXXXXXXXXXXXX] [-y YYYYYYYYYYYYYYYYYYYYYYYYY]
                    [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
        z
        options:
          -h, --help            show this help message and exit
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        r$   r#   Nr#  r#   r   r   r`  r`    s\     'D(#D(#D(#
 !#E
   D Gr   r`  c                   f    \ rS rSr\" SSS9r\" S5      \" S5      \" S5      /r/ rSr\S	-   r	S
r
Srg) TestHelpUsagePositionalsOnlyWrapi  r  FrH  rU  rV  rW  z~        usage: PROG aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        rX  r$   r#   Nr#  r#   r   r   rb  rb    sU     7HHH
 !#E   D Gr   rb  c                      \ rS rSr\" SS9r\" SSSS9\" SS	S
S9\" SSSS9\" SSSS9\" SSSS9\" SSSS9\" SSSS9\" SSSS9\" SSSS9\" S S!S"S9\" S#S$S%S9\" S&S'S(S9\" S)S*S+S9\" S,S-S.S9\" S/S0S1S9\" S2S3S4S9/rS5r\S6-   rS7r	S8r
g9):&TestHelpUsageMetavarsSpacesParenthesesi  r  r  z-n1z()n1r2  z-o1z(1, 2)o1z-u1z (uu) u1z-v1z( vv )v1z-w1z(w)ww1z-x1zx(x)x1z-y1zyy)y1z-z1z(zzz1z-n2z[]n2z-o2z[1, 2]o2z-u2z [uu] u2z-v2z[ vv ]v2z-w2z[w]ww2z-x2zx[x]x2z-y2zyy]y2z-z2z[zzz2z        usage: PROG [-h] [-n1 ()] [-o1 (1, 2)] [-u1  (uu) ] [-v1 ( vv )] [-w1 (w)w]
                    [-x1 x(x)] [-y1 yy)] [-z1 (zz] [-n2 []] [-o2 [1, 2]] [-u2  [uu] ]
                    [-v2 [ vv ]] [-w2 [w]w] [-x2 x[x]] [-y2 yy]] [-z2 [zz]
        a  
        options:
          -h, --help  show this help message and exit
          -n1 ()      n1
          -o1 (1, 2)  o1
          -u1  (uu)   u1
          -v1 ( vv )  v1
          -w1 (w)w    w1
          -x1 x(x)    x1
          -y1 yy)     y1
          -z1 (zz     z1
          -n2 []      n2
          -o2 [1, 2]  o2
          -u2  [uu]   u2
          -v2 [ vv ]  v2
          -w2 [w]w    w2
          -x2 x[x]    x2
          -y2 yy]     y2
          -z2 [zz     z2
        r$   r#   NrE  r#   r   r   rd  rd    s     'E4d+E8$/E8$/E8$/E6-E6-E5t,E5t,E4d+E8$/E8$/E8$/E6-E6-E5t,E5t,!&E
   D* Gr   rd  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestHelpUsageNoWhitespaceCrashi  c                    [         R                  " SS9nUR                  5       nUR                  S[         R                  S9  UR                  S5        [
        R                  " S5      nU R                  UR                  5       U5        g )Nr  r  rh  r  z--eggs-eggs-eggs-eggs-eggs-eggszu        usage: PROG [-h]
                    [--eggs-eggs-eggs-eggs-eggs-eggs EGGS_EGGS_EGGS_EGGS_EGGS_EGGS]
        )	r5   r6   r  r   r  rx  ry  r  rI  r   r<   mutexr  s       r   .test_all_suppressed_mutex_followed_by_long_argMTestHelpUsageNoWhitespaceCrash.test_all_suppressed_mutex_followed_by_long_arg  sx     ((f53358(*;*;<=> !  	,,.6r   c                 
   / SQn[         R                  " S5      nUR                  SSSSS9  UR                  SS	S
SR                  U5      S9  [        R
                  " S5      nU R                  UR                  5       U5        g )N)12345612345r~  12311111111111111r  r  zverbose moder*  r@  targetszinstallation targetsr  r%   rH  r  r  z        usage: 11111111111111 [-h] [-v]
                              123456
        12345
        12345
        123 [123456
        12345
        12345
        123 ...]
        )r5   r6   r   rk   rx  ry  r  rI  )r   mappingr<   r  s       r   test_newline_in_metavar6TestHelpUsageNoWhitespaceCrash.test_newline_in_metavar  s    5(()9:D+!/ 	 	FI!7"%$(IIg$6 	 	8  	! 	 	,,.6r   c                     [         R                  " SS9nUR                  SSSS9  UR                  SSS	9  S
nU R                  UR	                  5       U5        g )Nr  r  z--nilr$   T)r  r  z--aFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArD  zqusage: PROG [-h] --nil 
            [--a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]
)r5   r6   r   r  rI  )r   r<   r  s      r   test_empty_metavar_required_arg>TestHelpUsageNoWhitespaceCrash.test_empty_metavar_required_arg!  s_    ((f5GR$?E84) 	
 	,,.6r   c                    [         R                  " SS9nUR                  5       nUR                  SSSS[         R                  S9  UR                  SSSS[         R                  S9  S	nU R                  UR                  5       U5        g )
Nr  r  z--param1r  r  NAME)r  r0  r  rH  z--param2zusage: PROG [-h]
)r5   r6   r  r   r  r  rI  rx  s       r   -test_all_suppressed_mutex_with_optional_nargsLTestHelpUsageNoWhitespaceCrash.test_all_suppressed_mutex_with_optional_nargs-  s    ((f5335YX=N=N 	 	P 	YX=N=N 	 	P %,,.6r   c                 R   [         R                  " SS9nUR                  5       nUR                  S5        [        R
                  " 5          [        R                  " S[        5        UR                  5       nS S S 5        WR                  S5        UR                  S[         R                  S9  UR                  S5        UR                  S	5        UR                  S
5        [        R                  " S5      nU R                  UR                  5       U5        g ! , (       d  f       N= f)Nr  r  rh  r'  z--haxz--hoxr  z--hexr  z--numzw        usage: PROG [-h] [--spam SPAM | [--hax HAX | --hex HEX] | --eggs EGGS]
                    [--num NUM]
        )r5   r6   r  r   r  r  r  r  r  rx  ry  r  rI  )r   r<   r  ggr  s        r   test_nested_mutex_groups7TestHelpUsageNoWhitespaceCrash.test_nested_mutex_groups:  s    ((f5//1	x $$&!!(,>?//1B ' 	 
h&7&78
 	x G$ !  	,,.6 '&s   ,D
D&c                    [         R                  " SS9nUR                  5       nUR                  SSSS9  UR                  SSS	S9  UR                  S
S	S9  UR                  SSSS9  UR                  SSS9  UR                  SSS9  UR                  SSSS9  [        R
                  " S5      nU R                  UR                  5       U5        g )Nr  r  z--op1METr  )r  r  z--op2)MET1MET2r  z--op3r  z--op4r  z--op5z--op6r  z--op7)r  r  MET3z        usage: PROG [-h] [--op1 [MET] | --op2 [MET1 [MET2 ...]] | --op3 [OP3 ...] |
                    --op4 MET1 [MET2 ...] | --op5 OP5 [OP5 ...] | --op6 OP6 OP6 OP6 |
                    --op7 MET1 MET2 MET3]
        )r5   r6   r  r   rx  ry  r  rI  )r   r<   r  r  s       r   test_long_mutex_groups_wrap:TestHelpUsageNoWhitespaceCrash.test_long_mutex_groups_wrapM  s    ((f5//1	wS9	w(8D	wc*	w(8D	wc*	wa(	w(@J ! 
 	,,.6r   r#   N)r&   r'   r(   r)   rz  r  r  r  r  r  r*   r#   r   r   rv  rv    s     77,
777&7r   rv  c                       \ rS rSr\" SS9r\" S\SS9\" SSS	S
SS9\" S/ SQSS9\" SSSS/SSS9\" SSS9\" SSSS9/r\" S5      \" S S!S9\" S"S#S$S9/4/rS%r	\	S&-   r
S'rS(rg))*TestHelpVariableExpansioni`  r  r  r  z"x %(prog)s %(default)s %(type)s %%r
  r6  r-  r.  XXXz y %(prog)s %(default)s %(const)s)r,  r  r0  rH  r   r  z$foo %(prog)s %(default)s %(choices)srG  rZ  rp  r  r  BBBz!bar %(prog)s %(default)s %(dest)s)r  r  r  rH  r  zspam %(prog)s %(default)sr  r_  r  zbadger %(prog)s %(default)s)r  rH  r   r  za %(prog)s %(default)sr  r  zb %(prog)s %(default)szw        usage: PROG [-h] [-x X] [-y] [--foo {a,b,c}] [--bar BBB] [-a A] [-b B]
                    spam badger
        a  
        positional arguments:
          spam           spam PROG None
          badger         badger PROG 0.5

        options:
          -h, --help     show this help message and exit
          -x X           x PROG None int %
          -y             y PROG 42 XXX
          --foo {a,b,c}  foo PROG None a, b, c
          --bar BBB      bar PROG baz bar

        group:
          -a A           a PROG None
          -b B           b PROG -1
        r$   r#   N)r&   r'   r(   r)   r   r   r  r   r  r  rH  r  r*   r#   r   r   r  r  `  s     'Ds5	7D%3	5G_7	9GUQFE4	6F45Hc(EF 
W34b'?@
 	!E   D" Gr   r  c                   <    \ rS rSr\" SSS9r/ r/ rSr\S-   r	Sr
Srg	)
&TestHelpVariableExpansionUsageSuppliedi  r  z%(prog)s FOOr  r  z         usage: PROG FOO
        rk  r$   r#   Nr#  r#   r   r   r  r    s<     n= "E   D
 Gr   r  c                   6    \ rS rSr\" SSS9r/ r/ rSr\r	Sr
Srg)	$TestHelpVariableExpansionNoArgumentsi  r  FrH  z        usage: PROG
        r$   r#   Nr#  r#   r   r   r  r    s0     7 "E DGr   r  c                   b    \ rS rSr\" S\R                  S9r\" SSS9\" SSS9/r/ r	S	r
S
rS
rSrg)TestHelpSuppressUsagei  r  r  r   r  r  r  	spam helpz        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        r$   r#   N)r&   r'   r(   r)   r   r5   r  r   r   r  rH  r  r  r*   r#   r   r   r  r    sN     h.?.?@G*%F% !#D EGr   r  c                   h    \ rS rSr\" SSS9r\" S\R                  S9\" SSS9/r/ r	S	r
\
S
-   rSrSrg)TestHelpSuppressOptionali  r  FrH  r   r  r  r  z!        usage: PROG spam
        zA
        positional arguments:
          spam  spam help
        r$   r#   Nr&   r'   r(   r)   r   r   r5   r  r   r  r  rH  r  r*   r#   r   r   r  r    sZ     7G(++,F% !#E   D
 Gr   r  c                       \ rS rSr\" SS9r\" SSS9\" SSS9/r\" S	5      \" S
\R                  S9/4/r	Sr
\
S-   rSrSrg)TestHelpSuppressOptionalGroupi  r  r  r   r  r  r  r  r   rZ  2        usage: PROG [-h] [--foo FOO] spam
        
        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        r$   r#   N)r&   r'   r(   r)   r   r   r   r5   r  r  r  rH  r  r*   r#   r   r   r  r    sp     'G*%F%
 
WG(*;*;<=>!E   D Gr   r  c                   f    \ rS rSr\" SS9r\" SSS9\" S\R                  S9/r/ r	Sr
\
S	-   rS
rSrg)TestHelpSuppressPositionali  r  r  r   r  r  r  z-        usage: PROG [-h] [--foo FOO]
        o
        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        r$   r#   Nr  r#   r   r   r  r    sX     'G*%F**+ !#E   D Gr   r  c                   H    \ rS rSr\" SS9r\" SSSS9/r/ rSr\S	-   r	S
r
Srg)TestHelpRequiredOptionali  r  r  r   Tr  )r  rH  z+        usage: PROG [-h] --foo FOO
        r  r$   r#   Nr#  r#   r   r   r  r    sJ     'Gd4 !#E   D Gr   r  c                   Z    \ rS rSr\" SSSS9r\" SSSS	9\" S
SSS9/r/ rSr\S-   r	Sr
Srg)TestHelpAlternatePrefixCharsi  r  z^;F)r  ru  rv  z^^foor*  r  r  z;bz;;barr	  r  z-        usage: PROG [^^foo] [;b BAR]
        z^
        options:
          ^^foo          foo help
          ;b, ;;bar BAR  bar help
        r$   r#   Nr#  r#   r   r   r  r    sZ     TEJGLz:D'
+ !#E   D Gr   r  c                   T    \ rS rSr\" SSS9r\" SSS9\" SS	S9/r/ rS
r\S-   r	Sr
Srg)TestHelpNoHelpOptionali-  r  FrH  r   r  r  r  r  z-        usage: PROG [--foo FOO] spam
        zv
        positional arguments:
          spam       spam help

        options:
          --foo FOO  foo help
        r$   r#   Nr#  r#   r   r   r  r  -  sT     7G*%F% !#E   D Gr   r  c                   V    \ rS rSr\" SS9r\" S5      \" S5      /r/ rSr\S-   r	Sr
S	rg
)TestHelpNoneiD  r  r  r   r  r  z
        positional arguments:
          spam

        options:
          -h, --help  show this help message and exit
          --foo FOO
        r$   r#   Nr#  r#   r   r   r  r  D  sL     'GF !#E   D Gr   r  c            
       z    \ rS rSr\" SS9r\" SSSSS9\" S	S
SSS9\" SSSSS9\" SSSSS9/r/ rSr\S-   r	Sr
Srg)TestHelpTupleMetavarOptionali\  r  r  r  rw   r  W1W2r  r  r#  r  X1X2r6  r  r  Y1Y2Y3r1  r3  r  Z1z]        usage: PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]]
        z
        options:
          -h, --help        show this help message and exit
          -w W1 [W2 ...]    w
          -x [X1 [X2 ...]]  x
          -y Y1 Y2 Y3       y
          -z [Z1]           z
        r$   r#   Nr#  r#   r   r   r  r  \  sw     'Ds#|<Ds#|<Ds!-?@Ds#x8	 !#E   D Gr   r  c            
       z    \ rS rSr\" SS9r\" SSSSS9\" S	S
SSS9\" SSSSS9\" SSSSS9/r/ rSr\S-   r	Sr
Srg)TestHelpTupleMetavarPositionaliw  r  r  rw   r  r  r  r  r#  r  r  r  r  r  r  r  r3  r  r  r  zI        usage: PROG [-h] W1 [W2 ...] [X1 [X2 ...]] Y1 Y2 Y3 [Z1]
        z
        positional arguments:
          W1 W2       w help
          X1 X2       x help
          Y1 Y2 Y3    y help
          Z1          z help

        options:
          -h, --help  show this help message and exit
        r$   r#   Nr#  r#   r   r   r  r  w  sw     'Chc<@Chc<@Cha1CDChc7;	 !#E  
 
D Gr   r  c                       \ rS rSr\" S\R                  SS9r\" SSS9\" SS	S9/r\" S
SS9\" SSS9/4/r	Sr
\
S-   rSrSrg)TestHelpRawTexti  r  7Keep the formatting
    exactly as it is written

here
r  formatter_classr  r   z-    foo help should also
appear as given herer  r  r  r  ?    This text
  should be indented
    exactly like it is here
r  rZ  r	  >        usage: PROG [-h] [--foo FOO] [--bar BAR] spam
        a  
        Keep the formatting
            exactly as it is written

        here

        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO       foo help should also
                      appear as given here

        title:
              This text
            should be indented
              exactly like it is here

          --bar BAR   bar help
        r$   r#   N)r&   r'   r(   r)   r   r5   RawTextHelpFormatterr   r   r  r  rH  r  r*   r#   r   r   r  r    s     X%B%B 	G 1 	2F% 
W #B 
C gJ
'	(	*!E   D, Gr   r  c                       \ rS rSr\" S\R                  SS9r\" SSS9\" SS	S9/r\" S
SS9\" SSS9/4/r	Sr
\
S-   rSrSrg)TestHelpRawDescriptioni  r  r  r  r   z4  foo help should not
    retain this odd formattingr  r  r  r  r  r  rZ  r	  r  a  
        Keep the formatting
            exactly as it is written

        here

        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help should not retain this odd formatting

        title:
              This text
            should be indented
              exactly like it is here

          --bar BAR   bar help
        r$   r#   N)r&   r'   r(   r)   r   r5   RawDescriptionHelpFormatterr   r   r  r  rH  r  r*   r#   r   r   r  r    s     X%I%I 	G ; 	<F% 
W #B 
C gJ
'	(	*!E   D* Gr   r  c                      \ rS rSr\" S\R                  SS9r\" SSS9\" SS	S
S9\" S\R                  SSS9\" S\R                  S\R                  S9\" SSSS9\" SSS9\" SSSSS9/r
\" SSS9\" S\SS S!9/4/rS"r\S#-   rS$rS%rg&)'TestHelpArgumentDefaultsi  r  r  r  r   z)foo help - oh and by the way, %(default)sr  rZ  r*  r	  r  z--tazzWhether to taz itT)r,  rH  r  z--corgezWhether to corge itr  zSet the quuxr.  )rH  r  r  r  r_  r  woodenzbadger helpr  r  rH  r  r  r  rN  )r   r  rH  z        usage: PROG [-h] [--foo FOO] [--bar] [--taz | --no-taz] [--corge | --no-corge]
                    [--quux QUUX] [--baz BAZ]
                    spam [badger]
        ay  
        description

        positional arguments:
          spam                 spam help
          badger               badger help (default: wooden)

        options:
          -h, --help           show this help message and exit
          --foo FOO            foo help - oh and by the way, None
          --bar                bar help (default: False)
          --taz, --no-taz      Whether to taz it (default: True)
          --corge, --no-corge  Whether to corge it
          --quux QUUX          Set the quux (default: 42)

        title:
          description

          --baz BAZ            baz help (default: 42)
        r$   r#   N)r&   r'   r(   r)   r   r5   ArgumentDefaultsHelpFormatterr   r  r  r   r  r  r  rH  r  r*   r#   r   r   r  r    s     X%K%K!#
 	GEFGLz:GH::$d	4Ih<<&0A0A	CH>26F%HCF
 
W-	0
gC*
=	>	@!E
   D* Gr   r  c                   L    \ rS rSr\" SSS9r\" SSSSS	9/r/ rS
r\S-   r	Sr
Srg)TestHelpVersionActioni&  r  r  r  -Vr  r  z3.6r  z&        usage: PROG [-h] [-V]
        z
        description

        options:
          -h, --help     show this help message and exit
          -V, --version  show program's version number and exit
        r$   r#   Nr#  r#   r   r   r  r  &  sJ     MBt[ERS "E   D Gr   r  c                   t    \ rS rSr\" SS9r\" SSSS\R                  S9\" S	S
S9\" SSS9/r/ r	Sr
\
S-   rSrg)TestHelpVersionActionSuppressi:  r  r  r  r  r  r  )r,  r  rH  r   r  r  r  r  r  r  r#   N)r&   r'   r(   r)   r   r   r5   r  r   r  r  rH  r*   r#   r   r   r  r  :  sd     'D+i""	$G*%F%	 !#E   Dr   r  c            	           \ rS rSr\" SSS9r\" SSSSS	9/rS
 V VVs/ s H  n[	        US9PM     snnn rSr\S-   r	Sr
Srgs  snnn f )TestHelpSubparsersOrderingiS  r  display some subcommandsr  r  r  r  r  r  )r  r  r  r  r   rA  6        usage: PROG [-h] [-v] {a,b,c,d,e} ...
        z
        display some subcommands

        positional arguments:
          {a,b,c,d,e}

        options:
          -h, --help     show this help message and exit
          -v, --version  show program's version number and exit
        r"  r#   N)r&   r'   r(   r)   r   r   r   r  r  rH  r  r*   ).0rs   r   s   000r   r  r  S  ss    'ACt[ERS *CD)B !d^)BDE  
 
DG'Ds   Ar  c                       \ rS rSr\" SSS9r\" SSSSS	9/rS
r\ V VVVs/ s H  u  p[	        XS9PM     snnnn rSr	\	S-   r
SrSrgs  snnnn f )"TestHelpSubparsersWithHelpOrderingip  r  r  r  r  r  r  r  r  ))r  za subcommand help)r  zb subcommand help)r  zc subcommand help)r  zd subcommand help)r   ze subcommand help)rs   rH  r  a  
        display some subcommands

        positional arguments:
          {a,b,c,d,e}
            a            a subcommand help
            b            b subcommand help
            c            c subcommand help
            d            d subcommand help
            e            e subcommand help

        options:
          -h, --help     show this help message and exit
          -v, --version  show program's version number and exit
        r"  r#   N)r&   r'   r(   r)   r   r   r   subcommand_datar  r  rH  r  r*   )r  rs   rH  r   s   0000r   r  r  p  s|    'ACt[ERSO 0?@/> !d6/>@E   D"G1@s   A
r  c                   ~    \ rS rSrS r\" SS\R                  S9r\" S\	S9\" S\S9\" S	\
S
S9/r/ rSr\S-   rSrSrg)TestHelpMetavarTypeFormatteri  c                     U $ r]   r#   r  s    r   custom_type(TestHelpMetavarTypeFormatter.custom_type  s    r   r  r  )r  r  r  r  r  r  r  z
SOME FLOAT)r   r  zF        usage: PROG [-h] [-b custom_type] [-c SOME FLOAT] int
        z
        description

        positional arguments:
          int

        options:
          -h, --help      show this help message and exit
          -b custom_type
          -c SOME FLOAT
        r$   r#   N)r&   r'   r(   r)   r  r   r5   MetavarTypeHelpFormatterr   r  r  r   r  r  rH  r  r*   r#   r   r   r  r    sr     M+3+L+LNs-t+6t%FH !#E   D Gr   r  c                       \ rS rSrSrS rSrg)!TestHelpUsageLongSubparserCommandi  Nc                 "   S n[         R                  " SUS9nUR                  SSSS9nUR                  SS	S
9  UR                  SSS
9  UR                  SSS
9  UR	                  5       nU R                  U[        R                  " S5      5        g )Nc                 ,    [         R                  " U SS9$ )N2   )max_help_position)r5   r  r  s    r   custom_formatterLTestHelpUsageLongSubparserCommand.test_parent_help.<locals>.custom_formatter  s    00LLr   r  )r  r  r  CMDzcommand to use)r  r  rH  rj  zadd somethingr  removezremove somethingza-very-long-commandzcommand that does somethinga}              usage: PROG [-h] CMD ...

            options:
              -h, --help             show this help message and exit

            commands:
              CMD                    command to use
                add                  add something
                remove               remove something
                a-very-long-command  command that does something
        )r5   r6   r  r  rJ  r  rx  ry  )r   r  parent_parsercmd_subparsersr  s        r   r  2TestHelpUsageLongSubparserCommand.test_parent_help  s    	M !// 0

 '55J>C;K 6 M 	!!%'6 	" 	8 	!!('9 	" 	; 	!!"7'D 	" 	F $//1hoo 7 ' 	r   r#   )r&   r'   r(   r)   r  r  r*   r#   r   r   r  r    s    G!r   r  c                       \ rS rSrSS.S jrSS.S jrS rS rS rS	 r	S
 r
S rS rS rS rS rS rS rS rS rS rSrg)TestInvalidArgumentConstructorsi  N)errmsgc                x    [         R                  " 5       nU R                  " [        XR                  /UQ70 UD6  g r]   )r5   r6   rQ  r   r   r   r  r   r   r<   s        r   assertTypeError/TestInvalidArgumentConstructors.assertTypeError  s8    ((*y&2E2E 	0 $	0(.	0r   c                x    [         R                  " 5       nU R                  " [        XR                  /UQ70 UD6  g r]   )r5   r6   rQ  r  r   r  s        r   assertValueError0TestInvalidArgumentConstructors.assertValueError  s8    ((*z63F3F 	0 $	0(.	0r   c                     U R                  SS S9  U R                  SSS9  U R                  SSS9  U R                  S0 S9  g )	Nr  )ro  r6  r2   )callbackr#   )callback_args)callback_kwargsr  r!   s    r   test_invalid_keyword_arguments>TestInvalidArgumentConstructors.test_invalid_keyword_arguments  sN    Tt,TE2T4T26r   c                     U R                  5         S H*  nU R                  US9   U R                  US9  S S S 5        M,     g ! , (       d  f       M>  = f)Nr  r  r  r+  )r  rG   r   r,  s     r   test_missing_destination8TestInvalidArgumentConstructors.test_missing_destination  sF    3FV,$$F$3 -, 4,,s   A
A	c                 H    U R                  S5        U R                  S5        g )Nr4  z---r  r!   s    r   test_invalid_option_strings;TestInvalidArgumentConstructors.test_invalid_option_strings  s    d#e$r   c                 (    U R                  SS5        g )Nr   z+foor  r!   s    r   test_invalid_prefix3TestInvalidArgumentConstructors.test_invalid_prefix  s    gv.r   c                 X    U R                  SSS9  U R                  S[        [        4S9  g )Nr   r  r  )r  r  r  r!   s    r   r  1TestInvalidArgumentConstructors.test_invalid_type  s,    gE2gS%L9r   c                     U R                  SSS9  U R                  SSS9  U R                  SSS9  U R                  SSSS	9  g )
Nr  r2   r+  rp  r   )r  r  z
store-truezunknown action)r,  r  r  r!   s    r   test_invalid_action3TestInvalidArgumentConstructors.test_invalid_action  sV    d51eE2g.ABgl%5 	 	7r   c                    [         R                  " 5       nUR                  SS9  U R                  [        5       nUR                  SSS9  S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr2   rR  ro  rp  z+dest supplied twice for positional argument)r5   r6   r   r  r  r  r  r  r  s      r   test_multiple_dest2TestInvalidArgumentConstructors.test_multiple_dest  sm    ((*'z*bE2 +C",,'	) +*s   A99
Bc           	         S H  nU R                  US9   [        [        S9[        SS9[        SS/S94 HC  nU R                  US	9   U R                  " SSU0UD6  U R                  " SSU0UD6  S S S 5        ME     U R                  S
USS9  U R                  SUSS9  S S S 5        M     g ! , (       d  f       M  = f! , (       d  f       M  = f)N)r-  r*  r  r  r  r+  r  r  r  r  r  r  )attrsr  r,  r#  r   r  )r  r"  )rG   r  r  r  )r   r,  r  s      r   test_no_argument_actions8TestInvalidArgumentConstructors.test_no_argument_actions  s    0FV,"ndo"C:68EE2,,J&JEJ,,II5I 328
 $$T&$B$$Sq$A -,0
 32 -,s#   3B>)B,	1.B>,
B;6B>>
C	c                     S H=  nU R                  US9   U R                  SSUS9  U R                  SSUS9  S S S 5        M?     g ! , (       d  f       MQ  = f)N)r*  r  r  r+  r  r2   r  r  r  rG   r  r
  s     r   !test_no_argument_no_const_actionsATestInvalidArgumentConstructors.test_no_argument_no_const_actions#  sU    <FV,$$Tv$F $$TV$D -, =,,s   #A
A	c           
      ,   S H|  nU R                  US9   US:X  a  SOUnU R                  SSUSU S3S	9  U R                  S
SUSU S3S	9  S H%  nU R                  SSX1S9  U R                  S
SX1S9  M'     S S S 5        M~     g ! , (       d  f       M  = f)Nr	  r+  r  r  r  r   z
nargs for z actions must be != 0)r  r,  r  r  )r  r  r  r2   )r0  r  r,  )rG   r  )r   r,  action_namer  s       r   #test_more_than_one_argument_actionsCTestInvalidArgumentConstructors.test_more_than_one_argument_actions-  s    3FV,*0H*<h&%%d!F'}4IJ & L%%fAf'}4IJ & L +E))$e05 * F))&05 * F + -, 4,,s   A"B
B	c                     S H,  nU R                  US9   U R                  SSUS9  S S S 5        M.     g ! , (       d  f       M@  = f)N)r-  r  r+  r  r  r  r!  r
  s     r   test_required_const_actions;TestInvalidArgumentConstructors.test_required_const_actions>  s>    5FV,$$TV$D -, 6,,s	   4
A	c                     U R                  SSS9  U R                  SSSS9  U R                  SS[        R                  S9  g )NrV  parsersr+  r  )r,  r  )r,  r   )r  r5   r6   r!   s    r   "test_parsers_action_missing_paramsBTestInvalidArgumentConstructors.test_parsers_action_missing_paramsD  sK    Yy9YyvFYy*2*A*A 	 	Cr   c                 $    U R                  SSS9  g )NrV  r  r+  r  r!   s    r   test_version_missing_params;TestInvalidArgumentConstructors.test_version_missing_paramsJ  s    Yy9r   c                 $    U R                  SSS9  g )Nr2   Tri  r  r!   s    r   test_required_positional8TestInvalidArgumentConstructors.test_required_positionalM  s    UT2r   c           	         ^  " S S[         5      m " U4S jS[        5      n[        R                  " 5       nU R	                  TUR
                  SUTTS9  U R	                  TUR
                  SUTTS9  g )Nc                       \ rS rSrSrg)ITestInvalidArgumentConstructors.test_user_defined_action.<locals>.SuccessiR  r#   Nr  r#   r   r   Successr7  R  r@  r   r8  c                   .   > \ rS rSr SU 4S jjrS rSrg)HTestInvalidArgumentConstructors.test_user_defined_action.<locals>.ActioniU  c                 8   > US:X  a  UTL a  UTL a  T" 5       eg g g )Nr  r#   )r   option_stringsrS  r0  r  r  r8  s         r   r   QTestInvalidArgumentConstructors.test_user_defined_action.<locals>.Action.__init__W  s2     6>'"g-"))O . ( "r   c                     g r]   r#   r   s      r   r  QTestInvalidArgumentConstructors.test_user_defined_action.<locals>.Action.__call__b  s    r   r#   N)F)r&   r'   r(   r)   r   r  r*   )r8  s   r   r  r:  U  s     #(	,r   r  rh  )r,  r  r0  r  )r   r  r5   r6   r  r   )r   r  r<   r8  s      @r   test_user_defined_action8TestInvalidArgumentConstructors.test_user_defined_actionP  sy    	i 		V 	  ((*'6#6#6!' 	 	I'6#6#6!' 	 	Ir   r#   )r&   r'   r(   r)   r  r  r  r  r  r  r  r  r  r  r"  r&  r)  r-  r0  r3  r@  r*   r#   r   r   r  r    sg     -1 0
 .2 0
74%/:7)
BEF"EC:3Ir   r  c                        \ rS rSrS rS rSrg)TestActionsReturnedio  c                 @   [         R                  " 5       nUR                  S5      nU R                  UR                  S5        UR                  SS5      nU R                  UR                  S5        UR                  SS5      nU R                  UR                  S5        g )	Nr   r2   r  rZ  ro  r  r6  r#  )r5   r6   r   r  rS  r  s      r   rR  TestActionsReturned.test_destq  s    ((*$$W-e,$$T73e,$$T40c*r   c                 4   [         R                  " 5       nUR                  SSSS[        SS/SSS	S
9	nU R	                  UR
                  S5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  [        5        U R	                  UR                  SS/5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S	5        g )Nr   r  r.  r  r  r  rp  BARrp  )r  r0  r  r   r  rH  r  rS  )r5   r6   r   r  r  r  r0  r  r   r  rH  r  rS  r  s      r   	test_miscTestActionsReturned.test_miscz  s    ((*$$WCr-/cAq6*/U % L 	s+r*,c*!Q0e,/e,r   r#   N)r&   r'   r(   r)   rR  rH  r*   r#   r   r   rC  rC  o  s    +-r   rC  c                   ,    \ rS rSrS rS rS rS rSrg)TestConflictHandlingi  c                 J    U R                  [        [        R                  SS9  g )Nr2   )conflict_handler)r  r  r5   r6   r!   s    r   test_bad_type"TestConflictHandling.test_bad_type  s"    *h&=&=+0 	 	2r   c                    [         R                  " 5       nUR                  S5        U R                  [         R                  UR                  S5        UR                  S5        U R                  [         R                  UR                  S5        g )Nr  rh  )r5   r6   r   r  rR  r;   s     r   test_conflict_error(TestConflictHandling.test_conflict_error  sn    ((*D!(00 --t	5H%(00 --x	9r   c                    [         R                  nU" SSS9nUR                  SSS9  UR                  SSS9  U R                  UR	                  5       [
        R                  " S5      5        UR                  S	S
S9  UR                  S	SS9  U R                  UR	                  5       [
        R                  " S5      5        g )Nr  resolve)r  rM  r  zOLD Xr  zNEW Xz            usage: PROG [-h] [-x X]

            options:
              -h, --help  show this help message and exit
              -x X        NEW X
            rh  OLD_SPAMrD  NEW_SPAMz            usage: PROG [-h] [-x X] [--spam NEW_SPAM]

            options:
              -h, --help       show this help message and exit
              -x X             NEW X
              --spam NEW_SPAM
            )r5   r6   r   r  rJ  rx  ry  )r   r(  r<   s      r   test_resolve_error'TestConflictHandling.test_resolve_error  s    ,,
)DDw/Dw/++-x @ 0 	 	Hj9Hj9++-x @ 0 	r   c                    [         R                  " 5       nUR                  5       nUR                  SS/S9  U R	                  [         R
                  UR                  S5        U R	                  [         R
                  UR                  S5        U R	                  [         R
                  UR                  SS/S9  U R	                  [         R
                  UR                  SS/S9  g )Nfullnamealiasr  r   )r5   r6   r  r  r  rR  )r   r<   sps      r   test_subparser_conflict,TestConflictHandling.test_subparser_conflict  s    ((*""$
j7)4(00--	5(00--	2(00--:, 	 	H(00--7) 	 	Er   r#   N)	r&   r'   r(   r)   rN  rQ  rW  r]  r*   r#   r   r   rK  rK    s    292Er   rK  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestOptionalsHelpVersionActionsi  c                    U R                  [        5       nUR                  UR                  5       5        S S S 5        U R	                  UR                  5       WR                  R                  5        g ! , (       d  f       NC= fr]   )r  r   rF   r
  r  rJ  r  r   )r   r<   r  r  s       r   assertPrintHelpExit3TestOptionalsHelpVersionActions.assertPrintHelpExit  sY    23rhnn./ 4++-r||/B/BC 43s    A33
Bc                 F    U R                  [        UR                  U5        g r]   )r  r   rF   rC  s      r   r  9TestOptionalsHelpVersionActions.assertArgumentParserError  s    -v/@/@$Gr   c                     [        5       nUR                  SSSSS9  U R                  US5        U R                  US5        U R                  [        [
        US5        g )	Nr  r  r  r  r  r@   r{  format_versionr   r   rb  r  r:  r   r;   s     r   test_version,TestOptionalsHelpVersionActions.test_version  sV    +-D+iO  .  2.'6;KLr   c                    [        SS9nUR                  SSSSS9  U R                  [        5       nUR	                  S/5        S S S 5        U R                  SWR                  R                  5        g ! , (       d  f       N5= f)	NPPPr  r  r  r  z%(prog)s 3.5r  zPPP 3.5
r   r   r  r   rF   r  r  r   r  s      r   test_version_format3TestOptionalsHelpVersionActions.test_version_format  sl    +7D+iX23rtf% 4bll&9&9: 43s   A33
Bc                     [        SS9nUR                  SSSSS9  U R                  US5        U R                  US	5        U R                  [        [
        US
5        g )NFr  r  r  r  r  r  r@   r{  rg  )r   r   r  r  r:  r   r;   s     r   test_version_no_help4TestOptionalsHelpVersionActions.test_version_no_help  sX    +U;D+iO&&vt4&&vx8.'6;KLr   c                    [        SS9nUR                  SSSS9  U R                  [        5       nUR	                  S/5        S S S 5        U R                  SWR                  R                  5        g ! , (       d  f       N5= f)Nr  r  r  r  z%(prog)s 3.7r  zXXX 3.7
rm  r  s      r   test_version_action3TestOptionalsHelpVersionActions.test_version_action  sj    +7DNK23rtf% 4bll&9&9: 43s   A22
B c                     [        SS9nU R                  US5        U R                  US5        U R                  US5        U R                  US5        g )NFr  r@   r{  r  r  )r   r  r;   s     r   test_no_help,TestOptionalsHelpVersionActions.test_no_help  sL    +U;&&vt4&&vx8&&vt4&&v{;r   c                     [        5       nUR                  SSS9  UR                  SSS9  U R                  US5        U R                  US5        U R                  US5        U R	                  [
        [        US5        g )	Nr  rH  r+  r6  r  r  r  rg  )r   r   rb  r  r  r:  r   r;   s     r   test_alternate_help_version;TestOptionalsHelpVersionActions.test_alternate_help_version  su    +-D0D3  .&&vt4&&v{;.'6;KLr   c                 R   [        5       nUR                  SSSS9  UR                  SSS9  UR                  S5        / S	QnUS
S/-   nU HZ  nU H  nU< SU< 3nM     U R                  UWS-  5        U R                  XS-  5        U R                  [        [
        US5        M\     g )Nr  r  r  r  r  r*  r+  r  )r$   r  r2   z-x barzbaz -xz--bad-optionzfoo bar bazz %s r@   r{  rg  rh  )r   r<   valid_prefixesvalid_suffixesprefixsuffixr  s          r   !test_help_version_extra_argumentsATestOptionalsHelpVersionActions.test_help_version_extra_arguments  s    +-K	5ID6C  ?'>=*II$F((.7 )$$VVd];$$Vh->?ngv?OP %r   r#   N)r&   r'   r(   r)   rb  r  ri  rn  rq  rt  rw  rz  r  r*   r#   r   r   r`  r`    s5    D
HM;M;<MQr   r`  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestStringsi  c                 Z    [         [        4 H  nU R                  U" U5      U5        M     g r]   )r  r  r  )r   objresult_stringrA   s       r   assertStringEqualTestStrings.assertStringEqual  s$    $KDT#Y6  r   c                 j    [         R                  " / SQSSSS/ SQSSS	S
9	nSnU R                  X5        g )N)r   r  r  r  r  r  r.  r  r  r  FHELPMETAVAR	r<  rS  r   r  r  r  r  rH  r  zAction(option_strings=['--foo', '-a', '-b'], dest='b', nargs='+', const=None, default=42, type='int', choices=[1, 2, 3], required=False, help='HELP', metavar='METAVAR', deprecated=False))r5   r  r  )r   optionr  s      r   test_optionalTestStrings.test_optional  sE    0	3 	
 	v.r   c                 |    [         R                  " / S[        SS/ SQSSSS9	nS	[        -  nU R                  X5        g )
Nr#  r  r  )r  g      ?r  TzH HH HzMV MV MVr  zAction(option_strings=[], dest='x', nargs='?', const=None, default=2.5, type=%r, choices=[0.5, 1.5, 2.5], required=True, help='H HH H', metavar='MV MV MV', deprecated=False))r5   r  r  r  )r   argumentr  s      r   test_argumentTestStrings.test_argument,  sO    ??#	   #(( 	
 	x0r   c                 T    [         R                  " SSS9nSnU R                  X5        g )Nr.  r  ro  zNamespace(foo=42, bar='spam')r5   r  r  r   r  r  s      r   test_namespaceTestStrings.test_namespace>  s'    BF30r*r   c                 Z    [         R                  " S0 SS0D6nSnU R                  X5        g )N"quotezNamespace(**{'"': 'quote'})r#   r  r  s      r   'test_namespace_starkwargs_notidentifier3TestStrings.test_namespace_starkwargs_notidentifierC  s,    13.12r*r   c                 ^    [         R                  " SSS0SS0D6nSnU R                  X5        g )Nr  r  r  r  z Namespace(a=1, **{'"': 'quote'})r#   r  r  s      r   2test_namespace_kwargs_and_starkwargs_notidentifier>TestStrings.test_namespace_kwargs_and_starkwargs_notidentifierH  s1    6!6W~67r*r   c                 Z    [         R                  " S0 SS0D6nSnU R                  X5        g )NvalidTzNamespace(valid=True)r#   r  r  s      r   $test_namespace_starkwargs_identifier0TestStrings.test_namespace_starkwargs_identifierM  s,    27D/2(r*r   c                 t    [         R                  " SS9nS[         R                  -  nU R                  X5        g )Nr  r  zvArgumentParser(prog='PROG', usage=None, description=None, formatter_class=%r, conflict_handler='error', add_help=True))r5   r6   HelpFormatterr  )r   r<   r  s      r   test_parserTestStrings.test_parserR  s:    ((f5'556 	 	v.r   r#   N)r&   r'   r(   r)   r  r  r  r  r  r  r  r  r*   r#   r   r   r  r    s*    7/$1$+
+
+
+
/r   r  c                   &    \ rS rSrS rS rS rSrg)TestNamespacei^  c                     [         R                  " 5       nU R                  [        [        US5        [         R                  " SSS9nU R                  UR                  S5        U R                  UR                  S5        g )Nr#  r.  r  r  )r5   r  r  r:  r   r  r  r  r  s     r   test_constructorTestNamespace.test_constructor`  s^    !.'2s;"/r"v&r   c                    [         R                  " SSS9n[         R                  " SSS9n[         R                  " SS9n[         R                  " SS9nU R                  X5        U R                  X5        U R                  X5        U R                  X#5        U R                  X$5        U R	                  X:g  5        U R	                  X:g  5        U R	                  X#:g  5        U R	                  X$:g  5        g )Nr  r  r  )r  r  )r  r  )r5   r  r  assertNotEqual
assertTrue)r   ns1ns2ns3ns4s        r   test_equalityTestNamespace.test_equalityh  s      1*  1*  1%  1%"C%C%C%C%
#
#
#
#r   c                     [         R                  " SSS9nU R                  UR                  S 5      [        5        U R                  UR                  S 5      [        5        g )Nr  r  r  )r5   r  rA  r   NotImplemented__ne__r  s     r   $test_equality_returns_notimplemented2TestNamespace.test_equality_returns_notimplementedx  s@    !q)biio~6biio~6r   r#   N)r&   r'   r(   r)   r  r  r  r*   r#   r   r   r  r  ^  s    '$ 7r   r  c                   &    \ rS rSrS rS rS rSrg)TestEncodingi  c                     [         R                  R                  U5      u  pUS-  n[        USSS9 nUR	                  5         S S S 5        g ! , (       d  f       g = f)Nz.pyr1  r   rx   )ra   rj   splitextrz   rH  )r   rj   r   rD  s       r   _test_module_encoding"TestEncoding._test_module_encoding  sD    ''""4($g.!FFH /..s   A
Ac                 B    U R                  [        R                  5        g r]   )r  r5   __file__r!   s    r   test_argparse_module_encoding*TestEncoding.test_argparse_module_encoding  s    ""8#4#45r   c                 .    U R                  [        5        g r]   )r  r  r!   s    r   "test_test_argparse_module_encoding/TestEncoding.test_test_argparse_module_encoding  s    ""8,r   r#   N)r&   r'   r(   r)   r  r  r  r*   r#   r   r   r  r    s    6-r   r  c                       \ rS rSrS rSrg)TestArgumentErrori  c                 l    Sn[         R                  " S U5      nU R                  [        U5      U5        g )Nzmy error here)r5   rR  r  r  )r   r  r   s      r   test_argument_error%TestArgumentError.test_argument_error  s-    &&tS1US)r   r#   N)r&   r'   r(   r)   r  r*   r#   r   r   r  r    s    *r   r  c                       \ rS rSrS rSrg)TestArgumentTypeErrori  c                    S n[        SSS9nUR                  SUS9  U R                  [        5       nUR	                  S/5        S S S 5        U R                  SWR                  R                  5        g ! , (       d  f       N5= f)	Nc                 .    [         R                  " S5      e)Nspam!)r5   ArgumentTypeErrorr  s    r   r  <TestArgumentTypeError.test_argument_type_error.<locals>.spam  s    ,,W55r   r  FrH  r#  r  r  z-usage: PROG x
PROG: error: argument x: spam!
)r   r   r  r   rF   r  r  r   )r   r  r<   r  s       r   test_argument_type_error.TestArgumentTypeError.test_argument_type_error  su    	6 ,%HCd+23rug& 4J,,	. 43s   A55
Br#   N)r&   r'   r(   r)   r  r*   r#   r   r   r  r    s    
.r   r  c                   &    \ rS rSrS rS rS rSrg)TestMessageContentErrori  c                    [        SSS9nUR                  S[        S9  UR                  S[        SS9  UR                  S	[        S
S9  U R	                  [
        5       nUR                  / 5        S S S 5        [        WR                  5      nU R                  US5        U R                  US5        U R                  US	5        U R	                  [
        5       nUR                  S/5        S S S 5        [        UR                  5      nU R                  US5        U R                  US5        U R                  US	5        U R	                  [
        5       nUR                  SS/5        S S S 5        [        UR                  5      nU R                  US5        U R                  US5        U R                  US	5        g ! , (       d  f       GNR= f! , (       d  f       N= f! , (       d  f       N}= f)Nr  r$   r  req_posr  -req_optTr  need_oner  )r   r  req_optmyXargumentz
-req_opt=1)
r   r   r  r  r  r   rF   r  rI   r  r   r<   r  r  s       r   %test_missing_argument_name_in_message=TestMessageContentError.test_missing_argument_name_in_message  s   +rBIC0JS4@JS<23rb! 4",,i(i(j)23r}o. 4",,i(i(j)23r}l;< 4",,i(i(j)# 43 43 43s$   F;GG;
G

G
G,c                    [        SSS9nUR                  S[        S9  UR                  S[        SS9  UR                  S	[        S
SS9  U R                  [        5       nUR                  / 5        S S S 5        [        WR                  5      nU R                  US5        U R                  US5        U R                  US5        U R                  [        5       nUR                  S/5        S S S 5        [        UR                  5      nU R                  US5        U R                  US5        U R                  US5        g ! , (       d  f       N= f! , (       d  f       Nk= f)Nr  r$   r  r  r  z	--req_optTr  z	--opt_optr  )r   r  r  r  opt_optz--req_opt=1)r   r   r  r  r  r  r   rF   r  rI   r  r  s       r   %test_optional_optional_not_in_message=TestMessageContentError.test_optional_optional_not_in_message  s*   +rBIC0KcDAKd#$( 	 	*23rb! 4",,i(i(i(23r}o. 4",,i(i(i( 43 43s   E E 
E
Ec                 N   [        SSS9nUR                  S5        UR                  SSSS9  U R                  [        5       nUR	                  / 5        S S S 5        [        WR                  5      nU R                  US5        U R                  US5        g ! , (       d  f       NH= f)	Nr  r$   r  r  optional_positionalr  r  r  )	r   r   r  r   rF   r  r  rI   r  r  s       r   'test_optional_positional_not_in_message?TestMessageContentError.test_optional_positional_not_in_message  s    +rBI&1fM23rb! 4",,i(34	 43s   B
B$r#   N)r&   r'   r(   r)   r  r  r  r*   r#   r   r   r  r    s    *2)&5r   r  c                       \ rS rSrS rSrg)TestTypeFunctionCallOnlyOncei  c                    ^  U 4S jn[         R                  " 5       nUR                  SUSS9  UR                  SR	                  5       5      nT R                  [        SS9U5        g )Nc                 *   > TR                  U S5        g)Nr  foo_convertedr  )string_to_convertr   s    r   r  LTestTypeFunctionCallOnlyOnce.test_type_function_call_only_once.<locals>.spam  s    .8"r   r   ro  r]  z--foo spam!r  r;  )r5   r6   r   rF   r
  r  r   r   r  r<   r   s   `   r   !test_type_function_call_only_once>TestTypeFunctionCallOnlyOnce.test_type_function_call_only_once  s[    	# ((*G$>  !4!4!670$7r   r#   N)r&   r'   r(   r)   r  r*   r#   r   r   r  r    s    8r   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestDeprecatedArgumentsi   c                 H   [         R                  " 5       nUR                  SSSS9  [        5        nUR	                  SS/5        S S S 5        WR                  5       nU R                  US5        U R                  UR                  S5      S5        [        5        nUR	                  SS/5        S S S 5        UR                  5       nU R                  US	5        U R                  UR                  S5      S5        [        5        nUR	                  / S
Q5        S S S 5        UR                  5       nU R                  US5        U R                  US	5        U R                  UR                  S5      S5        [        5        nUR	                  / SQ5        S S S 5        UR                  5       nU R                  US5        U R                  UR                  S5      S5        g ! , (       d  f       GN= f! , (       d  f       GNI= f! , (       d  f       N= f! , (       d  f       N= f)Nr?  r   T)
deprecatedr  %warning: option '--foo' is deprecatedis deprecatedr  "warning: option '-f' is deprecated)r   r  r?  hamr  )r   r  r   r  )	r5   r6   r   r   rF   r   rI   r  r  r   r<   r   s      r   test_deprecated_option.TestDeprecatedArguments.test_deprecated_option  s   ((*D'd;&w/0 "!HIo6:&tVn- "!EFo6:&<= "!HI!EFo6:&?@ "!HIo6:/    s/   GG0H>H
G-0
G?
H
H!c                 `   [         R                  " 5       nUR                  SS[         R                  SS9  [	        5        nUR                  S/5        S S S 5        WR                  5       nU R                  US5        U R                  UR                  S5      S5        [	        5        nUR                  S/5        S S S 5        UR                  5       nU R                  US5        U R                  UR                  S5      S5        [	        5        nUR                  S	/5        S S S 5        UR                  5       nU R                  US
5        U R                  UR                  S5      S5        [	        5        nUR                  SS	/5        S S S 5        UR                  5       nU R                  US5        U R                  US
5        U R                  UR                  S5      S5        g ! , (       d  f       GN= f! , (       d  f       GNH= f! , (       d  f       N= f! , (       d  f       N= f)Nr?  r   T)r,  r  r  r  r  r  r  z(warning: option '--no-foo' is deprecatedr  )
r5   r6   r   r  r   rF   r   rI   r  r  r  s      r   test_deprecated_boolean_option6TestDeprecatedArguments.test_deprecated_boolean_option  s   ((*D'(2P2P]ab&wi( "!HIo6:&tf% "!EFo6:&zl+ "!KLo6:&w
34 "!HI!KLo6:/    s0    G*(G<H8H*
G9<
H
H
H-c                 J   [         R                  " 5       nUR                  SSSS9  UR                  SSSS9  [        5        nUR	                  / 5        S S S 5        WR                  5       nU R                  UR                  S5      S5        [        5        nUR	                  S/5        S S S 5        UR                  5       nU R                  US	5        U R                  UR                  S5      S
5        [        5        nUR	                  SS/5        S S S 5        UR                  5       nU R                  US	5        U R                  US5        U R                  UR                  S5      S5        g ! , (       d  f       GN$= f! , (       d  f       N= f! , (       d  f       N= f)Nr2   r  Tr  r  ro  r  r   r  %warning: argument 'foo' is deprecatedr  r  z%warning: argument 'bar' is deprecatedr  	r5   r6   r   r   rF   r   r  r  rI   r  s      r   test_deprecated_arguments1TestDeprecatedArguments.test_deprecated_arguments<  sN   ((*E>E>&b! "o6:&vh' "!HIo6:&vuo. "!HI!HIo6:! 
  s$   E1F?F1
F 
F
F"c                    [         R                  " 5       nUR                  SSSS9  [        5        nUR	                  / 5        S S S 5        WR                  5       nU R                  UR                  S5      S5        [        5        nUR	                  S/5        S S S 5        UR                  5       nU R                  US5        U R                  UR                  S5      S	5        [        5        nUR	                  SS
/5        S S S 5        UR                  5       nU R                  US5        U R                  UR                  S5      S	5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nu= f)Nr2   r  Tr  r  r   r  r  r  r  r  r  s      r   test_deprecated_varargument3TestDeprecatedArguments.test_deprecated_varargumentS  s(   ((*E>&b! "o6:&vh' "!HIo6:&vuo. "!HIo6: 
  s#   EE .E1
E 
E.1
E?c                 H   [         R                  " 5       nUR                  5       nUR                  SS/SS9  UR                  S5        [	        5        nUR                  S/5        S S S 5        WR                  5       nU R                  UR                  S5      S5        [	        5        nUR                  S/5        S S S 5        UR                  5       nU R                  US5        U R                  UR                  S5      S	5        [	        5        nUR                  S/5        S S S 5        UR                  5       nU R                  US
5        U R                  UR                  S5      S	5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nu= f)Nr2   rp  T)r  r  ro  r  r   z$warning: command 'foo' is deprecatedr  z$warning: command 'baz' is deprecated)
r5   r6   r  r  r   rF   r   r  r  rI   )r   r<   r!  r   s       r   test_deprecated_subparser1TestDeprecatedArguments.test_deprecated_subparserh  sF   ((***,
eeWFe$&ug& "o6:&ug& "!GHo6:&ug& "!GHo6: 
  s$   E0)FF0
E?
F
F!r#   N)
r&   r'   r(   r)   r   r  r	  r  r  r*   r#   r   r   r  r     s    ;:;:;.;*;r   r  c                   ,    \ rS rSrS rS rS rS rSrg)TestTypeFunctionCalledOnDefaulti  c                    ^  U 4S jn[         R                  " 5       nUR                  SUSS9  UR                  / 5      nT R	                  [        SS9U5        g )Nc                 *   > TR                  U S5        g)Nr   r  r  )int_to_convertr   s    r   r  ]TestTypeFunctionCalledOnDefault.test_type_function_call_with_non_string_default.<locals>.spam  s    ^Q/"r   r   r   r]  r;  r5   r6   r   rF   r  r   r  s   `   r   /test_type_function_call_with_non_string_defaultOTestTypeFunctionCalledOnDefault.test_type_function_call_with_non_string_default  sQ    	# ((*G$:  $D)r   c                     S n[         R                  " 5       nUR                  SUSS9  UR                  / 5      nU R	                  [        SS9U5        g )Nc                     g)Nr  r#   )r  s    r   r  YTestTypeFunctionCalledOnDefault.test_type_function_call_with_string_default.<locals>.spam  s    "r   r   0r]  r  r;  r  r  s       r   +test_type_function_call_with_string_defaultKTestTypeFunctionCalledOnDefault.test_type_function_call_with_string_default  sQ    	# ((*G$<  $0$7r   c                     S n[         R                  " 5       nUR                  SUSS9  UR                  / 5      nU R	                  [        SS9U5        g )Nc                     U S-   $ )Nr  r#   )str_to_converts    r   r  YTestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_default.<locals>.extend  s    !C''r   --testr  r]  z**)r  r  )r   r  r<   r   s       r   )test_no_double_type_conversion_of_defaultITestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_default  sR    	( ((*H63?  $ 	-r   c                     [         R                  " 5       nUR                  SS[        / SS9  UR	                  / 5      nU R                  UR                  / 5        g )Nr$  r  r  )rS  r   r  r,  )r5   r6   r   r  rF   r  r  rC  s      r   test_issue_159060TestTypeFunctionCalledOnDefault.test_issue_15906  sT     ((*H6$&x 	 	9  $B'r   r#   N)	r&   r'   r(   r)   r  r  r%  r(  r*   r#   r   r   r  r    s    	*8
.(r   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestParseKnownArgsi  c                 P    [         R                  " 5       nUR                  S5        g )Nr#   r5   r6   rF   r;   s     r   test_arguments_tuple'TestParseKnownArgs.test_arguments_tuple      ((*"r   c                 P    [         R                  " 5       nUR                  / 5        g r]   r-  r;   s     r   test_arguments_list&TestParseKnownArgs.test_arguments_list  r0  r   c                 r    [         R                  " 5       nUR                  S5        UR                  S5        g )Nr#  r"  r5   r6   r   rF   r;   s     r   test_arguments_tuple_positional2TestParseKnownArgs.test_arguments_tuple_positional  s,    ((*C &!r   c                 t    [         R                  " 5       nUR                  S5        UR                  S/5        g )Nr#  r5  r;   s     r   test_arguments_list_positional1TestParseKnownArgs.test_arguments_list_positional  s.    ((*C 3% r   c                     [         R                  " 5       nUR                  S5        UR                  SR	                  5       5      u  p#U R                  [        SS9U5        U R                  SS/U5        g )Nr   z--foo F --bar --bazFr;  rZ  r  )r5   r6   r   r:  r
  r  r   )r   r<   r   extrass       r   test_optionals!TestParseKnownArgs.test_optionals  sc    ((*G$../D/J/J/LMd+'7+V4r   c                 (   [         R                  " 5       nUR                  SSS[        S9  UR                  SSS9  UR                  S5        / S	QnUR	                  U5      u  p4U R                  [        S
SSS9U5        U R                  / SQU5        g )Nr  r  r  )r  r0  r   rh  r  r+  r_  )rm  r  r   r  r(  r  r  Trm  )vr  r_  )r  r   r  )r5   r6   r   r  r:  r  r   )r   r<   r   r   r=  s        r   
test_mixedTestParseKnownArgs.test_mixed  s    ((*D13?H];H%2..t4ad37>,f5r   c                     [         R                  " 5       nUR                  SSSS9  UR                  / 5      nU R	                  [        / S9U5        g )Nr#  r  r  )r  r  r"  r  rC  s      r   test_zero_or_more_optional-TestParseKnownArgs.test_zero_or_more_optional  sI    ((*CsJ?  $b4(r   r#   N)r&   r'   r(   r)   r.  r2  r6  r9  r>  rB  rE  r*   r#   r   r   r+  r+    s%    "
!
5	6)r   r+  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestDoubleDashi  c                 P   [         R                  " SS9nUR                  SS5        UR                  SSS9  UR                  S/5      nU R	                  [        S	/ S
9U5        U R                  [         R                  SUR                  SS	/5        UR                  S/5      nU R	                  [        S	/ S
9U5        U R                  [         R                  SUR                  SS	/5        UR                  / SQ5      nU R	                  [        SSS/S
9U5        UR                  / SQ5      nU R	                  [        SSS/S
9U5        UR                  / SQ5      nU R	                  [        S / SQS
9U5        UR                  / SQ5      nU R	                  [        S / SQS
9U5        g )NFrN  r?  r   ro  r  r  --foo=--r4  ro  z(argument -f/--foo: expected one argument-f--)r   r  r4  r  r  r  r  r  )r  r  r   r  )r  r4  r  r   r  )r  r4  r  r4  r  r   r  )r  r  r4  r  r   r  )r5   r6   r   rF   r  r   rQ  rR  rC  s      r   test_single_argument_option*TestDoubleDash.test_single_argument_option  s   ((u=D'*E-  *."-t4x556	0   &*"-t4x556d|	-   !?@#s4d;  !9:#s4d;  !?@*BCTJ  !JK*MNPTUr   c                    [         R                  " SS9nUR                  SSSS9  UR                  SSS9  UR                  S/5      nU R	                  [        S	// S
9U5        UR                  SS	/5      nU R	                  [        / / S
9U5        UR                  S/5      nU R	                  [        S	// S
9U5        UR                  SS	/5      nU R	                  [        / / S
9U5        UR                  / SQ5      nU R	                  [        SS/SS/S
9U5        UR                  / SQ5      nU R	                  [        SS/SS/S
9U5        UR                  / SQ5      nU R	                  [        S / SQS
9U5        UR                  / SQ5      u  p#U R	                  [        S/SS/S
9U5        U R	                  US	S/5        g )NFrN  r?  r   r  r  ro  rJ  r4  ro  rK  )r   r  r  r4  r  r  r  r  r  r  )r  r  r   r  r  )r  r4  r  r   r  r  )r  r  r   r  r4  r  )r5   r6   r   rF   r  r   r:  )r   r<   r   r   s       r   test_multiple_argument_option,TestDoubleDash.test_multiple_argument_option  s   ((u=D'5E-  *.B/6  '41+T2  &*B/6  $.+T2  !DEc
c
;TB  !>?c
c
;TB  !DE*GH$O,,-PQ
C:6=c{+r   c                 D   [         R                  " SS9nUR                  S5        UR                  SSS9  UR                  / SQ5      nU R	                  [        SS	S
/S9U5        UR                  / SQ5      nU R	                  [        SS	S
/S9U5        UR                  / SQ5      nU R	                  [        SS	S
/S9U5        UR                  / SQ5      nU R	                  [        S/ SQS9U5        UR                  / SQ5      nU R	                  [        S/ SQS9U5        g )NFrN  r2   ro  r  r  r4  r  r  r  r  r  r  ro  r  r4  r  r  r  r  r4  r  r  r4  r  r4  r  r  r4  r  )r4  r4  r  r4  r  r  r4  r  rC  s      r   test_multiple_double_dashes*TestDoubleDash.test_multiple_double_dashes  s	   ((u=E"E-  !67#s4d;  !67#s4d;  !67#s4d;  !<=)9:DA  !BC*?@$Gr   c                    [         R                  " SS9nUR                  S5        UR                  SSS9  UR                  / SQ5      nU R	                  [        SS	S
/S9U5        UR                  / SQ5      nU R	                  [        SS	S
/S9U5        UR                  / SQ5      nU R	                  [        S/ SQS9U5        UR                  / SQ5      nU R	                  [        S/ SQS9U5        [         R                  " SS9nUR                  S5        UR                  SSS9  UR                  / SQ5      nU R	                  [        S/ SQS9U5        g )NFrN  r2   ro  r  r  rR  r  r  r  ro  rS  rT  rV  rU  r   )r   r  r4  r  r4  r  )r4  r  r4  r  r  rC  s      r   test_remainderTestDoubleDash.test_remainder"  s7   ((u=E"E/  !67#s4d;  !67#s4d;  !67)9:DA  !<=)9:DA((u=G$E/  !EF)?@$Gr   c                 .   [         R                  " SS9nUR                  S5        UR                  5       nUR	                  S5      nUR                  S5        UR                  SSS9  UR                  / S	Q5      nU R                  [        S
SSS/S9U5        UR                  / SQ5      nU R                  [        S
S / SQS9U5        UR                  / SQ5      nU R                  [        S
S / SQS9U5        UR                  / SQ5      nU R                  [        S
S / SQS9U5        UR                  / SQ5      nU R                  [        S
SSS/S9U5        UR                  / SQ5      nU R                  [        S
SSS/S9U5        UR                  / SQ5      nU R                  [        S
S / SQS9U5        UR                  / SQ5      nU R                  [        S
S / SQS9U5        U R                  [         R                  SUR
                  / SQ5        g )NFrN  r2   rU  r?  ro  r  r  )r#  rU  r  r  r?  r  r#  r  r  r  r2   rD  ro  )r#  rU  r  r  r4  r?  r  )r  r  r?  r  )r#  rU  r  r4  r  r?  r  )r#  rU  r4  r  r  r?  r  )r#  r4  rU  r  r  r?  r  )r4  r#  rU  r  r  r?  r  )r#  rU  r4  r  r4  r  )r  r4  r  )r#  r4  rU  r4  r  r4  r  invalid choice: '--')r4  r#  r4  rU  r  r  
r5   r6   r   r  r  rF   r  r   rQ  rR  r   r<   r!  r#  r   s        r   test_subparserTestDoubleDash.test_subparser6  s   ((u=E"**,
''.T"U#.  !BCsc
;TB  !HIt1FGN  !HIt1FGN  !HIt1FGN  !HIsc
;TB  !HIsc
;TB  !CDt1ABDI  !IJt1ABDIx55"A	Cr   c                    [         R                  " SS9nUR                  SSS9  UR                  5       nUR	                  S5      nUR                  S5        UR                  SSS9  UR                  / S	Q5      nU R                  [        S
S/SSS/S9U5        U R                  [         R                  SUR
                  / SQ5        g )NFrN  r   r  r  rU  r?  ro  )	r   r#  r  r4  rU  r  r  r?  r  r#  r  r  r  r  r]  r^  )r   r#  r4  r4  rU  r  r  r_  r`  s        r   -test_subparser_after_multiple_argument_option<TestDoubleDash.test_subparser_after_multiple_argument_optionR  s    ((u=G3/**,
''.T"U#.  !VWc
cSzBDIx55"J	Lr   r#   N)r&   r'   r(   r)   rL  rO  rW  rZ  ra  rd  r*   r#   r   r   rH  rH    s%    V0,.H H(C8Lr   rH  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestIntermixedArgsie  c           	         [         R                  " SS9nUR                  SSS9  UR                  SSSS	9nUR                  S
5        UR                  SS[        S9  SR	                  5       nUR                  U5      nU R                  [        SS
S/ SQS9U5        UR                  U5      u  pEU R                  [        SS
SS/S9U5        U R                  SS/U5        UR                  U5      u  pEU R                  [        SS
S/ SQS9U5        U R                  / U5        SR	                  5       nUR                  U5      u  pEU R                  [        SS
S/ SQS9U5        U R                  S/U5        SR	                  5       nUR                  U5      u  pEU R                  [        SS
S/ SQS9U5        U R                  S/U5        SR	                  5       nUR                  U5      u  pEU R                  [        SS
S/ SQS9U5        U R                  S/U5        U R                  UR                  5        U R                  UR                  S5        g )Nr  r  r   r2   rR  rZ  ro  Tr_  cmdrestr  )r  r   zcmd --foo x 1 --bar y 2 3r  r#  r  )ro  ri  r2   rj  r  r  r(  z!cmd --foo x --error 1 2 --bar y 3z--errorz!cmd --foo x 1 --error 2 --bar y 3z!cmd --foo x 1 2 --error --bar y 3)r5   r6   r   r  r
  parse_intermixed_argsr  r   r:  parse_known_intermixed_argsrd  r  r  )r   r<   ro  r   r   r=  s         r   
test_basicTestIntermixedArgs.test_basicf  s)   ((f5G%0!!'!EE"F#C8*002++D1CiH$O..t4CqcBDI#sV,99$?CiH$OV$ 388:99$?CiH$O)f-288:99$?CiH$O)f-288:99$?CiH$O)f- 	&,,'t,r   c                 d   [        SS9nUR                  S5        UR                  S5        UR                  SSS9  SR                  5       nU R                  [        5       nUR                  U5        S S S 5        U R                  [        WR                  5      S	5        g ! , (       d  f       N4= f)
Nr  r  r1  r#  r  r  r  r  z\.\.\.)	r   r   r
  r  r   rk  rI   r  r  )r   r<   r   r  s       r   rZ  !TestIntermixedArgs.test_remainder  s    +8D!C Cu-!!# y)R((. *R\\*I6 *)s   !B!!
B/c                 N   [         R                  " SSS9nUR                  SS9nUR                  SSSS	9  UR                  S
SS9  UR                  SSSSS9  UR	                  SR                  5       5      nU R                  [        SS/SS S9U5        UR	                  SR                  5       5      nU R                  [        SS/SS S9U5        U R                  [         R                  SUR                  SR                  5       5        U R                  UR                  S5        g )Nr  Fr  rO  Tri  r   r*  rp  r  rh  rq  r  r_  r  ra  rr  r  z	--foo 1 2rl  r  )r_  r2   r  z	1 --foo 2z-one of the arguments --foo --spam is requiredrk  )r5   r6   r  r   rk  r
  r  r   rQ  rR  r  r   r<   r   r   s       r   test_required_exclusive*TestIntermixedArgs.test_required_exclusive  s   ((fEJ33T3B7<eD8&1HC8L++K,=,=,?@C:4dCTJ++K,=,=,?@C:4dCTJx55?,,ekkm	= 	.r   c                    [         R                  " SSS9nUR                  SS9nUR                  SSSS	9  UR                  S
SS9  UR                  SSSSS9  UR	                  S/5      nU R                  [        SS SS9U5        UR	                  SS/5      nU R                  [        SS SS/S9U5        U R                  [         R                  SUR                  / 5        U R                  [         R                  SUR                  / SQ5        U R                  [         R                  SUR                  / SQ5        U R                  UR                  S5        g )Nr  Frr  Tri  r   r*  rp  r  rh  rq  r  r_  r  ra  rr  r  ru  r  r  z4one of the arguments --foo --spam badger is requiredz0argument badger: not allowed with argument --foo)r   r  r  )r  r   r  )
r5   r6   r  r   rk  r  r   rQ  rR  r  rs  s       r   'test_required_exclusive_with_positional:TestIntermixedArgs.test_required_exclusive_with_positional  sL   ((fEJ33T3B7<eD8&183(K++WI64<dC++S#J7D#sDdKx55F,,b	2 	x55B,,.A	C 	x55B,,.A	C 	.r   c                 Z    [        SS9nU R                  [        UR                  S/5        g )Nr  r  r  )r   r  r   rk  r;   s     r   test_invalid_args$TestIntermixedArgs.test_invalid_args  s'    +8-v/K/KcUSr   r#   N)
r&   r'   r(   r)   rm  rZ  rt  rw  rz  r*   r#   r   r   rg  rg  e  s    $-L7/ /,Tr   rg  c                       \ rS rSrS rSrg)!TestIntermixedMessageContentErrori  c                 N   [        SSS9nUR                  S[        S9  UR                  S[        SS9  U R	                  [
        5       nUR                  / 5        S S S 5        [        WR                  5      nU R                  US5        U R                  US	5        U R	                  [
        5       nUR                  / 5        S S S 5        [        UR                  5      nU R                  US5        U R                  US	5        g ! , (       d  f       N= f! , (       d  f       NY= f)
Nr  r$   r  r  r  r  Tr  r  )
r   r   r  r  r  r   rF   r  rI   rk  r  s       r   r  GTestIntermixedMessageContentError.test_missing_argument_name_in_message  s    +rBIC0JS4@23rb! 4",,i(i(23r((, 4",,i(i( 43 43s   	D1D
D
D$r#   N)r&   r'   r(   r)   r  r*   r#   r   r   r}  r}    s    )r   r}  c                   2   \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2r4g3)4TestAddArgumentMetavari  z,length of metavar tuple does not match nargsc                 N    [         R                  " 5       nUR                  SXS9  g )Nr   r  r  )r5   r6   r   )r   r  r  r<   s       r   do_test_no_exception+TestAddArgumentMetavar.do_test_no_exception  s#    ((*G5Br   c                    [         R                  " 5       nU R                  [        5       nUR	                  SXS9  S S S 5        U R                  WR                  R                  S   U R                  5        g ! , (       d  f       NB= f)Nr   r  r   )	r5   r6   r  r  r   r  r  r   EXPECTED_MESSAGE)r   r  r  r<   r  s        r   do_test_exception(TestAddArgumentMetavar.do_test_exception  sf    ((*z*buF +**1-t/D/DE +*   A88
Bc                 $    U R                  S SS9  g )Nrl  r  r  r!   s    r   test_nargs_None_metavar_string5TestAddArgumentMetavar.test_nargs_None_metavar_string  s    !!c!:r   c                 4    U R                  S [        5       S9  g )Nr  r  tupler!   s    r   test_nargs_None_metavar_length06TestAddArgumentMetavar.test_nargs_None_metavar_length0  s    T57;r   c                 $    U R                  S SS9  g )Nr  r  r  r!   s    r   test_nargs_None_metavar_length16TestAddArgumentMetavar.test_nargs_None_metavar_length1  s    !!f!=r   c                 $    U R                  S SS9  g )Nrl  r  r  r  r!   s    r   test_nargs_None_metavar_length26TestAddArgumentMetavar.test_nargs_None_metavar_length2  s    T:>r   c                 $    U R                  S SS9  g )Nr  r  r  r!   s    r   test_nargs_None_metavar_length36TestAddArgumentMetavar.test_nargs_None_metavar_length3  s    T?Cr   c                 $    U R                  SSS9  g )Nr  rl  r  r  r!   s    r   "test_nargs_optional_metavar_string9TestAddArgumentMetavar.test_nargs_optional_metavar_string      !!S!9r   c                 4    U R                  S[        5       S9  g )Nr  r  r  r!   s    r   #test_nargs_optional_metavar_length0:TestAddArgumentMetavar.test_nargs_optional_metavar_length0       S%':r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   #test_nargs_optional_metavar_length1:TestAddArgumentMetavar.test_nargs_optional_metavar_length1      !!V!<r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   #test_nargs_optional_metavar_length2:TestAddArgumentMetavar.test_nargs_optional_metavar_length2  s    S*=r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   #test_nargs_optional_metavar_length3:TestAddArgumentMetavar.test_nargs_optional_metavar_length3	      S/Br   c                 $    U R                  SSS9  g )Nr  rl  r  r  r!   s    r   $test_nargs_zeroormore_metavar_string;TestAddArgumentMetavar.test_nargs_zeroormore_metavar_string  r  r   c                 4    U R                  S[        5       S9  g )Nr  r  r  r!   s    r   %test_nargs_zeroormore_metavar_length0<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length0  r  r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   %test_nargs_zeroormore_metavar_length1<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length1  r  r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   %test_nargs_zeroormore_metavar_length2<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length2      !!Z!@r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   %test_nargs_zeroormore_metavar_length3<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length3  r  r   c                 $    U R                  SSS9  g )Nr  rl  r  r  r!   s    r   #test_nargs_oneormore_metavar_string:TestAddArgumentMetavar.test_nargs_oneormore_metavar_string  r  r   c                 4    U R                  S[        5       S9  g )Nr  r  r  r!   s    r   $test_nargs_oneormore_metavar_length0;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length0"  r  r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   $test_nargs_oneormore_metavar_length1;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length1%  s    S&9r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   $test_nargs_oneormore_metavar_length2;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length2(  r  r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   $test_nargs_oneormore_metavar_length3;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length3+  r  r   c                 $    U R                  SSS9  g )Nr  rl  r  r  r!   s    r   #test_nargs_remainder_metavar_string:TestAddArgumentMetavar.test_nargs_remainder_metavar_string0  s    !!s!;r   c                 4    U R                  S[        5       S9  g )Nr  r  )r  r  r!   s    r   $test_nargs_remainder_metavar_length0;TestAddArgumentMetavar.test_nargs_remainder_metavar_length03  s    !!uw!?r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   $test_nargs_remainder_metavar_length1;TestAddArgumentMetavar.test_nargs_remainder_metavar_length16  s    !!v!>r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   $test_nargs_remainder_metavar_length2;TestAddArgumentMetavar.test_nargs_remainder_metavar_length29  s    !!z!Br   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   $test_nargs_remainder_metavar_length3;TestAddArgumentMetavar.test_nargs_remainder_metavar_length3<  s    !!!Gr   c                 $    U R                  SSS9  g )NA...rl  r  r  r!   s    r    test_nargs_parser_metavar_string7TestAddArgumentMetavar.test_nargs_parser_metavar_stringA  s    !!!<r   c                 4    U R                  S[        5       S9  g )Nr  r  r  r!   s    r   !test_nargs_parser_metavar_length08TestAddArgumentMetavar.test_nargs_parser_metavar_length0D  s    VUW=r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   !test_nargs_parser_metavar_length18TestAddArgumentMetavar.test_nargs_parser_metavar_length1G  s    !!!?r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   !test_nargs_parser_metavar_length28TestAddArgumentMetavar.test_nargs_parser_metavar_length2J  s    VZ@r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   !test_nargs_parser_metavar_length38TestAddArgumentMetavar.test_nargs_parser_metavar_length3M  s    V_Er   c                 $    U R                  SSS9  g )Nr  rl  r  r  r!   s    r   test_nargs_1_metavar_string2TestAddArgumentMetavar.test_nargs_1_metavar_stringR      !!3!7r   c                 4    U R                  S[        5       S9  g )Nr  r  r  r!   s    r   test_nargs_1_metavar_length03TestAddArgumentMetavar.test_nargs_1_metavar_length0U      Q8r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   test_nargs_1_metavar_length13TestAddArgumentMetavar.test_nargs_1_metavar_length1X  s    !!6!:r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   test_nargs_1_metavar_length23TestAddArgumentMetavar.test_nargs_1_metavar_length2[      Q
;r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   test_nargs_1_metavar_length33TestAddArgumentMetavar.test_nargs_1_metavar_length3^      Q@r   c                 $    U R                  SSS9  g )Nr  rl  r  r  r!   s    r   test_nargs_2_metavar_string2TestAddArgumentMetavar.test_nargs_2_metavar_stringc  r  r   c                 4    U R                  S[        5       S9  g )Nr  r  r  r!   s    r   test_nargs_2_metavar_length03TestAddArgumentMetavar.test_nargs_2_metavar_length0f  r  r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   test_nargs_2_metavar_length13TestAddArgumentMetavar.test_nargs_2_metavar_length1i      Q7r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   test_nargs_2_metavar_length23TestAddArgumentMetavar.test_nargs_2_metavar_length2l  s    !!:!>r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   test_nargs_2_metavar_length33TestAddArgumentMetavar.test_nargs_2_metavar_length3o  r	  r   c                 $    U R                  SSS9  g )Nr  rl  r  r  r!   s    r   test_nargs_3_metavar_string2TestAddArgumentMetavar.test_nargs_3_metavar_stringt  r  r   c                 4    U R                  S[        5       S9  g )Nr  r  r  r!   s    r   test_nargs_3_metavar_length03TestAddArgumentMetavar.test_nargs_3_metavar_length0w  r  r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   test_nargs_3_metavar_length13TestAddArgumentMetavar.test_nargs_3_metavar_length1z  r	  r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   test_nargs_3_metavar_length23TestAddArgumentMetavar.test_nargs_3_metavar_length2}  r  r   c                 $    U R                  SSS9  g )Nr  r  r  r  r!   s    r   test_nargs_3_metavar_length33TestAddArgumentMetavar.test_nargs_3_metavar_length3  s    !!?!Cr   r#   N)5r&   r'   r(   r)   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r 	  r	  r	  r
	  r	  r	  r	  r	  r	  r	  r 	  r*   r#   r   r   r  r    s   ECF;<>?D
:;=>C
:;=AC
:;:AC
<@?CH
=>@AF
89;<A
898?A
898<Dr   r  c                   4    \ rS rSrSrSrS rS rS rS r	Sr
g	)
TestInvalidNargsi  zinvalid nargs valueznargs for store actions must be != 0; if you have nothing to store, actions such as store true or store const may be more appropriatec                    [         R                  " 5       nU R                  [        5       nUR	                  SUS9  S S S 5        U R                  WR                  R                  S   U R                  5        g ! , (       d  f       NB= fNr   r  r   )	r5   r6   r  r  r   r  r  r   EXPECTED_RANGE_MESSAGEr   r  r<   r  s       r   do_test_range_exception(TestInvalidNargs.do_test_range_exception  sf    ((*z*bu5 +**1-t/J/JK +*r  c                    [         R                  " 5       nU R                  [        5       nUR	                  SUS9  S S S 5        U R                  WR                  R                  S   U R                  5        g ! , (       d  f       NB= fr%	  )	r5   r6   r  r  r   r  r  r   EXPECTED_INVALID_MESSAGEr'	  s       r   do_test_invalid_exception*TestInvalidNargs.do_test_invalid_exception  sf    ((*z*bu5 +**1-t/L/LM +*r  c                 @    U R                  SS9  U R                  SS9  g )Nr  r  abcd)r,	  r!   s    r   test_nargs_alphabetic&TestInvalidNargs.test_nargs_alphabetic  s$    &&S&1&&V&4r   c                 "    U R                  SS9  g )Nr   r  )r(	  r!   s    r   test_nargs_zero TestInvalidNargs.test_nargs_zero  s    $$1$-r   r#   N)r&   r'   r(   r)   r+	  r&	  r(	  r,	  r0	  r3	  r*   r#   r   r   r#	  r#	    s'    4LLN5.r   r#	  c                        \ rS rSrS rS rSrg)TestImportStari  c                 p    [         R                   H"  nU R                  [        [         U5      5        M$     g r]   )r5   __all__r  r  rB  s     r   r  TestImportStar.test  s%    $$DOOGHd34 %r   c                 P   [        [        5      R                  5        VVs/ s HD  u  pUR                  S5      (       a  M  US:X  a  M%  [        R
                  " U5      (       a  MB  UPMF     nnnU R                  [        U5      [        [        R                  5      5        g s  snnf )Nr   ngettext)	r   r5   r   
startswithinspectismoduler  r   r8	  )r   rs   r  r   s       r   'test_all_exports_everything_but_modules6TestImportStar.test_all_exports_everything_but_modules  s      $H~335
5OOC( ,0J,>  ##E* 5 	 
 	x/?/?(@A
s   B"B"	B"&B"r#   N)r&   r'   r(   r)   r  r?	  r*   r#   r   r   r6	  r6	    s    5Br   r6	  c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )TestWrappingMetavari  c                 z   > [         TU ]  5         [        S5      U l        SnU R                  R	                  SUS9  g )N9this_is_spammy_prog_with_a_long_name_sorry_about_the_namez<http[s]://example:1234>z--proxyrD  )r   rW   r   r<   r   )r   r  r   s     r   rW   TestWrappingMetavar.setUp  s9    0G

 -  G <r   c                     U R                   R                  5       nU R                  U[        R                  " S5      5        g )Na              usage: this_is_spammy_prog_with_a_long_name_sorry_about_the_name
                   [-h] [--proxy <http[s]://example:1234>]

            options:
              -h, --help            show this help message and exit
              --proxy <http[s]://example:1234>
            )r<   rJ  r  rx  ry  )r   	help_texts     r   test_help_with_metavar*TestWrappingMetavar.test_help_with_metavar  s4    KK++-	HOO 5 % 	r   r<   )r&   r'   r(   r)   rW   rH	  r*   r+   r,   s   @r   rB	  rB	    s    =	 	r   rB	  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSrg)TestExitOnErrori  c                 v    [         R                  " SSS9U l        U R                  R                  SS[        S9  g )NFr  )rO  r   z
--integersN)r  r   )r5   r6   r<   r   r  r!   s    r   rW   TestExitOnError.setUp  s3    --EDGI  s Er   c                     U R                   R                  SR                  5       5      nU R                  U[        R
                  " SS95        g )Nz--integers 4r  )integers)r<   rF   r
  r  r5   r  r  s     r   !test_exit_on_error_with_good_args1TestExitOnError.test_exit_on_error_with_good_args  s:    [[##N$8$8$:;X//;<r   c                     U R                  [        R                  5         U R                  R	                  SR                  5       5        S S S 5        g ! , (       d  f       g = f)Nz--integers a)r  r5   rR  r<   rF   r
  r!   s    r    test_exit_on_error_with_bad_args0TestExitOnError.test_exit_on_error_with_bad_args  s=    x556KK"">#7#7#9: 766s   *A
A!c                     U R                  [        R                  SU R                  R                  SR                  5       5        g Nz!unrecognized arguments: --foo barr  )rQ  r5   rR  r<   rF   r
  r!   s    r   test_unrecognized_args&TestExitOnError.test_unrecognized_args  s4    x55B#{{55{7H7H7J	Lr   c                     U R                  [        R                  SU R                  R                  SR                  5       5        g rX	  )rQ  r5   rR  r<   rk  r
  r!   s    r   !test_unrecognized_intermixed_args1TestExitOnError.test_unrecognized_intermixed_args  s4    x55B#{{@@+BSBSBU	Wr   c                     U R                   R                  S5        U R                   R                  S5        U R                  [        R                  SU R                   R
                  / 5        g )Nro  rp  /the following arguments are required: bar, baz$r<   r   rQ  r5   rR  rF   r!   s    r   test_required_args"TestExitOnError.test_required_args  sN      '  'x55P#{{55r	;r   c                     U R                   R                  S5        U R                   R                  SSS9  U R                  [        R                  SU R                   R
                  / 5        g )Nro  rp  BaZrD  z/the following arguments are required: bar, BaZ$r`	  r!   s    r   test_required_args_with_metavar/TestExitOnError.test_required_args_with_metavar  sS      '   6x55P#{{55r	;r   c                     U R                   R                  S5        U R                   R                  SSS9  U R                  [        R                  SU R                   R
                  / 5        g )Nro  rp  r  r  r_	  r`	  r!   s    r   test_required_args_n$TestExitOnError.test_required_args_n  sS      '  a 0x55P#{{55r	;r   c                     U R                   R                  S5        U R                   R                  SSSS9  U R                  [        R                  SU R                   R
                  / 5        g )Nro  rp  r  )rm  r  r  r  z3the following arguments are required: bar, B, A, Z$r`	  r!   s    r   !test_required_args_n_with_metavar1TestExitOnError.test_required_args_n_with_metavar  sU      '  a Ix55T#{{55r	;r   c                     U R                   R                  S5        U R                   R                  SSS9  U R                  [        R                  SU R                   R
                  / 5        g )Nro  rp  r  r  *the following arguments are required: bar$r`	  r!   s    r   test_required_args_optional+TestExitOnError.test_required_args_optional  S      '  c 2x55K#{{55r	;r   c                     U R                   R                  S5        U R                   R                  SSS9  U R                  [        R                  SU R                   R
                  / 5        g )Nro  rp  r  r  rn	  r`	  r!   s    r   test_required_args_zero_or_more/TestExitOnError.test_required_args_zero_or_more  rq	  r   c                     U R                   R                  S5        U R                   R                  SSS9  U R                  [        R                  SU R                   R
                  / 5        g )Nro  rp  r  r  r_	  r`	  r!   s    r   test_required_args_one_or_more.TestExitOnError.test_required_args_one_or_more  sS      '  c 2x55P#{{55r	;r   c                     U R                   R                  S5        U R                   R                  SSSS9  U R                  [        R                  SU R                   R
                  / 5        g )Nro  rp  r  )BaZ1BaZ2r  z9the following arguments are required: bar, BaZ1\[, BaZ2]$r`	  r!   s    r   +test_required_args_one_or_more_with_metavar;TestExitOnError.test_required_args_one_or_more_with_metavar  sV      '  c;K Lx55[#{{55r	;r   c                     U R                   R                  S5        U R                   R                  SSS9  U R                  [        R                  SU R                   R
                  / 5        g )Nro  rp  r  r  rn	  r`	  r!   s    r   test_required_args_remainder,TestExitOnError.test_required_args_remainder  sS      '  e 4x55K#{{55r	;r   c                     U R                   R                  SS9nUR                  S5        UR                  S5        U R                  [        R
                  SU R                   R                  / 5        g )NTri  rZ  r  z,one of the arguments --bar --baz is requiredr<   r  r   rQ  r5   rR  rF   r   r   s     r   %test_required_mutually_exclusive_args5TestExitOnError.test_required_mutually_exclusive_args$  s]    88$8G7#7#x55M#{{55r	;r   c                 \   U R                   R                  5       nUR                  S5        UR                  SSSS9  U R                  [        R
                  SU R                   R                  / SQ5        U R                  [        R
                  SU R                   R                  / S	Q5        g )
NrZ  rp  r  rd	  r  z.argument BaZ: not allowed with argument --bar$rZ  r  r  z.argument --bar: not allowed with argument BaZ$r  rZ  r  r	  r	  s     r   >test_conflicting_mutually_exclusive_args_optional_with_metavarNTestExitOnError.test_conflicting_mutually_exclusive_args_optional_with_metavar,  s    88:7#5U;x55O#{{557J	L 	x55O#{{557J	Lr   c                 \   U R                   R                  5       nUR                  S5        UR                  SSSS9  U R                  [        R
                  SU R                   R                  / SQ5        U R                  [        R
                  SU R                   R                  / S	Q5        g )
NrZ  rp  r  )BAZ1r  z/argument BAZ1: not allowed with argument --bar$r	  z/argument --bar: not allowed with argument BAZ1$r	  r	  r	  s     r   Ctest_conflicting_mutually_exclusive_args_zero_or_more_with_metavar1STestExitOnError.test_conflicting_mutually_exclusive_args_zero_or_more_with_metavar17  s    88:7#5Y?x55P#{{557J	L 	x55P#{{557J	Lr   c                 \   U R                   R                  5       nUR                  S5        UR                  SSSS9  U R                  [        R
                  SU R                   R                  / SQ5        U R                  [        R
                  SU R                   R                  / S	Q5        g )
NrZ  rp  r  )r	  BAZ2r  z8argument BAZ1\[, BAZ2]: not allowed with argument --bar$r	  z8argument --bar: not allowed with argument BAZ1\[, BAZ2]$r	  r	  r	  s     r   Ctest_conflicting_mutually_exclusive_args_zero_or_more_with_metavar2STestExitOnError.test_conflicting_mutually_exclusive_args_zero_or_more_with_metavar2B  s    88:7#55EFx55Z#{{557J	L 	x55Z#{{557J	Lr   c                 `   U R                   R                  S5        U R                   R                  SSS9  U R                   R                  S5        U R                  [        R                  SU R                   R
                  S/5        U R                  [        R                  SU R                   R
                  S	/5        U R                  [        R                  S
U R                   R
                  / SQ5        U R                  [        R                  SU R                   R
                  / SQ5        g )Nr  r  r*  r+  --fooglez7ambiguous option: --foob could match --foobaz, --foobler  z:ambiguous option: --foob=1 could match --foobaz, --fooble$--foob=1z8ambiguous option: --foob could match --foobaz, --fooble$)r  rl  r	  r  )r	  r	  r  r`	  r!   s    r   test_ambiguous_option%TestExitOnError.test_ambiguous_optionM  s      ,  L A  ,x55IKK""XJ	0 	x55LKK""ZL	2 	x55JKK""$D	F 	x55LKK""$A	Cr   c                     U R                   R                  S5        U R                  [        R                  SU R                   R
                  S/5        g )Nr~   z)No such file or directory: 'no-such-file'z@no-such-filer`	  r!   s    r   test_os_errorTestExitOnError.test_os_error^  s@      (x55J#{{557H	Jr   rJ	  N)r&   r'   r(   r)   rW   rR	  rU	  rY	  r\	  ra	  re	  rh	  rk	  ro	  rs	  rv	  r{	  r~	  r	  r	  r	  r	  r	  r	  r*   r#   r   r   rL	  rL	    sn    F
=;L
W
;;;;;;;;;;	L	L	LC"Jr   rL	  c                       \ rS rSrS rSrg)TestTranslationsii  c                 .    U R                  [        5        g r]   )assertMsgidsEqualr5   r!   s    r   test_translations"TestTranslations.test_translationsk  s    x(r   r#   N)r&   r'   r(   r)   r	  r*   r#   r   r   r	  r	  i  s    )r   r	  c                  @    0 [         l        [        5       [        l        g r]   )r?  rG  r  re  r#   r   r   tearDownModuler	  o  s    EJEJr   __main__r  z--snapshot-update(  r7   rD   r=	  r   r5  ra   rn   rl   r   rx  r^   unittestr5   r  enumr   test.supportr   r   test.support.i18n_helperr   r   r   TextIOWrapperr
   rN   r.   skip_unless_working_chmodr  rZ   r   r   r   r   r   r6   r   r   r   r  r   r  r)  r8  r>  rN  rP  rV  rX  rf  ri  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r*  r-  r/  r4  r6  rV  rZ  r\  r_  ra  rc  re  rg  ri  rn  rq  rs  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r   r   r1  rW  rv  	eq_stderrrc  r}  
eq_bstderrr?  rM  rY  r_  re  skip_if_dac_overriderm  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r$  rL  rX  ra  rf  rn  rx  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r)  r+  r1  r5  r9  r?  rB  rG  rL  rO  rT  rZ  r\  r^  r`  rb  rd  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rC  rK  r`  r  r  r  r  r  r  r  r  r  r+  rH  rg  r}  r  r#	  r6	  rB	  rL	  r	  r	  r&   lenr   r:   mainr#   r   r   <module>r	     sr      	  	   
       ( " W :""" :$FH%% F:x    $$D6 D %D.& ) )%) %# L>!8!8 >q9D q9f 		&'7Cn n 4. ^  ~ .
> 
n . $ &N & ( , .^  
 
	> 	 . .  .> &. "> "
N 
~ N N > > >@
 
	 		> 	 &^  ~  &N "~ "n "n &N &
 
@~ N N 	^ 		N 	N > . > >    ( "~   $  ~ n ^ N 	n 	^ N . , . ,> 
^ 
	N 	>  
. 

. 
   ~ "
 

 
> &~ &.    ^ 6. 2 (. **L. *Z\> DKx K0 h h , ,, W%h'	h'	n-	/
/
/F /"L. 03< 3"\> .'F '" L.   , L.   & \>     
] 
  
,8 ,,
 
$~ . ,> ,>8 >.>N >BJX J$~ T T0[ [B!+H !+NM Mf@&x @&D1?f 1?h '8  F( (V7H B!'8 !H*( *Z''8 'T%7H %P' 'R/('8 /(d GX  F w  F (  Lf 	-	
	(	
	&	
	1	
	0	
	7	
	0	
	>	X0h X0|8X 8."( "&Q1$ Q1f 		*>5"E"l "H3B| 3Bl,< ,^ >1< 1h% %P3 3l6L 6r< ,\ >L :!| !H< 2# #L< D!L !H\ 4| 01\ 1ha7X a7H+ +\\ "
< 
L *| (L 4 *| (< *\ .< 0< 6\ 8.l .b-\ -`0| 0dL (L 2 :' 'V< :% %XEIh EIV-( -<3E8 3EtEQh EQXE/( E/V7H 7J-8 -$* *.H .$65h 65z
88 
8"};h };H+(h +(b*) *)Z|LX |LF\T \T~) )0eDX eDP.x .@BX B ( 0VJh VJz)+ ) z
388}qSXXa[,??$X.MMO r   