python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_argparse.cpython-311.opt-2.pyc

eddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddlmZGddejZGddejZGdd	ejZejGd
deZGdd
eZGddeZGddeZdZGddejZGddeZ efZ!e de!iZ"Gdde"Z#Gdde"Z$Gdde"Z%Gdde"Z&Gd d!e"Z'Gd"d#e"Z(Gd$d%e"Z)Gd&d'e"Z*Gd(d)e"Z+Gd*d+e"Z,Gd,d-e"Z-Gd.d/e"Z.Gd0d1e"Z/Gd2d3e"Z0Gd4d5e"Z1Gd6d7e"Z2Gd8d9e"Z3Gd:d;e"Z4Gd<d=e"Z5Gd>d?e"Z6Gd@dAe"Z7GdBdCe"Z8GdDdEe"Z9GdFdGe"Z:GdHdIe"Z;GdJdKe"Z<GdLdMe"Z=GdNdOe"Z>GdPdQe"Z?GdRdSe"Z@GdTdUe"ZAGdVdWe"ZBGdXdYe"ZCGdZd[e"ZDGd\d]e"ZEGd^d_e"ZFGd`dae"ZGGdbdce"ZHGdddee"ZIGdfdge"ZJGdhdie"ZKGdjdke"ZLGdldme"ZMGdndoe"ZNGdpdqe"ZOGdrdse"ZPGdtdue"ZQGdvdwe"ZRGdxdye"ZSGdzd{e"ZTGd|d}e"ZUGd~de"ZVGdde"ZWGdde"ZXGdde"ZYGdde"ZZGdde"Z[Gdde"Z\Gdde"Z]Gdde"Z^Gdde"Z_Gdde"Z`Gdde"ZaGdde"ZbGdde"ZcGdde"ZdGdde"ZeGdde"ZfGdde"ZgGdde"ZhGdde"ZiGdde"ZjGdde"ZkGdde"ZlGdde"ZmGdde"ZnGdde"ZoGdde"ZpGdde"ZqGdde"ZrGdde"ZsGdde"ZtGdde"ZuGdde"ZvGddee"ZwGd„dee"ZxGdĄdeZyeZzeZ{GdƄdǦZ|e|dȦZ}e|dɦZ~e|dʦZe|d˦Ze|d̦Ze|dͦZGd΄deZGdЄdee"ZGd҄dee"ZGdԄdee"ZGdքdeZejGd؄dee"ZejGdڄdee"ZejGd܄dee"ZejGdބdeZGddeZGddeZGdde"ZGdde"ZGdde"ZGddeZGdde"ZGddeZGdde"ZGddeZGddeZGddeZGddeZGddeZGddeeZGddeeZGddeeZGddeeZGddeeZGddeeZGdd	eeZGd
deeZGdd
eeZGddeZGddeeZGddeeZGddeeZGddeeZGddeeZGddeeZGddeeZGddeeZGd d!eZGd"d#eZGd$d%eZGd&d'eZefZ!ed(e!iZGd)d*eZGd+d,eZGd-d.eZGd/d0eZGd1d2eZGd3d4eZGd5d6eZGd7d8eZGd9d:eZGd;d<eZGd=d>eZGd?d@eZGdAdBeZGdCdDeZGdEdFeZGdGdHeZGdIdJeZGdKdLeZGdMdNeZGdOdPeZGdQdReZGdSdTeZGdUdVeZGdWdXeZGdYdZeZGd[d\eZGd]d^eZGd_d`eZGdadbeZGdcddeZGdedfeZGdgdheZGdidjeZGdkdleZGdmdneZGdodpeZGdqdreZGdsdteZGdudveZGdwdxeZGdydzeZGd{d|eZGd}d~eZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZGddeZdZedkrejdSdS(N)	os_helper)mockc(eZdZ	dfd	ZdZxZS)StdIOBuffer
c|d}ttjtj|d|dS)Nutf-8)newline)encodesuper__init__ioBufferedWriterBytesIO)self
initial_valuer	__class__s   F/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_argparse.pyrzStdIOBuffer.__init__s]%,,W55

*2:m+D+DEE '		3	3	3	3	3c||jjdS)Nr
)flushbufferrawgetvaluedecoders rrzStdIOBuffer.getvalue#s3

{''))00999r)rr)__name__
__module____qualname__rr
__classcell__rs@rrrsQ333333
:::::::rrceZdZdZdZdS)
StdStreamTestctj}tjd5t	jd5|dddddn#1swxYwYddddS#1swxYwYdS)Nargparse._sys.exitrfoo)statusmessage)argparseArgumentParser
contextlibredirect_stderrrpatchexitrparsers  rtest_skip_invalid_stderrz&StdStreamTest.test_skip_invalid_stderr*s(**&t,,	1	1J+,,	1	1
KKq%K000		1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s4A9A!A9!A%	%A9(A%	)A99A=A=ctj}|j|jt	j|jdgfD]
}||5tj	d5t5}tj|5tj
d5|||ddddn#1swxYwYdddn#1swxYwYdddn#1swxYwYdddn#1swxYwYdddn#1swxYwYdS)N-h)funcr&zusage:)r*r+print_usage
print_help	functoolspartial
parse_argssubTestr,redirect_stdoutrr-rr.assertRegexr)rr1r5
mocked_stderrs    rtest_skip_invalid_stdoutz&StdStreamTest.test_skip_invalid_stdout2s(**f/$88
	F	FD$''	
F	
F*400	
F	
F

		
F"/*=99	
F	
F
/00
	
F	
F  !7!7!9!99EEE	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	
F	F	FsD>*D'9D	C9#3C"
C9"C&&C9)C&*C9-D	9C==D	C=D	D'D
D'D
D'D>'D++D>.D+/D>>E	E	N)rrr r2r?rrr$r$(s7111FFFFFrr$ceZdZdZdS)TestCasec\|tj}d|d<dS)N80COLUMNS)enterContextrEnvironmentVarGuardrenvs  rsetUpzTestCase.setUpGs-	 = ? ?@@IrN)rrr rJr@rrrBrBEs#rrBc&eZdZdZdZdZdZdS)TempDirMixinctj|_tj|_tj|jdSN)tempfilemkdtemptemp_dirosgetcwdold_dirchdirrs rrJzTempDirMixin.setUpRs7 (**
y{{
rc>tj|jtj|jdD]M\}}}|D]D}tjtj|j|tj	ENtj|jddS)NF)topdownT)rRrUrTwalkrQchmodpathjoinstatS_IWRITEshutilrmtree)rrootdirsfilesnames     rtearDownzTempDirMixin.tearDownWs
!#!F!F!F	K	KD$
K
KdmT::DMJJJJ
K
dmT*****rctj|j|}t	|dd5}||dddn#1swxYwY|S)Nwr
encoding)rRrZr[rQopenwrite)rfilename	file_pathfiles    rcreate_writable_filez!TempDirMixin.create_writable_file^sGLL99	
)S7
3
3
3	!tJJx   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!sAA!Acjtj||tjdSrN)rRrYrnr\S_IREAD)rrks  rcreate_readonly_filez!TempDirMixin.create_readonly_fileds*
**844dlCCCCCrN)rrr rJrdrnrqr@rrrLrLOsU   
+++DDDDDrrLceZdZdZdS)Sigc"||_||_dSrN)argskwargsrrurvs   rrzSig.__init__is	rNrrr rr@rrrsrsgs#rrsc eZdZdZdZdZdS)NSc:|j|dSrN)__dict__update)rrvs  rrzNS.__init__ps
V$$$$$rct|j}dd|D}t	|jd|dS)Nz, cg|]}d|zS)z%s=%rr@).0tups  r
<listcomp>zNS.__repr__.<locals>.<listcomp>usEEEw}EEEr())sortedr|itemsr[typer)rsorted_items	kwarg_strs   r__repr__zNS.__repr__ss[dm113344IIEEEEEFF	::...			::rcBt|t|kSrN)varsrothers  r__eq__z	NS.__eq__xsDzzT%[[((rN)rrr rrrr@rrrzrznsA%%%;;;
)))))rrzceZdZddZdS)ArgumentParserErrorNcxt||||||_||_||_||_dSrN)	Exceptionrr)stdoutstderr
error_code)rr)rrrs     rrzArgumentParserError.__init__~s<4&&999$r)NNNrxr@rrrr|s(%%%%%%rrc
0ttjtsttjtr||i|Stj}tj}tt_tt_		||i|}tt
|D]}t||}|tjurt|||2|tjj	ur&t||t|dtk|tjurt||||tjj	ur%t||t|dt||t_|t_S#t$r[}|j
}	tj}
tj}td|
||	dd}~wwxYw#|t_|t_wxYw)Nr
SystemExit)
isinstancesysrrrlistrgetattrsetattrrBIN_STDOUT_SENTINELBIN_STDERR_SENTINELrcoderr)r:rurv
old_stdout
old_stderrresultkeyattrerrrs            rstderr_to_parser_errorrs#*k**+j[.Q.Q+z4*6***JJCJCJ 	>Z000FDLL))	
]	
]vs++3:%%FC4444SZ...FCXGZ)[)[\\\\SZ''FC4444SZ...FCXGZ)[)[\\\ 


	>	>	>6DZ((**FZ((**F%ffd449=
>		> 

s&C)F
G8AG33G88G;;Hc2eZdZfdZfdZfdZxZS)ErrorRaisingArgumentParsercXtt|j}t|g|Ri|SrN)r
rr:r)rrurvr:rs    rr:z%ErrorRaisingArgumentParser.parse_argss45t<<G
%jB4BBB6BBBrcXtt|j}t|g|Ri|SrN)r
rr/r)rrurvr/rs    rr/zErrorRaisingArgumentParser.exits4/66;%d<T<<<V<<<rcXtt|j}t|g|Ri|SrN)r
rerrorr)rrurvrrs    rrz ErrorRaisingArgumentParser.errors40$77=%e=d===f===r)rrr r:r/rr!r"s@rrrsoCCCCC=====>>>>>>>>>rrceZdZ	dZdS)ParserTesterMetaclassc|dkrdSt|dst|_t|dst|_d}d}d}d}d}Gd	d
t
}	|||fD]}
||fD]}|	||
|dS)NParserTestCaseparser_signatureparser_classc@	|D]}|j|ji|jdSrN)add_argumentrurv)r1argument_signaturessigs   r	no_groupsz1ParserTesterMetaclass.__init__.<locals>.no_groupss=:*
=
=##SX<<<<<
=
=rcj	|d}|D]}|j|ji|jdS)Nr')add_argument_grouprrurv)r1rgrouprs    r	one_groupz1ParserTesterMetaclass.__init__.<locals>.one_groupsPF--e44E*
<
<""CH;
;;;;
<
<rc	t|D]4\}}|d|z}|j|ji|j5dS)Nzfoo:%i)	enumeraterrrurv)r1rirrs     rmany_groupsz3ParserTesterMetaclass.__init__.<locals>.many_groupssaB#$788
<
<311(Q,??""CH;
;;;;
<
<rc.	||SrN)r:)r1rus  rlistargsz0ParserTesterMetaclass.__init__.<locals>.listargss5$$T***rc	tj}|dg|zt_	||t_S#|t_wxYw)Nr)rargvr:)r1ruold_sys_argvs   rsysargsz/ParserTesterMetaclass.__init__.<locals>.sysargssO:8L$Q(4/CH
(((**'<''''sAAc&eZdZdZdZdZdZdS)0ParserTesterMetaclass.__init__.<locals>.AddTestsc||_||_|jj}|jj}|j|jfD]R}|j}|||f}d|}	|fd}
	|	|
_n#t$rYnwxYwt||	|
SdS)N_c||dSrNr@r	test_funcs  rwrapperzJParserTesterMetaclass.__init__.<locals>.AddTests.__init__.<locals>.wrapper!	$r)_add_arguments_parse_argsr
test_failurestest_successesr[	TypeErrorr)r
tester_cls
add_argumentsr:add_arguments_nameparse_args_namer	func_namenames	test_namers           rrz9ParserTesterMetaclass.__init__.<locals>.AddTests.__init__s&3##- %)%8%A""&"2";"&"4d6I!J<<I ) 2I%'9?JE #I09((((+4(($J	7;;;;<<sA&&
A32A3c|jj}|jj}|j|i|}|||j|SrN)rrurvrrr)rtesterrurvr1s     r_get_parserz<ParserTesterMetaclass.__init__.<locals>.AddTests._get_parsersM.307,,d=f==##FF,FGGG
rc||}|jD]_}|}|t|5||dddn#1swxYwY`dS)N)msg)rfailuressplitassertRaisesrr:)rrr1args_strrus     rrz>ParserTesterMetaclass.__init__.<locals>.AddTests.test_failuress))&11 &00H#>>++D,,-@d,KK00))$///00000000000000000sA11A5	8A5	c||}|jD]Z\}}t|tr|}|||}|||[dSrN)r	successesrstrrrassertEqual)rrr1ruexpected_ns	result_nss      rrz?ParserTesterMetaclass.__init__.<locals>.AddTests.test_successess))&11)/)9??%D+!$,,,#zz|| $ 0 0 > >I&&{I>>>>	??rN)rrr rrrrr@rrAddTestsrsP
<
<
<&



0
0
0
?
?
?
?
?rr)hasattrrsrrrobject)clsrcbasesbodydictrrrrrrrr:s            rrzParserTesterMetaclass.__init__s###Fs.//	)#&55C sN++	:9C
	=	=	=
	<	<	<	<	<	<	+	+	+	(	(	()	?)	?)	?)	?)	?v)	?)	?)	?Z(K@	9	9M'1
9
9
mZ8888
9	9	9rNrxr@rrrrs-
_9_9_9_9_9rrrceZdZ	edgZgdZdedfdedfdedfd	ed
fded
fgZdS)TestOptionalsSingleDash-x)ra--foo-x --fooz-x -yrNx-x ar-xaz-x -1-1z-x-1rrr rsrrrzrr@rrrr3s;3t99+888H	RR$ZZZ	c	S				""t***	dIIIrrceZdZ	eddedddedgZgd	Zd
eddd
fdeddd
fdeddd
fdeddd
fdeddd
fdeddd
fdeddd
fdeddd
fdeddd
fdeddd
fdeddd
fdeddd
fgZdS)TestOptionalsSingleDashCombinedr
store_trueactionz-yyystore_const*rconst-z)rrrrz-x -zz-z -xz-yxz-yz az-yyyxz-yyyzaz-xyzaz-x=rFN)ryyyzT-zar-z az-xzaz-xz az-x -zaz-x -z a-yz-x -yyy -zaz-x -yyy -z arr@rrrrAs;	D&&&F=333D		
CCCH
RR%TT
*
*
*+	
rrDdd+++,	U,,,-	e---.	d,,,-	""t---.	22$#.../	BB43///0	
rrErT***+	et,,,-	TrS1112	dc2223
IIIrrceZdZ	edgZgdZdedfdedfded	fd
edfdedfgZdS)TestOptionalsSingleDashLong-foo)rrrz
-foo --fooz-foo -y-fooarNr'z-foo arz-foo -1rz-fo a-f arr@rrr
r
[sK3v;;-GGGH	RRD\\\	22#;;;	BB4LLL!	""+++	IIIrr
c.eZdZ	edededgZgdZdedddfded	ddfd
ed	ddfdedddfd
edddfdedd	dfdeddd	fgZdS)&TestOptionalsSingleDashSubsetAmbiguous-f-foobar-foorab)rr-fo-foo bz-foobz-foobaz-foorarN)ffoobarfoorabrr-fa-foaoarooa	-foobar a	-foorab arr@rrrrisG3t99cc)nncc)nnEKKKH	RR$tD
1
1
12	c$t4445	Sd3334	d45556	""uT$7778	bb4D999:	bb4S999:IIIrrceZdZ	ededgZgdZdeddfdeddfd	eddfd
eddfdeddfdeddfd
eddfgZdS) TestOptionalsSingleDashAmbiguousrr)rrrrrrrrN)rrz-foob arz-foor az-fooba az-foora ar r!rr@rrr#r#ysA3y>>33y>>:EEEH	RRtD
)
)
)*	BBc$///0	BBd3///0	RRs40001	RRtC0001	bbD1112	bbS1112IIIrr#ceZdZ	eddgZgdZdedfded	fd
ed	fdedfgZdS)
TestOptionalsNumericronedest)rrz-1 --fooz-1 -yz-1 -1z-1 -2rN)r&z-1 arz-1az-1-2-2rr@rrr%r%s23t%0001AAAH	RRD\\\		s		IIIrr%ceZdZ	edgZgdZdedfdedfdedfd	ed
fded
fgZdS)TestOptionalsDoubleDashr)rrrrz--foo -xz--foo --barrNrz--foo arz--foo=az
--foo -2.5z-2.5z
--foo=-2.5rr@rrr+r+s;3w<<.FFFH	RRD\\\	BB3KKK 	BB3KKK 	rrf~~~&	rrf~~~&IIIrr+c
eZdZ	eddedgZgdZdedd	fd
edd	fded
d	fded
d	fded
d	fded
d	fgZdS)#TestOptionalsDoubleDashPartialMatch--badgerrrz--bat)--bar--b--ba--b=2z--ba=4	--badge 5rFN)badgerbatz--bat XX--badT--badg--badgerr@rrr-r-sA	J|,,,GHGGH	RRu$
'
'
'(	BBe---.	""Dd+++,	22Tt,,,-	BBd---.	RRt.../
IIIrr-ceZdZ	eddedgZgdZdedd	fd
edd	fdedd	fd
edd	fdedd	fdedd	fdedd	fgZdS)"TestOptionalsDoubleDashPrefixMatchr.rrr1)r/r0r1r2r3rFN)r4baz--ba Xr6z--ba=Xr7Tr8r9rr@rrr;r;sI	J|,,,F>==H	RRu
&
&
&'	22Us+++,	22Us+++,	""DT***+	22Td+++,	BBdt,,,-	RRt---.IIIrr;ceZdZ	eddededddgZgd	Zd
eddd
fdeddd
fdeddd
fdeddd
fdeddd
fdeddd
fgZdS)TestOptionalsSingleDoubleDashrrrr/-bazrrr)r/-fbarz-fbazz-bazf-b BBrFNrbarbazTz--ba BrBz
-f --bar Bz-f -bz-ba -frr@rrr>r>sF	D&&&GF=333
A@@H	RR%Tt
,
,
,-	
rrDd---.	223D1112	rrDct4445	""t2.../	22$B///0
IIIrr>c4eZdZ	eddZeddededd	d
gZgdZd
edddfdedddfdedddfdedddfdeddd
fdeddd
fgZdS)!TestOptionalsAlternatePrefixChars+:/Fprefix_charsadd_help+frr::bar/bazrrr)r/r@rArBr--bar Br?r4--helpz+hz::helpz/helprNrCT::ba BrB
+f ::bar B+f /b/ba +f	rrr rsrrrrzrr@rrrGrGs
Cs>>>D&&&GF=333
qppH	RR%Tt
,
,
,-	
rrDd---.	223D1112	rrDct4445	""t2.../	22$B///0
IIIrrGc4eZdZ	eddZeddededd	d
gZgdZd
edddfdedddfdedddfdedddfdeddd
fdeddd
fgZdS)*TestOptionalsAlternatePrefixCharsAddedHelprHTrIrLrrrMrNrrr)r/r@rArBrrOr?rFNrCrQrBrRrSrTrUr@rrrWrWs+s===D&&&GF=333
HGGH	RR%Tt
,
,
,-	
rrDd---.	223D1112	rrDct4445	""t2.../	22$B///0
IIIrrWc	eZdZ	eddZeddeddeddgZgd	Zd
edddfdedddfd
edddfdedddfgZdS)2TestOptionalsAlternatePrefixCharsMultipleShortArgsz+-FrIrrrz+yz+z)-wz-xyzz+xrz+xyzrryrTz+y -xz+yz -xNrUr@rrrYrYsJsu===D&&&D&&&D&&&
H
RR%5E
*
*
*+	
rrDEU+++,	""ttu---.	22---.	IIIrrYceZdZ	edddddgZgdZded	
fded
fded
fded
fded
fgZdS)
TestOptionalsShortLong-vz	--verbosez-nz--noisyrr)z
--x --verbosez-Nrz-v xrF)verboseTNrr@rrr^r^sF	D+tY|DDD433H	RR


	
rr$ 	bb&&&'	
rr$ 	BBt$$$%IIIrr^ceZdZ	ededdgZdgZdedd	fd
edd	fded
d	fdedd	fgZdS)TestOptionalsDestz	--foo-bar--bazzabbazr'rz--foo-bar frN)foo_barrdz--baz ggz--foo-bar h --baz ihrz--baz j --foo-bar kkjrr@rrrbrb-s43{++SSx-H-H-HIuH	3t4445	BBtC0001	3s ; ; ;<	3s ; ; ;<	IIIrrbceZdZ	ededdgZdgZdeddfd	ed
dfdeddfgZdS)
TestOptionalsDefaultrrrdefaultrrNrr\z-xxrz-yyr\rr@rrrkrk:s43t99cc$&;&;&;<uH	RR$"


	SB 	TS!!!"IIIrrkcheZdZ	edgZddgZdedfdedfgZdS)TestOptionalsNargsDefaultrrrNrrrr@rrrprpFsUA3t99+T{H	RR$ZZZ	cIIIrrpcneZdZ	eddgZddgZdedfdedgfgZdS)	TestOptionalsNargs1rnargsrrNrrrr@rrrrrrQs_03t1---.T{H	RR$ZZZ	seIIIrrrcpeZdZ	eddgZgdZdedfdegd	fgZdS)
TestOptionalsNargs3rrt)rrr-x a ba -xa -x brNrz-x a b crbcrr@rrrwrw\sf13t1---.>>>H	RR$ZZZ	RR///***+IIIrrwceZdZ	eddedddeddd	ed
dedd
gZdgZdeddddfdeddddfdeddddfdeddddfdeddddfdeddddfdeddddfd
eddddfdeddddfg	ZdS)TestOptionalsNargsOptionalrZ?rtrr)rurrspamrurmr4284)rurrrm2rNTrfrr\rz-w 2z-x 2z-y 2z-z 2	rrr rsintrrrzrr@rrrrgsp:	DD2&&&DV,,,D#T4@@@	uH	RR$$&B
/
/
/0	
rrDDFb1112	cTVr2223	
rrDB&B///0	dcVr2223	
rrDDDB///0	ddcR0001	
rrDDFb1112	ddf2223
IIIrrc eZdZ	eddedddgZdgZded	d
fdegd
fdedgd
fdedd
gd
fded	g
fded	dg
fded	dd
g
fgZd	S)TestOptionalsNargsZeroOrMorer*rtrrrrrNrnrryr}-y a-y a brr@rrrr~sI	DDV,,,uH	RR$&
!
!
!"	
rrB&!!!"	sev&&&'	22c
f---.	
rrDB 	dse$$$%	22c
+++,IIIrrc
eZdZ	eddedddgZgdZded	d
fdedgd
fd
eddgd
fded	dg
fded	ddg
fgZd	S)TestOptionalsNargsOneOrMorer+rtrrr)rrrrzza -y brNrnrrryr}rrrr@rrrrsH	DDV,,,322H	RR$&
!
!
!"	sev&&&'	22c
f---.	dse$$$%	22c
+++,IIIrrc
eZdZ	eddedeedgZgdZded	d	
fdedd	
fd
edd	
fded	d
fded	d
fdedd
fgZ	d	S)TestOptionalsChoicesrabcchoicesz-grr)rz-f dz-fadz-gaz-g 6rN)rrfrrz-f cr~z-g 0rz-g 03rxz-fb -g4r}
rrr rsrrangerrrzrr@rrrrs6	D%   DsEE!HH---/433H	RR$$


 	cT"""#	cT"""#	da!	""tq///"	BBNNN#
IIIrrcneZdZ	ededgZddgZdedfd	ed
fgZdS)TestOptionalsRequiredrTrrequiredrr-x 1rsrz-x42rNrr@rrrrse3	DsT***RyH	a	bIIIrrcleZdZ	eddgZddgZdedfd	ed
fgZdS)TestOptionalsActionStorerstorerrrzrNrz-xfoor'rr@rrrrs]03tG4445V}H	RR$ZZZ	""u+++IIIrrcleZdZ	eddegZdgZdedfdeefgZdS)TestOptionalsActionStoreConstrrrrrNr\)	rrr rsrrrrzrr@rrrrs]63tMHHHIuH	RR$ZZZ	
rrF|||IIIrrcleZdZ	eddgZgdZdedfdedfgZd	S)
TestOptionalsActionStoreFalserstore_falser)rr	r
rT)rFNrr@rrrrs_63tM:::;###H	RR$ZZZ	
rrE{{{IIIrrcleZdZ	eddgZgdZdedfdedfgZd	S)
TestOptionalsActionStoreTruez--applerr)rz	--apple=bz	--apple brF)appleTNrr@rrrrs_53y>>>?...H	RRe___	BBTNNN#IIIrrceZdZ	edejgZddgZdedfdedfd	ed
fded
fdedfgZ	d
Z
dS)TestBooleanOptionalActionrr	--foo bar	--foo=barrNrT--no-fooFz--foo --no-fooz--no-foo --fooc$tj}|t5}|ddtjdddn#1swxYwY|dt|jdS)NrTrrz*got an unexpected keyword argument 'const')	r*r+rrrBooleanOptionalActionassertInr	exceptionrr1cms   r
test_constz$TestBooleanOptionalAction.test_consts(**


y
)
)	\RtH<Z[[[	\	\	\	\	\	\	\	\	\	\	\	\	\	\	\	


BCDUDUVVVVVs#AA!$A!)rrr rsr*rrrrzrrr@rrrrs%3wx/MNNNO[)H	RRD\\\	"",,,	RRE]]]#	22%===)	22$<<<(IWWWWWrrcveZdZ	eddejgZdgZdedfdedfgZ	dS)	!TestBooleanOptionalActionRequiredrT)rrrrrFN)
rrr rsr*rrrrzrr@rrrrsf.	Gd8+IJJJtH	"",,,	RRE]]]#IIIrrceZdZ	eddgZgdZdedfded	gfd
ed	dgfgZdS)TestOptionalsActionAppendrcappendrrrca --baz	--baz a brNrE--baz ar--baz a --baz br}rr@rrrrsz13wx8889555H	RRD\\\	BBC5MMM"	BBC:.../IIIrrceZdZ	edddggZgdZdedgfdedd	gfd
egdfgZdS)
$TestOptionalsActionAppendWithDefaultrcrr6rrmrrrrrr)r6rr}Nrr@rrrrs13wx#GGGH555H	RRSE]]]	BBC:&&&'	BB???3334IIIrrc$eZdZ	eddeddeddeddgZgdZd	ed
d
d
d
fded
gd
d
d
fded
d
gd
d
fded
d
d
d
fded
d
d
d
fgZd
S)!TestConstActionsMissingConstKwargrappend_constrr-brr/)z-f vrrrN)rr'r}rDrr@rrrr$sG	D(((GN+++D'''GM***	211H	RR$DDd
3
3
34	
rrTF$7778	""t$4T:::;	
rrDdd5556	""t48889IIIrrc	eZdZ	eddeedddgZgdZd	ed
fdeegfdeed
edgfgZd
S)TestOptionalsActionAppendConstrrr-crr}rr(rrza -cz-bxz-b xrNr}-b -cx -b -cyzryz	rrr rsrrrrzrr@rrrr7s7	Dy999D,,,211H	RR$ZZZ	
rrYK   !	22CD ABBBCIIIrrc
eZdZ	eddedgedddgZgd	Zd
edgfdedegfdeded
edgfgZdS))TestOptionalsActionAppendConstWithDefaultrrr6)rrrmrrr}rrrrrrrNrr@rrrrFs7	Dy3%HHHD,,,211H	RR3%[[[	
rrS)$%%%&	22ii FGGGHIIIrrcleZdZ	eddgZgdZdedfdedfgZdS)	TestOptionalsActionCountrcountr)rrz-x bz	-x a -x brNrrsrr@rrrrUs^03tG4445111H	RR$ZZZ	
rrAwwwIIIrrc	eZdZ	edededdgZddgZded	d	d
fded
d	d
fded	dd
fdedd	dfgZd	S)"TestOptionalsAllowLongAbbreviationrz--foobazz--fooblerrz--foob 5z--foobrNF)r'foobazfooblez--foo 77z	--fooba arz--foobl --foo grfTrr@rrrr`s<	GJJ|,,,
H%H	RRDe
4
4
45	BB3tE:::;	bbT#e<<<=	BB3tDAAAB	IIIrrceZdZ	edZededdedgZgdZd	ed
dd
fded
dd
fdedddfgZd
S)%TestOptionalsDisallowLongAbbreviationFallow_abbrevrz--foodlerrz--foonly)z-foon 3z--foon 3z--foodz--food --foo 2rNr'foodlefoonlyz--foo 33z--foonly 7 --foodle --foo 2rTrrUr@rrrrqs;s...GJ|,,,J
CBBH	RRDt
4
4
45	BB3uT:::;	&s4(L(L(LMIIIrrceZdZ	eddZededdedgZgd	Zd
edddfd
edddfdedddfgZdS)0TestOptionalsDisallowLongAbbreviationPrefixCharsrFrJrz++fooz++foodlerrz++foonly)z+foon 3z++foon 3z++foodz++food ++foo 2rNrz++foo 3rz++foonly 7 ++foodle ++foo 2rTrrUr@rrrrsLs%@@@GJ|,,,J
CBBH	RRDt
4
4
45	BB3uT:::;	&s4(L(L(LMIIIrrc
eZdZ	edZededdgZddgZded	d	
fdedd	
fd
edd	
fded	d
fdedd
fdedd
fgZd	S)/TestDisallowLongAbbreviationAllowsShortGroupingFrz-rrrrz-c -rrNrr~z-rarz-rccccz-ccrz-cc -raz-ccrccrUr@rrrrs;s...D		D!!!gH	RR$$


 	SD!!!"	dd###$	TQ 	BBNNN#	22???#
IIIrrc
eZdZ	eddZededdgZddgZd	ed
d
fded
d
fdedd
fded
dfded
dfdeddfgZd
S)5TestDisallowLongAbbreviationAllowsShortGroupingPrefixrFrz+rz+crrz+c +rrNrz+rarz+rccrz+ccrz+cc +raz+ccrccrUr@rrrrsOs%@@@D		D!!!gH	RR$$


 	SD!!!"	dd###$	TQ 	BBNNN#	22???#
IIIrrcNeZdZ	edgZgdZdedfgZdS)TestPositionalsNargsNoner'rra brrNrr@rrrrsE63u::,   H	bbSkkkIIIrrcTeZdZ	eddgZgdZdedgfgZdS)TestPositionalsNargs1r'rsrtrrrNrr@rrrrsO83uA.../   H	bbcUmmmIIIrrcVeZdZ	eddgZgdZdeddgfgZd	S)
TestPositionalsNargs2r'rrt)rrra b crrr}rNrr@rrrrsT83uA.../'''H	Sz"""#IIIrrceZdZ	eddgZdgZdegfdedgfdedd	gfgZd
S)TestPositionalsNargsZeroOrMorer'rrtrrrrrr}Nrr@rrrrsv:3uC0001vH	RRBZZZ	bbcUmmm	Sz"""#IIIrrceZdZ	edddgZdgZdedfdedgfd	edd
gfgZdS)%TestPositionalsNargsZeroOrMoreDefaultr'rrDrrrrrrr}Nrr@rrrrsxH3uC???@vH	RRE]]]	bbcUmmm	Sz"""#IIIrrcreZdZ	eddgZddgZdedgfdedd	gfgZd
S)TestPositionalsNargsOneOrMorer'rrtrrrrrr}Nrr@rrrrsf<3uC0001DzH	bbcUmmm	Sz"""#IIIrrcleZdZ	eddgZddgZdedfd	ed	fgZdS)
TestPositionalsNargsOptionalr'rrtrrrNrrrr@rrrrs]&3uC0001e}H	RRD\\\	bbSkkkIIIrrcneZdZ	edddgZddgZdedfd	ed	fgZd
S)#TestPositionalsNargsOptionalDefaultr'rrrrrrrrNrr@rrrr	s_;3uC<<<=e}H	RRBZZZ	bbSkkkIIIrrcpeZdZ	eddedgZgdZdedfd	ed
fgZdS),TestPositionalsNargsOptionalConvertedDefaultr'rr)rurrm)rr1 2rrr1rsNrr@rrrrsk
	E3555$##H	RRBZZZ	bbQiiiIIIrrcdeZdZ	ededgZgdZdeddfgZdS)	TestPositionalsNargsNoneNoner'rD)rrrrrrr}r'rDNrr@rrrr#sU73u::ss5zz2'''H	s$$$%IIIrrcjeZdZ	ededdgZgdZdeddg	fgZd
S)TestPositionalsNargsNone1r'rDrsrt)rrrrrrr}rNrr@rrrr-s^@3u::ss5':':':;***H	s&&&'IIIrrcleZdZ	eddedgZgdZdeddgd	
fgZdS)TestPositionalsNargs2Noner'rrtrDrrrra b c drrr}r~rNrr@rrrr7s`B3uA...E

;333H	""#s---.IIIrrceZdZ	ededdgZddgZdedgfd	edd
gfdedd
dgfgZd
S)"TestPositionalsNargsNoneZeroOrMorer'rDrrtrrrrrr}rr~Nrr@rrrrAsH3u::ss5'<'<'<=G}H	bbSb!!!"	s&&&'	""3*---.IIIrrceZdZ	ededdgZgdZdeddg	fd
edddg	fgZdS)
!TestPositionalsNargsNoneOneOrMorer'rDrrtrrrrrr}rrr~Nrr@rrrrMsyJ3u::ss5'<'<'<=!!!H	s&&&'	""3*---.IIIrrceZdZ	ededdgZgdZdeddfd	edd
fgZdS) TestPositionalsNargsNoneOptionalr'rDrrtrrrrNrrr}rr@rrrrXssJ3u::ss5'<'<'<=%%%H	bbSd###$	s$$$%IIIrrceZdZ	eddedgZddgZdegdfd	edgd
fdedd
gdfgZd
S)"TestPositionalsNargsZeroOrMoreNoner'rrtrDrrrrrr}rr~Nrr@rrrrcsJ3uC000##e**=G}H	bbRS!!!"	u#&&&'	""#s---.IIIrrceZdZ	eddedgZgdZdedgd	fd
eddgd	fgZdS)
!TestPositionalsNargsOneOrMoreNoner'rrtrDrrrr}rrr~Nrr@rrrrosyL3uC000##e**=!!!H	u#&&&'	""#s---.IIIrrceZdZ	edddedgZgdZdeddfd	edd
fgZdS) TestPositionalsNargsOptionalNoner'rrrrDrrrrr}Nrr@rrr r zsuL3uC<<<cc%jjI%%%H	bbRS!!!"	s$$$%IIIrr ceZdZ	eddeddgZgdZdedd	gg
fdedd	gdg
fgZd
S)TestPositionalsNargs2ZeroOrMorer'rrtrDrrrrr}rrr~Nrr@rrr"r"sG3uA...E0E0E0EF!!!H	Szr***+	""#s#///0IIIrr"creZdZ	eddeddgZgdZdedd	gd
gfgZdS)
TestPositionalsNargs2OneOrMorer'rrtrDr)rrrrrrr}r~rNrr@rrr$r$siI3uA...E0E0E0EF(((H	""#s#///0IIIrr$ceZdZ	eddeddgZgdZdedd	gd
fdedd	gd
fgZd
S)TestPositionalsNargs2Optionalr'rrtrDr)rrrrrrr}Nrrr~rr@rrr&r&sA3uA...E0E0E0EF,,,H	Szt,,,-	""#s---.IIIrr&ceZdZ	eddeddgZddgZdegdg	fd
edgdg	fdeddgd
g	fgZdS)TestPositionalsNargsZeroOrMore1r'rrtrDrsrrrrrr}rr~Nrr@rrr(r(sG3uC000##e12E2E2EFGH	bbRcU###$	u3%((()	""#s#///0IIIrr(ceZdZ	eddeddgZgdZdedgd	g
fdedd	gdg
fgZd
S)TestPositionalsNargsOneOrMore1r'rrtrDrsrrrr}rrr~Nrr@rrr*r*sI3uC000##e12E2E2EF!!!H	u3%((()	""#s#///0IIIrr*ceZdZ	eddeddgZgdZdeddg	fd
eddg	fgZdS)TestPositionalsNargsOptional1r'rrtrDrsrrNrrr}rr@rrr,r,s~I3uC000##e12E2E2EF%%%H	bbTu%%%&	s&&&'IIIrr,ceZdZ	ededdeddgZgdZded	gd
gfded	d
gd
gfgZdS)#TestPositionalsNargsNoneZeroOrMore1r'rDrrtrErsrrrr}r'rDrErr~Nrr@rrr.r.sG	E

EE
"!!H	s.../	""3%cU3334IIIrr.ceZdZ	ededdeddgZgdZded	d
gdgfd
ed	d
dgdgfgZdS)"TestPositionalsNargsNoneOneOrMore1r'rDrrtrErs)rrrr}rrr}r~r/rdNrr@rrr1r1sI	E

EE
'&&H	""3%cU3334	BB3S#JSE:::;IIIrr1ceZdZ	ededddeddgZgd	Zd
edddg
fdedddg
fgZdS)!TestPositionalsNargsNoneOptional1r'rDr?rrErsrtrrrr}r/rr~Nrr@rrr4r4sE	E

Ee,,,E
"!!H	sC51112	""#C51112IIIrr4ceZdZ	eddedddgZddgZd	ed
dfdeddfd
eddfgZd
S)$TestPositionalsNargsOptionalOptionalr'rrtrDrrrrrNrrrr}rr@rrr7r7s!	EEb)))!H	RRDb
!
!
!"	bbSb!!!"	s$$$%IIIrr7c	eZdZ	eddeddgZdgZdedg	fd
ed
g	fded
dg	fd
ed
ddg	fgZdS)&TestPositionalsNargsOptionalZeroOrMorer'rrtrDrrrNrrrr}rr~rr@rrr9r9s;3uC000##e32G2G2GHyH	RRDb
!
!
!"	bbSb!!!"	s&&&'	""3*---.	IIIrr9ceZdZ	eddeddgZddgZded	dg
fdeddg
fd
edddg
fgZd	S)%TestPositionalsNargsOptionalOneOrMorer'rrtrDrrrrNrrr}rr~rr@rrr;r;s=3uC000##e32G2G2GHG}H	bbTu%%%&	s&&&'	""3*---.IIIrr;c~eZdZ	ededgZgdZdedfdedfgZdS)	TestPositionalsChoicesStringrabcdefgrrrrgrefrrrfN)	rrr rssetrrrzrr@rrr=r=sg03vss9~~>>>?---H	bbclll	bbclllIIIrr=ceZdZ	edeedgZgdZdedfded	fgZ	d
S)TestPositionalsChoicesIntrrr?4rrA15Nrr@rrrDrD'si'3vCrCCCD---H	bbajjj	
rrr{{{IIIrrDcteZdZ	eddedddgZgdZdedd	d
ggfgZdS)
TestPositionalsActionAppendrrrr)rrurrrr}r~rANrr@rrrJrJ2ss"	F8$$$F81---433H	""3c
+,,,-IIIrrJceZdZ	eddedddgZdd	gZd
edd
fdedd
fdedd
fdedd
fgZdS)"TestOptionalsNumericAndPositionalsrrrtz-4r\rr(rr)z-315rNFrnrTz-4 arr@rrrLrLBsE	CsDs<000f~H	RR$%
 
 
 !	bb3%   !	
rrDD!!!"	cT"""#	IIIrrLc	eZdZ	eddedddgZdgZd	ed
dfd
ed
dfdeddfded
dfdeddfgZd
S)(TestOptionalsAlmostNumericAndPositionalsrrrtz-k4r\rrMz-k3rNFrnr)rTz-k4 arr@rrrOrORsL	CsEL111wH	RR$%
 
 
 !	
rrDE"""#	bb3%   !	TT"""#	""sd###$IIIrrOcDeZdZeddedddgZdgZdgedd	
fdgedd	
fdgedd	
fddged	d
fddged	d
fddged	d
fd
ged	d
fdged	d
fgZd	S)$TestEmptyAndSpaceContainingArgumentsrrrtrz--yyyr\r'rNrnza badgerz	-a badgerz--yyy=a badgerz--yyy=-a badgerrr@rrrQrQcs 	CsD'$$$vH
rrB$ 
rrJ$///0
[D1112
RR$"%%%&

	RR$*5556
	bb4;7778
	RR$*5556
	bb4;7778	IIIrrQc<eZdZedZeddddedd	ed
edd
dgZddgZdedd
dfdedd
dfdedd
dfdedddfdedd
dfdedd
dfgZ	dS) TestPrefixCharacterOnlyArgumentsz-+rJ-rrr4)r(rurrr\r)r(rrmz-+-rrrMrz+ -rNFr[z- Xr6z+ -3Tz- ===z===)
rrr rsrrrrrzrr@rrrSrSvss---CcH555CcR000EL111
e}H	RR$"
&
&
&'	bb8rU+++,	SB%((()	dbE***+	TR4((()	""ue,,,-
IIIrrSceZdZ	eddeddgZgZdedgfdeggfded	ggfd
ed	gdgfd	edd	gfdegd	gfd
edgd	gfgZdS)TestNargsZeroOrMorerrrtr\rNrnrrz	-x a -- br}rzr{rr@rrrXrXsI3t3///S1D1D1DEH	RR$"


	
rrB"~~~	ser"""#	bbC5SE***+	bb4C5!!!"	bSE"""#	22#'''(IIIrrXc	eZdZ	ededdedgZgdZdedgd	fd
edgd	fdedgd
d	fdedddgd	fgZdS)TestNargsRemainderrr\...rtr)rrz-z Zr6Nr[z-z Z XZ
X A B -z Z)ArBrr\z	X Y --fooYrrr@rrrZrZs<3s88SSE%:%:%:CCIIF!!!H	bb3"%%%&	22rS)))*	rrC#8#8#8DAAAB	bb33.D999:	IIIrrZceZdZ	edeedededdgZgd	Zd
eddgfd
eddgfdedddgfdeddgfdeddgfdeddgfdedddgfdedddgfdedddgfdedddgfdedddgfgZdS)TestOptionLikerrz-3r\)rr(rrrt)
rz-y2.5rz-x -az-x -3z-x -3.5z-3 -3.5z-x -2.5z	-x -2.5 az-3 -.5za x -1z-x -1 az-3 -1 arNr[z-x 2.5@z-x 2.5 arz-3.5?z-3-.5gz-3 .5za -3.5za -x 1g?z-x 1 az-3 1 a)	rrr rsfloatrrrzrr@rrraras8	DuDu3'''Cs
000H

RR$$"
%
%
%&	22tr***+	RR##///0	dcR((()	""ttr***+	""tsb)))*	22u---.	bb44C5)))*	22tu---.	22tu---.	22u---.IIIrrac.eZdZ	eddejeddejeddejgZd	gZd
efdedfd
eddgfdedfdeddfdeddgdfgZ	dS)TestDefaultSuppressr'rrrDrrcrrrrrrrr}rTrrr'rErr/N)
rrr rsr*SUPPRESSrrrzrr@rrrgrgs/	Eh&7888Eh&7888GL(2CDDD
vH	RRTT
	bbSkkk	s&&&'	"",,,	BB3D)))*	bbSse6667
IIIrrgc,eZdZ	eejZeddeddedd	gZd
gZde	fde	d
fde	ddgfde	dfde	ddfde	ddgdfgZ
dS)TestParserDefaultSuppressargument_defaultr'rrtrDrrcrrrrrrrr}rTrrrhrr/N)rrr rsr*rirrrrzrr@rrrkrks>sH,=>>>EEGL)))
vH	RRTT
	bbSkkk	s&&&'	"",,,	BB3D)))*	bbSse6667
IIIrrkc\eZdZ	edZedddedd	ed
d	edd
gZdgZdeddddfdeddddfdeddgddfdeddddfdeddddfdeddgddfgZdS)TestParserDefault42rrl	--versionversion1.0rrqr'rrtrDrrcrrrr)r'rDrErqrrr}TrrNrUr@rrroros,8sB///K	5999EEGL)))	vH	RRBBB
3
3
34	bbSbb"5556	s2r:::;	""r:::;	BB3BD"===>	bbSserBBBC
IIIrrocreZdZ	fdZedZedededdgZgd	Zd
eddd
gfdeddd
dgfdedddgfdedddgfdeddd
dgfdeddddgfgdeddd
gfgZ	xZ
S)TestArgumentsFromFilectt|gd}|D]D\}}t|dd5}||dddn#1swxYwYEdS)N)helloz
hello world!
)	recursivez-a
A
@hello)invalidz@no-such-path
rfr
rg)r
rurJrirjr
file_textsrZtextrmrs     rrJzTestArgumentsFromFile.setUps
#T**00222



%	!	!JD$dC'222
!d

4   
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!	!	!sA((A,	/A,	@fromfile_prefix_chars-arr\rrt)rrr6z@invalidz@missingzX YNr6r_)rrr\z
X -a A Y Zr^r\@hello Xzhello world!zX @helloz-a B @recursive Y ZzX @recursive Z -a BrB)rrr6r_r)rrr rJrsrrrrzrr!r"s@rrurusS,!!!!!s555D		CCs
766H	TSSE***+	rrC33*5556	RR$.SE:::;	RR$#.)9:::;	SNsCj I I IJ	SCNC3H I I IJ			rrB##7778IIIIIrruceZdZ	fdZGddeZeZedZeddgZ	gZ
d	egd
fgZxZ
S)TestArgumentsFromFileConverterctt|dg}|D]D\}}t|dd5}||dddn#1swxYwYEdS)Nrwrfr
rg)r
rrJrirjr{s     rrJz$TestArgumentsFromFileConverter.setUp"s
,d3399;;;'

%	!	!JD$dC'222
!d

4   
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!	!	!sA''A+	.A+	ceZdZdZdS)>TestArgumentsFromFileConverter.FromFileConverterArgumentParserc#jK|D]}|s|VdSrN)rstrip)rarg_lineargs   rconvert_arg_line_to_argszWTestArgumentsFromFileConverter.FromFileConverterArgumentParser.convert_arg_line_to_args-sG~~''

yy{{				

rN)rrr rr@rrFromFileConverterArgumentParserr+s#					rrr~rr\rrtr)rxzworld!r6r)rrr rJrrrrsrrrrzrr!r"s@rrrs,!!!!!*D3Ls555CsH	RR2223334IIIIIrrc,eZdZdZdZdZdZdZdS)TestFileTypeReprcttjd}|dt|dS)Nrz
FileType('r')r*FileTyperreprrrs  rtest_rzTestFileTypeRepr.test_rCs4 %%$t**55555rcvtjdd}|dt|dS)NwbrszFileType('wb', 1)rrs  r	test_wb_1zTestFileTypeRepr.test_wb_1Gs7 q)),d4jj99999rcxtjdd}|dt|dS)Nrlatin_1rgz!FileType('r', encoding='latin_1')rrs  rtest_r_latinzTestFileTypeRepr.test_r_latinKs: y999<d4jjIIIIIrcztjddd}|dt|dS)Nrfbig5ignore)rherrorsz/FileType('w', encoding='big5', errors='ignore')rrs  rtest_w_big5_ignorez#TestFileTypeRepr.test_w_big5_ignoreOsG vhGGGJd	%	%	%	%	%rcztjddd}|dt|dS)Nrrsreplacerz"FileType('r', 1, errors='replace')rrs  rtest_r_1_replacez!TestFileTypeRepr.test_r_1_replaceTs< a	:::=tDzzJJJJJrN)rrr rrrrrr@rrrrAsg666:::JJJ%%%
KKKKKrrceZdZdZdZdS)StdStreamComparerctj||_|dkrt|_dS|dkrt
|_dSt
|_dS)N
stdout.buffer
stderr.buffer)operator
attrgetterrr
backupattrrr)rrs  rrzStdStreamComparer.__init__^sQ *400?""1DOOO
_
$
$1DOOO$hhDOOOrcv	||tkS#t$r||jkcYSwxYwrN)rrAttributeErrorrrs  rrzStdStreamComparer.__eq__lsL	,DLL----	,	,	,DO++++	,s 88Nrrr rrr@rrrr]s2''',,,,,rrstdinrrzstdin.bufferrrceZdZiZdZdZdS)RFilec||_dSrNrcrrcs  rrzRFile.__init__~
			rc||jvr|j|}n2|x}|j|<|t|ts|d}|j|jcxko|kncS)Nascii)seenreadcloserrrrcrrr}s   rrzRFile.__eq__sDI9U#DD&+jjll2D49U#KKMMM$$$	(;;w''DyEJ....$.....rN)rrr rrrr@rrrr{s7
D/////rrceZdZ	fdZedejedejdgZgdZde	de
d	fd
e	e
de
d	fde	e
de
d	fd
e	ee	fde	de
d	fgZxZ
S)
TestFileTypeRcNtt|dD]d}ttj|j|dd5}||dddn#1swxYwYe|	ddS)Nrrfr
rgreadonly)
r
rrJrirRrZr[rQrjrqr	file_namermrs   rrJzTestFileTypeR.setUps
mT""((***'	&	&Ibgll4=)<<G---
&04

9%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&	
!!*-----"BB	B	rrbrr)rrznon-existent-file.txtr'Nrr
-x foo barrD
bar -x foo-x - -r)rrr rJrsr*rrrrzreq_stdinrr!r"s@rrrs0B.....	D(x(**+++F**3//000322H	Te---.	rrEE%LLuuU||<<<=	rrEE%LLuuU||<<<=	22x0001	RR$UU:%6%67778IIIIIrrceZdZ	fdZedejddgZdgZde	e
d	fgZxZS)
TestFileTypeDefaultsctt|ttj|jddd}|d|	dS)Ngoodrfr
rg)
r
rrJrirRrZr[rQrjr)rrmrs  rrJzTestFileTypeDefaults.setUpsi
"D))//111BGLL77wOOO

6

rrrzno-file.txtrrmrz-c goodr)r~)
rrr rJrsr*rrrrzrrr!r"s@rrrsF	D(x(--}EEEtHRR%%--00012IIIIIrrc	beZdZ	fdZedejdedejdgZddgZde	de
d	fd
e	e
de
d	fde	e
de
d	fd
e	ee	fgZxZ
S)TestFileTypeRBc$tt|dD]d}ttj|j|dd5}||dddn#1swxYwYedS)Nrrfr
rg)	r
rrJrirRrZr[rQrjrs   rrJzTestFileTypeRB.setUps
nd##))+++'	&	&Ibgll4=)<<G---
&04

9%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&	&	&rrrbrbrrr'NrrrDrr)rrr rJrsr*rrrrzr	eq_bstdinrr!r"s@rrrsB&&&&&	D(x(..///F**400111bzH	Te---.	rrEE%LLuuU||<<<=	rrEE%LLuuU||<<<=	22		2223	IIIIIrrc.eZdZeZdZdZdS)WFilec||_dSrNrrs  rrzWFile.__init__rrc||jvrcd}d|jvr|d}||||j||j|jkS)NzCheck that file is writable.r}r)rmoderrjraddrcrs   rrzWFile.__eq__st	!!1Dej  {{7++KKKKMMMIMM%   yEJ&&rN)rrr rBrrrr@rrrrs=355D'''''rrc
eZdZ	fdZedejdedejdgZgdZde	de
d	fd
e	de
d
	fde	e
de
d	fd
e	e
de
d	fde	ee	fgZxZ
S)
TestFileTypeWct|d|ddSNrwritabler
rJrqrnrrs rrJzTestFileTypeW.setUpB


!!*---!!*-----rrrfrbr)rrrr'NrrrrDrrrrr rJrsr*rrrrzr	eq_stdoutrr!r"s@rrrs2B.....	D(x(--...F**3//000&%%H	Te---.	RR$UU:%6%67778	rrEE%LLuuU||<<<=	rrEE%LLuuU||<<<=	22		2223IIIIIrrceZdZ	fdZedejdedejdgZgdZde	e
de
d	
fde	ee
fgZxZ
S)
TestFileTypeXct|d|ddSrrrs rrJzTestFileTypeX.setUprrrrrbr)rrrrrr'rDrrrr"s@rrrsK.....	D(x(--...F**3//000211H	rrEE%LLuuU||<<<=	22		2223IIIIIrrc	ReZdZ	edejdedejdgZddgZdede	dfd	ee	de	d
fdee	de	d
fdee
e
fgZdS)
TestFileTypeWBrrrbrrr'NrrrDrr)rrr rsr*rrrrzr
eq_bstdoutrr@rrrrsI	D(x(..///F**400111bzH	Te---.	rrEE%LLuuU||<<<=	rrEE%LLuuU||<<<=	22
4445	IIIrrceZdZ	edejdedejdgZdeededfd	ee	e	fgZ
d
S)TestFileTypeXBrxbrbrrr'rDrrN)rrr rsr*rrrzrrrr@rrrrsN	D(x(..///F**400111

rrEE%LLuuU||<<<=	22
4445IIIrrceZdZ	dZdS)TestFileTypeOpenArgsc
Htj}|ddf|dddf|dddf|d	d
df|dd
dddfg}tjd5}|D]\}}|d|jdg|R	ddddS#1swxYwYdS)Nr)rNNrfrs)rfrsNNrr)rfrNrrrrg)rrrNrl1strict)rfrrrz
builtins.openr')r*rrr.assert_called_with)rFTcasesmrrus      rtest_open_argsz#TestFileTypeOpenArgs.test_open_args*s4


RXX-.
RQZZ-.
RI
&
&
&(BC
Rv
&
&
&(@A
RQh
'
')AB
Z
(
(	3A#
3
3
dU$$U2T22222
3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3s'"BBBN)rrr rr@rrrr's&:33333rrceZdZ	dZdS)!TestFileTypeMissingInitializationc<tj}|t5}|dtjdddn#1swxYwY|tjdt|jdS)Nrrbz: is a FileType class object, instance of it must be passed)	r*r+r
ValueErrorrrrrrrs   rtestz&TestFileTypeMissingInitialization.test?s(**


z
*
*	>b8+<===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	
   
#	
	
	
	
	
s"AA #A Nrrr rr@rrrr9s(
	
	
	
	
	
rrceZdZ	edeedegZgdZdeddfd	ed
dfded
dfgZ	d
S)TestTypeCallablez--eggsrbr)r42jz--eggs az	--eggs 2iz--eggs=42 42rgE@)eggsrz--eggs 2j -- -1.5y@z1024.675Ng3333@)
rrr rscomplexrerrrzrr@rrrrKs6	H7###F544H	$///0	bbbt4445	RRT1112IIIrrceZdZ	GddeZedeedegZgZdeeded	fd
eeded	fgZ	d
S)TestTypeUserDefinedceZdZdZdZdS)TestTypeUserDefined.MyTypec||_dSrNvaluerr	s  rrz#TestTypeUserDefined.MyType.__init___
DJJJrc^t||jft||jfkSrNrr	rs  rrz!TestTypeUserDefined.MyType.__eq__b'JJ
+UU[/IIIrNrr@rrMyTyper]7				J	J	J	J	Jrrrrbrr{r}rr-xf grrfN)
rrr rBrrsrrrzrr@rrrrZs2JJJJJJJJ	DvF   H	22s&&++6667	""vvc{{5556IIIrrceZdZ	GddZedeedegZgZdeeded	fd
eeded	fgZd
S)TestTypeClassicClassceZdZdZdZdS)TestTypeClassicClass.Cc||_dSrNrr
s  rrzTestTypeClassicClass.C.__init__urrc^t||jft||jfkSrNr
rs  rrzTestTypeClassicClass.C.__eq__xrrNrr@rrCrsrrrrrbrr{r}rrrrrfN)	rrr rrsrrrzrr@rrrrps#JJJJJJJJ	DqFH	22#QQsVV,,,-	""qqvvAAcFF+++,IIIrrceZdZ	dZdS)TestTypeRegistrationcd}tj}|dd||dd|dd||dtdd	||d
tdd	dS)Ncd|zS)Nzmy_type{%s}r@strings rget_my_typez.TestTypeRegistration.test.<locals>.get_my_types
 6))rrmy_typerrbr\r	z
my_type{1}rnz-x 1 42zmy_type{42})r*r+registerrrr:rrz)rrr1s   rrzTestTypeRegistration.tests	*	*	*(**	;777Dy111Ci000**399;;77dl333	5	5	5**9??+<+<==lm<<<	>	>	>	>	>rNrr@rrrrs&4
>
>
>
>
>rrceZdZ	GddejZGddejZeddeeded	ee	d
dgZ
gZd
eddfdeddfdeddfdeddfgZ
dS)TestActionUserDefinedceZdZddZdS)$TestActionUserDefined.OptionalActionNc	td}|dvrd|_n|dvrd|_ntd|zn$#t$r}td|zd}~wwxYwt	|d	|dS)
N?rA)?r5r)@r	value: %szopt_action failed: %sr)rzr4AssertionErrorrrrr1	namespacer	
option_stringrrs       r__call__z-TestActionUserDefined.OptionalAction.__call__s
G!dmmmN**)*K&&e^^)+K&&(u)<==="
G
G
G)*AA*EFFF
GIvu-----s:=
AAArNrrr r/r@rrOptionalActionr%s(	.	.	.	.	.	.rr1ceZdZddZdS)&TestActionUserDefined.PositionalActionNc	td}|dvrd|_n*|dvrd|_n|dvrd|_ntd	|zn$#t$r}td
|zd}~wwxYwt	|d|dS)Nrr4)rrr')rsr5)rr(r*zarg_action failed: %sr4)rzrr+rrr,s       rr/z/TestActionUserDefined.PositionalAction.__call__s
G!lllH$$'+K$$c\\',K$$c\\',K$$(u)<==="
G
G
G)*AA*EFFF
GIx/////sAA		
A*A%%A*rNr0r@rrPositionalActionr3s(	0	0	0	0	0	0rr6z-srr')r(rrrmr4rr)rrrurmz-s0.125r()rr4rrz
-s 0.625 1r5rsz84 -s2r)rN)rrr r*Actionr1r6rsrerrrrzrr@rrr#r#s4........,000008?0004	Dvn	&	&	&H-C	,	,	,H	BBE!,,,-	
rrtB'''(	rruQ///0	223r***+	IIIrr#c<eZdZ	GddejZdZdS)TestActionRegistrationceZdZddZdS)TestActionRegistration.MyActionNc8t||jd|zdS)Nzfoo[%s])rr()rr1r-valuesr.s     rr/z(TestActionRegistration.MyAction.__call__s!Ity)f*<=====rrNr0r@rrMyActionr;s(	>	>	>	>	>	>rr>crtj}|dd|j|dd||dgtd||dgtd	dS)
Nr	my_actionr4rr	zfoo[1]r5rzfoo[42])r*r+r!r>rrr:rzr0s  rrzTestActionRegistration.tests(**+t}===H[999**C5112X3F3F3FGGG**D622Bi4H4H4HIIIIIrN)rrr r*r7r>rr@rrr9r9sW?>>>>>8?>>>
JJJJJrr9cTeZdZedddegZdZdegdfgZd	S)
TestActionExtendrextendr)rrurr@z--foo f1 --foo f2 f3 f4)f1f2f3f4rN)	rrr rsrrrrzrr@rrrBrBsVGHCc:::H	"BB+C+C+C$D$D$DEIIIrrBceZdZ	dZ		ddZfdZdZdZdZd	Z	d
Z
dZdZd
Z
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZxZS)TestAddSubparsersc2|jtg|Ri|dSrNrrrws   rassertArgumentParserErrorz+TestAddSubparsers.assertArgumentParserError,-?????????rFNc|r7tdd|}||ddzdzdd	n)tdd
}|ddd	|dtd
ddi}|rd|d<d|d<nd|d<|jd7i|}||jtd}|rd|d<|rddg|d<|jd8i|}|dtd|d d!d"#td$}	|rd%|	d<|jd9i|	}
|
d'd(d)#|
d*td+d,-td.}|rd/|d<|jd:i|}|d1td2|d3d4d56|S);NPROGmain description)progdescriptionrJrrr'rfoo helprhelprQrRrrDbar helprrUrFCOMMANDmetavarcommandstitlecommand helprUz
1 descriptionrRz1 help1alias11alias2aliasesr	rZzw helprrx helprrUz
2 descriptionz2 helprr123y helprrzz help)rrurUz
3 descriptionz3 helprtzt helpur[zu helprurUr@r	)r)r)	rrreadd_subparsersrLdict
add_parserrr)
rsubparser_helprJrar1subparsers_kwargs
subparsersparser1_kwargsparser1parser2_kwargsparser2parser3_kwargsparser3s
             rrzTestAddSubparsers._get_parsers		?/);,XXXFQ!#e+Lz
 
S
S
S
S0);===F:
 
?
?
?J		0	0	0(/	7+4i()3g&&(6f%*V*??->??
&&v'<===/:::	.%-N6"	?)2I(>N9%'*'>>~>>T(;;;S%h???/:::	.%-N6"'*'>>~>>T5x@@@SwcIII/:::	.%-N6"'*'>>~>>Ss:::SH===
rct||_|d|_dS)NT)rm)r
rJrr1command_help_parserrs rrJzTestAddSubparsers.setUp:sF


&&((#'#3#34#3#H#H   rcxdD]6}|}||jj|7dS)N)rrza az0.5 az0.5 1z0.5 1 -yz0.5 2 -w)rrLr1r:)rrrus   rtest_parse_args_failuresz*TestAddSubparsers.test_parse_args_failures?sN1	I	IH>>##D**4;+A4HHHH	I	Irc
||jdt	dddd||jdt	dd	d
ddg
||jdt	dddd||jdt	dddgddS)N0.5 1 b -w 7Frdr}r'rDrfrz0.25 --foo 2 -y 2 3j -- -1jTr'ry@y)r'rDr\rz--foo 0.125 1 cr(r~z-1.5 3 11 -- a --foo 7 -- br)rrr--r})r'rDrfrg)rr1r:rrzrs rtest_parse_argsz!TestAddSubparsers.test_parse_argsFsLK"">#7#7#9#9::5cQ#...	
	
	
	
K""#@#F#F#H#HII4TSRI666	
	
	
	
K""#4#:#:#<#<==4Udc222	
	
	
	
K""#@#F#F#H#HII5db,J,J,JKKK	
	
	
	
	
rc	P||jdt	ddddgf||jdt	dddddgf||jd	t	dddddgf||jd
t	ddddddgf||jd
t	ddddgdfdS)Nr{Frdr|r}r}z0.5 -p 1 b -w 7-pz0.5 1 b -w 7 -pz0.5 1 b -q -rs -w 7z-qz-rsz0.5 -W 1 b -X Y -w 7 Z)z-Wz-Xr_r\)rr1parse_known_argsrrzrs rtest_parse_known_argsz'TestAddSubparsers.test_parse_known_argsYsK(()=)=)?)?@@
Esa3
/
/
/4	
	
	
	
K(():)@)@)B)BCC
Esa3
/
/
/$8	
	
	
	
K(():)@)@)B)BCC
Esa3
/
/
/$8	
	
	
	
K(()>)D)D)F)FGG
Esa3
/
/
/$?	
	
	
	
K(()A)G)G)I)IJJ
Esa3
/
/
/1G1G1GH	
	
	
	
	
rcft}|dd|d}|d}|d|tddd	
|ddS)NrrrrDr'r	rEFrr/r)rrrjrlrrzr:r)rr1rorqs    r	test_destzTestAddSubparsers.test_destos+--GL999***66
'',,U###3C888**5;;==99	;	;	;	;	;rc|dg}||jd||jddS)Nrunr@)r:rcommandrL)rr1rets   r_test_required_subparsersz+TestAddSubparsers._test_required_subparsersxsP((e,,,	
&&v'8"=====rct}|d}d|_|d||dS)Nrr'Tr)rrjrrlrrr1ros   r&test_required_subparsers_via_attributez8TestAddSubparsers.test_required_subparsers_via_attributesY+--**	*::
"
e$$$&&v.....rct}|dd}|d||dS)NrTr(rr)rrjrlrrs   r"test_required_subparsers_via_kwargz4TestAddSubparsers.test_required_subparsers_via_kwargsS+--**	D*II
e$$$&&v.....rct}|d}|d|d}||jdS)Nrr'rr@rrjrlr:assertIsNonerrr1rors    r test_required_subparsers_defaultz2TestAddSubparsers.test_required_subparsers_defaultsf+--**	*::
e$$$###+&&&&&rcpt}|d}|d|d|t5}|ddddn#1swxYwY||jjddS)NTrr'rDr@z8error: the following arguments are required: {foo,bar}
$	rrjrlrrr:r=rrrr1roexcinfos    r-test_required_subparsers_no_destination_errorz?TestAddSubparsers.test_required_subparsers_no_destination_errors+--**D*99
e$$$e$$$


2
3
3	"wb!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"$G	
	
	
	
	
)BBBcpt}|d}|d|d|t5}|ddddn#1swxYwY||jjddS)NTrr'rDrzPerror: argument {foo,bar}: invalid choice: 'baz' \(choose from 'foo', 'bar'\)\n$rrs    r3test_wrong_argument_subparsers_no_destination_errorzETestAddSubparsers.test_wrong_argument_subparsers_no_destination_errors+--**D*99
e$$$e$$$


2
3
3	(wh'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	($_	
	
	
	
	
rct}|dd}|d|d}||jdS)NrFrrr@rrs    rtest_optional_subparsersz*TestAddSubparsers.test_optional_subparserssh+--**	E*JJ
e$$$###+&&&&&rc||jd||jt	jddS)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
            )rr1format_usageformat_helptextwrapdedentrs r	test_helpzTestAddSubparsers.test_helpsv1133E	G	G	G0022HOE55					rc|d}||d||t	jddS)Nz+:-rTz)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
            rrrrrrr0s  rtest_help_extra_prefix_charsz.TestAddSubparsers.test_help_extra_prefix_charss!!u!55,,..E	G	G	G++--x@00					rctdd}|ddd||t	jddS)	NrOrPrVz--non-breakingruRhelp message containing non-breaking spaces shall not wrap at non-breaking spacesrTu7            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
        rrrrrrr0s  rtest_help_non_breaking_spacesz/TestAddSubparsers.test_help_non_breaking_spacess+%7999];		<	<	<	
++--x	@	0
	0
										rctdd}|dd||t	jdtdd}|dgd	||t	jd
dS)NrOrPrVr'z    rUz            usage: PROG [-h] foo

            main description

            positional arguments:
              foo         

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

            main description

            positional arguments:
              {}          

            options:
              -h, --help  show this help message and exit
        rr0s  rtest_help_blankz!TestAddSubparsers.test_help_blanks+%7999					
++--x	@	0
	0
						,%79992		 	 	 	
++--x	@	0
	0
										rc|d}||d||t	jddS)NrHrTz)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
            rr0s  r test_help_alternate_prefix_charsz2TestAddSubparsers.test_help_alternate_prefix_chars
	s!!u!55,,..E	G	G	G++--x@00					rc||jd||jt	jddS)Nra            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
            )rrwrrrrrs rtest_parser_command_helpz*TestAddSubparsers.test_parser_command_help	sx1>>@@E	G	G	G1==??!*					rctdd}|ddd|dd	
|ddd
}|d}|d}||d||tjddS)NrOrPrVrrrSrTrDrWrsubcommandsr]zadditional text)r\rRrUr	rz'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
            )	rrrjrlrrrrr)rr1rorqrss     rtest_subparser_title_helpz+TestAddSubparsers.test_subparser_title_help4	s+8JLLLGLzJJJE
333**7E0A+CC
'',,'',,,,..C	E	E	E++--x@00					rc|t5}|j|dddn#1swxYwY|||jjdSrN)rrr1r:rrrr)rr
expected_helprs    r_test_subparser_helpz&TestAddSubparsers._test_subparser_helpR	s


2
3
3	5rK""8>>#3#3444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5(;<<<<<s-AAAcV|dtjddS)Nz5.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
            rrrrs rtest_subparser1_helpz&TestAddSubparsers.test_subparser1_helpW	9!!*ho?//					rcV|dtjddS)Nz5.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
            rrs rtest_subparser2_helpz&TestAddSubparsers.test_subparser2_helpe	rrc	j|d}||dt	ddddgf||dt	ddddgfdS)	NTraz
0.5 1alias1 bFrdr}r}z
0.5 1alias2 b)rrrrrzr0s  rtest_alias_invocationz'TestAddSubparsers.test_alias_invocations	s!!$!//##O$9$9$;$;<<
Esdc
2
2
2B7	
	
	
	
##O$9$9$;$;<<
Esdc
2
2
2B7	
	
	
	
	
rc|d}||jddS)NTrz
0.5 1alias3 b)rrLr:rr0s  rtest_error_alias_invocationz-TestAddSubparsers.test_error_alias_invocation~	sS!!$!//&&v'8'6'<'<'>'>	@	@	@	@	@rc|dd}d|_||t	jddS)NT)rarma	            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
            )rmaxDiffrrrrr0s  rtest_alias_helpz!TestAddSubparsers.test_alias_help	se!!$t!DD++--x@00					r)FNF)rrr rLrrJryrrrrrrrrrrrrrrrrrrrrrrrr!r"s@rrIrIs(@@@>B!5555nIIIII
III


&


,;;;>>>//////'''











'''"&$   D$*<===
	
	
	
@@@
rrIc"eZdZ	dZdZdZdS)TestPositionalsGroupscht}|d|d}|d|dtddd}|d	}|||dS)
Nr'rfrDrEr	rrr/1 2 3)rrrrzr:rrrr1rexpectedrs     rtest_nongroup_firstz)TestPositionalsGroups.test_nongroup_first	s+--E"""))#..
5!!!E"""#3C000""7==??336*****rcht}|d}|d|d|dtddd}|d	}|||dS)
Nxxxr'rDrEr	rrr/rrrrrzr:rrrs     rtest_group_firstz&TestPositionalsGroups.test_group_first	s+--))%00
5!!!E"""E"""#3C000""7==??336*****rct}|d}|d|d|d|d}|dtddd	d
}|d}|||dS)
Nrr'rDrErfrellr	rrrF)r'rDrErz1 2 3 4rrs     rtest_interleaved_groupsz-TestPositionalsGroups.test_interleaved_groups	s+--))%00E"""
5!!!E"""))%00
7####3Cs;;;""9??#4#4556*****rN)rrr rrrr@rrrr	sDJ++++++
+
+
+
+
+rrcteZdZ	dZfdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZxZS)TestParentParsersc2|jtg|Ri|dSrNrKrws   rrLz+TestParentParsers.assertArgumentParserError	rMrcttd|_|jd|jd}|d|jdtd|_|jd|jd|jd	}|d
td|_|jdtd|_|jdtd|_	|j	
}|dd
|dd
tj
tjd|_dS)NFrKz--wrrrrrr~z--drrrr)r
rJrwxyz_parentrrabcd_parentw_parentz_parentab_mutex_parentadd_mutually_exclusive_grouprRrZbasenamerrmain_program)rx_groupc_grouprrs    rrJzTestParentParsers.setUp	s


5uEEE%%e,,,"55c::T"""%%c***5uEEE%%c***%%d+++"55c::U###2EBBB

""5)))2EBBB

""3''' :5III$AACC
4555
4555G,,SXa[99rct|jg}||dtddddS)Nparentsz-y 1 2 --w 3rr	rrfr\r)rrrr:rrzr0s  rtest_single_parentz$TestParentParsers.test_single_parent	sh+T5E4FGGG**>+?+?+A+ABBcSC000	2	2	2	2	2rc||jjt|jg}||jdSNr)_test_mutex_abrr:rr0s  rtest_single_parent_mutexz*TestParentParsers.test_single_parent_mutex	sOD0;<<<+T5I4JKKKF-.....rc|jg}td|}t|g}||jdS)NF)rKrr)rrrr:rrr1s   rtest_single_granparent_mutexz.TestParentParsers.test_single_granparent_mutex	sN'(+UGLLL+VH===F-.....rc||gtdd||dgtdd||dgtdd||ddg||ddg||dg||ddg||ddgdS)NFrr}rTrr)rrzrL)rr:s  rrz TestParentParsers._test_mutex_ab	sBeu)=)=)=>>>TF++R$%-@-@-@AAATF++R%4-@-@-@AAA&&zD$<@@@&&zD$<@@@&&zD6:::&&zD$<@@@&&zD$<@@@@@rc|j|jg}t|}||dt
dddddddS)Nrz--d 1 --w 2 3 4rr	rrF)rr}r2rfr\r)rrrrr:rrzrs   rtest_multiple_parentsz'TestParentParsers.test_multiple_parents
s~#T%56+G<<<**+<+B+B+D+DEEcTSC43GGG	I	I	I	I	Irc
|j|jg}t|}||dt
ddddd||jd||jd	dS)
Nrz
-a --w 2 3TFrr)rr}rfr\rz
-a --w 2 3 -bz
-a -b --w 2 3)rrrrr:rrzrLrs   rtest_multiple_parents_mutexz-TestParentParsers.test_multiple_parents_mutex
s')9:+G<<<**<+=+=+?+?@@desdcBBB	D	D	D&&4466	8	8	8&&4466	8	8	8	8	8rcv|tjtj|j|jgdSr)rr*
ArgumentErrorr+rrrs rtest_conflicting_parentsz*TestParentParsers.test_conflicting_parents
sB"#]D$45		7	7	7	7	7rcv|tjtj|j|jgdSr)rr*rr+rrrs rtest_conflicting_parents_mutexz0TestParentParsers.test_conflicting_parents_mutex
sC"#%t';<		>	>	>	>	>rc|j|jg}t|}||dt
ddddS)Nrrrr)rrrrr:rrzrs   rtest_same_argument_name_parentsz1TestParentParsers.test_same_argument_name_parents
sm#T]3+G<<<**5;;==99ddc222	4	4	4	4	4rc	Ft}|}|d|jg}|d||dtdddd	dS)
NrDrrzbar -b 1 --d 2 3 4rr	rrF)rr}r2r)	rrjrlrrrr:rrz)rr1roabcde_parsers    rtest_subparser_parentsz(TestParentParsers.test_subparser_parents#
s+--**,,
!,,UT=M<N,OO!!#&&&**+?+E+E+G+GHHcSC3777	9	9	9	9	9rc6t}|}|jg}|d|}|d}|d|j|jg}|d|}|d||d	tdd	d
||d	td	dd
ddd
||jd	||jd	dS)Nr'rrr~rDrzfoo -a 4TFrFr|zbar -b  --w 2 3 4rr)rr}rfr\rrzfoo -a -b 4zbar -b -a 4)rrjrrlrrrrr:rrzrL)rr1ror
abc_parserrwxyzabe_parsers       rtest_subparser_parents_mutexz.TestParentParsers.test_subparser_parents_mutex+
s+--**,,
'(**5'*BB
//	::S!!!#T%9:#..ug.FF##C(((**:+;+;+=+=>>des333	5	5	5**+>+D+D+F+FGGetsdcSIII	K	K	K&&}2244	6	6	6&&}2244	6	6	6	6	6rc	|j|jg}t|}|}|j}||t
jd||rdnddS)NraG            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)	rrrrrrrrformat)rrr1parser_helpprognames     rtest_parent_helpz"TestParentParsers.test_parent_help>
s#T%56+G<<<((**$ho7"
F8H4SS"66#'8'8	9	9	9	9	9rc	Btd}|dd}|d|d|}|d|d	t|g
}|t
|jgd|}|j}|	|tjd||rd
nddS)NFrrfgdr\rRrZrrrr)rr_rr\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
        rr)
rrrrrrr:rrrrrr	)rparentrfrr1r
rs       rtest_groups_parentsz%TestParentParsers.test_groups_parentsV
s*+U;;;%%CT%BB	t	t//11	t	t+VH===-v/@"""	$	$	$((**$ho
7
F8H4SS"66
'8
'8
	9
	9
	9
	9
	9r)rrr rLrJrrrrrrrrrrrrrr!r"s@rrr	s?@@@:::::8222
///
///AAAIII888777>>>444999666&99909999999rrc&eZdZdZdZdZdZdS) TestMutuallyExclusiveGroupErrorsc`t}|j}|t|jddS)Nr')r\)rrrr)rr1raisess   rtest_invalid_add_argument_groupz@TestMutuallyExclusiveGroupErrors.test_invalid_add_argument_groupz
s5+--"y&=UKKKKKKrc>t}|}|j}|j}|t|dd|t|d|t|dd|t|dd|t|dt
jdS)NrTrrDrrtrs)rrrrrr*PARSER)rr1rrrs     rtest_invalid_add_argumentz:TestMutuallyExclusiveGroupErrors.test_invalid_add_argument
s+--3355)"z<4@@@@z<///z<c::::z<a8888z<hoFFFFFFrctd}|}|dd|dd|}|dd|d	dd
}||tj|dS)NrOrQrrrr/rz--soupz--nutsz            usage: PROG [-h] [--foo | --bar] [--soup | --nuts]

            options:
              -h, --help  show this help message and exit
              --foo
              --bar
              --soup
              --nuts
              )rrrrrrr)rr1group1group2rs     rrz*TestMutuallyExclusiveGroupErrors.test_help
s+8884466GL999GM:::4466H\:::H];;;		
++--xx/H/HIIIIIrctj}|}|t5|dgddddS#1swxYwYdS)Nr4)r*r+rrrr:rr1rs   rtest_empty_groupz1TestMutuallyExclusiveGroupErrors.test_empty_group
s(**3355


z
*
*	&	&tf%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&sA&&A*-A*N)rrr rrrr r@rrrrx
sYLLL
	G	G	GJJJ(&&&&&rrc>eZdZdZdZdZdZdZdZdZ	dZ
d	S)
MEMixinc|dj}t}|jD]+}||||,dSNFr
get_parserr:rrrrrr:rargs_strings    rtest_failures_when_not_requiredz'MEMixin.test_failures_when_not_required
sc__e_44?
#=	F	FKeZ1B1B1D1DEEEE	F	Frc|dj}t}|jdgzD]+}||||,dS)NTrrr%r's    rtest_failures_when_requiredz#MEMixin.test_failures_when_required
sj__d_33>
#=B4/	F	FKeZ1B1B1D1DEEEE	F	Frc|dj}|j|jz}|D]8\}}||}|||9dSr$)r&r:rsuccesses_when_not_requiredrr)rr:rr(r	actual_nss      r test_successes_when_not_requiredz(MEMixin.test_successes_when_not_required
sy__e_44?
NT%EE	(1	5	5$K"
;#4#4#6#677IY4444	5	5rc|dj}|jD]8\}}||}|||9dSNTr)r&r:rrr)rr:r(rr.s     rtest_successes_when_requiredz$MEMixin.test_successes_when_required
sl__d_33>
(,	5	5$K"
;#4#4#6#677IY4444	5	5rc|dj}|j}||t	j|dSr$)r&rusage_when_not_requiredrrrrrexpected_usages   rtest_usage_when_not_requiredz$MEMixin.test_usage_when_not_required
sL66C5)H)HIIIIIrc|dj}|j}||t	j|dSr1)r&rusage_when_requiredrrrr5s   rtest_usage_when_requiredz MEMixin.test_usage_when_required
sL55B1)H)HIIIIIrc|dj}|j|jz}||tj|dSr$)r&rr4rUrrrrrrUs   rtest_help_when_not_requiredz#MEMixin.test_help_when_not_required
sSoouo55A+di7(=(=>>>>>rc|dj}|j|jz}||tj|dSr1)r&rr9rUrrrr<s   rtest_help_when_requiredzMEMixin.test_help_when_required
sSooto44@'$)3(=(=>>>>>rN)rrr r)r+r/r2r7r:r=r?r@rrr"r"
sFFFFFF555555JJJ
JJJ
???
?????rr"ceZdZddZddgZdeddfded	dfd
eddfdedd	fgZd
eddfgZdZdZ	dZ
dS)TestMutuallyExclusiveSimpleNctd}||}|dd|ddd	d
|S)NrOrrr/rWrrcrr\baz help)rurrUrrrrrr1rs    rr&z&TestMutuallyExclusiveSimple.get_parser
sc+88833X3FF
7444
7#SzJJJ
r--bar X --baz Yz
--bar X --baz--bar Xr6rDrEz--bar X --bar Zr\--baz Yr_rcrz;        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
        rNrrr r&rrzrr-r4r9rUr@rrrArA
s"?3H	BB3D)))*	BB3D1112	BB4S)))*	""3'''(	I
RRDd
#
#
#$#DDDrrAc
eZdZddZdgZdeddddfdeddddfd	eddddfd
eddddfgZdeddddfgZdZd
Z	dZ
dS)TestMutuallyExclusiveLongNc
td}|dd|dd||}|d	d
|dd|S)
NrOrz--abcdez
abcde helprz--fghijz
fghij helprz--klmnoz
klmno helpz--pqrstz
pqrst helprrrrEs    rr&z$TestMutuallyExclusiveLong.get_parser
s+888IL999IL99933X3FF
9<888
9<888
rz--klmno X --pqrst Yz	--klmno Xr6)abcdefghijklmnopqrstz--abcde Y --klmno Xr_z	--pqrst Xz--pqrst X --fghij Yrzi    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
    rNrJr@rrrLrL
s&&H	bbt4s$GGGH	BSCt<<<	>	bbt4t3GGGH	BTD<<<	>I
RRd$d$
?
?
?@#DDDrrLceZdZdZdgZdeddfdeddfd	ed
dfgZded
dfgZd
ZdZ	dZ
d
S)$TestMutuallyExclusiveFirstSuppressedctd}||}|dtj|ddd	|S)
NrOrrrrrrrerTrrrr*rirEs    rr&z/TestMutuallyExclusiveFirstSuppressed.get_parser%sd+88833X3FF
4h&7888
4
HEEE
rz-x X -yz-x Xr6Trnz	-x X -x Yr_rNFrz&        usage: PROG [-h] [-y]
        z$        usage: PROG [-h] -y
        zm
        options:
          -h, --help  show this help message and exit
          -y          y help
        rJr@rrrTrT#s{H	cT"""#	bb3$'''(	
rrDE"""#I
RR$$


 #DDDrrTc	eZdZdZgdZdedddfdedddfd	eddd
fdedddfgZdedddfgZd
xZZ	dZ
dS)#TestMutuallyExclusiveManySuppressedctd}||}|j}|ddtj|ddtj|d	tj
|S)NrOrr--spamrrTr.rz	--bladderrrV)rrr1rrs     rr&z.TestMutuallyExclusiveManySuppressed.get_parserFs+88833X3FF H\0ABBBBJ}83DEEEEKh/0000
r)z--spam --badgerz--badger --bladder Bz--bladder B --spamrZTN)rr4bladderr.Fz--bladder BrBz
--spam --spamrz!        usage: PROG [-h]
        P
        options:
          -h, --help  show this help message and exit
        rrr r&rrzrr-r9r4rUr@rrrXrXDsH
224d;;;<	RRU5$???@	dC@@@A	""$tTBBBC	I
RRU4
6
6
67#51DDDrrXc
eZdZdZgdZdedddfded	d
dfded	ddgfded	dgdfgZd
ed	ddfgZdZdZ	dZ
dS)*TestMutuallyExclusiveOptionalAndPositionalctd}||}|ddd|dd	
|ddd
d|S)NrOrrrrFOOrTrZSPAMrr4rr6BADGERrurmrUrDrEs    rr&z5TestMutuallyExclusiveOptionalAndPositional.get_parserjs~+88833X3FF
7<eDDD
8&111
83(KKK
r)z--foo --spam Sz
--spam S XzX --foozX Y Z --spam Sz	--foo X YrTNr6)r'rr4z--spam SFSzX Y Z)r6r_r\rzD        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
        rJr@rrr_r_hsH
""D5556	RREC8889	bbUse4445	""T///BBBC	I
RRES
1
1
12#	DDDrr_c
beZdZdZgdZdedddddfdedddddfdedddddfd	edddddfd
edddddfdedddddfgZdedddddfd
edddddfdedddddfgZdxZZ	dZ
dS)#TestMutuallyExclusiveOptionalsMixedcBtd}|ddd||}|ddd	|d
dd|ddd
|ddd|S)NrOrrrrbrTrra helprb helprrerc helprNrEs    rr&z.TestMutuallyExclusiveOptionalsMixed.get_parsers+888DHEEE33X3FF
48DDD
48DDDDHEEE
48DDD
r)z-a -b-b -cz-a -cz-a -b -crTFrr}r~rr\rrz-a -xz-y -bz-x -y -crrrz:        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
        Nr]r@rrrgrgsW766H	
rrDEUeu===>	
rrETUeu===>	
rrEUdeu===>	""tu???@	""u$???@	RR%5DDDAAAB
I
RR%5EUe
<
<
<=	
rrEUetu===>	
rrEUeu===>#51	DDDrrgceZdZddZddgZdeddfdedd	fgZd
eddfgZdZdZ	d
Z
dS)TestMutuallyExclusiveInGroupNctd}|dd}||}|dd	|d
d	|S)NrOrzTitled groupzGroup descriptionrrr/rWrrcrC)rrrr)rrr1titled_groupmutex_groups     rr&z'TestMutuallyExclusiveInGroup.get_parsers+88800 .A1CC
55x5HH	  z :::  z :::
rrFz--baz X --bar YrGr6rHrIr_rz9        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
        rNrJr@rrroros"#45H	BB3D)))*	BB4S)))*I

RRDd
#
#
#$#
DDDrroceZdZdZgdZdedddddfded	d
dddfded	dd
ddfdeddddd
fd
ed	d
ddd
fgZded	ddddfded	dddd
fgZdxZZ	dZ
d	S)1TestMutuallyExclusiveOptionalsAndPositionalsMixedc@td}|dd|ddd	||
}|ddd
|ddd	|ddd	|S)NrOrrrbrrrrerTrrrrirhrrjrrkrNrEs    rr&z<TestMutuallyExclusiveOptionalsAndPositionalsMixed.get_parsers+888Ch///DHEEE33X3FF
3c999
48DDD
48DDD
r)zX A -brlz-c X AzX Ar^Fr6rmzX -bNTzX -czX A -yzX -y -bzX -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]r@rrrtrts-,,H	SEUcU;;;<	ddese<<<=	detse<<<=	22u===>	BB#>>>?I

bb45ESE:::;	deut<<<=#
51DDDrrtc0eZdZdZdZdZdZdZdZdZ	dZ
dS)TestMutuallyExclusiveNestedctd}||}|d|dtj5tjdt||}dddn#1swxYwY|d|dtj5tjdt||}dddn#1swxYwY|d	|d
|S)NrOrrrrrrz-dz-er)rrrwarningscatch_warningssimplefilterDeprecationWarning)rrr1rrgroup3s      rr&z&TestMutuallyExclusiveNested.get_parsers+88833X3FF
4   
4   

$
&
&	K	K!(,>???777JJF	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	D!!!D!!!

$
&
&	L	L!(,>???88(8KKF	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	D!!!D!!!
s$$1B!!B%(B%)1D&&D*-D*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
        N)rrr r&r4r9rUr)r+r/r2r@rrrwrwsP"
D'+#"&'+$#'   rrwc eZdZdfd	ZxZS)MEPBaseNctt||}t|jd|g}|S)NrF)rQrKr)r
rr&rrQ)rrrr1rs    rr&zMEPBase.get_parserGsJw%%00(0CC+uvh@@@
rrN)rrr r&r!r"s@rrrEs=rrceZdZdS)&TestMutuallyExclusiveGroupErrorsParentNrrr r@rrrrNDrrceZdZdS)!TestMutuallyExclusiveSimpleParentNrr@rrrrSrrrceZdZdS)TestMutuallyExclusiveLongParentNrr@rrrrXrrrceZdZdS)*TestMutuallyExclusiveFirstSuppressedParentNrr@rrrr]rrrceZdZdS))TestMutuallyExclusiveManySuppressedParentNrr@rrrrbrrrceZdZdS)0TestMutuallyExclusiveOptionalAndPositionalParentNrr@rrrrgrrrceZdZdS))TestMutuallyExclusiveOptionalsMixedParentNrr@rrrrlrrrceZdZdS)7TestMutuallyExclusiveOptionalsAndPositionalsMixedParentNrr@rrrrqrrrc8eZdZdZdZdZdZdZdZdZ	dS)	TestSetDefaultsc
t}|d|dd|tddd|g|tddd|gt|tddd|gtd|tddd|gtdd	dS)
Nr'rrDrs)r\rr[rEr)rrrset_defaultsrrzr:r0s  rtest_set_defaults_no_argsz)TestSetDefaults.test_set_defaults_no_args{sS+--e$$$eq)))eu222**2..	0	0	0eu222**2rtt44	6	6	6eu222**2rE{{{;;	=	=	=eu222**2rEQ/?/?/?@@	B	B	B	B	Brc	t}|dd|dd|t	dd|g|t	dd|gt	|t	dd|gt	d|t	d	d|d
|t	d	d|d
t	|t	d	d|d
t	ddS)Nr'rDrnrxfooxrlrErr	r)rrrrrzr:rr0s  rtest_set_defaults_with_argsz+TestSetDefaults.test_set_defaults_with_argss+--eu---D'222g///**2..	0	0	0g///**2rtt44	6	6	6eu---**2rE{{{;;	=	=	=cU+++**6<<>>::	<	<	<cU+++**6<<>>244@@	B	B	BcU+++**6<<>>2;;;GG	I	I	I	I	Irc`t}|d|}|d}|d|tdd|ddS)Nr'rrrDrrn)rrrjrlrrzr:r)rr1roparser_as    rtest_set_defaults_subparsersz,TestSetDefaults.test_set_defaults_subparserss+--e$$$**,,
((--&&&eu---**399;;77	9	9	9	9	9rctd}|dt|g}|td|gdS)NFrr'rrr)rrr1s   rtest_set_defaults_parentsz)TestSetDefaults.test_set_defaults_parentssm+U;;;e$$$+VH===ef&7&7&;&;<<<<<rcBtj}|d}|d|d|t
d|dgdS)Nr6rsrr)r*r+rjrlrrrzr:)rr1xparsers   r)test_set_defaults_on_parent_and_subparserz9TestSetDefaults.test_set_defaults_on_parent_and_subparsers(**''))44S99"""###F$5$5se$<$<=====rc$t}|dddd|d|dd	|d
d|d
dd|t	dddd|g|dddd|t	dddd|gdS)NWr6r_r\rrZrXXrlr\rrtrZZrWWYY)rrrrrzr:r0s  r&test_set_defaults_same_as_add_argumentz6TestSetDefaults.test_set_defaults_same_as_add_arguments.+--cSC3777D!!!D$///Cs+++CsD999	
cTSD999**2..	0	0	0	dcTS999dcTS999**2..	0	0	0	0	0rcNt}|dddd|d}|d|dd	
|dd
|ddd|tdd	dd|g|dddd|tdddd|gdS)Nrr6r_r\rr'rZrrrlr\rrtrrrrr)rrrrrrzr:rs   r,test_set_defaults_same_as_add_argument_groupz<TestSetDefaults.test_set_defaults_same_as_add_argument_groupsA+--cSC3777))%00
4   
4...
3c***
3c4888	
cTSD999**2..	0	0	0	dcTS999dcTS999**2..	0	0	0	0	0rN)
rrr rrrrrrrr@rrrrysBBBIII"999===>>>000"00000rrceZdZdZdS)TestGetDefaultc8t}||d||d|d||d||d|dtd||d|d|d|d|d|d|d|ddS)	Nr'rDrr/rrr4r)rrget_defaultrrrrr0s  rtest_get_defaultzTestGetDefault.test_get_defaultso+--&,,U33444&,,U33444G$$$&,,U33444&,,U33444G#r:::&,,U33444V//66777)))6#5#5e#<#<===V//6677777rN)rrr rr@rrrrs#88888rrceZdZdZdZdS)TestNamespaceContainsSimplectj}|d||d|dS)Nrr)r*	NamespaceassertNotInrnss  r
test_emptyz&TestNamespaceContainsSimple.test_emptysB


!
!R   b!!!!!rctjdd}|d||d||d||d||d|dS)	Nrsrrnrrr\xxr)r*rrrrs  rtest_non_emptyz*TestNamespaceContainsSimple.test_non_emptys

!q
)
)
)R   

c2

c2r"""b!!!!!rN)rrr rrr@rrrrs2"""
"""""rrceZdZdZdS)TestHelpFormattingMetaclasscf|dkrdSGddt}dD]\}}||||dS)NHelpTestCasec2eZdZdZdZdZdZdZdZdS)6TestHelpFormattingMetaclass.__init__.<locals>.AddTestsc||_||_|j|j|jfD]=}|jd|}|fd}	||_n#t$rYnwxYwt|||>dS)Nrc||dSrNr@rs  rtest_wrapperzUTestHelpFormattingMetaclass.__init__.<locals>.AddTests.__init__.<locals>.test_wrapper
rr)func_suffixstd_nametest_format
test_printtest_print_filerrr)r
test_classrrrrrs       rrz?TestHelpFormattingMetaclass.__init__.<locals>.AddTests.__init__	
s#.  (
"&"2"&/"&"6"8AAI,5+=+=+={{ KI5>((((09--$J	<@@@@AAs?
AActj|jji|jj}t|dgD]}|j|ji|jt|dg}|D]8\}}|j|ji|j}|D]}|j|ji|j9t|dg}|r0|}	|D]}
|	j	|
ji|
j|S)Nrargument_group_signaturessubparsers_signatures)
r*r+rrurvrrrrjrl)rrr1argument_sig
group_sigs	group_sig
argument_sigsrsubparsers_sigsro
subparser_sigs           rrzBTestHelpFormattingMetaclass.__init__.<locals>.AddTests._get_parser
s!0,16-466%,F4I2$N$N??L'F'):?*6*=????$V-H"MM
0:BB,I}5F5y~J8A8HJJE(5BB**L,=B-9-@BBBBB#*&2I2"N"N"G!'!6!6!8!8J)8GG
-
-}/AG1>1EGGGG
rct||j}tj|}d|_|||dSrN)rrrrrr)rrparser_text
expected_texts    r_testz<TestHelpFormattingMetaclass.__init__.<locals>.AddTests._test0
sF '0@ A A
 (
 > >
!%""=+>>>>>rc||}t|d|jz}|||dS)Nz	format_%s)rrrr)rrr1r	s    rrzBTestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_format6
sL))&11 t7G)GHH

66688,,,,,rc||}t|d|jz}tt|j}tt|jt
	|tt|j}tt|j|n #tt|j|wxYw|||dSNzprint_%s)	rrrrrrrrr)rrr1print_
old_streamrs      rrzATestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_print;
s))&11 d6F)FGG$S$-88
T]KMM:::<FHHH")#t}"="="F"F"H"HKC
;;;;GC
;;;;

6;/////s06CCc||}t|d|jz}t}|||}|||dSr)rrrrrr)rrr1rsfilers      rrzFTestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_print_fileG
sk))&11 d6F)FGG#

u


#nn..

6;/////rN)	rrr rrrrrrr@rrrr
sq
A
A
A"


,
?
?
?
-
-
-


0

0

0
0
0
0
0
0rr))usager)rUr)r)rrcrrrrrs       rrz$TestHelpFormattingMetaclass.__init__
s|>!!FF	0F	0F	0F	0F	0vF	0F	0F	0R&:	1	1!KHS+x0000	1	1rNrxr@rrrr
s(O1O1O1O1O1rrrceZdZ	edddZedddd	ed
dd
eddeddeddgZgZdZedzZdZ	dS)TestHelpBiggerOptionalsrODESCRIPTIONEPILOGrQrRepilogr_rprq0.1rsrrX HELPrT--yY HELPrr'FOO HELPrDBAR 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
        N
rrr rsrrrrrUrqr@rrrrX
sEsM"*,,,	D+i???DH555E!!!E
###E
###!#
ED GGGrrc\eZdZ	dZejZejZejZdZedzZ	ej
Z
dS)TestShortColumnsc~|tj}|dddS)NrErG)rFrrGrBrHs  rrJzTestShortColumns.setUp
s8	 = ? ?@@	4     rz        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
    N)rrr rJrrrrrrUrqr@rrrr|
sa
!!!#:"J"9"M"9"S
ED:#:"AGGGrrceZdZ	edddZedddd	ed
dd
eddeddeddgZeddeddedddgfgZdZedzZd Z	d!S)"TestHelpBiggerOptionalGroupsrOrrrr_rprqrrsrrrrTrrrr'rrDrzGROUP TITLEzGROUP DESCRIPTIONr^rEzBAZ HELPrrzZ HELPrhzN        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
    rNrr@rrrr
sEsM"*,,,	D+i???DH555E!!!E
###E
###

](;	<	<	<CJ'''CCh///?1	2!

ED,GGGrrceZdZ	eddZedddedd	
edd
ed
d
gZgZdZedzZdZ	dS)TestHelpBiggerPositionalsUSAGErrrRrrrrTrrrekiekiekifekangzEKI HELPrDr        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
        rNrr@rrrr
s>smDDDDH555E!!!J///E
###	!#
EDGGGrrceZdZ	eddZedddedd	d
gZedd
edddgfgZdZedzZdZ	dS)TestHelpReformattingrOze   oddly    formatted
description

that is so long that it should go onto multiple lines when wrappedrVrrzoddly
    formatted -x helprZrUr\rz
normal y helpr\z'
    oddly formatted group

descriptionr^rrz` oddly 
formatted    -a  help  
    again, so long that it should be wrapped over multiple linesrT2        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
        rNrr@rrrrsHs
)***	D$&=	>	>	>C_555

W#0
1
1
1#d<$%%%
&		'
!
ED(GGGrrceZdZ	eddZedddedd	d
gZededd
dgfgZdZedzZdZ	dS)TestHelpWrappingShortNamesrOzZD
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
DrVrrzxXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXrr\rdYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHALPHASrrzPAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHArTra
        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
        rNrr@rrrr4sHs[AAAD$]333C\222


XC\@@@B	C!
ED,GGGrrceZdZ	eddZedddded	d
ded
ddgZededddedddgfgZdZedzZdZ	dS)TestHelpWrappingLongNamesrzZD 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 Drr_rprqzZV 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 VrsrXXXXXXXXXXXXXXXXXXXXXXXXXzdXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHrr\yyyyyyyyyyyyyyyyyyyyyyyyyrrrAAAAAAAAAAAAAAAAAAAAAAAAAzdAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHrzzzzzzzzzzzzzzzzzzzzzzzzzzdZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHZH ZHrag
        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
        Nrr@rrrr\sFszBBBD+iDDDD(666C555

XCh\:::CXL999;	<!

ED<GGGrrceZdZ	edZedddeddd	ed
d
eddd
edddeddejedddejedddejedejejdg	Zeded dd!ed"d#d$ed%d%ded&d&dgfgZ	d'Z
e
d(zZd)Zd*S)+
TestHelpUsagerOrrZrrfrhrrrrrr}r)rUrur~rrzWhether to foo)rUrr/zWhether to barT)rUrmrrz--foobarz--barfoorz--bazzzBazz!)rrmrUrrr\rrxrr2ra/        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
        rN)
rrr rsrr*rrirrrrUrqr@rrr	r	s#s'''D#&&&D#&&&CcCc###Cc%%%G*83QRRRG*D$:	<	<	<D*j1OPPPHX;&/g	?	?	?

WCCc***CAC(((C#S)))C#S)))	
	!
ED,GGGrr	cneZdZedZeddedddgZd	Zed
zZdZdS)
TestHelpUsageWithParenthesesrOr
positionalz(example) positionalrZrz
--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 {1 (option A), 2 (option B)}, --optional {1 (option A), 2 (option B)}
        rN)	rrr rsrrrrUrqr@rrrrsps'''L"8999D,(FGGG

EDGGGrrceZdZ	eddZgZededdeddgfed	ed
d
eddgfgZd
ZedzZdZ	dS)TestHelpOnlyUserGroupsrOFrQrKxxxxrrrryyyyr}rr\z.        usage: PROG [-x X] [-y Y] a b
        zn
        xxxx:
          -x X  x
          a     a

        yyyy:
          b     b
          -y Y  y
        rNrr@rrrrs#s777	VC3C#
	

VC#C3
		!
E		DGGGrrceZdZ	edZeddeddeded	gZgZd
ZedzZdZ	d
S)TestHelpUsageLongProg<PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPrrZrr
rr6rr}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
        rNrr@rrrrs4s)))D#D#CC	!#
E

DGGGrrceZdZ	edZeddeddedd	ed
deded
gZgZdZedzZdZ	dS) TestHelpUsageLongProgOptionsWraprrrZWWWWWWWWWWWWWWWWWWWWWWWWWr
rrrYYYYYYYYYYYYYYYYYYYYYYYYYrZZZZZZZZZZZZZZZZZZZZZZZZZrr}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
        rNrr@rrrrsKs)))D(###D(###D(###D(###CC
!#
EDGGGrrceZdZ	eddZedededgZgZdZedzZd	Z	d
S)$TestHelpUsageLongProgPositionalsWraprFraaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccz        usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
               aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
               ccccccccccccccccccccccccc
        
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc
        rNrr@rrrrAsvMs5999H

H

H


!#
E
DGGGrrc	eZdZ	edZeddeddedd	ed
deded
edgZgZdZedzZdZ	dS)TestHelpUsageOptionalsWraprOrrZrr
rrrrrrrr}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
        rNrr@rrr"r"Zs6s'''D(###D(###D(###D(###CCC!#
E

DGGGrr"ceZdZ	edZededededededgZgZd	Zed
zZdZ	dS)
TestHelpUsagePositionalsWraprOrrrrrrrz        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
        rNrr@rrr$r$s8s'''D		D		D		H

H

H


!#
E
DGGGrr$ceZdZ	edZeddeddedd	ed
ededgZgZd
ZedzZdZ	dS)%TestHelpUsageOptionalsPositionalsWraprOrrrr
rrrrrrra        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
        rNrr@rrr&r&sFs'''D(###D(###D(###H

H

H


!#
EDGGGrr&ceZdZ	edZeddeddedd	gZgZd
ZedzZdZ	d
S)TestHelpUsageOptionalsOnlyWraprOrrrr
rrrrz        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
        rNrr@rrr(r(sJs'''D(###D(###D(###
!#
E
DGGGrr(ceZdZ	eddZedededgZgZdZedzZd	Z	d
S) TestHelpUsagePositionalsOnlyWraprOFrrrrz~        usage: PROG aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        r rNrr@rrr*r*svLs777H

H

H


!#
EDGGGrr*c
2eZdZ	edZedededddd	d
edd
deddddgddeddedddgZededd ed!d"d#gfgZd$Zed%zZ	d&Z
d'S)(TestHelpVariableExpansionrOrrz"x %(prog)s %(default)s %(type)s %%rXrrrXXXz y %(prog)s %(default)s %(const)s)rrmrrUrrz$foo %(prog)s %(default)s %(choices)srcr/rErsrBBBz!bar %(prog)s %(default)s %(dest)s)rmrrZrUrzspam %(prog)s %(default)srr4rdzbadger %(prog)s %(default)s)rmrUrrza %(prog)s %(default)srrzb %(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
        rN)rrr rsrrrrrrUrqr@rrr,r,s2Ds'''Ds5	7	7	7D%3	5	5	5GU7	9	9	9GUQFE4	6	6	6F4555Hc(EFFF

WC3444Cb'?@@@
	!ED"GGGrr,cDeZdZ	eddZgZgZdZedzZdZ	dS)&TestHelpVariableExpansionUsageSuppliedrOz%(prog)s FOOrQrz         usage: PROG FOO
        r\rNrr@rrr0r0&sQJsn=== "ED
GGGrr0c>eZdZ	eddZgZgZdZeZdZ	dS)$TestHelpVariableExpansionNoArgumentsrOFrz        usage: PROG
        rNrr@rrr3r37sEEs777 "EDGGGrr3cxeZdZ	edejZeddeddgZgZdZ	d	Z
d	Zd
S)TestHelpSuppressUsagerOr1rrSrr	spam helpz        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        rN)rrr rsr*rirrrrUrrqr@rrr5r5Dsp=sh.?@@@G*%%%F%%%!#D
EGGGrr5c~eZdZ	eddZedejeddgZgZdZ	e	d	zZ
d
ZdS)TestHelpSuppressOptionalrOFrrrrr6z!        usage: PROG spam
        zA
        positional arguments:
          spam  spam help
        rNrrr rsrr*rirrrrUrqr@rrr8r8Ys|Is777G(+,,,F%%%!#
ED
GGGrr8ceZdZ	edZeddeddgZeded	ejgfgZd
Z	e	dzZ
dZd
S)TestHelpSuppressOptionalGrouprOrrrSrrr6rr/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
        rN)rrr rsrrr*rirrrUrqr@rrr;r;msFs'''G*%%%F%%%


WG(*;<<<=>!
EDGGGrr;c|eZdZ	edZeddedejgZgZdZ	e	dzZ
d	Zd
S)TestHelpSuppressPositionalrOrrrSrrz-        usage: PROG [-h] [--foo FOO]
        o
        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        rNr9r@rrr?r?szKs'''G*%%%F*+++!#
EDGGGrr?c\eZdZ	edZedddgZgZdZedzZd	Z	d
S)TestHelpRequiredOptionalrOrrTrS)rrUz+        usage: PROG [-h] --foo FOO
        r@rNrr@rrrBrBsg8s'''Gd444!#
EDGGGrrBczeZdZ	edddZeddded	d
dgZgZd
ZedzZdZ	dS)TestHelpAlternatePrefixCharsrOz^;F)rQrJrKz^^foorrSrTz;bz;;barrWrz-        usage: PROG [^^foo] [;b BAR]
        zf
        options:
          ^^foo              foo help
          ;b BAR, ;;bar BAR  bar help
        rNrr@rrrDrDsDsTEJJJGLz:::D'
+++!#
EDGGGrrDcteZdZ	eddZeddeddgZgZd	Zed
zZdZ	dS)
TestHelpNoHelpOptionalrOFrrrSrrr6z-        usage: PROG [--foo FOO] spam
        zv
        positional arguments:
          spam       spam help

        options:
          --foo FOO  foo help
        rNrr@rrrFrFsyGs777G*%%%F%%%!#
EDGGGrrFcjeZdZ	edZededgZgZdZedzZdZ	dS)	TestHelpNonerOrrrr<z
        positional arguments:
          spam

        options:
          -h, --help  show this help message and exit
          --foo FOO
        rNrr@rrrHrHsi;s'''GF!#
EDGGGrrHc	eZdZ	edZeddddedd	d
dedd
ddeddddgZgZdZedzZdZ	dS)TestHelpTupleMetavarrOrrZrfr)W1W2)rUrurZrrr)X1X2rr\rx)Y1Y2Y3rrr)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
        rNrr@rrrJrJs,s'''Ds#|<<<Ds#|<<<Ds!-?@@@Ds#x888	!#
EDGGGrrJceZdZ	edejdZeddeddgZed	d
edd
gfgZdZ	e	dzZ
dZdS)TestHelpRawTextrO7Keep the formatting
    exactly as it is written

here
rQformatter_classrRrz-    foo help should also
appear as given hererrr6r\?    This text
  should be indented
    exactly like it is here
r^r/rW>        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
        rN)rrr rsr*RawTextHelpFormatterrrrrrUrqr@rrrTrTs's
X%B	G1	2	2	2F%%%

W#B
C
C
C#gJ
'
'
'	(	*!
ED,GGGrrTceZdZ	edejdZeddeddgZed	d
edd
gfgZdZ	e	dzZ
dZdS)TestHelpRawDescriptionrOrUrVrz4  foo help should not
    retain this odd formattingrrr6r\rXr^r/rWrYa
        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
        rN)rrr rsr*RawDescriptionHelpFormatterrrrrrUrqr@rrr\r\@s's
X%I	G;	<	<	<F%%%

W#B
C
C
C#gJ
'
'
'	(	*!
ED*GGGrr\c^eZdZ	edejdZeddeddd	
edejdd
edejdejedddeddeddddgZ	eddede
dd gfgZd!Zed"zZ
d#Zd$S)%TestHelpArgumentDefaultsrOrRrVrz)foo help - oh and by the way, %(default)srr/rrWrTz--tazzWhether to taz itT)rrUrmz--corgezWhether to corge itz--quuxzSet the quuxr)rUrmrr6r4rwoodenzbadger helprdr\r^rcrC)rrmrUz        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)
        rN)rrr rsr*ArgumentDefaultsHelpFormatterrrrirrrrrUrqr@rrr_r_ps@0s
X%K!###
	GEFFFGLz:::GH:$d	4	4	4Ih<&0A	C	C	CH>2666F%%%HC
FFF


W-	0	0	0

#gC*
=
=
=	>	@!
E
D*GGGrr_c`eZdZ	eddZeddddgZgZd	Zed
zZdZ	dS)
TestHelpVersionActionrOrRrV-Vrprqz3.6rsz&        usage: PROG [-h] [-V]
        z
        description

        options:
          -h, --help     show this help message and exit
          -V, --version  show program's version number and exit
        rNrr@rrrcrcsg6sMBBB3t[ERRRS "
EDGGGrrcceZdZ	edZeddddejedd	
edd
gZgZd
Z	e	dzZ
dS)TestHelpVersionActionSuppressrOrr_rprqrr)rrqrUrrSrrr6r<r=N)rrr rsrr*rirrrrUr@rrrfrfsMs'''D+i"	$	$	$G*%%%F%%%	!#
EDDDrrfcteZdZ	eddZeddddgZd	d
DZdZedzZd
Z	dS)TestHelpSubparsersOrderingrOdisplay some subcommandsrVr_rprqrrsc.g|]}t|S)rrs)rrcs  rrz%TestHelpSubparsersOrdering.<listcomp>s6DDD!%!d^^^DDDr)rr}r~r2r6        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
        rN)
rrr rsrrrrrUrqr@rrrhrhs?s'ACCC3t[ERRRSDD)BDDD
E

DGGGrrhcxeZdZ	eddZeddddgZd	Zd
eDZdZedzZ	d
Z
dS)"TestHelpSubparsersWithHelpOrderingrOrirVr_rprqrrs))rza subcommand help)r}zb subcommand help)r~zc subcommand help)r2zd subcommand help)rze subcommand helpc6g|]\}}t||S))rcrUrk)rrcrUs   rrz-TestHelpSubparsersWithHelpOrdering.<listcomp>s?@@@!+t!d666@@@rrla
        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
        rN)rrr rsrrsubcommand_datarrrUrqr@rrrnrns?s'ACCC3t[ERRRSO@@/>@@@
ED"GGGrrnceZdZdZeddejZedeedeede	d	
gZ
gZdZedzZ
d
ZdS)TestHelpMetavarTypeFormatterc|SrNr@rs rcustom_typez(TestHelpMetavarTypeFormatter.custom_types
rrOrR)rQrRrWrrbrrz
SOME FLOAT)rrZzF        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
        rN)rrr rtrsr*MetavarTypeHelpFormatterrrrerrrrUrqr@rrrrrrssM+3+LNNN3s---3t+6663t%FFFH!#
EDGGGrrrcjeZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdS)TestInvalidArgumentConstructorscdtj}|jt|jg|Ri|dSrN)r*r+rrrrrurvr1s    rassertTypeErrorz/TestInvalidArgumentConstructors.assertTypeError;sR(**)V%8	+	+	+	+#)	+	+	+	+	+rcdtj}|jt|jg|Ri|dSrN)r*r+rrrrys    rassertValueErrorz0TestInvalidArgumentConstructors.assertValueError@sR(***f&9	+	+	+	+#)	+	+	+	+	+rc|dd|dd|dd|didS)	Nr)rDrr')callbackr@)
callback_args)callback_kwargsrzrs rtest_invalid_keyword_argumentsz>TestInvalidArgumentConstructors.test_invalid_keyword_argumentsEslTt,,,TE222T444T266666rcd|dD]}||dS)N)rrrrrrs  rtest_missing_destinationz8TestInvalidArgumentConstructors.test_missing_destinationKsG)	0	0F   ////	0	0rcZ|d|ddS)Nrz---r|rs rtest_invalid_option_stringsz;TestInvalidArgumentConstructors.test_invalid_option_stringsPs0d###e$$$$$rcz|dd|dttfdS)Nrrrb)r|rrers rtest_invalid_typez1TestInvalidArgumentConstructors.test_invalid_typeTs>gE222gS%L99999rc|dd|dd|ddtj}|t5}|dddddn#1swxYwY|dt|jdS)	Nrr'rrErrrz
store-truezunknown action)	r|r*r+rrrrrrrs   rtest_invalid_actionz3TestInvalidArgumentConstructors.test_invalid_actionXsd5111eE222g.ABBB(**


z
*
*	>b===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>

&BL(9(9:::::s3BBBc:tj}|d|t5}|dddddn#1swxYwY|dt
|jdS)Nr'r'rDrEz+dest supplied twice for positional argument)r*r+rrrrrrrs   rtest_multiple_destz2TestInvalidArgumentConstructors.test_multiple_destas(**'''


z
*
*	3bE222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3

C",''	)	)	)	)	)sA((A,/A,cdD]H}tttdtdfD]}|jd	d|i|IdS)
N)rrrrrrbrrtabrrr)r)rkrrz)rrattrss   rtest_no_argument_actionsz8TestInvalidArgumentConstructors.test_no_argument_actionsis~0	C	CFC...$S///t,,,.
C
C$$BB&BEBBBB
C	C	CrcpdD]2}|dd||dd|3dS)N)rrrrr'rrrurrrs  r!test_no_argument_no_const_actionszATestInvalidArgumentConstructors.test_no_argument_no_const_actionsps\<	A	AF
  U6 BBB
  S @@@@
	A	ArcdD]i}|dd||dd|dD]4}|dd|||dd||5jdS)	Nrrrrr)rsrrr')rrurr)rrrus   r#test_more_than_one_argument_actionszCTestInvalidArgumentConstructors.test_more_than_one_argument_actionszs)	B	BF
!!$a!???!!&&!AAA'
B
B%%d%,1&&BBB%%fE,1&&BBBB
B	B	Brc@dD]}|dd|dS)N)rrrrrrrs  rtest_required_const_actionsz;TestInvalidArgumentConstructors.test_required_const_actionss?5	A	AF
  S @@@@	A	Arc|dd|ddd|ddtjdS)NrparsersrrO)rrQ)rr)rzr*r+rs r"test_parsers_action_missing_paramszBTestInvalidArgumentConstructors.test_parsers_action_missing_paramsslYy999YyvFFFYy*2*A		C	C	C	C	Crc4|dddS)Nr'Trrrs rtest_required_positionalz8TestInvalidArgumentConstructors.test_required_positionals!UT22222rcGddtGfddt}tj}||jd|||jd|dS)NceZdZdS)ITestInvalidArgumentConstructors.test_user_defined_action.<locals>.SuccessNrr@rrSuccessrsDrrc$eZdZ	dfd	ZdZdS)HTestInvalidArgumentConstructors.test_user_defined_action.<locals>.ActionFc@|dkr|ur|urdSdSdS)Nrr@)roption_stringsr(rrmrrs      rrzQTestInvalidArgumentConstructors.test_user_defined_action.<locals>.Action.__init__sB6>>''"g--")'))O">''--rcdSrNr@rws   rr/zQTestInvalidArgumentConstructors.test_user_defined_action.<locals>.Action.__call__srN)F)rrr rr/)rsrr7rsG#(	
,	
,	
,	
,	
,	
,




rr7rZ)rrmrr)rrr*r+rr)rr7r1rs   @rtest_user_defined_actionz8TestInvalidArgumentConstructors.test_user_defined_actions					i										V			 (**'6#6!'		I	I	I'6#6!'		I	I	I	I	IrN)rrr rzr|rrrrrrrrrrrrrr@rrrwrw8s7+++
+++
777000
%%%:::;;;)))CCCAAABBBAAACCC333IIIIIrrwceZdZdZdZdS)TestActionsReturnedcPtj}|d}||jd|dd}||jd|dd}||jddS)	Nrr'rr/rDrrr)r*r+rrr(rr1rs   rrzTestActionsReturned.test_dests(**$$W--e,,,$$T733e,,,$$T400c*****rc4tj}|ddddtddgddd	
		}||jd||jd||jd||jt||j	ddg||j
d||jd||jd	dS)NrrrrrsrraBARrE)rurrmrrrUrZr()
r*r+rrrrurrmrrrUrZr(rs   r	test_misczTestActionsReturned.test_miscs(**$$WCr-/cAq6*/U%LL	
s+++r***,,,c***!Q000e,,,///e,,,,,rN)rrr rrr@rrrrs2+++-----rrc&eZdZdZdZdZdZdS)TestConflictHandlingcT|ttjddS)Nr')conflict_handler)rrr*r+rs r
test_bad_typez"TestConflictHandling.test_bad_types3*h&=+0		2	2	2	2	2rctj}|d|tj|jd|d|tj|jddS)NrrZ)r*r+rrrr0s  rtest_conflict_errorz(TestConflictHandling.test_conflict_errors(**D!!!(0 -t	5	5	5H%%%(0 -x	9	9	9	9	9rctj}|dd}|dd|dd||tjd|d	d
|d	d||tjd
dS)NrOresolve)rQrrzOLD XrzNEW Xz            usage: PROG [-h] [-x X]

            options:
              -h, --help  show this help message and exit
              -x X        NEW X
            rZOLD_SPAMr
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
            )r*r+rrrrr)rr&r1s   rtest_resolve_errorz'TestConflictHandling.test_resolve_errors,
)DDDDw///Dw///++--x@00				Hj999Hj999++--x@00					rctj}|}|ddg|tj|jd|tj|jd|tj|jddg|tj|jddgdS)Nfullnamealiasrr)r*r+rjrlrr)rr1sps   rtest_subparser_conflictz,TestConflictHandling.test_subparser_conflicts(**

"
"
$
$


j7)
444(0-	5	5	5(0-	2	2	2(0-:,		H	H	H(0-7)		E	E	E	E	ErN)rrr rrrrr@rrrrsU2229992EEEEErrcFeZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
S)TestOptionalsHelpVersionActionsc|t5}||dddn#1swxYwY|||jjdSrN)rrr:rrrrr)rr1rrs    rassertPrintHelpExitz3TestOptionalsHelpVersionActions.assertPrintHelpExits


2
3
3	0rhnn..///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0++--r|/BCCCCCs(AAAcH|t|j|dSrN)rrr:rr1rus   rrLz9TestOptionalsHelpVersionActions.assertArgumentParserErrors$-v/@$GGGGGrct}|dddd||d||d|tt
|ddS)	Nr_rprqrrrsr4rPformat_versionrrrrrrr0s  rtest_versionz,TestOptionalsHelpVersionActions.test_versionsw+--D+iOOO  ...  222.'6;KLLLLLrc(td}|dddd|t5}|dgdddn#1swxYwY|d|jjdS)	NPPPrr_rprqz%(prog)s 3.5rszPPP 3.5
rrrrr:rrrrs   rtest_version_formatz3TestOptionalsHelpVersionActions.test_version_format s+777D+iXXX


2
3
3	&rtf%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&bl&9:::::sA''A+.A+ctd}|dddd||d||d	|tt
|d
dS)NFrr_rprqrrrsr4rPr)rrrLrrrr0s  rtest_version_no_helpz4TestOptionalsHelpVersionActions.test_version_no_help's|+U;;;D+iOOO&&vt444&&vx888.'6;KLLLLLrc&td}|ddd|t5}|dgdddn#1swxYwY|d|jjdS)Nr-rrdrqz%(prog)s 3.7rszXXX 3.7
rrs   rtest_version_actionz3TestOptionalsHelpVersionActions.test_version_action.s+777DNKKK


2
3
3	&rtf%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&bl&9:::::sA&&A*-A*ctd}||d||d||d||ddS)NFrr4rPr_rp)rrLr0s  rtest_no_helpz,TestOptionalsHelpVersionActions.test_no_help5sp+U;;;&&vt444&&vx888&&vt444&&v{;;;;;rcFt}|dd|dd||d||d||d|t
t|ddS)	NrrUrrrqr_rpr)rrrrLrrrr0s  rtest_alternate_help_versionz;TestOptionalsHelpVersionActions.test_alternate_help_version<s+--D000D333  ...&&vt444&&v{;;;.'6;KLLLLLrct}|ddd|dd|dgd	}|d
dgz}|D]b}|D]	}|d|}
|||d
z|||dz|tt
|dcdS)Nrprqrrrsrrrr\)rrr'z-x barzbaz -xz--bad-optionzfoo bar bazz %s r4rPrr)rr1valid_prefixesvalid_suffixesprefixsuffixr	s       r!test_help_version_extra_argumentszATestOptionalsHelpVersionActions.test_help_version_extra_argumentsEs+--K	5IIID666C   ?>>'>=*II$	Q	QF(
8
8(.7$$VVd];;;$$VVh->???ngv?OPPPP	Q	QrN)rrr rrLrrrrrrrr@rrrrs+DDD
HHHMMM;;;MMM;;;<<<MMMQQQQQrrc@eZdZ	dZdZdZdZdZdZdZ	dZ
d	S)
TestStringscfttfD]!}||||"dSrN)rrr)robj
result_stringr5s    rassertStringEqualzTestStrings.assertStringEqual]s@$K	7	7DTT#YY
6666	7	7rcxtjgdddddgdddd	
		}d}|||dS)N)rrrr}rrrrsrrxFHELPMETAVAR	rr(rrurmrrrUrZzAction(option_strings=['--foo', '-a', '-b'], dest='b', nargs='+', const=None, default=42, type='int', choices=[1, 2, 3], required=False, help='HELP', metavar='METAVAR'))r*r7r)roptionrs   r
test_optionalzTestStrings.test_optionalasf000II			
Q		
vv.....rctjgdtddgdddd		}d	tz}|||dS)
Nrrrc)rdg?rcTzH HH HzMV MV MVrzAction(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'))r*r7rer)rargumentrs   r
test_argumentzTestStrings.test_argumentrsi?#OO	 	 	 
@BG
H		
x00000rcbtjdd}d}|||dS)NrrrzNamespace(foo=42, bar='spam')r*rrrrrs   rtest_namespacezTestStrings.test_namespaces8

BF
3
3
30r6*****rc\tjdiddi}d}|||dS)N"quotezNamespace(**{'"': 'quote'})r@rrs   r'test_namespace_starkwargs_notidentifierz3TestStrings.test_namespace_starkwargs_notidentifiers=


1
13.
1
12r6*****rc`tjdddiddi}d}|||dS)Nrrsrrz Namespace(a=1, **{'"': 'quote'})r@rrs   r2test_namespace_kwargs_and_starkwargs_notidentifierz>TestStrings.test_namespace_kwargs_and_starkwargs_notidentifiersB


6
6!
6W~
6
67r6*****rc\tjdiddi}d}|||dS)NvalidTzNamespace(valid=True)r@rrs   r$test_namespace_starkwargs_identifierz0TestStrings.test_namespace_starkwargs_identifiers=


2
27D/
2
2(r6*****rcztjd}dtjz}|||dS)NrOrzvArgumentParser(prog='PROG', usage=None, description=None, formatter_class=%r, conflict_handler='error', add_help=True))r*r+
HelpFormatterr)rr1rs   rtest_parserzTestStrings.test_parsersH(f555
'5
6		
vv.....rN)rrr rrrrrrrrr@rrrrZs=777///"111"+++
+++
+++
+++
/////rrc eZdZdZdZdZdS)
TestNamespacectj}|tt|dtjdd}||jd||jddS)Nrrrr)r*rrrrrrr}rs  rtest_constructorzTestNamespace.test_constructorsu


!
!.'2s;;;

"
/
/
/r"""v&&&&&rcVtjdd}tjdd}tjd}tjd}||||||||||||||||||k|||k|||k|||kdS)Nrsrr)r}r)rr)r*rrassertNotEqual
assertTrue)rns1ns2ns3ns4s     r
test_equalityzTestNamespace.test_equalitys 1*** 1*** 1%%% 1%%%c"""C%%%C%%%C%%%C%%%s
###s
###s
###s
#####rctjdd}||dt||dtdS)Nrsrr)r*rassertIsrNotImplemented__ne__rs  r$test_equality_returns_notimplementedz2TestNamespace.test_equality_returns_notimplementedsY

!q
)
)
)

biioo~666

biioo~66666rN)rrr rr	rr@rrrrsA'''$$$ 77777rrc eZdZdZdZdZdS)TestEncodingctj|\}}|dz
}t|dd5}|ddddS#1swxYwYdS)Nz.pyrr
rg)rRrZsplitextrir)rrZrrs    r_test_module_encodingz"TestEncoding._test_module_encodings'""4((a

$g
.
.
.	!
FFHHH																		sAA #A cD|tjdSrN)rr*__file__rs rtest_argparse_module_encodingz*TestEncoding.test_argparse_module_encodings""8#455555rc:|tdSrN)rrrs r"test_test_argparse_module_encodingz/TestEncoding.test_test_argparse_module_encodings""8,,,,,rN)rrr rrrr@rrrrsA666-----rrceZdZdZdS)TestArgumentErrorczd}tjd|}|t||dS)Nz
my error here)r*rrr)rrrs   rtest_argument_errorz%TestArgumentError.test_argument_errors;&tS11US)))))rN)rrr rr@rrrrs#*****rrceZdZdZdS)TestArgumentTypeErrorc,d}tdd}|d||t5}|dgdddn#1swxYwY|d|jjdS)	Nc*tjd)Nspam!)r*ArgumentTypeErrorrs rrz<TestArgumentTypeError.test_argument_type_error.<locals>.spams,W555rrOFrrrbr-z-usage: PROG x
PROG: error: argument x: spam!
)rrrrr:rrr)rrr1rs    rtest_argument_type_errorz.TestArgumentTypeError.test_argument_type_errors	6	6	6,%HHHCd+++


2
3
3	'rug&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'J,	.	.	.	.	.sA))A-0A-N)rrr r#r@rrrrs#
.
.
.
.
.rrc eZdZdZdZdZdS)TestMessageContentErrorctdd}|dt|dtd|d	td
|t
5}|gdddn#1swxYwYt|j}||d||d||d	|t
5}|d
gdddn#1swxYwYt|j}|	|d||d||d	|t
5}|d
dgdddn#1swxYwYt|j}|	|d|	|d||d	dS)NrOrr1req_posrb-req_optTrneed_oner)rrureq_optmyXargumentz
-req_opt=1)
rrrrrrr:rr=rrr1rrs    r%test_missing_argument_name_in_messagez=TestMessageContentError.test_missing_argument_name_in_messages+rBBBIC000JS4@@@JS<<<


2
3
3	"rb!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"",i(((i(((j)))


2
3
3	/r}o...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/",i(((i(((j)))


2
3
3	=r}l;<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=",i(((i(((j)))))s6B$$B(+B(EE	E=G!!G%(G%cLtdd}|dt|dtd|d	td
d|t5}|gdddn#1swxYwYt|j}|	|d|	|d|
|d
|t5}|dgdddn#1swxYwYt|j}|	|d|
|d|
|d
dS)NrOrr1r'rbz	--req_optTrz	--opt_optr)rrurmr*opt_optz--req_opt=1)rrrrboolrrr:rr=rr,s    r%test_optional_optional_not_in_messagez=TestMessageContentError.test_optional_optional_not_in_messages+rBBBIC000KcDAAAKd#$(		*	*	*


2
3
3	"rb!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"",i(((i(((i(((


2
3
3	/r}o...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/",i(((i(((i(((((s$B%%B),B) EE
Ectdd}|d|ddd|t5}|gdddn#1swxYwYt|j}||d||ddS)	NrOrr1r'optional_positionalrrr)	rrrrr:rrr=rr,s    r'test_optional_positional_not_in_messagez?TestMessageContentError.test_optional_positional_not_in_message%s+rBBBI&&&1fMMM


2
3
3	"rb!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"",i(((344444sA;;A?A?N)rrr r-r1r4r@rrr%r%sA***2)))&55555rr%ceZdZdZdS)TestTypeFunctionCallOnlyOncecfd}tj}|d|d|d}t
d|dS)Nc4|ddS)Nr!
foo_convertedr)string_to_convertrs rrzLTestTypeFunctionCallOnlyOnce.test_type_function_call_only_once.<locals>.spam7s.888"?rrrDrz--foo spam!r9r)r*r+rr:rrrzrrr1rus`   r!test_type_function_call_only_oncez>TestTypeFunctionCallOnlyOnce.test_type_function_call_only_once6s	#	#	#	#	#(**G$>>>  !4!4!6!677000$77777rN)rrr r=r@rrr6r64s#88888rr6c&eZdZdZdZdZdZdS)TestTypeFunctionCalledOnDefaultcfd}tj}|d|d|g}td|dS)Nc4|ddS)Nrr9r:)int_to_convertrs rrz]TestTypeFunctionCalledOnDefault.test_type_function_call_with_non_string_default.<locals>.spamGs^Q///"?rrrrrr*r+rr:rrzr<s`   r/test_type_function_call_with_non_string_defaultzOTestTypeFunctionCalledOnDefault.test_type_function_call_with_non_string_defaultFs~	#	#	#	#	#(**G$:::  $$D)))))rcd}tj}|d|d|g}|td|dS)NcdS)Nr9r@)rBs rrzYTestTypeFunctionCalledOnDefault.test_type_function_call_with_string_default.<locals>.spamRs"?rr0rr9rrCr<s    r+test_type_function_call_with_string_defaultzKTestTypeFunctionCalledOnDefault.test_type_function_call_with_string_defaultQsv	#	#	#(**G$<<<  $$000$77777rcd}tj}|d|d|g}|td|dS)Nc|dzS)Nrr@)str_to_converts rrCzYTestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_default.<locals>.extend\s
!C''r--testrrz**)rrC)rrCr1rus    r)test_no_double_type_conversion_of_defaultzITestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_default[su	(	(	((**H63???  $$	
-----rctj}|ddtgd|g}||jgdS)NrLrr)r(rrmr)r*r+rrr:rrrs   rtest_issue_15906z0TestTypeFunctionCalledOnDefault.test_issue_15906gsk(**H6$&x		9	9	9  $$B'''''rN)rrr rDrHrMrOr@rrr?r?DsP	*	*	*888
.
.
.(((((rr?c2eZdZdZdZdZdZdZdZdS)TestParseKnownArgscVtj}|ddS)Nr@r*r+r:r0s  rtest_arguments_tuplez'TestParseKnownArgs.test_arguments_tuplew*(**"rcVtj}|gdSrNrSr0s  rtest_arguments_listz&TestParseKnownArgs.test_arguments_list{rUrctj}|d|ddS)Nrrr*r+rr:r0s  rtest_arguments_tuple_positionalz2TestParseKnownArgs.test_arguments_tuple_positionals>(**C   &!!!!!rctj}|d|dgdS)NrrYr0s  rtest_arguments_list_positionalz1TestParseKnownArgs.test_arguments_list_positionals@(**C   3%     rc"tj}|d|d\}}|t
d||ddg|dS)Nrz--foo F --bar --bazFrr/rc)r*r+rrrrrz)rr1ruextrass    rtest_optionalsz!TestParseKnownArgs.test_optionalss(**G$$$../D/J/J/L/LMMfd+++'7+V44444rcttj}|dddt|dd|dgd	}||\}}|t
d
dd
||gd|dS)Nr_rrs)rurrrZrrr4)rBrrr_rrFrxTrB)vrr4)rrrF)r*r+rrrrrz)rr1rrur_s     r
test_mixedzTestParseKnownArgs.test_mixeds(**D13???H];;;H%%%222..t44fad3777>>>,,,f55555rN)	rrr rTrWrZr\r`rcr@rrrQrQusn"""
!!!
555	6	6	6	6	6rrQc&eZdZdZdZdZdZdS)TestIntermixedArgsc	tjd}|dd|ddd	}|d
|ddt
d}||}|tdd
dgd|||\}}|tdd
dg||gd|d}|	|\}}|tdd
ddg||gd||
|j||jddS)NrOrrr'r'r/rDTrcmdrestr)rurzcmd --foo x 1 --bar y 2 3r\rr)rDrgr'rhr	rrz!cmd --foo x 1 --error 2 --bar y 3rs)z--errorrr)
r*r+rrrparse_intermixed_argsrrzrparse_known_intermixed_argsrrr)rr1rDrrur_s      r
test_basiczTestIntermixedArgs.test_basics(f555G%000!!'!EEE"""F#C888*0022++D11CiiiHHH$OOO..t44fCbAAA4HHH&111288::99$??fCqcBBBDIII...777	
&,'''t,,,,,rctd}|d|d|ddd}|t5}||dddn#1swxYwY|t|jd	dS)
NrOrrrr\r[rtr]z\.\.\.)	rrrrrrjr=rr)rr1rrs    rtest_remainderz!TestIntermixedArgs.test_remainders+888D!!!C   Cu---!!##

y
)
)	/R((...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/R\**I66666sB""B&)B&ctd}|d}|ddd|d	d
|dd
dd|d}|t
ddgdd||t|jd||j	ddS)NrOrTrrrrarTrZrbrr4rr6rcrdz	1 --foo 2r	r)r4r'rr)
rrrrjrrrzrrr)rr1rrus    rtest_exclusivez!TestIntermixedArgs.test_exclusives+88833T3BB
7<eDDD
8&111HC8LLL++K,=,=,?,?@@C:4dCCCTJJJ-v/KU[[]][[[.....rcZtd}|d}|ddd|d	d
|dd
dd|t|jg||jddS)NrOrTrrrrarTrZrbrr4rr6rcrd)rrrrrrjrrrs   rtest_exclusive_incompatiblez.TestIntermixedArgs.test_exclusive_incompatibles+88833T3BB
7<eDDD
8&111
83(KKK)V%A2FFF.....rN)rrr rlrnrprrr@rrreresP---6777
/
/
//////rreceZdZdZdS)!TestIntermixedMessageContentErrorctdd}|dt|dtd|t
5}|gdddn#1swxYwYt|j}||d||d	|t
5}|	gdddn#1swxYwYt|j}|
|d||d	dS)
NrOrr1r'rbr(Trr*)rrrrrrr:rr=rjassertNotRegexr,s    rr-zGTestIntermixedMessageContentError.test_missing_argument_name_in_messages+rBBBIC000JS4@@@


2
3
3	"rb!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"",i(((i(((


2
3
3	-r((,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-",C+++i(((((s$%BBB,DDDN)rrr r-r@rrrtrts#)))))rrtc,eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1S)2TestAddArgumentMetavarz,length of metavar tuple does not match nargsc\tj}|d||dS)NrrurZ)r*r+r)rrurZr1s    rdo_test_no_exceptionz+TestAddArgumentMetavar.do_test_no_exceptions1(**G5'BBBBBrctj}|t5}|d||dddn#1swxYwY||jjd|jdS)Nrrzr)	r*r+rrrrrruEXPECTED_MESSAGE)rrurZr1rs     rdo_test_exceptionz(TestAddArgumentMetavar.do_test_exceptions(**


z
*
*	GbugFFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G*1-t/DEEEEEsAAAc4|dddS)Nr	rzr{rs rtest_nargs_None_metavar_stringz5TestAddArgumentMetavar.test_nargs_None_metavar_strings!!!c!:::::rcL|dtdS)Nrzr~tuplers rtest_nargs_None_metavar_length0z6TestAddArgumentMetavar.test_nargs_None_metavar_length0	s%T577;;;;;rc4|dddS)Nrirzrrs rtest_nargs_None_metavar_length1z6TestAddArgumentMetavar.test_nargs_None_metavar_length1s!!!f!=====rc4|dddS)Nr	rrzr~rs rtest_nargs_None_metavar_length2z6TestAddArgumentMetavar.test_nargs_None_metavar_length2s!T:>>>>>rc4|dddS)Nrirzrrs rtest_nargs_None_metavar_length3z6TestAddArgumentMetavar.test_nargs_None_metavar_length3s!T?CCCCCrc4|dddS)Nrr	rzrrs r"test_nargs_optional_metavar_stringz9TestAddArgumentMetavar.test_nargs_optional_metavar_string!!!S!99999rcL|dtdS)Nrrzrrs r#test_nargs_optional_metavar_length0z:TestAddArgumentMetavar.test_nargs_optional_metavar_length0%S%'':::::rc4|dddS)Nrrirzrrs r#test_nargs_optional_metavar_length1z:TestAddArgumentMetavar.test_nargs_optional_metavar_length1!!!V!<<<<<rc4|dddS)Nrrrzrrs r#test_nargs_optional_metavar_length2z:TestAddArgumentMetavar.test_nargs_optional_metavar_length2 s!S*=====rc4|dddS)Nrrirzrrs r#test_nargs_optional_metavar_length3z:TestAddArgumentMetavar.test_nargs_optional_metavar_length3#!S/BBBBBrc4|dddS)Nrr	rzrrs r$test_nargs_zeroormore_metavar_stringz;TestAddArgumentMetavar.test_nargs_zeroormore_metavar_string(rrcL|dtdS)Nrrzrrs r%test_nargs_zeroormore_metavar_length0z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length0+rrc4|dddS)Nrrirzrrs r%test_nargs_zeroormore_metavar_length1z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length1.rrc4|dddS)Nrrrzrrs r%test_nargs_zeroormore_metavar_length2z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length21!!!Z!@@@@@rc4|dddS)Nrrirzrrs r%test_nargs_zeroormore_metavar_length3z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length34rrc4|dddS)Nrr	rzrrs r#test_nargs_oneormore_metavar_stringz:TestAddArgumentMetavar.test_nargs_oneormore_metavar_string9rrcL|dtdS)Nrrzrrs r$test_nargs_oneormore_metavar_length0z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length0<rrc4|dddS)Nrrirzrrs r$test_nargs_oneormore_metavar_length1z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length1?s!S&99999rc4|dddS)Nrrrzrrs r$test_nargs_oneormore_metavar_length2z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length2Brrc4|dddS)Nrrirzrrs r$test_nargs_oneormore_metavar_length3z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length3Errc4|dddS)Nr[r	rzrrs r#test_nargs_remainder_metavar_stringz:TestAddArgumentMetavar.test_nargs_remainder_metavar_stringJs!!!s!;;;;;rcL|dtdS)Nr[rz)r{rrs r$test_nargs_remainder_metavar_length0z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length0Ms%!!uww!?????rc4|dddS)Nr[rirzrrs r$test_nargs_remainder_metavar_length1z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length1Ps!!!v!>>>>>rc4|dddS)Nr[rrzrrs r$test_nargs_remainder_metavar_length2z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length2Ss!!!z!BBBBBrc4|dddS)Nr[rirzrrs r$test_nargs_remainder_metavar_length3z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length3Vs!!!!GGGGGrc4|dddS)NA...r	rzrrs r test_nargs_parser_metavar_stringz7TestAddArgumentMetavar.test_nargs_parser_metavar_string[s!!!!<<<<<rcL|dtdS)Nrrzrrs r!test_nargs_parser_metavar_length0z8TestAddArgumentMetavar.test_nargs_parser_metavar_length0^s%VUWW=====rc4|dddS)Nrrirzrrs r!test_nargs_parser_metavar_length1z8TestAddArgumentMetavar.test_nargs_parser_metavar_length1as!!!!?????rc4|dddS)Nrrrzrrs r!test_nargs_parser_metavar_length2z8TestAddArgumentMetavar.test_nargs_parser_metavar_length2ds!VZ@@@@@rc4|dddS)Nrrirzrrs r!test_nargs_parser_metavar_length3z8TestAddArgumentMetavar.test_nargs_parser_metavar_length3gs!V_EEEEErc4|dddS)Nrsr	rzrrs rtest_nargs_1_metavar_stringz2TestAddArgumentMetavar.test_nargs_1_metavar_stringl!!!3!77777rcL|dtdS)Nrsrzrrs rtest_nargs_1_metavar_length0z3TestAddArgumentMetavar.test_nargs_1_metavar_length0o%Q88888rc4|dddS)Nrsrirzrrs rtest_nargs_1_metavar_length1z3TestAddArgumentMetavar.test_nargs_1_metavar_length1rs!!!6!:::::rc4|dddS)Nrsrrzrrs rtest_nargs_1_metavar_length2z3TestAddArgumentMetavar.test_nargs_1_metavar_length2u!Q
;;;;;rc4|dddS)Nrsrirzrrs rtest_nargs_1_metavar_length3z3TestAddArgumentMetavar.test_nargs_1_metavar_length3x!Q@@@@@rc4|dddS)Nrr	rzrrs rtest_nargs_2_metavar_stringz2TestAddArgumentMetavar.test_nargs_2_metavar_string}rrcL|dtdS)Nrrzrrs rtest_nargs_2_metavar_length0z3TestAddArgumentMetavar.test_nargs_2_metavar_length0rrc4|dddS)Nrrirzrrs rtest_nargs_2_metavar_length1z3TestAddArgumentMetavar.test_nargs_2_metavar_length1!Q77777rc4|dddS)Nrrrzrrs rtest_nargs_2_metavar_length2z3TestAddArgumentMetavar.test_nargs_2_metavar_length2s!!!:!>>>>>rc4|dddS)Nrrirzrrs rtest_nargs_2_metavar_length3z3TestAddArgumentMetavar.test_nargs_2_metavar_length3rrc4|dddS)Nrxr	rzrrs rtest_nargs_3_metavar_stringz2TestAddArgumentMetavar.test_nargs_3_metavar_stringrrcL|dtdS)Nrxrzrrs rtest_nargs_3_metavar_length0z3TestAddArgumentMetavar.test_nargs_3_metavar_length0rrc4|dddS)Nrxrirzrrs rtest_nargs_3_metavar_length1z3TestAddArgumentMetavar.test_nargs_3_metavar_length1rrc4|dddS)Nrxrrzrrs rtest_nargs_3_metavar_length2z3TestAddArgumentMetavar.test_nargs_3_metavar_length2rrc4|dddS)Nrxrirzrrs rtest_nargs_3_metavar_length3z3TestAddArgumentMetavar.test_nargs_3_metavar_length3s!!!?!CCCCCrN)3rrr r}r{r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr@rrrxrxsECCCFFF;;;<<<>>>???DDD
:::;;;===>>>CCC
:::;;;===AAACCC
:::;;;:::AAACCC
<<<@@@???CCCHHH
===>>>@@@AAAFFF
888999;;;<<<AAA
888999888???AAA
888999888<<<DDDDDrrxc.eZdZdZdZdZdZdZdZdS)TestInvalidNargszinvalid 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 appropriatectj}|t5}|d|dddn#1swxYwY||jjd|jdSNrrtr)	r*r+rrrrrruEXPECTED_RANGE_MESSAGErrur1rs    rdo_test_range_exceptionz(TestInvalidNargs.do_test_range_exceptions(**


z
*
*	6bu555	6	6	6	6	6	6	6	6	6	6	6	6	6	6	6*1-t/JKKKKKAAActj}|t5}|d|dddn#1swxYwY||jjd|jdSr)	r*r+rrrrrruEXPECTED_INVALID_MESSAGErs    rdo_test_invalid_exceptionz*TestInvalidNargs.do_test_invalid_exceptions(**


z
*
*	6bu555	6	6	6	6	6	6	6	6	6	6	6	6	6	6	6*1-t/LMMMMMrc^|d|ddS)Nrrtabcd)rrs rtest_nargs_alphabeticz&TestInvalidNargs.test_nargs_alphabetics6&&S&111&&V&44444rc2|ddS)Nrrt)rrs rtest_nargs_zeroz TestInvalidNargs.test_nargs_zeros$$1$-----rN)	rrr rrrrrrr@rrrrse4LLLLNNN555.....rrceZdZdZdZdS)TestImportStarcttjD]*}|tt|+dSrN)r*__all__rrrs  rrzTestImportStar.tests=$	5	5DOOGHd334444	5	5rcdttD}|t	|t	tjdS)Ncvg|]6\}}|ds|dk tj|4|7S)rngettext)
startswithinspectismodule)rrcr	s   rrzJTestImportStar.test_all_exports_everything_but_modules.<locals>.<listcomp>sZ


eOOC((
-1J,>,>#E**-?
,>,>,>r)rr*rrrr)rrs  r'test_all_exports_everything_but_modulesz6TestImportStar.test_all_exports_everything_but_modulessa

#H~~3355


	
x/?(@(@AAAAArN)rrr rrr@rrrrs7555BBBBBrrc$eZdZfdZdZxZS)TestWrappingMetavarcttd|_d}|jd|dS)N9this_is_spammy_prog_with_a_long_name_sorry_about_the_namez<http[s]://example:1234>z--proxyr
)r
rJrr1r)rrZrs  rrJzTestWrappingMetavar.setUpsP


0G


-  G <<<<<rc|j}||tjddS)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>
            )r1rrrr)r	help_texts  rtest_help_with_metavarz*TestWrappingMetavar.test_help_with_metavarsLK++--	HO5%%					r)rrr rJr
r!r"s@rrrsG=====							rrc eZdZdZdZdZdS)TestExitOnErrorc~tjd|_|jddtdS)NF)
exit_on_errorz
--integersN)rZr)r*r+r1rrrs rrJzTestExitOnError.setUps:-EBBB  s EEEEErc|jd}||t	jddS)Nz--integers 4r)integers)r1r:rrr*rrs  r!test_exit_on_error_with_good_argsz1TestExitOnError.test_exit_on_error_with_good_argssM
[
#
#N$8$8$:$:
;
;X/;;;<<<<<rc|tj5|jdddddS#1swxYwYdS)Nz--integers a)rr*rr1r:rrs r test_exit_on_error_with_bad_argsz0TestExitOnError.test_exit_on_error_with_bad_argss


x5
6
6	;	;K"">#7#7#9#9:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;s-AA!AN)rrr rJrrr@rrrrsDFFF===;;;;;rrcNit_tt_dSrN)rrrBrr@rrtearDownModulersEJEJJJr__main__)r,r8rrrrRr^r\rrrOunittestr*rytest.supportrr
TextIOWrapperrrBr$skip_unless_working_chmodrrLrsrzrrrr+rrrrrrrr
rr#r%r+r-r;r>rGrWrYr^rbrkrprrrwrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r"r$r&r(r*r,r.r1r4r7r9r;r=rDrJrLrOrQrSrXrZrargrkrorurrrrrrr	eq_stderrrr
eq_bstderrrrrrrskip_if_dac_overriderrrrrrrrrrr#r9rBrIrrrr"rArLrTrXr_rgrortrwrrrrrrrrrrrrrrrrrrrrrr	rrrrrr"r$r&r(r*r,r0r3r5r8r;r?rBrDrFrHrJrTr\r_rcrfrhrnrrrwrrrrrrrrr%r6r?rQrertrxrrrrrrmainr@rr<module>r s#								







"""""":::::"":::$FFFFFH%FFF:x $DDDDD6DD%$D.&))))))))%%%%%)%%%# # # L>>>>>!8>>>o9o9o9o9o9Do9o9o9b		&&'7CCnn4.




^


 




~


 




>


n.$&N&(,.




^


 







					>			...>&.">"




N


~NN>WWWWWWWW*







													>			&^~"N"~"n&N.~NN					^								N			N>.>>								~								~n^N					n			^N.>




^


					N			>




.


 







 ~">&~&




.


 







^6.&(.*L.D\>DKKKKKxKKK0fhhfhh,,,,,,,,,W%%h''	h''	n--	


/
/



/
/
/////F///"L.033333<333"\>.'''''F'''"L. ,L. &




\>

 
 




]

 
333338333$







$~.,>,>>>>>8>>>.>>>>>N>>>BJJJJJXJJJ$~[[[[[[[[B
!+!+!+!+!+H!+!+!+Nm9m9m9m9m9m9m9m9f+&+&+&+&+&x+&+&+&Z-?-?-?-?-?f-?-?-?`     '8   F((((((((V7HB!!!!!'8!!!H*****(***Z''''''8'''T%%%%%7H%%%P''''''''R/(/(/(/(/('8/(/(/(jf					
-			
					
(			
					
&			
					
1			
					
0			
					
7			
					
0			
					
>			X0X0X0X0X0hX0X0X0|88888X888.
"
"
"
"
"(
"
"
"&Q1Q1Q1Q1Q1$Q1Q1Q1f		**>5"EE"""""l"""H3B3B3B3B3B|3B3B3Bl,,,,,<,,,^>11111<111h%%%%%%%%P33333333l66666L666r<,\>L:!!!!!|!!!H<2########L<D!!!!!L!!!H\4|0++++++++\\"




<


L*|(L4*|(<*\.<0<6.....l...b-----\---`00000|000dL(L2:''''''''V<BxIxIxIxIxIhxIxIxI|-----(---<3E3E3E3E3E83E3E3EtEQEQEQEQEQhEQEQEQXC/C/C/C/C/(C/C/C/R77777H777J-----8---$********.....H...$6565656565h656565z
8
8
8
8
88
8
8
8 +(+(+(+(+(h+(+(+(b$6$6$6$6$6$6$6$6T=/=/=/=/=/=/=/=/~))))))))0eDeDeDeDeDXeDeDeDP.....x...@
B
B
B
B
BX
B
B
B (0;;;;;h;;;zHMOOOOOr