python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_argparse.cpython-311.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*eZdZdZdfd	ZdZxZS)StdIOBufferzReplacement for writable io.StringIO that behaves more like real file

    Unlike StringIO, provides a buffer attribute that holds the underlying
    binary data, allowing it to replace sys.stdout/sys.stderr in more
    contexts.
    
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____doc__rr
__classcell__rs@rrrsV333333
:::::::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)rr2r6
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 r3r@rrr%r%(s7111FFFFFrr%ceZdZdZdS)TestCasec\|tj}d|d<dS)N80COLUMNS)enterContextrEnvironmentVarGuardrenvs  rsetUpzTestCase.setUpGs-	 = ? ?@@IrN)rrr rKrArrrCrCEs#rrCc&eZdZdZdZdZdZdS)TempDirMixinctj|_tj|_tj|jdSN)tempfilemkdtemptemp_dirosgetcwdold_dirchdirrs rrKzTempDirMixin.setUpRs7 (**
y{{
rc>tj|jtj|jdD]M\}}}|D]D}tjtj|j|tj	ENtj|jddS)NF)topdownT)rSrVrUwalkrRchmodpathjoinstatS_IWRITEshutilrmtree)rrootdirsfilesnames     rtearDownzTempDirMixin.tearDownWs
!#!F!F!F	K	KD$
K
KdmT::DMJJJJ
K
dmT*****rctj|j|}t	|dd5}||dddn#1swxYwY|S)Nwr
encoding)rSr[r\rRopenwrite)rfilename	file_pathfiles    rcreate_writable_filez!TempDirMixin.create_writable_file^sGLL99	
)S7
3
3
3	!tJJx   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!sAA!Acjtj||tjdSrO)rSrZror]S_IREAD)rrls  rcreate_readonly_filez!TempDirMixin.create_readonly_fileds*
**844dlCCCCCrN)rrr rKrerorrrArrrMrMOsU   
+++DDDDDrrMceZdZdZdS)Sigc"||_||_dSrO)argskwargsrrvrws   rrzSig.__init__is	rNrrr rrArrrtrtgs#rrtc eZdZdZdZdZdS)NSc:|j|dSrO)__dict__update)rrws  rrzNS.__init__ps
V$$$$$rct|j}dd|D}t	|jd|dS)Nz, cg|]}d|zS)z%s=%rrA).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|kSrO)varsrothers  r__eq__z	NS.__eq__xsDzzT%[[((rN)rrr rrrrArrr{r{nsA%%%;;;
)))))rr{ceZdZddZdS)ArgumentParserErrorNcxt||||||_||_||_||_dSrO)	Exceptionrr*stdoutstderr
error_code)rr*rrrs     rrzArgumentParserError.__init__~s<4&&999$r)NNNryrArrrr|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;rvrw
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|SrO)r
rr;r)rrvrwr;rs    rr;z%ErrorRaisingArgumentParser.parse_argss45t<<G
%jB4BBB6BBBrcXtt|j}t|g|Ri|SrO)r
rr0r)rrvrwr0rs    rr0zErrorRaisingArgumentParser.exits4/66;%d<T<<<V<<<rcXtt|j}t|g|Ri|SrO)r
rerrorr)rrvrwrrs    rrz ErrorRaisingArgumentParser.errors40$77=%e=d===f===r)rrr r;r0rr"r#s@rrrsoCCCCC=====>>>>>>>>>rrceZdZdZdZdS)ParserTesterMetaclassa}Adds parser tests using the class attributes.

    Classes of this type should specify the following attributes:

    argument_signatures -- a list of Sig objects which specify
        the signatures of Argument objects to be created
    failures -- a list of args lists that should cause the parser
        to fail
    successes -- a list of (initial_args, options, remaining_args) tuples
        where initial_args specifies the string args to be parsed,
        options is a dict that should match the vars() of the options
        parsed out of initial_args, and remaining_args should be any
        remaining unparsed arguments
    c|dkrdSt|dst|_t|dst|_d}d}d}d}d}Gd	d
t
}	|||fD]}
||fD]}|	||
|dS)NParserTestCaseparser_signatureparser_classc>|D]}|j|ji|jdS)z(Add all arguments directly to the parserN)add_argumentrvrw)r2argument_signaturessigs   r	no_groupsz1ParserTesterMetaclass.__init__.<locals>.no_groupss:*
=
=##SX<<<<<
=
=rch|d}|D]}|j|ji|jdS)z4Add all arguments under a single group in the parserr(N)add_argument_grouprrvrw)r2rgrouprs    r	one_groupz1ParserTesterMetaclass.__init__.<locals>.one_groupsM--e44E*
<
<""CH;
;;;;
<
<rct|D]4\}}|d|z}|j|ji|j5dS)z0Add each argument in its own group to the parserzfoo:%iN)	enumeraterrrvrw)r2rirrs     rmany_groupsz3ParserTesterMetaclass.__init__.<locals>.many_groupss^#$788
<
<311(Q,??""CH;
;;;;
<
<rc,||S)z#Parse the args by passing in a list)r;)r2rvs  rlistargsz0ParserTesterMetaclass.__init__.<locals>.listargss$$T***rctj}|dg|zt_	||t_S#|t_wxYw)z(Parse the args by defaulting to sys.argvr)rargvr;)r2rvold_sys_argvs   rsysargsz/ParserTesterMetaclass.__init__.<locals>.sysargssL8L$Q(4/CH
(((**'<''''sAAc&eZdZdZdZdZdZdS)0ParserTesterMetaclass.__init__.<locals>.AddTestsc||_||_|jj}|jj}|j|jfD]R}|j}|||f}d|}	|fd}
	|	|
_n#t$rYnwxYwt||	|
SdS)N_c||dSrOrAr	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|SrO)rrvrwrrr)rtesterrvrwr2s     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;)rrr2args_strrvs     rrz>ParserTesterMetaclass.__init__.<locals>.AddTests.test_failuress))&11 &00H#>>++D,,-@d,KK00))$///00000000000000000sA11A5	8A5	c||}|jD]Z\}}t|tr|}|||}|||[dSrO)r	successesrstrrrassertEqual)rrr2rvexpected_ns	result_nss      rrz?ParserTesterMetaclass.__init__.<locals>.AddTests.test_successess))&11)/)9??%D+!$,,,#zz|| $ 0 0 > >I&&{I>>>>	??rN)rrr rrrrrArrAddTestsrsP
<
<
<&



0
0
0
?
?
?
?
?rr)hasattrrtrrrobject)clsrdbasesbodydictrrrrrrrr;s            rrzParserTesterMetaclass.__init__s###Fs.//	)#&55C sN++	:9C
	=	=	=
	<	<	<	<	<	<	+	+	+	(	(	()	?)	?)	?)	?)	?v)	?)	?)	?Z(K@	9	9M'1
9
9
mZ8888
9	9	9rN)rrr r!rrArrrrs2

_9_9_9_9_9rrrceZdZdZedgZgdZdedfdedfd	edfd
edfdedfgZdS)
TestOptionalsSingleDash1Test an Optional with a single-dash option string-x)ra--foo-x --fooz-x -yrNx-x ar-xaz-x -1-1z-x-1	rrr r!rtrrr{rrArrrr3s;;3t99+888H	RR$ZZZ	c	S				""t***	dIIIrrceZdZdZeddeddded	gZgd
Zdedd
d
fdedd
d
fdedd
dfdedd
dfdedd
dfdedd
dfdedd
dfdedd
dfdeddd
fdeddd
fdedddfdedddfgZd
S)TestOptionalsSingleDashCombinedrr
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 arrArrrrAs;;	D&&&F=333D		
CCCH
RR%TT
*
*
*+	
rrDdd+++,	U,,,-	e---.	d,,,-	""t---.	22$#.../	BB43///0	
rrErT***+	et,,,-	TrS1112	dc2223
IIIrrceZdZdZedgZgdZdedfdedfd	ed
fdedfdedfgZdS)
TestOptionalsSingleDashLongzATest an Optional with a multi-character single-dash option string-foo)rrrz
-foo --fooz-foo -y-fooarNr(z-foo arz-foo -1rz-fo a-f arrArrrr[sKK3v;;-GGGH	RRD\\\	22#;;;	BB4LLL!	""+++	IIIrrc0eZdZdZedededgZgdZdedddfd	ed
ddfded
ddfded
ddfdedddfdedd
dfdeddd
fgZdS)&TestOptionalsSingleDashSubsetAmbiguousz=Test Optionals where option strings are subsets of each other-f-foobar-foorab)rr-fo-foo bz-foobz-foobaz-foorarN)ffoobarfoorabrr-fa-foaoarooa	-foobar a	-foorab arrArrrrisGG3t99cc)nncc)nnEKKKH	RR$tD
1
1
12	c$t4445	Sd3334	d45556	""uT$7778	bb4D999:	bb4S999:IIIrrceZdZdZededgZgdZdeddfded	dfd
edd	fded	dfdedd	fd
ed	dfdedd	fgZdS) TestOptionalsSingleDashAmbiguousz7Test Optionals that partially match but are not subsetsrr)rrrrrrrrN)rrz-foob arz-foor az-fooba az-foora ar"r#rrArrr%r%ysAA3y>>33y>>:EEEH	RRtD
)
)
)*	BBc$///0	BBd3///0	RRs40001	RRtC0001	bbD1112	bbS1112IIIrr%ceZdZdZeddgZgdZdedfd	ed
fded
fded
fgZdS)TestOptionalsNumericz(Test an Optional with a short opt stringronedest)rrz-1 --fooz-1 -yz-1 -1z-1 -2rN)r(z-1 arz-1az-1-2-2rrArrr'r's223t%0001AAAH	RRD\\\		s		IIIrr'ceZdZdZedgZgdZdedfdedfd	edfd
edfdedfgZdS)
TestOptionalsDoubleDashz1Test an Optional with a double-dash option stringr)rrrrz--foo -xz--foo --barrNrz--foo arz--foo=az
--foo -2.5z-2.5z
--foo=-2.5rrArrr-r-s;;3w<<.FFFH	RRD\\\	BB3KKK 	BB3KKK 	rrf~~~&	rrf~~~&IIIrr-c
eZdZdZeddedgZgdZdedd	
fdedd
fd
edd	
fdedd	
fdedd	
fdedd	
fgZd	S)#TestOptionalsDoubleDashPartialMatchz7Tests partial matching with a double-dash option string--badgerrrz--bat)--bar--b--ba--b=2z--ba=4	--badge 5rFN)badgerbatz--bat XX--badT--badg--badgerrArrr/r/sAA	J|,,,GHGGH	RRu$
'
'
'(	BBe---.	""Dd+++,	22Tt,,,-	BBd---.	RRt.../
IIIrr/ceZdZdZeddedgZgdZdedd	
fdedd
fd
edd
fdedd	
fdedd	
fdedd	
fdedd	
fgZd	S)"TestOptionalsDoubleDashPrefixMatchz?Tests when one double-dash option string is a prefix of anotherr0rrr3)r1r2r3r4r5rFN)r6baz--ba Xr8z--ba=Xr9Tr:r;rrArrr=r=sII	J|,,,F>==H	RRu
&
&
&'	22Us+++,	22Us+++,	""DT***+	22Td+++,	BBdt,,,-	RRt---.IIIrr=ceZdZdZeddededdd	gZgd
Zdedd
d
fdedd
d
fdeddd
fdeddd
fdedd
dfdedd
dfgZd
S)TestOptionalsSingleDoubleDashz<Test an Optional with single- and double-dash option stringsrrrr1-bazrrr)r1-fbarz-fbazz-bazf-b BBrFNrbarbazTz--ba BrDz
-f --bar Bz-f -bz-ba -frrArrr@r@sFF	D&&&GF=333
A@@H	RR%Tt
,
,
,-	
rrDd---.	223D1112	rrDct4445	""t2.../	22$B///0
IIIrr@c6eZdZdZeddZeddeded	d
dgZgd
ZdedddfdedddfdedddfdedddfdedddfdedddfgZ	dS)!TestOptionalsAlternatePrefixCharsz9Test an Optional with option strings with custom prefixes+:/Fprefix_charsadd_help+frr::bar/bazrrr)r1rBrCrDr--bar BrAr5--helpz+hz::helpz/helprNrET::ba BrD
+f ::bar B+f /b/ba +f
rrr r!rtrrrr{rrArrrIrIs
CCs>>>D&&&GF=333
qppH	RR%Tt
,
,
,-	
rrDd---.	223D1112	rrDct4445	""t2.../	22$B///0
IIIrrIc6eZdZdZeddZeddeded	d
dgZgd
ZdedddfdedddfdedddfdedddfdedddfdedddfgZ	dS)*TestOptionalsAlternatePrefixCharsAddedHelpzWhen ``-`` not in prefix_chars, default operators created for help
       should use the prefix_chars in use rather than - or --
       http://bugs.python.org/issue9444rJTrKrNrrrOrPrrr)r1rBrCrDrrQrArFNrErSrDrTrUrVrWrArrrYrYs++s===D&&&GF=333
HGGH	RR%Tt
,
,
,-	
rrDd---.	223D1112	rrDct4445	""t2.../	22$B///0
IIIrrYc	eZdZdZeddZeddedded	dgZgd
Zdedddfded
ddfded
d
dfded
d
d
fgZ	dS)2TestOptionalsAlternatePrefixCharsMultipleShortArgsz@Verify that Optionals must be called with their defined prefixesz+-FrKrrrz+yz+z)-wz-xyzz+xr
z+xyzrryr
Tz+y -xz+yz -xNrWrArrr[r[sJJsu===D&&&D&&&D&&&
H
RR%5E
*
*
*+	
rrDEU+++,	""ttu---.	22---.	IIIrr[ceZdZdZedddddgZgdZd	ed
fdedfdedfdedfdedfgZd
S)TestOptionalsShortLongz<Test a combination of single- and double-dash option strings-vz	--verbosez-nz--noisyrr)z
--x --verbosez-Nrz-v xrF)verboseTNrrArrr`r`sFF	D+tY|DDD433H	RR


	
rr$ 	bb&&&'	
rr$ 	BBt$$$%IIIrr`ceZdZdZededdgZdgZdedd	
fded	d
fd
edd
fdedd
fgZd	S)TestOptionalsDestz*Tests various means of setting destinationz	--foo-bar--bazzabbazr)rz--foo-bar frN)foo_barrfz--baz ggz--foo-bar h --baz ihrz--baz j --foo-bar kkjrrArrrdrd-s443{++SSx-H-H-HIuH	3t4445	BBtC0001	3s ; ; ;<	3s ; ; ;<	IIIrrdceZdZdZededdgZdgZdedd	fd
edd	fdedd
	fgZdS)TestOptionalsDefaultz*Tests specifying a default for an Optionalrr
rdefaultrrNrr^z-xxrz-yyr^rrArrrmrm:s443t99cc$&;&;&;<uH	RR$"


	SB 	TS!!!"IIIrrmcjeZdZdZedgZddgZdedfdedfgZdS)TestOptionalsNargsDefaultz7Tests not specifying the number of args for an OptionalrrrNrrrrArrrrrrFsXAA3t99+T{H	RR$ZZZ	cIIIrrrcpeZdZdZeddgZddgZdedfd	edgfgZdS)
TestOptionalsNargs1z&Tests specifying 1 arg for an OptionalrnargsrrNrrrrArrrtrtQsb003t1---.T{H	RR$ZZZ	seIIIrrtcreZdZdZeddgZgdZdedfd	egd
fgZdS)TestOptionalsNargs3z'Tests specifying 3 args for an Optionalrrv)rrr-x a ba -xa -x brNrz-x a b crbcrrArrryry\si113t1---.>>>H	RR$ZZZ	RR///***+IIIrryceZdZdZeddedddeddd	
eddedd
gZdgZdeddd	dfdeddd	dfdeddd	dfdeddd	dfdeddd	dfdeddddfdeddddfdeddd	dfdeddd	dfg	Z	dS)TestOptionalsNargsOptionalz0Tests specifying an Optional arg for an Optionalr\?rvrr)rwrr
spamrwror4284)rwrrro2rNTrgrr^r
z-w 2z-x 2z-y 2z-z 2
rrr r!rtintrrr{rrArrrrgss::	DD2&&&DV,,,D#T4@@@	uH	RR$$&B
/
/
/0	
rrDDFb1112	cTVr2223	
rrDB&B///0	dcVr2223	
rrDDDB///0	ddcR0001	
rrDDFb1112	ddf2223
IIIrrc"eZdZdZeddedddgZdgZd	ed
dfdegdfdedgdfd
eddgdfded
gfded
dgfded
ddgfgZd
S)TestOptionalsNargsZeroOrMore?Tests specifying args for an Optional that accepts zero or morer*rvr
rrrrNrprr{r-y a-y a brrArrrr~sII	DDV,,,uH	RR$&
!
!
!"	
rrB&!!!"	sev&&&'	22c
f---.	
rrDB 	dse$$$%	22c
+++,IIIrrc
eZdZdZeddedddgZgdZd	ed
dfded
gdfded
dgdfded
d
gfded
d
dgfgZd
S)TestOptionalsNargsOneOrMorez>Tests specifying args for an Optional that accepts one or morer+rvr
rr)rrr
r|za -y brNrprrr{rrrrrArrrrsHH	DDV,,,322H	RR$&
!
!
!"	sev&&&'	22c
f---.	dse$$$%	22c
+++,IIIrrc
eZdZdZeddedeedgZgdZd	e	d
d
fde	d
d
fde	dd
fde	d
dfde	d
dfde	ddfgZ
d
S)TestOptionalsChoicesz,Tests specifying the choices for an Optionalrabcchoicesz-grr)rz-f dz-fadz-gaz-g 6rN)rrhrrz-f crz-g 0rz-g 03rzz-fb -g4rrrr r!rtrrangerrr{rrArrrrs66	D%   DsEE!HH---/433H	RR$$


 	cT"""#	cT"""#	da!	""tq///"	BBNNN#
IIIrrcpeZdZdZededgZddgZded	fd
ed	fgZ	dS)
TestOptionalsRequiredz)Tests an optional action that is requiredrTrrequiredrr-x 1rurz-x42rNrrArrrrsh33	DsT***RyH	a	bIIIrrcneZdZdZeddgZddgZded	fd
ed	fgZdS)TestOptionalsActionStorez&Tests the store action for an Optionalrstorerrr|rNrz-xfoor(rrArrrrs`003tG4445V}H	RR$ZZZ	""u+++IIIrrcneZdZdZeddegZdgZdedfdeefgZ	dS)	TestOptionalsActionStoreConstz,Tests the store_const action for an Optionalr
rrrrNr^)
rrr r!rtrrrr{rrArrrrs`663tMHHHIuH	RR$ZZZ	
rrF|||IIIrrcneZdZdZeddgZgdZdedfded	fgZd
S)TestOptionalsActionStoreFalsez,Tests the store_false action for an Optionalrstore_falser)rrrrT)r
FNrrArrrrsb663tM:::;###H	RR$ZZZ	
rrE{{{IIIrrcneZdZdZeddgZgdZdedfded	fgZd
S)TestOptionalsActionStoreTruez+Tests the store_true action for an Optionalz--applerr)rz	--apple=bz	--apple brF)appleTNrrArrrrsb553y>>>?...H	RRe___	BBTNNN#IIIrrceZdZdZedejgZddgZde	dfde	d	fd
e	dfde	dfd
e	d	fgZ
dZdS)TestBooleanOptionalActionzTests BooleanOptionalActionrr	--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	exceptionrr2cms   r
test_constz$TestBooleanOptionalAction.test_consts(**


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


BCDUDUVVVVVs#AA!$A!)rrr r!rtr+rrrr{rrrArrrrs%%3wx/MNNNO[)H	RRD\\\	"",,,	RRE]]]#	22%===)	22$<<<(IWWWWWrrcxeZdZdZeddejgZdgZde	dfde	dfgZ
d	S)
!TestBooleanOptionalActionRequiredz$Tests BooleanOptionalAction requiredrT)rrrrrFN)rrr r!rtr+rrrr{rrArrrrsi..	Gd8+IJJJtH	"",,,	RRE]]]#IIIrrceZdZdZeddgZgdZdedfd	ed
gfded
dgfgZdS)
TestOptionalsActionAppend'Tests the append action for an Optionalreappendrrrea --baz	--baz a brNrG--baz ar--baz a --baz brrrArrrrs}113wx8889555H	RRD\\\	BBC5MMM"	BBC:.../IIIrrceZdZdZedddggZgdZdedgfd	edd
gfdegdfgZd
S)$TestOptionalsActionAppendWithDefaultrrerr8rrorrrrrr)r8rrNrrArrrrs113wx#GGGH555H	RRSE]]]	BBC:&&&'	BB???3334IIIrrc&eZdZdZeddeddeddeddgZgd	Zd
eddddfdedgdddfdeddgddfdeddddfdeddddfgZdS)
!TestConstActionsMissingConstKwargz=Tests that const gets default value of None when not providedrappend_constrr-brr1)z-f vrrrN)rr(rrFrrArrrr$sGG	D(((GN+++D'''GM***	211H	RR$DDd
3
3
34	
rrTF$7778	""t$4T:::;	
rrDdd5556	""t48889IIIrrc	eZdZdZeddeedddgZgd	Zd
edfdeegfd
eededgfgZ	dS)TestOptionalsActionAppendConst-Tests the append_const action for an Optionalrrr-crrrr*rrza -cz-bxz-b xrNr-b -cx -b -cyzryz
rrr r!rtrrrr{rrArrrr7s77	Dy999D,,,211H	RR$ZZZ	
rrYK   !	22CD ABBBCIIIrrc
eZdZdZeddedgeddd	gZgd
Zdedgfdedegfd
edededgfgZ	dS))TestOptionalsActionAppendConstWithDefaultrrrr8)rrrorrrrrrrrrrNrrArrrrFs77	Dy3%HHHD,,,211H	RR3%[[[	
rrS)$%%%&	22ii FGGGHIIIrrcneZdZdZeddgZgdZdedfded	fgZdS)
TestOptionalsActionCountz&Tests the count action for an Optionalrcountr)rrz-x bz	-x a -x brNrrurrArrrrUsa003tG4445111H	RR$ZZZ	
rrAwwwIIIrrc	eZdZdZedededdgZddgZd	ed
d
dfd
edd
dfded
ddfdedd
dfgZd
S)"TestOptionalsAllowLongAbbreviationz2Allow long options to be abbreviated unambiguouslyrz--foobazz--fooblerrz--foob 5z--foobrNF)r(foobazfooblez--foo 77z	--fooba arz--foobl --foo grhTrrArrrr`s<<	GJJ|,,,
H%H	RRDe
4
4
45	BB3tE:::;	bbT#e<<<=	BB3tDAAAB	IIIrrceZdZdZedZededdedgZgd	Zd
edddfd
edddfdedddfgZ	dS)%TestOptionalsDisallowLongAbbreviation1Do not allow abbreviations of long options at allFallow_abbrevrz--foodlerrz--foonly)z-foon 3z--foon 3z--foodz--food --foo 2rNr(foodlefoonlyz--foo 33z--foonly 7 --foodle --foo 2rTrrWrArrrrqs;;s...GJ|,,,J
CBBH	RRDt
4
4
45	BB3uT:::;	&s4(L(L(LMIIIrrceZdZdZeddZededded	gZgd
Zdeddd
fdeddd
fdeddd
fgZ	dS)0TestOptionalsDisallowLongAbbreviationPrefixCharszBDisallowing abbreviations works with alternative prefix charactersrFrLrz++fooz++foodlerrz++foonly)z+foon 3z++foon 3z++foodz++food ++foo 2rNrz++foo 3rz++foonly 7 ++foodle ++foo 2rTrrWrArrrrsLLs%@@@GJ|,,,J
CBBH	RRDt
4
4
45	BB3uT:::;	&s4(L(L(LMIIIrrc
eZdZdZedZededdgZddgZd	ed
d
fded
d
fdedd
fded
dfded
dfdeddfgZ	d
S)/TestDisallowLongAbbreviationAllowsShortGroupingrFrz-rrrrz-c -rrNrrz-rarz-rccccz-ccrz-cc -raz-ccrccrWrArrrrs;;s...D		D!!!gH	RR$$


 	SD!!!"	dd###$	TQ 	BBNNN#	22???#
IIIrrc
eZdZdZeddZededdgZdd	gZd
eddfd
eddfdeddfdeddfdeddfdeddfgZ	dS)5TestDisallowLongAbbreviationAllowsShortGroupingPrefixzEShort option grouping works with custom prefix and allow_abbrev=FalserFrz+rz+crrz+c +rrNrz+rarz+rccrz+ccrz+cc +raz+ccrccrWrArrrrsOOs%@@@D		D!!!gH	RR$$


 	SD!!!"	dd###$	TQ 	BBNNN#	22???#
IIIrrcPeZdZdZedgZgdZdedfgZdS)TestPositionalsNargsNonez,Test a Positional that doesn't specify nargsr(rra brrNrrArrrrsH663u::,   H	bbSkkkIIIrrcVeZdZdZeddgZgdZdedgfgZdS)	TestPositionalsNargs1z.Test a Positional that specifies an nargs of 1r(rurvrrrNrrArrrrsR883uA.../   H	bbcUmmmIIIrrcXeZdZdZeddgZgdZdeddg	fgZd
S)TestPositionalsNargs2z.Test a Positional that specifies an nargs of 2r(rrv)rrra b crrrrNrrArrrrsW883uA.../'''H	Sz"""#IIIrrceZdZdZeddgZdgZdegfdedgfd	edd
gfgZdS)TestPositionalsNargsZeroOrMorez0Test a Positional that specifies unlimited nargsr(rrvrrrrrrNrrArrrrsy::3uC0001vH	RRBZZZ	bbcUmmm	Sz"""#IIIrrceZdZdZedddgZdgZdedfd	ed	gfd
ed	dgfgZdS)
%TestPositionalsNargsZeroOrMoreDefaultz>Test a Positional that specifies unlimited nargs and a defaultr(rrFrrrrrrrNrrArrrrs{HH3uC???@vH	RRE]]]	bbcUmmm	Sz"""#IIIrrcteZdZdZeddgZddgZdedgfd	edd
gfgZdS)TestPositionalsNargsOneOrMorez2Test a Positional that specifies one or more nargsr(rrvrrrrrrNrrArrrrsi<<3uC0001DzH	bbcUmmm	Sz"""#IIIrrcneZdZdZeddgZddgZded	fd
ed
	fgZdS)TestPositionalsNargsOptionalzTests an Optional Positionalr(rrvrrrNrrrrArrr	r	s`&&3uC0001e}H	RRD\\\	bbSkkkIIIrr	cpeZdZdZedddgZddgZded	fd
ed
	fgZdS)#TestPositionalsNargsOptionalDefaultz1Tests an Optional Positional with a default valuer(rrrrrrrrNrrArrrr	sb;;3uC<<<=e}H	RRBZZZ	bbSkkkIIIrrcreZdZdZeddedgZgdZded	fd
ed	fgZ	dS)
,TestPositionalsNargsOptionalConvertedDefaultznTests an Optional Positional with a default value
    that needs to be converted to the appropriate type.
    r(rr)rwrro)rr1 2rrr1ruNrrArrr
r
sp
	E3555$##H	RRBZZZ	bbQiiiIIIrr
cfeZdZdZededgZgdZdeddfgZd	S)
TestPositionalsNargsNoneNonez-Test two Positionals that don't specify nargsr(rF)rrrrrrrr(rFNrrArrrr#sX773u::ss5zz2'''H	s$$$%IIIrrcleZdZdZededdgZgdZdedd	g
fgZdS)TestPositionalsNargsNone1z6Test a Positional with no nargs followed by one with 1r(rFrurv)rrrrrrrrNrrArrrr-sa@@3u::ss5':':':;***H	s&&&'IIIrrcneZdZdZeddedgZgdZdedd	gd
fgZdS)
TestPositionalsNargs2Nonez8Test a Positional with 2 nargs followed by one with noner(rrvrFrrrra b c drrrrrNrrArrrr7scBB3uA...E

;333H	""#s---.IIIrrceZdZdZededdgZddgZdedg	fd
eddg	fdeddd
g	fgZdS)"TestPositionalsNargsNoneZeroOrMorez>Test a Positional with no nargs followed by one with unlimitedr(rFrrvrrrrrrrrNrrArrrrAsHH3u::ss5'<'<'<=G}H	bbSb!!!"	s&&&'	""3*---.IIIrrceZdZdZededdgZgdZdedd	g
fdedd	dg
fgZd
S)!TestPositionalsNargsNoneOneOrMorez@Test a Positional with no nargs followed by one with one or morer(rFrrvrrrrrrrrrNrrArrrrMs|JJ3u::ss5'<'<'<=!!!H	s&&&'	""3*---.IIIrrceZdZdZededdgZgdZdedd	fd
edd	fgZdS) TestPositionalsNargsNoneOptionalz@Test a Positional with no nargs followed by one with an Optionalr(rFrrvrrrrNrrrrrArrrrXsvJJ3u::ss5'<'<'<=%%%H	bbSd###$	s$$$%IIIrrceZdZdZeddedgZddgZdegd	fd
edgd	fdeddgd
	fgZdS)"TestPositionalsNargsZeroOrMoreNonez@Test a Positional with unlimited nargs followed by one with noner(rrvrFrrrrrrrrNrrArrr"r"csJJ3uC000##e**=G}H	bbRS!!!"	u#&&&'	""#s---.IIIrr"ceZdZdZeddedgZgdZdedgd	
fdedd	gd
fgZd
S)!TestPositionalsNargsOneOrMoreNonezBTest a Positional with one or more nargs followed by one with noner(rrvrFrrrrrrrNrrArrr$r$os|LL3uC000##e**=!!!H	u#&&&'	""#s---.IIIrr$ceZdZdZedddedgZgdZdedd	fd
edd	fgZdS)
 TestPositionalsNargsOptionalNonezBTest a Positional with an Optional nargs followed by one with noner(rrrrFr rrrrNrrArrr&r&zsxLL3uC<<<cc%jjI%%%H	bbRS!!!"	s$$$%IIIrr&ceZdZdZeddeddgZgdZded	d
ggfded	d
gd
gfgZdS)TestPositionalsNargs2ZeroOrMorez=Test a Positional with 2 nargs followed by one with unlimitedr(rrvrFrrrrrrrrNrrArrr(r(sGG3uA...E0E0E0EF!!!H	Szr***+	""#s#///0IIIrr(cteZdZdZeddeddgZgdZded	d
gdgfgZd
S)TestPositionalsNargs2OneOrMorez?Test a Positional with 2 nargs followed by one with one or morer(rrvrFr)rrrrrrrrrNrrArrr*r*slII3uA...E0E0E0EF(((H	""#s#///0IIIrr*ceZdZdZeddeddgZgdZded	d
gdfd
ed	d
gdfgZdS)TestPositionalsNargs2Optionalz7Test a Positional with 2 nargs followed by one optionalr(rrvrFr)rrrrrrrNrrrrrArrr,r,sAA3uA...E0E0E0EF,,,H	Szt,,,-	""#s---.IIIrr,ceZdZdZeddeddgZddgZd	egd	g
fded	gdg
fd
ed	dgdg
fgZdS)TestPositionalsNargsZeroOrMore1z=Test a Positional with unlimited nargs followed by one with 1r(rrvrFrurrrrrrrrNrrArrr.r.sGG3uC000##e12E2E2EFGH	bbRcU###$	u3%((()	""#s#///0IIIrr.ceZdZdZeddeddgZgdZded	gd
gfded	d
gd
gfgZdS)TestPositionalsNargsOneOrMore1z?Test a Positional with one or more nargs followed by one with 1r(rrvrFrurrrrrrrNrrArrr0r0sII3uC000##e12E2E2EF!!!H	u3%((()	""#s#///0IIIrr0ceZdZdZeddeddgZgdZded	dg
fdeddg
fgZd	S)
TestPositionalsNargsOptional1z?Test a Positional with an Optional nargs followed by one with 1r(rrvrFrur rNrrrrrArrr2r2sII3uC000##e12E2E2EF%%%H	bbTu%%%&	s&&&'IIIrr2ceZdZdZededdeddgZgdZd	ed
gdgfd
ed
dgdgfgZdS)#TestPositionalsNargsNoneZeroOrMore1z=Test three Positionals: no nargs, unlimited nargs and 1 nargsr(rFrrvrGrurrrrr(rFrGrrNrrArrr4r4sGG	E

EE
"!!H	s.../	""3%cU3334IIIrr4ceZdZdZededdeddgZgdZd	ed
dgdg
fded
ddgdg
fgZdS)"TestPositionalsNargsNoneOneOrMore1z?Test three Positionals: no nargs, one or more nargs and 1 nargsr(rFrrvrGru)rrrrrrrrr5rdNrrArrr7r7sII	E

EE
'&&H	""3%cU3334	BB3S#JSE:::;IIIrr7ceZdZdZededddedd	gZgd
Zdeddd
gfdedd
dgfgZdS)!TestPositionalsNargsNoneOptional1z;Test three Positionals: no nargs, optional narg and 1 nargsr(rFr?rrGrurvrrrrr5rrNrrArrr:r:sEE	E

Ee,,,E
"!!H	sC51112	""#C51112IIIrr:ceZdZdZeddedddgZdd	gZd
eddfd
ed
dfded
dfgZdS)$TestPositionalsNargsOptionalOptionalzTest two optional nargsr(rrvrFrrrrrNrrrrrrArrr=r=s!!	EEb)))!H	RRDb
!
!
!"	bbSb!!!"	s$$$%IIIrr=c	eZdZdZeddeddgZdgZded	g
fdedg
fdedd
g
fdedd
dg
fgZd	S)&TestPositionalsNargsOptionalZeroOrMorez1Test an Optional narg followed by unlimited nargsr(rrvrFrrrNrrrrrrrrArrr?r?s;;3uC000##e32G2G2GHyH	RRDb
!
!
!"	bbSb!!!"	s&&&'	""3*---.	IIIrr?ceZdZdZeddeddgZddgZd	ed
d	gfded	d
gfded	d
dgfgZd
S)%TestPositionalsNargsOptionalOneOrMorez3Test an Optional narg followed by one or more nargsr(rrvrFrrrrNrrrrrrrArrrArAs==3uC000##e32G2G2GHG}H	bbTu%%%&	s&&&'	""3*---.IIIrrAceZdZdZededgZgdZdedfdedfgZ	d	S)
TestPositionalsChoicesStringz&Test a set of single-character choicesrabcdefgrrrrirefrrrhN)
rrr r!rtsetrrr{rrArrrCrCsj003vss9~~>>>?---H	bbclll	bbclllIIIrrCceZdZdZedeedgZgdZde	dfd	e	d
fgZ
dS)TestPositionalsChoicesIntzTest a set of integer choicesrrrE4rrG15NrrArrrJrJ'sl''3vCrCCCD---H	bbajjj	
rrr{{{IIIrrJcveZdZdZeddedddgZgdZded	d
dggfgZd
S)TestPositionalsActionAppendzTest the 'append' actionrrrr)rrwrrrrrrGNrrArrrPrP2sv""	F8$$$F81---433H	""3c
+,,,-IIIrrPceZdZdZeddedddgZd	d
gZdedd
fdedd
fdeddfdeddfgZdS)"TestOptionalsNumericAndPositionalsz;Tests negative number args when numeric options are presentrrrvz-4r^rr*rr+z-315rNFrprTz-4 arrArrrRrRBsEE	CsDs<000f~H	RR$%
 
 
 !	bb3%   !	
rrDD!!!"	cT"""#	IIIrrRc	eZdZdZeddedddgZd	gZd
edd
fdedd
fdedd
fdedd
fdedd
fgZdS)(TestOptionalsAlmostNumericAndPositionalszBTests negative number args when almost numeric options are presentrrrvz-k4r^rrSz-k3rNFrpr+rTz-k4 arrArrrUrURsLL	CsEL111wH	RR$%
 
 
 !	
rrDE"""#	bb3%   !	TT"""#	""sd###$IIIrrUcDeZdZeddedddgZdgZdgedd	
fdgedd	
fdgedd	
fddged	d
fddged	d
fddged	d
fd
ged	d
fdged	d
fgZd	S)$TestEmptyAndSpaceContainingArgumentsrrrvr
z--yyyr^r)rNrpza badgerz	-a badgerz--yyy=a badgerz--yyy=-a badger)rrr rtrrr{rrArrrWrWcs 	CsD'$$$vH
rrB$ 
rrJ$///0
[D1112
RR$"%%%&

	RR$*5556
	bb4;7778
	RR$*5556
	bb4;7778	IIIrrWc<eZdZedZeddddedd	ed
edd
dgZddgZdedd
dfdedd
dfdedd
dfdedddfdedd
dfdedd
dfgZ	dS) TestPrefixCharacterOnlyArgumentsz-+rL-rrr6)r*rwrrr^r)r*rroz-+-r
rrSr
z+ -rNFr]z- Xr8z+ -3Tz- ===z===)
rrr rtrrrrr{rrArrrYrYvss---CcH555CcR000EL111
e}H	RR$"
&
&
&'	bb8rU+++,	SB%((()	dbE***+	TR4((()	""ue,,,-
IIIrrYc eZdZdZeddeddgZgZdedgfdeggfd	ed
ggfded
gdgfd
edd
gfd
egd
gfdedgd
gfgZdS)TestNargsZeroOrMorerrrrvr^rNrprrz	-x a -- brr|r}rrArrr^r^sII3t3///S1D1D1DEH	RR$"


	
rrB"~~~	ser"""#	bbC5SE***+	bb4C5!!!"	bSE"""#	22#'''(IIIrr^c	eZdZdZededdedgZgdZdedgd	
fdedgd
fd
edgdd	
fdedddgd	
fgZd	S)TestNargsRemainderz2Tests specifying a positional with nargs=REMAINDERrr^...rvr)rrz-z Zr8Nr]z-z Z XZ
X A B -z Z)ArDrrbz	X Y --fooYrrrArrr`r`s<<3s88SSE%:%:%:CCIIF!!!H	bb3"%%%&	22rS)))*	rrC#8#8#8DAAAB	bb33.D999:	IIIrr`ceZdZdZedeedededd	gZgd
Zdeddg
fdeddg
fdedddg
fdeddg
fdeddg
fdeddg
fdedddg
fdedddg
fdedddg
fdedddg
fdedddg
fgZ	dS)TestOptionLikez.Tests options that may or may not be argumentsrrz-3r^)rr*r
rrv)
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 r!rtfloatrrr{rrArrrgrgs88	DuDu3'''Cs
000H

RR$$"
%
%
%&	22tr***+	RR##///0	dcR((()	""ttr***+	""tsb)))*	22u---.	bb44C5)))*	22tu---.	22tu---.	22u---.IIIrrgc0eZdZdZeddejeddejeddej	gZd
gZde	fde	d
fde	ddgfde	dfde	ddfde	ddgdfgZ
dS)TestDefaultSuppressz%Test actions with suppressed defaultsr(rrrFrrerrrrrrrrrTrrr(rGrr5N)rrr r!rtr+SUPPRESSrrr{rrArrrmrms//	Eh&7888Eh&7888GL(2CDDD
vH	RRTT
	bbSkkk	s&&&'	"",,,	BB3D)))*	bbSse6667
IIIrrmc.eZdZdZeejZeddeddedd	
gZdgZ	de
fd
e
d
fde
d
dgfde
dfde
d
dfde
d
dgdfgZdS)TestParserDefaultSuppressz4Test actions with a parser-level default of SUPPRESSargument_defaultr(rrvrFrrerrrrrrrrrTrrrnrr5N)rrr r!rtr+rorrrr{rrArrrqrqs>>sH,=>>>EEGL)))
vH	RRTT
	bbSkkk	s&&&'	"",,,	BB3D)))*	bbSse6667
IIIrrqc^eZdZdZedZedddedd	
edd
ed
dgZdgZdeddddfdeddddfdeddgddfd
eddddfdeddddfdeddgddfgZ	dS)TestParserDefault42z.Test actions with a parser-level default of 42rrr	--versionversion1.0rrwr(rrvrFrrerrrr)r(rFrGrwrrrTrrNrWrArrrurus/88sB///K	5999EEGL)))	vH	RRBBB
3
3
34	bbSbb"5556	s2r:::;	""r:::;	BB3BD"===>	bbSserBBBC
IIIrructeZdZdZfdZedZedededd	gZgd
Zde	dd
dgfde	dd
ddgfde	ddd
gfde	dd
dgfde	ddddgfde	dd
ddgfgde	dd
dgfgZ
xZS)TestArgumentsFromFile"Test reading arguments from a filectt|gd}|D]D\}}t|dd5}||dddn#1swxYwYEdS)N)helloz
hello world!
)	recursivez-a
A
@hello)invalidz@no-such-path
rgr
rh)r
r{rKrjrkr
file_textsr[textrnrs     rrKzTestArgumentsFromFile.setUps
#T**00222



%	!	!JD$dC'222
!d

4   
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!	!	!sA((A,	/A,	@fromfile_prefix_chars-arr^rrv)rrr8z@invalidz@missingzX YNr8re)rrr^z
X -a A Y Zrdrb@hello Xzhello world!zX @helloz-a B @recursive Y ZzX @recursive Z -a BrD)rrr8rer)rrr r!rKrtrrrr{rr"r#s@rr{r{sV,,!!!!!s555D		CCs
766H	TSSE***+	rrC33*5556	RR$.SE:::;	RR$#.)9:::;	SNsCj I I IJ	SCNC3H I I IJ			rrB##7778IIIIIrr{ceZdZdZfdZGddeZeZedZ	edd	gZ
gZd
egdfgZ
xZS)
TestArgumentsFromFileConverterr|ctt|dg}|D]D\}}t|dd5}||dddn#1swxYwYEdS)Nr~rgr
rh)r
rrKrjrkrs     rrKz$TestArgumentsFromFileConverter.setUp"s
,d3399;;;'

%	!	!JD$dC'222
!d

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

yy{{				

rN)rrr rrArrFromFileConverterArgumentParserr+s#					rrrrr^rrvr)rzworld!r8r)rrr r!rKrrrrtrrrr{rr"r#s@rrrs,,!!!!!*D3Ls555CsH	RR2223334IIIIIrrc,eZdZdZdZdZdZdZdS)TestFileTypeReprcttjd}|dt|dS)Nrz
FileType('r')r+FileTyperreprrrs  rtest_rzTestFileTypeRepr.test_rCs4 %%$t**55555rcvtjdd}|dt|dS)NwbruzFileType('wb', 1)rrs  r	test_wb_1zTestFileTypeRepr.test_wb_1Gs7 q)),d4jj99999rcxtjdd}|dt|dS)Nrlatin_1rhz!FileType('r', encoding='latin_1')rrs  rtest_r_latinzTestFileTypeRepr.test_r_latinKs: y999<d4jjIIIIIrcztjddd}|dt|dS)Nrgbig5ignore)rierrorsz/FileType('w', encoding='big5', errors='ignore')rrs  rtest_w_big5_ignorez#TestFileTypeRepr.test_w_big5_ignoreOsG vhGGGJd	%	%	%	%	%rcztjddd}|dt|dS)Nrrureplacerz"FileType('r', 1, errors='replace')rrs  rtest_r_1_replacez!TestFileTypeRepr.test_r_1_replaceTs< a	:::=tDzzJJJJJrN)rrr rrrrrrArrrrAsg666:::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||jkcYSwxYwrO)rrAttributeErrorrrs  rrzStdStreamComparer.__eq__lsL	,DLL----	,	,	,DO++++	,s 88Nrrr rrrArrrr]s2''',,,,,rrstdinrrzstdin.bufferrrceZdZiZdZdZdS)RFilec||_dSrOrdrrds  rrzRFile.__init__~
			rc||jvr|j|}n2|x}|j|<|t|ts|d}|j|jcxko|kncS)Nascii)seenreadcloserrrrdrrrs   rrzRFile.__eq__sDI9U#DD&+jjll2D49U#KKMMM$$$	(;;w''DyEJ....$.....rN)rrr rrrrArrrr{s7
D/////rrceZdZdZfdZedejedejdgZgdZ	de
d	ed
fde
eded
fd
e
eded
fde
ee
fde
d	ed
fgZ
xZS)
TestFileTypeR8Test the FileType option/argument type for reading filescNtt|dD]d}ttj|j|dd5}||dddn#1swxYwYe|	ddS)Nrrgr
rhreadonly)
r
rrKrjrSr[r\rRrkrrr	file_namernrs   rrKzTestFileTypeR.setUps
mT""((***'	&	&Ibgll4=)<<G---
&04

9%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&	
!!*-----"BB	B	rrhrr)rrznon-existent-file.txtr(Nrr
-x foo barrF
bar -x foo-x - -r)rrr r!rKrtr+rrrr{req_stdinrr"r#s@rrrs3BB.....	D(x(**+++F**3//000322H	Te---.	rrEE%LLuuU||<<<=	rrEE%LLuuU||<<<=	22x0001	RR$UU:%6%67778IIIIIrrceZdZdZfdZedejddgZdgZ	de
ed	
fgZxZ
S)TestFileTypeDefaultsz<Test that a file is not created unless the default is neededctt|ttj|jddd}|d|	dS)Ngoodrgr
rh)
r
rrKrjrSr[r\rRrkr)rrnrs  rrKzTestFileTypeDefaults.setUpsi
"D))//111BGLL77wOOO

6

rrrzno-file.txtrrorz-c goodr)r)rrr r!rKrtr+rrrr{rrr"r#s@rrrsFF	D(x(--}EEEtHRR%%--00012IIIIIrrc	deZdZdZfdZedejdedejdgZddgZ	de
d	ed
fde
eded
fd
e
eded
fde
ee
fgZ
xZS)TestFileTypeRBrc$tt|dD]d}ttj|j|dd5}||dddn#1swxYwYedS)Nrrgr
rh)	r
rrKrjrSr[r\rRrkrs   rrKzTestFileTypeRB.setUps
nd##))+++'	&	&Ibgll4=)<<G---
&04

9%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&	&	&rrrbrhrrr(NrrrFrr)rrr r!rKrtr+rrrr{r	eq_bstdinrr"r#s@rrrsBB&&&&&	D(x(..///F**400111bzH	Te---.	rrEE%LLuuU||<<<=	rrEE%LLuuU||<<<=	22		2223	IIIIIrrc.eZdZeZdZdZdS)WFilec||_dSrOrrs  rrzWFile.__init__rrc||jvrcd}d|jvr|d}||||j||j|jkS)NzCheck that file is writable.rr)rmoderrkraddrdrs   rrzWFile.__eq__st	!!1Dej  {{7++KKKKMMMIMM%   yEJ&&rN)rrr rHrrrrArrrrs=355D'''''rrc
eZdZdZfdZedejdedejdgZgdZ	de
d	ed
fde
d	ed
fde
eded

fde
eded

fde
ee
fgZ
xZS)
TestFileTypeWz8Test the FileType option/argument type for writing filesct|d|ddSNrwritabler
rKrrrorrs rrKzTestFileTypeW.setUpB


!!*---!!*-----rrrgrhr)rrrr(NrrrrFrrrrr r!rKrtr+rrrr{r	eq_stdoutrr"r#s@rrrs5BB.....	D(x(--...F**3//000&%%H	Te---.	RR$UU:%6%67778	rrEE%LLuuU||<<<=	rrEE%LLuuU||<<<=	22		2223IIIIIrrceZdZdZfdZedejdedejdgZgdZ	de
ed	ed
fde
eefgZ
xZS)

TestFileTypeXzATest the FileType option/argument type for writing new files onlyct|d|ddSrrrs rrKzTestFileTypeX.setUprrrrrhr)rrrrrr(rFrrrr#s@rrrsKK.....	D(x(--...F**3//000211H	rrEE%LLuuU||<<<=	22		2223IIIIIrrc	TeZdZdZedejdedejdgZddgZde	de
d	fd
e	e
de
d	fde	e
de
d	fd
e	ee	fgZdS)TestFileTypeWBz?Test the FileType option/argument type for writing binary filesrrrhrrr(NrrrFrr)
rrr r!rtr+rrrr{r
eq_bstdoutrrArrrrsII	D(x(..///F**400111bzH	Te---.	rrEE%LLuuU||<<<=	rrEE%LLuuU||<<<=	22
4445	IIIrrceZdZdZedejdedejdgZdee	de	d	fd
ee
e
	fgZdS)TestFileTypeXBzHTest the FileType option/argument type for writing new binary files onlyrxbrhrrr(rFrrN)rrr r!rtr+rrr{rrrrArrrrsNN	D(x(..///F**400111

rrEE%LLuuU||<<<=	22
4445IIIrrceZdZdZdZdS)TestFileTypeOpenArgsz0Test that open (the builtin) is correctly calledc
Htj}|ddf|dddf|dddf|d	d
df|dd
dddfg}tjd5}|D]\}}|d|jdg|R	ddddS#1swxYwYdS)Nr)rNNrgru)rgruNNrr)rgrNrrrrh)rrrNrl1strict)rgrrrz
builtins.openr()r+rrr/assert_called_with)rFTcasesmrrvs      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 r!rrArrrr's)::33333rrceZdZdZdZdS)!TestFileTypeMissingInitializationzx
    Test that add_argument throws an error if FileType class
    object was passed instead of instance of FileType
    c<tj}|t5}|dtjdddn#1swxYwY|tjdt|jdS)Nrrhz: 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 r!rrArrrr9s-
	
	
	
	
	
rrceZdZdZedeedegZgdZde	dd	fd
e	dd	fd
e	dd	fgZ
dS)TestTypeCallablez,Test some callables as option/argument typesz--eggsrhr)r42jz--eggs az	--eggs 2iz--eggs=42 42rgE@)eggsrz--eggs 2j -- -1.5y@z1024.675Ng3333@)rrr r!rtcomplexrkrrr{rrArrrrKs66	H7###F544H	$///0	bbbt4445	RRT1112IIIrrceZdZdZGddeZedeedegZgZde	eded	
fde	eded

fgZ
dS)TestTypeUserDefinedz(Test a user-defined option/argument typeceZdZdZdZdS)TestTypeUserDefined.MyTypec||_dSrOvaluerrs  rrz#TestTypeUserDefined.MyType.__init___
DJJJrc^t||jft||jfkSrOrrrs  rrz!TestTypeUserDefined.MyType.__eq__b'JJ
+UU[/IIIrNrrArrMyTyper]7				J	J	J	J	Jrrrrhrr}rrr-xf grrhN)rrr r!rCrrtrrr{rrArrrrZs22JJJJJJJJ	DvF   H	22s&&++6667	""vvc{{5556IIIrrceZdZdZGddZedeedegZgZdeeded	
fdeeded

fgZ	dS)TestTypeClassicClasszTest a classic class typeceZdZdZdZdS)TestTypeClassicClass.Cc||_dSrOrrs  rrzTestTypeClassicClass.C.__init__urrc^t||jft||jfkSrOrrs  rrzTestTypeClassicClass.C.__eq__xrrNrrArrCrsrrr rrhrr}rrrrrrhN)
rrr r!r rtrrr{rrArrrrps##JJJJJJJJ	DqFH	22#QQsVV,,,-	""qqvvAAcFF+++,IIIrrceZdZdZdZdS)TestTypeRegistrationz*Test a user-defined type by registering itcd}tj}|dd||dd|dd||dtdd	||d
tdd	dS)Ncd|zS)Nzmy_type{%s}rAstrings rget_my_typez.TestTypeRegistration.test.<locals>.get_my_types
 6))rrmy_typerrhr^rz
my_type{1}rpz-x 1 42zmy_type{42})r+r,registerrrr;rr{)rr'r2s   rrzTestTypeRegistration.tests	*	*	*(**	;777Dy111Ci000**399;;77dl333	5	5	5**9??+<+<==lm<<<	>	>	>	>	>rNrrArrr"r"s)44
>
>
>
>
>rr"ceZdZdZGddejZGddejZeddee	d	ed
ee
dd
gZgZde
ddfde
ddfde
ddfde
ddfgZdS)TestActionUserDefinedz*Test a user-defined option/argument actionceZdZddZdS)$TestActionUserDefined.OptionalActionNct	|jdksJd|jz|dks
Jd|ztd}|dvrd|_n|d	vrd
|_ntd|z||ksJd|d
|n$#t$r}t	d|zd}~wwxYwt|d|dS)Nrdest: %s-szflag: %s?rG)?r;r)@r	value: %s	expected , got zopt_action failed: %s)r*r{r6AssertionErrorrrrr2	namespacer
option_stringrrs       r__call__z-TestActionUserDefined.OptionalAction.__call__s
GyF***J,B***$,,,j=.H,,,!dmmmN**)*K&&e^^)+K&&(u)<==="i////3>;;		3K////!
G
G
G)*AA*EFFF
GIvu-----sBB
B$
BB$rOrrr r;rArrOptionalActionr-s(	.	.	.	.	.	.rr=ceZdZddZdS)&TestActionUserDefined.PositionalActionNc	|
Jd|z|jdksJd|jztd}|dvrd|_n*|dvrd	|_n|d
vrd|_ntd|z||ksJd
|d|n$#t$r}t	d|zd}~wwxYwt|d|dS)Nzoption_string: %sr6r/rr6)rrr1)rur;)rr2r4r5r6zarg_action failed: %s)r*r{rr7rrr8s       rr;z/TestActionUserDefined.PositionalAction.__call__s&
G$,,/B/<0=,,,yH,,,j49.D,,,!lllH$$'+K$$c\\',K$$c\\',K$$(u)<==="i////3>;;		3K////!
G
G
G)*AA*EFFF
GIx/////sBB
B,B''B,rOr<rArrPositionalActionr?s(	0	0	0	0	0	0rrBr0rr1)r*rrror6rr)rrrwroz-s0.125r2)rr6rrz
-s 0.625 1r;ruz84 -s2r3rN)rrr r!r+Actionr=rBrtrkrrrr{rrArrr+r+s44........,000008?0004	Dvn	&	&	&H-C	,	,	,H	BBE!,,,-	
rrtB'''(	rruQ///0	223r***+	IIIrr+c>eZdZdZGddejZdZdS)TestActionRegistrationz5Test a user-defined action supplied by registering itceZdZddZdS)TestActionRegistration.MyActionNc8t||jd|zdS)Nzfoo[%s])rr*)rr2r9valuesr:s     rr;z(TestActionRegistration.MyAction.__call__s!Ity)f*<=====rrOr<rArrMyActionrGs(	>	>	>	>	>	>rrJcrtj}|dd|j|dd||dgtd||dgtd	dS)
Nr	my_actionr6rrzfoo[1]rArzfoo[42])r+r,r)rJrrr;r{r1s  rrzTestActionRegistration.tests(**+t}===H[999**C5112X3F3F3FGGG**D622Bi4H4H4HIIIIIrN)rrr r!r+rCrJrrArrrErEsZ??>>>>>8?>>>
JJJJJrrEcTeZdZedddegZdZdegdfgZd	S)
TestActionExtendrextendr)rrwrrAz--foo f1 --foo f2 f3 f4)f1f2f3f4rN)	rrr rtrrrr{rrArrrNrNsVGHCc:::H	"BB+C+C+C$D$D$DEIIIrrNceZdZdZdZ		ddZfdZdZdZd	Z	d
Z
dZdZd
Z
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZxZS) TestAddSubparserszTest the add_subparsers methodc2|jtg|Ri|dSrOrrrxs   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)progdescriptionrLrrr(rfoo helprhelpr]r^rrFbar helprrarFCOMMANDmetavarcommandstitlecommand helpraz
1 descriptionr^z1 help1alias11alias2aliasesrr\zw helprrx helprraz
2 descriptionz2 helprr
123y helpr
rzz help)rrwraz
3 descriptionz3 helprtzt helpurazu helprwrarAr)r)r)	rrrkadd_subparsersrXdict
add_parserrr
)
rsubparser_helprLrmr2subparsers_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)ry)r
rKrr2command_help_parserrs rrKzTestAddSubparsers.setUp:sF


&&((#'#3#34#3#H#H   rcxdD]6}|}||jj|7dS)N)rrza az0.5 az0.5 1z0.5 1 -yz0.5 2 -w)rrXr2r;)rrrvs   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 7Frjrr(rFrgrz0.25 --foo 2 -y 2 3j -- -1jTr1ry@y)r(rFr^r
z--foo 0.125 1 cr2rz-1.5 3 11 -- a --foo 7 -- br	)rrr--r)r(rFrrrs)rr2r;rr{rs 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)NrFrjrrrz0.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-Xrerb)rr2parse_known_argsrr{rs 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)NrrrrFr)rrGFrr5r)rrrvrxrr{r;r)rr2r{r}s    r	test_destzTestAddSubparsers.test_destos+--GL999***66
'',,U###3C888**5;;==99	;	;	;	;	;rc|dg}||jd||jddS)NrunrA)r;rcommandrX)rr2rets   r_test_required_subparsersz+TestAddSubparsers._test_required_subparsersxsP((e,,,	
&&v'8"=====rct}|d}d|_|d||dS)Nrr)Tr)rrvrrxrrr2r{s   r&test_required_subparsers_via_attributez8TestAddSubparsers.test_required_subparsers_via_attributesY+--**	*::
"
e$$$&&v.....rct}|dd}|d||dS)NrTr*rr)rrvrxrrs   r"test_required_subparsers_via_kwargz4TestAddSubparsers.test_required_subparsers_via_kwargsS+--**	D*II
e$$$&&v.....rct}|d}|d|d}||jdS)Nrr)rrArrvrxr;assertIsNonerrr2r{rs    r test_required_subparsers_defaultz2TestAddSubparsers.test_required_subparsers_defaultsf+--**	*::
e$$$###+&&&&&rcpt}|d}|d|d|t5}|ddddn#1swxYwY||jjddS)NTrr(rFrAz8error: the following arguments are required: {foo,bar}
$	rrvrxrrr;r>rrrr2r{excinfos    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(rFrzPerror: 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)NrFrrrArrs    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
            )rr2format_usageformat_helptextwrapdedentrs r	test_helpzTestAddSubparsers.test_helpsv1133E	G	G	G0022HOE55					rc|d}||d||t	jddS)Nz+:-rZz)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
            rrrrrrr1s  rtest_help_extra_prefix_charsz.TestAddSubparsers.test_help_extra_prefix_charss!!u!55,,..E	G	G	G++--x@00					rctdd}|ddd||t	jddS)	Nr[r\rbz--non-breakingruRhelp message containing non-breaking spaces shall not wrap at non-breaking spacesr`u7            usage: PROG [-h] [--non-breaking]

            main description

            options:
              -h, --help      show this help message and exit
              --non-breaking  help message containing non-breaking spaces shall not
                              wrap at non-breaking spaces
        rrrrrrr1s  rtest_help_non_breaking_spacesz/TestAddSubparsers.test_help_non_breaking_spacess+%7999];		<	<	<	
++--x	@	0
	0
										rctdd}|dd||t	jdtdd}|dgd	||t	jd
dS)Nr[r\rbr(z    raz            usage: PROG [-h] foo

            main description

            positional arguments:
              foo         

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

            main description

            positional arguments:
              {}          

            options:
              -h, --help  show this help message and exit
        rr1s  rtest_help_blankz!TestAddSubparsers.test_help_blanks+%7999					
++--x	@	0
	0
						,%79992		 	 	 	
++--x	@	0
	0
										rc|d}||d||t	jddS)NrJrZz)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
            rr1s  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
            )rrrrrrrs 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)Nr[r\rbrrr_r`rFrcrsubcommandsrizadditional text)rhr^rarrz'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
            )	rrrvrxrrrrr)rr2r{r}rs     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|||jjdSrO)rrr2r;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)	NTrmz
0.5 1alias1 bFrjrrz
0.5 1alias2 b)rrrrr{r1s  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)rrXr;rr1s  rtest_error_alias_invocationz-TestAddSubparsers.test_error_alias_invocation~	sS!!$!//&&v'8'6'<'<'>'>	@	@	@	@	@rc|dd}d|_||t	jddS)NT)rmrya	            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
            )rmaxDiffrrrrr1s  rtest_alias_helpz!TestAddSubparsers.test_alias_help	se!!$t!DD++--x@00					r)FNF) rrr r!rXrrKrrrrrrrrrrrrrrrrrrrrrrrrr"r#s@rrUrUs((@@@>B!5555nIIIII
III


&


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











'''"&$   D$*<===
	
	
	
@@@
rrUc$eZdZdZdZdZdZdS)TestPositionalsGroupsz@Tests that order of group positionals matches construction ordercht}|d|d}|d|dtddd}|d	}|||dS)
Nr(rhrFrGrrrr51 2 3)rrrr{r;rrrr2rexpectedrs     rtest_nongroup_firstz)TestPositionalsGroups.test_nongroup_first	s+--E"""))#..
5!!!E"""#3C000""7==??336*****rcht}|d}|d|d|dtddd}|d	}|||dS)
Nxxxr(rFrGrrrr5rrrrr{r;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(rFrGr	frellrrrrL)r(rFrGrz1 2 3 4rrs     rtest_interleaved_groupsz-TestPositionalsGroups.test_interleaved_groups	s+--))%00E"""
5!!!E"""))%00
7####3Cs;;;""9??#4#4556*****rN)rrr r!rrrrArrrr	sGJJ++++++
+
+
+
+
+rrcveZdZdZdZfdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZxZS)TestParentParsersz5Tests that parsers can be created with parent parsersc2|jtg|Ri|dSrOrWrxs   rrXz+TestParentParsers.assertArgumentParserError	rYrcttd|_|jd|jd}|d|jdtd|_|jd|jd|jd	}|d
td|_|jdtd|_|jdtd|_	|j	
}|dd
|dd
tj
tjd|_dS)NFrMz--wrr
r
rrrz--drrrr)r
rKrwxyz_parentrrabcd_parentw_parentz_parentab_mutex_parentadd_mutually_exclusive_grouprSr[basenamerrmain_program)rx_groupc_grouprrs    rrKzTestParentParsers.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 3rrrrgr^r
)rrrr;rr{r1s  rtest_single_parentz$TestParentParsers.test_single_parent	sh+T5E4FGGG**>+?+?+A+ABBcSC000	2	2	2	2	2rc||jjt|jg}||jdSNr)_test_mutex_abrr;rr1s  rtest_single_parent_mutexz*TestParentParsers.test_single_parent_mutex	sOD0;<<<+T5I4JKKKF-.....rc|jg}td|}t|g}||jdS)NF)rMrr)rrrr;rrr2s   rtest_single_granparent_mutexz.TestParentParsers.test_single_granparent_mutex	sN'(+UGLLL+VH===F-.....rc||gtdd||dgtdd||dgtdd||ddg||ddg||dg||ddg||ddgdS)NFrrrTrr)rr{rX)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 4rrrrL)rrr8rgr^r
)rrrrr;rr{rs   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)rrrgr^r
z
-a --w 2 3 -bz
-a -b --w 2 3)rrrrr;rr{rXrs   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;rr{rs   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)
NrFrrzbar -b 1 --d 2 3 4rrrrL)rrr8r)	rrvrxrrrr;rr{)rr2r{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(rrrrFrzfoo -a 4TFrLr~zbar -b  --w 2 3 4rr)rrrgr^r
rzfoo -a -b 4zbar -b -a 4)rrvrrxrrrrr;rr{rX)rr2r{r
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)rrr2parser_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)NFrrhgdrhr^r\rr
rr)r
rerrbz            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)rparentrhrr2rrs       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 r!rXrKrrrrrrrr	rrrrrr"r#s@rrr	s??@@@:::::8222
///
///AAAIII888777>>>444999666&99909999999rrc&eZdZdZdZdZdZdS) TestMutuallyExclusiveGroupErrorsc`t}|j}|t|jddS)Nr()rh)rrrr)rr2raisess   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)NrTrrFrrvru)rrrrrr+PARSER)rr2rrr!s     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)Nr[r]rrrr1rz--soupz--nutsz            usage: PROG [-h] [--foo | --bar] [--soup | --nuts]

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


z
*
*	&	&tf%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&sA&&A*-A*N)rrr r"r%rr,rArrrrx
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)NTrrr1r3s    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\}}||}|||9dSr0)r2r;rsuccesses_when_not_requiredrr)rr;rr4r	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)r2r;rrr)rr;r4rr: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|dSr0)r2rusage_when_not_requiredrrrrrexpected_usages   rtest_usage_when_not_requiredz$MEMixin.test_usage_when_not_required
sL66C5)H)HIIIIIrc|dj}|j}||t	j|dSr=)r2rusage_when_requiredrrrrAs   rtest_usage_when_requiredz MEMixin.test_usage_when_required
sL55B1)H)HIIIIIrc|dj}|j|jz}||tj|dSr0)r2rr@rarrrrrras   rtest_help_when_not_requiredz#MEMixin.test_help_when_not_required
sSoouo55A+di7(=(=>>>>>rc|dj}|j|jz}||tj|dSr=)r2rrErarrrrHs   rtest_help_when_requiredzMEMixin.test_help_when_required
sSooto44@'$)3(=(=>>>>>rN)rrr r5r7r;r>rCrFrIrKrArrr.r.
sFFFFFF555555JJJ
JJJ
???
?????rr.ceZdZddZddgZdeddfded	dfd
eddfdedd	fgZd
eddfgZdZdZ	dZ
dS)TestMutuallyExclusiveSimpleNctd}||}|dd|ddd	d
|S)Nr[r'rr1rcrrerrbbaz help)rwrrarrrrrr2rs    rr2z&TestMutuallyExclusiveSimple.get_parser
sc+88833X3FF
7444
7#SzJJJ
r--bar X --baz Yz
--bar X --baz--bar Xr8rFrGz--bar X --bar Zrb--baz Yrererz;        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
        rOrrr r2rr{rr9r@rErarArrrMrM
s"?3H	BB3D)))*	BB3D1112	BB4S)))*	""3'''(	I
RRDd
#
#
#$#DDDrrMc
eZdZddZdgZdeddddfdeddddfd	eddddfd
eddddfgZdeddddfgZdZd
Z	dZ
dS)TestMutuallyExclusiveLongNc
td}|dd|dd||}|d	d
|dd|S)
Nr[r'z--abcdez
abcde helprz--fghijz
fghij helprz--klmnoz
klmno helpz--pqrstz
pqrst helprrrrQs    rr2z$TestMutuallyExclusiveLong.get_parser
s+888IL999IL99933X3FF
9<888
9<888
rz--klmno X --pqrst Yz	--klmno Xr8)abcdefghijklmnopqrstz--abcde Y --klmno Xrez	--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
    rOrVrArrrXrX
s&&H	bbt4s$GGGH	BSCt<<<	>	bbt4t3GGGH	BTD<<<	>I
RRd$d$
?
?
?@#DDDrrXceZdZdZdgZdeddfdeddfd	ed
dfgZded
dfgZd
ZdZ	dZ
d
S)$TestMutuallyExclusiveFirstSuppressedctd}||}|dtj|ddd	|S)
Nr[r'rrrr
rrqr`rrrr+rorQs    rr2z/TestMutuallyExclusiveFirstSuppressed.get_parser%sd+88833X3FF
4h&7888
4
HEEE
rz-x X -yz-x Xr8Trpz	-x X -x Yrer
NFrz&        usage: PROG [-h] [-y]
        z$        usage: PROG [-h] -y
        zm
        options:
          -h, --help  show this help message and exit
          -y          y help
        rVrArrr`r`#s{H	cT"""#	bb3$'''(	
rrDE"""#I
RR$$


 #DDDrr`c	eZdZdZgdZdedddfdedddfd	eddd
fdedddfgZdedddfgZd
xZZ	dZ
dS)#TestMutuallyExclusiveManySuppressedctd}||}|j}|ddtj|ddtj|d	tj
|S)Nr[r'r--spamrr`r0rz	--bladderrrb)rrr2rrs     rr2z.TestMutuallyExclusiveManySuppressed.get_parserFs+88833X3FF H\0ABBBBJ}83DEEEEKh/0000
r)z--spam --badgerz--badger --bladder Bz--bladder B --spamrfTN)rr6bladderr0Fz--bladder BrDz
--spam --spamrz!        usage: PROG [-h]
        P
        options:
          -h, --help  show this help message and exit
        rrr r2rr{rr9rEr@rarArrrdrdDsH
224d;;;<	RRU5$???@	dC@@@A	""$tTBBBC	I
RRU4
6
6
67#51DDDrrdc
eZdZdZgdZdedddfded	d
dfded	ddgfded	dgdfgZd
ed	ddfgZdZdZ	dZ
dS)*TestMutuallyExclusiveOptionalAndPositionalctd}||}|ddd|dd	
|ddd
d|S)Nr[r'rrrFOOr`rfSPAMrr6rr8BADGERrwrorarPrQs    rr2z5TestMutuallyExclusiveOptionalAndPositional.get_parserjs~+88833X3FF
7<eDDD
8&111
83(KKK
r)z--foo --spam Sz
--spam S XzX --foozX Y Z --spam Sz	--foo X YrTNr8)r(rr6z--spam SFSzX Y Z)r8rerbrzD        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
        rVrArrrkrkhsH
""D5556	RREC8889	bbUse4445	""T///BBBC	I
RRES
1
1
12#	DDDrrkc
beZdZdZgdZdedddddfdedddddfdedddddfd	edddddfd
edddddfdedddddfgZdedddddfd
edddddfdedddddfgZdxZZ	dZ
dS)#TestMutuallyExclusiveOptionalsMixedcBtd}|ddd||}|ddd	|d
dd|ddd
|ddd|S)Nr[r'rrrnr`rra helprb helpr
rqrc helprZrQs    rr2z.TestMutuallyExclusiveOptionalsMixed.get_parsers+888DHEEE33X3FF
48DDD
48DDDDHEEE
48DDD
r)z-a -b-b -cz-a -cz-a -b -crTFrrrrr^rrz-a -xz-y -bz-x -y -crrr
z:        usage: PROG [-h] [-x] [-a] [-b] [-y] [-c]
        z
        options:
          -h, --help  show this help message and exit
          -x          x help
          -a          a help
          -b          b help
          -y          y help
          -c          c help
        NrirArrrsrssW766H	
rrDEUeu===>	
rrETUeu===>	
rrEUdeu===>	""tu???@	""u$???@	RR%5DDDAAAB
I
RR%5EUe
<
<
<=	
rrEUetu===>	
rrEUeu===>#51	DDDrrsceZdZddZddgZdeddfdedd	fgZd
eddfgZdZdZ	d
Z
dS)TestMutuallyExclusiveInGroupNctd}|dd}||}|dd	|d
d	|S)Nr[r'zTitled groupzGroup descriptionrrr1rcrrerO)rrrr)rrr2titled_groupmutex_groups     rr2z'TestMutuallyExclusiveInGroup.get_parsers+88800 .A1CC
55x5HH	  z :::  z :::
rrRz--baz X --bar YrSr8rTrUrerz9        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
        rOrVrArrr{r{s"#45H	BB3D)))*	BB4S)))*I

RRDd
#
#
#$#
DDDrr{c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)Nr[r'rrnrr
rrqr`rrrrurtrrvrrwrZrQs    rr2z<TestMutuallyExclusiveOptionalsAndPositionalsMixed.get_parsers+888Ch///DHEEE33X3FF
3c999
48DDD
48DDD
r)zX A -brxz-c X AzX ArdFr8ryzX -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
        rirArrrrs-,,H	SEUcU;;;<	ddese<<<=	detse<<<=	22u===>	BB#>>>?I

bb45ESE:::;	deut<<<=#
51DDDrrc0eZdZdZdZdZdZdZdZdZ	dZ
dS)TestMutuallyExclusiveNestedctd}||}|d|dtj5tjdt||}dddn#1swxYwY|d|dtj5tjdt||}dddn#1swxYwY|d	|d
|S)Nr[r'rrrrrz-dz-er)rrrwarningscatch_warningssimplefilterDeprecationWarning)rrr2rr)group3s      rr2z&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 r2r@rErar5r7r;r>rArrrrsP"
D'+#"&'+$#'   rrc eZdZdfd	ZxZS)MEPBaseNctt||}t|jd|g}|S)NrF)r]rMr)r
rr2rr])rrrr2rs    rr2zMEPBase.get_parserGsJw%%00(0CC+uvh@@@
rrO)rrr r2r"r#s@rrrEs=rrceZdZdS)&TestMutuallyExclusiveGroupErrorsParentNrrr rArrrrNDrrceZdZdS)!TestMutuallyExclusiveSimpleParentNrrArrrrSrrrceZdZdS)TestMutuallyExclusiveLongParentNrrArrrrXrrrceZdZdS)*TestMutuallyExclusiveFirstSuppressedParentNrrArrrr]rrrceZdZdS))TestMutuallyExclusiveManySuppressedParentNrrArrrrbrrrceZdZdS)0TestMutuallyExclusiveOptionalAndPositionalParentNrrArrrrgrrrceZdZdS))TestMutuallyExclusiveOptionalsMixedParentNrrArrrrlrrrceZdZdS)7TestMutuallyExclusiveOptionalsAndPositionalsMixedParentNrrArrrrqrrrc8eZdZdZdZdZdZdZdZdZ	dS)	TestSetDefaultsc
t}|d|dd|tddd|g|tddd|gt|tddd|gtd|tddd|gtdd	dS)
Nr(rrFru)r^r
r]rGr)rr
rset_defaultsrr{r;r1s  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(rFrprxfooxrnrGrrr)rrrrr{r;rr1s  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(rrrFrrp)rrrvrxrr{r;r)rr2r{parser_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)rrr2s   rtest_set_defaults_parentsz)TestSetDefaults.test_set_defaults_parentssm+U;;;e$$$+VH===ef&7&7&;&;<<<<<rcBtj}|d}|d|d|t
d|dgdS)Nr8rurr)r+r,rvrxrrr{r;)rr2xparsers   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)NWr8rerbrr\rXXrnr^rrvr
ZZrWWYY)rrrrr{r;r1s  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)Nrr8rerbrr(r\rrrnr^rrvr
rrrr)rrrrrr{r;r+s   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 rrrrrrrrArrrrysBBBIII"999===>>>000"00000rrceZdZdZdS)TestGetDefaultc8t}||d||d|d||d||d|dtd||d|d|d|d|d|d|d|ddS)	Nr(rFrr1rrr6r)rrget_defaultrrrrr1s  rtest_get_defaultzTestGetDefault.test_get_defaultso+--&,,U33444&,,U33444G$$$&,,U33444&,,U33444G#r:::&,,U33444V//66777)))6#5#5e#<#<===V//6677777rN)rrr rrArrrr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)	Nrurrprrr^xxr
)r+rrrrs  rtest_non_emptyz*TestNamespaceContainsSimple.test_non_emptys

!q
)
)
)R   

c2

c2r"""b!!!!!rN)rrr rrrArrrrs2"""
"""""rrceZdZdZdS)TestHelpFormattingMetaclasscf|dkrdSGddt}dD]\}}||||dS)NHelpTestCasec2eZdZdZdZdZdZdZdZdS)6TestHelpFormattingMetaclass.__init__.<locals>.AddTestsc||_||_|j|j|jfD]=}|jd|}|fd}	||_n#t$rYnwxYwt|||>dS)Nrc||dSrOrArs  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,rrvrwrrrrvrx)rrr2argument_sig
group_sigs	group_sig
argument_sigsrsubparsers_sigsr{
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|_|||dSrO)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)rrr2rs    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)rrr2print_
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)rrr2rsfilers      rrzFTestHelpFormattingMetaclass.__init__.<locals>.AddTests.test_print_fileG
sk))&11 d6F)FGG#

u


#nn..

6;/////rN)	rrr rrrrrrrArrrr
sq
A
A
A"


,
?
?
?
-
-
-


0

0

0
0
0
0
0
0rr))usager)rar)r)rrdrrrrrs       rrz$TestHelpFormattingMetaclass.__init__
s|>!!FF	0F	0F	0F	0F	0vF	0F	0F	0R&:	1	1!KHS+x0000	1	1rNryrArrrr
s(O1O1O1O1O1rrrceZdZdZedddZedddd	
eddd
eddeddeddgZgZdZedzZ	dZ
dS)TestHelpBiggerOptionals;Make sure that argument help aligns when options are longerr[DESCRIPTIONEPILOGr]r^epilograrvrw0.1ryrrX HELPr`--yY HELPrr(FOO HELPrFBAR 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
        Nrrr r!rtrrrrrarwrArrrrX
sEEsM"*,,,	D+i???DH555E!!!E
###E
###!#
ED GGGrrc^eZdZdZdZejZejZejZdZ	e	dzZ
ejZdS)TestShortColumnszTest extremely small number of columns.

    TestCase prevents "COLUMNS" from being too small in the tests themselves,
    but we don't want any exceptions thrown in such cases. Only ugly representation.
    c~|tj}|dddS)NrFrM)rGrrHrHrIs  rrKzTestShortColumns.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 r!rKrrrrrrarwrArrrr|
sf
!!!#:"J"9"M"9"S
ED:#:"AGGGrrceZdZdZedddZedddd	
eddd
eddeddeddgZeddeddedddgfgZdZed zZ	d!Z
d"S)#TestHelpBiggerOptionalGroupsrr[rrrrarvrwrryrrrr`rrrr(rrFrzGROUP TITLEzGROUP DESCRIPTIONrjrGzBAZ HELPrrzZ HELPrtzN        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
    rNrrArrrr
sEEsM"*,,,	D+i???DH555E!!!E
###E
###

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

ED,GGGrrceZdZdZeddZeddded	d
edd
eddgZgZdZedzZ	dZ
dS)TestHelpBiggerPositionalsz4Make sure that help aligns when arguments are longerUSAGErrr^rrrr`rrrekiekiekifekangzEKI HELPrFr        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
        rNrrArrrr
s>>smDDDDH555E!!!J///E
###	!#
EDGGGrrceZdZdZeddZeddded	d
dgZedd
edddgfgZdZedzZ	dZ
dS)TestHelpReformatting>Make sure that text after short names starts on the first liner[ze   oddly    formatted
description

that is so long that it should go onto multiple lines when wrappedrbrrzoddly
    formatted -x helprfrar^r	z
normal y helprhz'
    oddly formatted group

descriptionrjrrz` oddly 
formatted    -a  help  
    again, so long that it should be wrapped over multiple linesr`2        usage: PROG [-h] [-x XX] [-a] yyy
        a
        oddly formatted description that is so long that it should go onto multiple
        lines when wrapped

        positional arguments:
          yyy         normal y help

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

        title:
          oddly formatted group description

          -a          oddly formatted -a help again, so long that it should be wrapped
                      over multiple lines
        rNrrArrrrsHHs
)***	D$&=	>	>	>C_555

W#0
1
1
1#d<$%%%
&		'
!
ED(GGGrrceZdZdZeddZeddded	d
dgZeded
ddgfgZdZedzZ	dZ
dS)TestHelpWrappingShortNamesr	r[zZD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DrbrrzxXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXr
r^r	dYH 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 HHAr`ra
        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
        rNrrArrr
r
4sHHs[AAAD$]333C\222


XC\@@@B	C!
ED,GGGrr
ceZdZdZeddZedddd	ed
dd
eddd
gZededdd
eddd
gfgZdZedzZ	dZ
dS)TestHelpWrappingLongNamesz<Make sure that text after long names starts on the next linerzZD 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 DrrarvrwzZV 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 VryrXXXXXXXXXXXXXXXXXXXXXXXXXzdXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHXH XHr
r^yyyyyyyyyyyyyyyyyyyyyyyyyrrrAAAAAAAAAAAAAAAAAAAAAAAAAzdAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHAH AHr
zzzzzzzzzzzzzzzzzzzzzzzzzzdZH 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
        NrrArrrr\sFFszBBBD+iDDDD(666C555

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

ED<GGGrrceZdZdZedZedddedd	d
edded
d
dedddeddejedddejedddejedejejdg	Z	ed ed!dd"ed#d$d%ed&d&d	ed'd'dgfgZ
d(Zed)zZd*Z
d+S),
TestHelpUsageTest basic usage messagesr[r'r\rrgrtrrrrrrr)rarwrrrzWhether to foo)rarr1zWhether to barT)rarorrz--foobarz--barfoorz--bazzzBazz!)rrorarr
r^rrzr
r8ra/        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 r!rtrr+rrorrrrarwrArrrrs##s'''D#&&&D#&&&CcCc###Cc%%%G*83QRRRG*D$:	<	<	<D*j1OPPPHX;&/g	?	?	?

WCCc***CAC(((C#S)))C#S)))	
	!
ED,GGGrrcneZdZedZeddedddgZd	Zed
zZdZdS)
TestHelpUsageWithParenthesesr[r'
positionalz(example) positionalrfrz
--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 rtrrrrarwrArrrrsps'''L"8999D,(FGGG

EDGGGrrceZdZdZeddZgZededded	d	gfed
eddedd
gfgZdZedzZ	dZ
dS)TestHelpOnlyUserGroupsrr[Fr]rMxxxxrrrryyyyrr
r^z.        usage: PROG [-x X] [-y Y] a b
        zn
        xxxx:
          -x X  x
          a     a

        yyyy:
          b     b
          -y Y  y
        rNrrArrrrs##s777	VC3C#
	

VC#C3
		!
E		DGGGrrceZdZdZedZeddedded	ed
gZgZdZedzZ	d
Z
dS)TestHelpUsageLongProgz*Test usage messages where the prog is long<PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPr'r\rrrr8rrzz        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
        rNrrArrr#r#s44s)))D#D#CC	!#
E

DGGGrr#ceZdZdZedZeddedded	d
edded
edgZgZdZedzZ	dZ
dS) TestHelpUsageLongProgOptionsWrapzATest usage messages where the prog is long and the optionals wrapr$r'r\WWWWWWWWWWWWWWWWWWWWWWWWWrrrr
YYYYYYYYYYYYYYYYYYYYYYYYYrZZZZZZZZZZZZZZZZZZZZZZZZZrra        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
        rNrrArrr&r&sKKs)))D(###D(###D(###D(###CC
!#
EDGGGrr&ceZdZdZeddZedededgZgZdZed	zZ	d
Z
dS)$TestHelpUsageLongProgPositionalsWrapzCTest usage messages where the prog is long and the positionals wrapr$Fraaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccz        usage: PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
               aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
               ccccccccccccccccccccccccc
        
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc
        rNrrArrr+r+AsyMMs5999H

H

H


!#
E
DGGGrr+c	eZdZdZedZeddedded	d
edded
ededgZgZdZedzZ	dZ
dS)TestHelpUsageOptionalsWrapz,Test usage messages where the optionals wrapr[r'r\r'rrrr
r(rr)rrrz        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
        rNrrArrr1r1Zs66s'''D(###D(###D(###D(###CCC!#
E

DGGGrr1ceZdZdZedZedededededed	gZgZd
ZedzZ	dZ
d
S)TestHelpUsagePositionalsWrapz.Test usage messages where the positionals wrapr[r'rr
rr,r-r.z        usage: PROG [-h] [-x X] [-y Y] [-z Z]
                    aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        a
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc

        options:
          -h, --help            show this help message and exit
          -x X
          -y Y
          -z Z
        rNrrArrr3r3s88s'''D		D		D		H

H

H


!#
E
DGGGrr3ceZdZdZedZeddedded	d
ededed
gZgZdZedzZ	dZ
dS)%TestHelpUsageOptionalsPositionalsWrapz<Test usage messages where the optionals and positionals wrapr[r'rrrr
r(rr)r,r-r.a        usage: PROG [-h] [-x XXXXXXXXXXXXXXXXXXXXXXXXX] [-y YYYYYYYYYYYYYYYYYYYYYYYYY]
                    [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
                    aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        aZ
        positional arguments:
          aaaaaaaaaaaaaaaaaaaaaaaaa
          bbbbbbbbbbbbbbbbbbbbbbbbb
          ccccccccccccccccccccccccc

        options:
          -h, --help            show this help message and exit
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        rNrrArrr5r5sFFs'''D(###D(###D(###H

H

H


!#
EDGGGrr5ceZdZdZedZeddedded	d
gZgZdZedzZ	d
Z
dS)TestHelpUsageOptionalsOnlyWrapz@Test usage messages where there are only optionals and they wrapr[r'rrrr
r(rr)z        usage: PROG [-h] [-x XXXXXXXXXXXXXXXXXXXXXXXXX] [-y YYYYYYYYYYYYYYYYYYYYYYYYY]
                    [-z ZZZZZZZZZZZZZZZZZZZZZZZZZ]
        z
        options:
          -h, --help            show this help message and exit
          -x XXXXXXXXXXXXXXXXXXXXXXXXX
          -y YYYYYYYYYYYYYYYYYYYYYYYYY
          -z ZZZZZZZZZZZZZZZZZZZZZZZZZ
        rNrrArrr7r7sJJs'''D(###D(###D(###
!#
E
DGGGrr7ceZdZdZeddZedededgZgZdZed	zZ	d
Z
dS) TestHelpUsagePositionalsOnlyWrapzBTest usage messages where there are only positionals and they wrapr[Frr,r-r.z~        usage: PROG aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
                    ccccccccccccccccccccccccc
        r/rNrrArrr9r9syLLs777H

H

H


!#
EDGGGrr9c
4eZdZdZedZedededdd	d
ded
ddeddddgddeddedddgZeded d!ed"d#d$gfgZd%Z	e	d&zZ
d'Zd(S))TestHelpVariableExpansionz:Test that variables are expanded properly in help messagesr[r'rz"x %(prog)s %(default)s %(type)s %%rdr
rrXXXz y %(prog)s %(default)s %(const)s)rrorrarrz$foo %(prog)s %(default)s %(choices)sror1rGrurBBBz!bar %(prog)s %(default)s %(dest)s)rorrfrarzspam %(prog)s %(default)srr6rjzbadger %(prog)s %(default)s)rorarrza %(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 r!rtrrrrrrarwrArrr;r;s5DDs'''Ds5	7	7	7D%3	5	5	5GU7	9	9	9GUQFE4	6	6	6F4555Hc(EFFF

WC3444Cb'?@@@
	!ED"GGGrr;cFeZdZdZeddZgZgZdZedzZ	dZ
dS)	&TestHelpVariableExpansionUsageSuppliedz@Test that variables are expanded properly when usage= is presentr[z%(prog)s FOOr]rz         usage: PROG FOO
        rhrNrrArrr?r?&sTJJsn=== "ED
GGGrr?c@eZdZdZeddZgZgZdZeZ	dZ
dS)$TestHelpVariableExpansionNoArgumentsz;Test that variables are expanded properly with no argumentsr[Frz        usage: PROG
        rNrrArrrBrB7sHEEs777 "EDGGGrrBczeZdZdZedejZeddeddgZgZ	d	Z
d
Zd
ZdS)TestHelpSuppressUsagez3Test that items can be suppressed in usage messagesr[r@rr_rr	spam helpz        positional arguments:
          spam        spam help

        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        rN)
rrr r!rtr+rorrrrarrwrArrrDrDDss==sh.?@@@G*%%%F%%%!#D
EGGGrrDceZdZdZeddZedejeddgZgZ	d	Z
e
d
zZdZdS)
TestHelpSuppressOptionalz?Test that optional arguments can be suppressed in help messagesr[FrrrrrEz!        usage: PROG spam
        zA
        positional arguments:
          spam  spam help
        rN
rrr r!rtrr+rorrrrarwrArrrGrGYsIIs777G(+,,,F%%%!#
ED
GGGrrGceZdZdZedZeddeddgZed	ed
ejgfgZ	dZ
e
dzZd
ZdS)TestHelpSuppressOptionalGroupz<Test that optional groups can be suppressed in help messagesr[r'rr_rrrErr12        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 r!rtrrr+rorrrarwrArrrJrJmsFFs'''G*%%%F%%%


WG(*;<<<=>!
EDGGGrrJc~eZdZdZedZeddedejgZgZ	dZ
e
d	zZd
ZdS)TestHelpSuppressPositionalzATest that positional arguments can be suppressed in help messagesr[r'rr_rrz-        usage: PROG [-h] [--foo FOO]
        o
        options:
          -h, --help  show this help message and exit
          --foo FOO   foo help
        rNrHrArrrNrNs}KKs'''G*%%%F*+++!#
EDGGGrrNc^eZdZdZedZedddgZgZdZed	zZ	d
Z
dS)TestHelpRequiredOptionalz.Test that required options don't look optionalr[r'rTr_)rraz+        usage: PROG [-h] --foo FOO
        rOrNrrArrrQrQsj88s'''Gd444!#
EDGGGrrQc|eZdZdZedddZeddd	ed
dd
gZgZdZedzZ	dZ
dS)TestHelpAlternatePrefixCharsz:Test that options display with different prefix charactersr[z^;F)r]rLrMz^^foorr_r`z;bz;;barrcrz-        usage: PROG [^^foo] [;b BAR]
        zf
        options:
          ^^foo              foo help
          ;b BAR, ;;bar BAR  bar help
        rNrrArrrSrSsDDsTEJJJGLz:::D'
+++!#
EDGGGrrScveZdZdZeddZeddedd	gZgZd
ZedzZ	dZ
d
S)TestHelpNoHelpOptionalz=Test that the --help argument can be suppressed help messagesr[Frrr_rrrEz-        usage: PROG [--foo FOO] spam
        zv
        positional arguments:
          spam       spam help

        options:
          --foo FOO  foo help
        rNrrArrrUrUs|GGs777G*%%%F%%%!#
EDGGGrrUcleZdZdZedZededgZgZdZedzZ	dZ
d	S)
TestHelpNonez1Test that no errors occur if no help is specifiedr[r'rrrKz
        positional arguments:
          spam

        options:
          -h, --help  show this help message and exit
          --foo FOO
        rNrrArrrWrWsl;;s'''GF!#
EDGGGrrWc	eZdZdZedZedddded	d
dded
dddeddddgZgZdZedzZ	dZ
dS)TestHelpTupleMetavarz"Test specifying metavar as a tupler[r'r\rgr)W1W2)rarwrfrrr)X1X2r
r^rz)Y1Y2Y3rr
r)Z1z]        usage: PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]]
        z
        options:
          -h, --help        show this help message and exit
          -w W1 [W2 ...]    w
          -x [X1 [X2 ...]]  x
          -y Y1 Y2 Y3       y
          -z [Z1]           z
        rNrrArrrYrYs,,s'''Ds#|<<<Ds#|<<<Ds!-?@@@Ds#x888	!#
EDGGGrrYceZdZdZedejdZeddedd	gZed
ded
dgfgZ	dZ
e
dzZdZdS)TestHelpRawTextTest the RawTextHelpFormatterr[7Keep the formatting
    exactly as it is written

here
r]formatter_classr^rz-    foo help should also
appear as given hererrrErh?    This text
  should be indented
    exactly like it is here
rjr1rc>        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 r!rtr+RawTextHelpFormatterrrrrrarwrArrrcrcs''s
X%B	G1	2	2	2F%%%

W#B
C
C
C#gJ
'
'
'	(	*!
ED,GGGrrcceZdZdZedejdZeddedd	gZed
ded
dgfgZ	dZ
e
dzZdZdS)TestHelpRawDescriptionrdr[rerfrz4  foo help should not
    retain this odd formattingrrrErhrhrjr1rcria
        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 r!rtr+RawDescriptionHelpFormatterrrrrrarwrArrrlrl@s''s
X%I	G;	<	<	<F%%%

W#B
C
C
C#gJ
'
'
'	(	*!
ED*GGGrrlc`eZdZdZedejdZeddedd	d
edejd
dedejdej	edddeddeddddgZ
eddededd !gfgZd"Z
e
d#zZd$Zd%S)&TestHelpArgumentDefaultsz&Test the ArgumentDefaultsHelpFormatterr[r^rfrz)foo help - oh and by the way, %(default)srr1rrcr`z--tazzWhether to taz itT)rraroz--corgezWhether to corge itz--quuxzSet the quuxr)rarorrEr6rwoodenzbadger helprprhrjrerO)rroraz        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 r!rtr+ArgumentDefaultsHelpFormatterrrrorrrrrarwrArrroropsC00s
X%K!###
	GEFFFGLz:::GH:$d	4	4	4Ih<&0A	C	C	CH>2666F%%%HC
FFF


W-	0	0	0

#gC*
=
=
=	>	@!
E
D*GGGrrocbeZdZdZeddZedddd	gZgZd
ZedzZ	dZ
d
S)TestHelpVersionActionz,Test the default help for the version actionr[r^rb-Vrvrwz3.6ryz&        usage: PROG [-h] [-V]
        z
        description

        options:
          -h, --help     show this help message and exit
          -V, --version  show program's version number and exit
        rNrrArrrsrssj66sMBBB3t[ERRRS "
EDGGGrrsceZdZdZedZeddddejed	d
edd
gZgZ	dZ
e
dzZdS)TestHelpVersionActionSuppresszCTest that the --version argument can be suppressed in help messagesr[r'rarvrwrx)rrwrarr_rrrErKrLN)rrr r!rtrr+rorrrrarArrrvrvsMMs'''D+i"	$	$	$G*%%%F%%%	!#
EDDDrrvcveZdZdZeddZedddd	gZd
dDZdZed
zZ	dZ
dS)TestHelpSubparsersOrdering5Test ordering of subcommands in help matches the coder[display some subcommandsrbrarvrwrryc.g|]}t|S)rrt)rrds  rrz%TestHelpSubparsersOrdering.<listcomp>s6DDD!%!d^^^DDDr)rrrr8r6        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 r!rtrrrrrarwrArrrxrxs??s'ACCC3t[ERRRSDD)BDDD
E

DGGGrrxczeZdZdZeddZedddd	gZd
ZdeDZdZ	e	d
zZ
dZdS)"TestHelpSubparsersWithHelpOrderingryr[rzrbrarvrwrry))rza subcommand help)rzb subcommand help)rzc subcommand help)r8zd subcommand help)rze subcommand helpc6g|]\}}t||S))rdrar|)rrdras   rrz-TestHelpSubparsersWithHelpOrdering.<listcomp>s?@@@!+t!d666@@@rr}a
        display some subcommands

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

        options:
          -h, --help     show this help message and exit
          -v, --version  show program's version number and exit
        rN)rrr r!rtrrsubcommand_datarrrarwrArrrrs??s'ACCC3t[ERRRSO@@/>@@@
ED"GGGrrceZdZdZeddejZedeedeede	d	
gZ
gZdZedzZ
d
ZdS)TestHelpMetavarTypeFormatterc|SrOrAr%s rcustom_typez(TestHelpMetavarTypeFormatter.custom_types
rr[r^)r]r^rgrrhrrz
SOME FLOAT)rrfzF        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 rrtr+MetavarTypeHelpFormatterrrrkrrrrarwrArrrrssM+3+LNNN3s---3t+6663t%FFFH!#
EDGGGrrcleZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdS)TestInvalidArgumentConstructorsz-Test a bunch of invalid Argument constructorscdtj}|jt|jg|Ri|dSrO)r+r,rrrrrvrwr2s    rassertTypeErrorz/TestInvalidArgumentConstructors.assertTypeError;sR(**)V%8	+	+	+	+#)	+	+	+	+	+rcdtj}|jt|jg|Ri|dSrO)r+r,rrrrs    rassertValueErrorz0TestInvalidArgumentConstructors.assertValueError@sR(***f&9	+	+	+	+#)	+	+	+	+	+rc|dd|dd|dd|didS)	Nr)rFr
r()callbackrA)
callback_args)callback_kwargsrrs 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---rrs rtest_invalid_option_stringsz;TestInvalidArgumentConstructors.test_invalid_option_stringsPs0d###e$$$$$rcz|dd|dttfdS)Nrrrh)rrrkrs rtest_invalid_typez1TestInvalidArgumentConstructors.test_invalid_typeTs>gE222gS%L99999rc|dd|dd|ddtj}|t5}|dddddn#1swxYwY|dt|jdS)	Nrr(rrGrrrz
store-truezunknown action)	rr+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)rFrGz+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)rrrrrrhrrvabrrr)r)rwrr)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(rrrwrrrs  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)rurrr()rrwrr)rrrws   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)Nrparsersrr[)rr])rr)rr+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>.SuccessNrrArrSuccessrsDrrc$eZdZ	dfd	ZdZdS)HTestInvalidArgumentConstructors.test_user_defined_action.<locals>.ActionFc@|dkr|ur|urdSdSdS)NrrA)roption_stringsr*rrorrs      rrzQTestInvalidArgumentConstructors.test_user_defined_action.<locals>.Action.__init__sB6>>''"g--")'))O">''--rcdSrOrArxs   rr;zQTestInvalidArgumentConstructors.test_user_defined_action.<locals>.Action.__call__srN)F)rrr rr;)rsrrCrsG#(	
,	
,	
,	
,	
,	
,




rrCrf)rrorr)rrr+r,rr)rrCr2rs   @rtest_user_defined_actionz8TestInvalidArgumentConstructors.test_user_defined_actions					i										V			 (**'6#6!'		I	I	I'6#6!'		I	I	I	I	IrN)rrr r!rrrrrrrrrrrrrrrrArrrr8s77+++
+++
777000
%%%:::;;;)))CCCAAABBBAAACCC333IIIIIrrceZdZdZdZdS)TestActionsReturnedcPtj}|d}||jd|dd}||jd|dd}||jddS)	Nrr(rr1rFrr
r)r+r,rrr*rr2rs   rrzTestActionsReturned.test_dests(**$$W--e,,,$$T733e,,,$$T400c*****rc4tj}|ddddtddgddd	
		}||jd||jd||jd||jt||j	ddg||j
d||jd||jd	dS)NrrrrrurrmBARrG)rwrrorrrarfr*)
r+r,rrrrwrrorrrarfr*rs   r	test_misczTestActionsReturned.test_miscs(**$$WCr-/cAq6*/U%LL	
s+++r***,,,c***!Q000e,,,///e,,,,,rN)rrr rrrArrrrs2+++-----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)Nrrf)r+r,rrrr1s  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)Nr[resolve)r]rrzOLD XrzNEW Xz            usage: PROG [-h] [-x X]

            options:
              -h, --help  show this help message and exit
              -x X        NEW X
            rfOLD_SPAMrNEW_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)rr2r2s   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,rvrxrr)rr2sps   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 rrrrrArrrrsU2229992EEEEErrcHeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)TestOptionalsHelpVersionActionsz!Test the help and version actionsc|t5}||dddn#1swxYwY|||jjdSrO)rrr;rrrrr)rr2rrs    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|dSrO)rrr;rr2rvs   rrXz9TestOptionalsHelpVersionActions.assertArgumentParserErrors$-v/@$GGGGGrct}|dddd||d||d|tt
|ddS)	Nrarvrwrxryr5rRformat_versionrrrrrrr1s  rtest_versionz,TestOptionalsHelpVersionActions.test_versionsw+--D+iOOO  ...  222.'6;KLLLLLrc(td}|dddd|t5}|dgdddn#1swxYwY|d|jjdS)	NPPPr'rarvrwz%(prog)s 3.5ryzPPP 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)NFrrarvrwrxryr5rRr)rrrXrrrr1s  rtest_version_no_helpz4TestOptionalsHelpVersionActions.test_version_no_help's|+U;;;D+iOOO&&vt444&&vx888.'6;KLLLLLrc&td}|ddd|t5}|dgdddn#1swxYwY|d|jjdS)Nr<r'rtrwz%(prog)s 3.7ryzXXX 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)NFrr5rRrarv)rrXr1s  rtest_no_helpz,TestOptionalsHelpVersionActions.test_no_help5sp+U;;;&&vt444&&vx888&&vt444&&v{;;;;;rcFt}|dd|dd||d||d||d|t
t|ddS)	Nrrarr
rwrarvr)rrrrXrrrr1s  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)Nrvrwrxryrrrr^)rrr(z-x barzbaz -xz--bad-optionzfoo bar bazz %s r5rRrr)rr2valid_prefixesvalid_suffixesprefixsuffixrs       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 r!rrXrrrrrrrrArrrrs++DDD
HHHMMM;;;MMM;;;<<<MMMQQQQQrrcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)TestStringsz3Test str()  and repr() on Optionals and PositionalscfttfD]!}||||"dSrO)rrr)robj
result_stringr6s    rassertStringEqualzTestStrings.assertStringEqual]s@$K	7	7DTT#YY
6666	7	7rcxtjgdddddgdddd	
		}d}|||dS)N)rrrrrrrrurrzFHELPMETAVAR	rr*rrwrorrrarfzAction(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+rCr)roptionr&s   r
test_optionalzTestStrings.test_optionalasf000II			
Q		
vv.....rctjgdtddgdddd		}d	tz}|||dS)
Nrrri)rjg?riTzH 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+rCrkr)rargumentr&s   r
test_argumentzTestStrings.test_argumentrsi?#OO	 	 	 
@BG
H		
x00000rcbtjdd}d}|||dS)NrrrzNamespace(foo=42, bar='spam')r+rrrrr&s   rtest_namespacezTestStrings.test_namespaces8

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


1
13.
1
12r6*****rc`tjdddiddi}d}|||dS)Nrrurrz Namespace(a=1, **{'"': 'quote'})rArrs   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)rArrs   r$test_namespace_starkwargs_identifierz0TestStrings.test_namespace_starkwargs_identifiers=


2
27D/
2
2(r6*****rcztjd}dtjz}|||dS)Nr[r'zvArgumentParser(prog='PROG', usage=None, description=None, formatter_class=%r, conflict_handler='error', add_help=True))r+r,
HelpFormatterr)rr2r&s   rtest_parserzTestStrings.test_parsersH(f555
'5
6		
vv.....rN)rrr r!rrrrrrrrrArrrrZs==777///"111"+++
+++
+++
+++
/////rrc eZdZdZdZdZdS)
TestNamespacectj}|tt|dtjdd}||jd||jddS)Nrrrr)r+rrrrrrrrs  rtest_constructorzTestNamespace.test_constructorsu


!
!.'2s;;;

"
/
/
/r"""v&&&&&rcVtjdd}tjdd}tjd}tjd}||||||||||||||||||k|||k|||k|||kdS)Nrurr)rr)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)Nrurr)r+rassertIsrNotImplemented__ne__rs  r$test_equality_returns_notimplementedz2TestNamespace.test_equality_returns_notimplementedsY

!q
)
)
)

biioo~666

biioo~66666rN)rrr rrrrArrrrsA'''$$$ 77777rrc eZdZdZdZdZdS)TestEncodingctj|\}}|dz
}t|dd5}|ddddS#1swxYwYdS)Nz.pyrr
rh)rSr[splitextrjr)rr[rrs    r_test_module_encodingz"TestEncoding._test_module_encodings'""4((a

$g
.
.
.	!
FFHHH																		sAA #A cD|tjdSrO)r$r+__file__rs rtest_argparse_module_encodingz*TestEncoding.test_argparse_module_encodings""8#455555rc:|tdSrO)r$r&rs r"test_test_argparse_module_encodingz/TestEncoding.test_test_argparse_module_encodings""8,,,,,rN)rrr r$r'r)rArrr!r!sA666-----rr!ceZdZdZdS)TestArgumentErrorczd}tjd|}|t||dS)Nz
my error here)r+rrr)rrrs   rtest_argument_errorz%TestArgumentError.test_argument_errors;&tS11US)))))rN)rrr r-rArrr+r+s#*****rr+ceZdZdZdS)TestArgumentTypeErrorc,d}tdd}|d||t5}|dgdddn#1swxYwY|d|jjdS)	Nc*tjd)Nspam!)r+ArgumentTypeErrorr%s rrz<TestArgumentTypeError.test_argument_type_error.<locals>.spams,W555rr[Frrrhr<z-usage: PROG x
PROG: error: argument x: spam!
)rrrrr;rrr)rrr2rs    rtest_argument_type_errorz.TestArgumentTypeError.test_argument_type_errors	6	6	6,%HHHCd+++


2
3
3	'rug&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'J,	.	.	.	.	.sA))A-0A-N)rrr r4rArrr/r/s#
.
.
.
.
.rr/c 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)Nr[rr@req_posrh-req_optTrneed_oner)rrwreq_optmyXargumentz
-req_opt=1)
rrrrrrr;rr>rrr2rrs    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)Nr[rr@r8rhz	--req_optTrz	--opt_optr)rrwror;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)	Nr[rr@r8optional_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>rBrErArrr6r6sA***2)))&55555rr6ceZdZdZdS)TestTypeFunctionCallOnlyOncecfd}tj}|d|d|d}t
d|dS)Nc4|ddS)Nr2
foo_convertedr)string_to_convertrs rrzLTestTypeFunctionCallOnlyOnce.test_type_function_call_only_once.<locals>.spam7s.888"?rrrFrz--foo spam!rJr)r+r,rr;rrr{rrr2rvs`   r!test_type_function_call_only_oncez>TestTypeFunctionCallOnlyOnce.test_type_function_call_only_once6s	#	#	#	#	#(**G$>>>  !4!4!6!677000$77777rN)rrr rNrArrrGrG4s#88888rrGc&eZdZdZdZdZdZdS)TestTypeFunctionCalledOnDefaultcfd}tj}|d|d|g}td|dS)Nc4|ddS)NrrJrK)int_to_convertrs rrz]TestTypeFunctionCalledOnDefault.test_type_function_call_with_non_string_default.<locals>.spamGs^Q///"?rrrrrr+r,rr;rr{rMs`   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)NrJrA)rSs rrzYTestTypeFunctionCalledOnDefault.test_type_function_call_with_string_default.<locals>.spamRs"?rr0rrJrrTrMs    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)NrrA)str_to_converts rrOzYTestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_default.<locals>.extend\s
!C''r--testrrz**)rrT)rrOr2rvs    r)test_no_double_type_conversion_of_defaultzITestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_default[su	(	(	((**H63???  $$	
-----rctj}|ddtgd|g}||jgdS)Nr]rr)r*rror)r+r,rrr;rrrs   rtest_issue_15906z0TestTypeFunctionCalledOnDefault.test_issue_15906gsk(**H6$&x		9	9	9  $$B'''''rN)rrr rUrYr^r`rArrrPrPDsP	*	*	*888
.
.
.(((((rrPc2eZdZdZdZdZdZdZdZdS)TestParseKnownArgscVtj}|ddS)NrAr+r,r;r1s  rtest_arguments_tuplez'TestParseKnownArgs.test_arguments_tuplew*(**"rcVtj}|gdSrOrdr1s  rtest_arguments_listz&TestParseKnownArgs.test_arguments_list{rfrctj}|d|ddS)Nrrr+r,rr;r1s  rtest_arguments_tuple_positionalz2TestParseKnownArgs.test_arguments_tuple_positionals>(**C   &!!!!!rctj}|d|dgdS)Nrrjr1s  rtest_arguments_list_positionalz1TestParseKnownArgs.test_arguments_list_positionals@(**C   3%     rc"tj}|d|d\}}|t
d||ddg|dS)Nrz--foo F --bar --bazFrr1re)r+r,rrrrr{)rr2rvextrass    rtest_optionalsz!TestParseKnownArgs.test_optionalss(**G$$$../D/J/J/L/LMMfd+++'7+V44444rcttj}|dddt|dd|dgd	}||\}}|t
d
dd
||gd|dS)Nrarru)rwrrrfrrr6)rDr rrarrLrzTrD)vrr6)r rrL)r+r,rrrrr{)rr2rrvrps     r
test_mixedzTestParseKnownArgs.test_mixeds(**D13???H];;;H%%%222..t44fad3777>>>,,,f55555rN)	rrr rerhrkrmrqrtrArrrbrbusn"""
!!!
555	6	6	6	6	6rrbc&eZdZdZdZdZdZdS)TestIntermixedArgsc	tjd}|dd|ddd	}|d
|ddt
d}||}|tdd
dgd|||\}}|tdd
dg||gd|d}|	|\}}|tdd
ddg||gd||
|j||jddS)Nr[r'rr(r)r1rFTrcmdrestr)rwrzcmd --foo x 1 --bar y 2 3r^rr)rFrxr(ryrrrz!cmd --foo x 1 --error 2 --bar y 3ru)z--errorrr)
r+r,rrrparse_intermixed_argsrr{rparse_known_intermixed_argsrrr)rr2rFrrvrps      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)
Nr[r'rrr^rarvrcz\.\.\.)	rrrrrr{r>rr)rr2rrs    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)Nr[r'Trrrrmr`rfrnrr6rr8rorpz	1 --foo 2rr)r6r(rr)
rrrr{rrr{rrr)rr2rrvs    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)Nr[r'Trrrrmr`rfrnrr6rr8rorp)rrrrrr{rrr+s   rtest_exclusive_incompatiblez.TestIntermixedArgs.test_exclusive_incompatibles+88833T3BB
7<eDDD
8&111
83(KKK)V%A2FFF.....rN)rrr r}rrrrArrrvrvsP---6777
/
/
//////rrvceZdZdZdS)!TestIntermixedMessageContentErrorctdd}|dt|dtd|t
5}|gdddn#1swxYwYt|j}||d||d	|t
5}|	gdddn#1swxYwYt|j}|
|d||d	dS)
Nr[rr@r8rhr9Trr;)rrrrrrr;rr>r{assertNotRegexr=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>rArrrrs#)))))rrc,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)Nrrwrf)r+r,r)rrwrfr2s    rdo_test_no_exceptionz+TestAddArgumentMetavar.do_test_no_exceptions1(**G5'BBBBBrctj}|t5}|d||dddn#1swxYwY||jjd|jdS)Nrrr)	r+r,rrrrrrvEXPECTED_MESSAGE)rrwrfr2rs     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)Nrrrrs rtest_nargs_None_metavar_stringz5TestAddArgumentMetavar.test_nargs_None_metavar_strings!!!c!:::::rcL|dtdS)Nrrtuplers rtest_nargs_None_metavar_length0z6TestAddArgumentMetavar.test_nargs_None_metavar_length0	s%T577;;;;;rc4|dddS)Nrurrrs rtest_nargs_None_metavar_length1z6TestAddArgumentMetavar.test_nargs_None_metavar_length1s!!!f!=====rc4|dddS)Nrrrrrs rtest_nargs_None_metavar_length2z6TestAddArgumentMetavar.test_nargs_None_metavar_length2s!T:>>>>>rc4|dddS)Nrzrrrs rtest_nargs_None_metavar_length3z6TestAddArgumentMetavar.test_nargs_None_metavar_length3s!T?CCCCCrc4|dddS)Nrrrrrs r"test_nargs_optional_metavar_stringz9TestAddArgumentMetavar.test_nargs_optional_metavar_string!!!S!99999rcL|dtdS)Nrrrrs r#test_nargs_optional_metavar_length0z:TestAddArgumentMetavar.test_nargs_optional_metavar_length0%S%'':::::rc4|dddS)Nrrurrrs r#test_nargs_optional_metavar_length1z:TestAddArgumentMetavar.test_nargs_optional_metavar_length1!!!V!<<<<<rc4|dddS)Nrrrrrs r#test_nargs_optional_metavar_length2z:TestAddArgumentMetavar.test_nargs_optional_metavar_length2 s!S*=====rc4|dddS)Nrrzrrrs r#test_nargs_optional_metavar_length3z:TestAddArgumentMetavar.test_nargs_optional_metavar_length3#!S/BBBBBrc4|dddS)Nrrrrrs r$test_nargs_zeroormore_metavar_stringz;TestAddArgumentMetavar.test_nargs_zeroormore_metavar_string(rrcL|dtdS)Nrrrrs r%test_nargs_zeroormore_metavar_length0z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length0+rrc4|dddS)Nrrurrrs r%test_nargs_zeroormore_metavar_length1z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length1.rrc4|dddS)Nrrrrrs r%test_nargs_zeroormore_metavar_length2z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length21!!!Z!@@@@@rc4|dddS)Nrrzrrrs r%test_nargs_zeroormore_metavar_length3z<TestAddArgumentMetavar.test_nargs_zeroormore_metavar_length34rrc4|dddS)Nrrrrrs r#test_nargs_oneormore_metavar_stringz:TestAddArgumentMetavar.test_nargs_oneormore_metavar_string9rrcL|dtdS)Nrrrrs r$test_nargs_oneormore_metavar_length0z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length0<rrc4|dddS)Nrrurrrs r$test_nargs_oneormore_metavar_length1z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length1?s!S&99999rc4|dddS)Nrrrrrs r$test_nargs_oneormore_metavar_length2z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length2Brrc4|dddS)Nrrzrrrs r$test_nargs_oneormore_metavar_length3z;TestAddArgumentMetavar.test_nargs_oneormore_metavar_length3Errc4|dddS)Nrarrrrs r#test_nargs_remainder_metavar_stringz:TestAddArgumentMetavar.test_nargs_remainder_metavar_stringJs!!!s!;;;;;rcL|dtdS)Nrar)rrrs r$test_nargs_remainder_metavar_length0z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length0Ms%!!uww!?????rc4|dddS)Nrarurrrs r$test_nargs_remainder_metavar_length1z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length1Ps!!!v!>>>>>rc4|dddS)Nrarrrrs r$test_nargs_remainder_metavar_length2z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length2Ss!!!z!BBBBBrc4|dddS)Nrarzrrrs r$test_nargs_remainder_metavar_length3z;TestAddArgumentMetavar.test_nargs_remainder_metavar_length3Vs!!!!GGGGGrc4|dddS)NA...rrrrs r test_nargs_parser_metavar_stringz7TestAddArgumentMetavar.test_nargs_parser_metavar_string[s!!!!<<<<<rcL|dtdS)Nrrrrs r!test_nargs_parser_metavar_length0z8TestAddArgumentMetavar.test_nargs_parser_metavar_length0^s%VUWW=====rc4|dddS)Nrrurrrs r!test_nargs_parser_metavar_length1z8TestAddArgumentMetavar.test_nargs_parser_metavar_length1as!!!!?????rc4|dddS)Nrrrrrs r!test_nargs_parser_metavar_length2z8TestAddArgumentMetavar.test_nargs_parser_metavar_length2ds!VZ@@@@@rc4|dddS)Nrrzrrrs r!test_nargs_parser_metavar_length3z8TestAddArgumentMetavar.test_nargs_parser_metavar_length3gs!V_EEEEErc4|dddS)Nrurrrrs rtest_nargs_1_metavar_stringz2TestAddArgumentMetavar.test_nargs_1_metavar_stringl!!!3!77777rcL|dtdS)Nrurrrs rtest_nargs_1_metavar_length0z3TestAddArgumentMetavar.test_nargs_1_metavar_length0o%Q88888rc4|dddS)Nrururrrs rtest_nargs_1_metavar_length1z3TestAddArgumentMetavar.test_nargs_1_metavar_length1rs!!!6!:::::rc4|dddS)Nrurrrrs rtest_nargs_1_metavar_length2z3TestAddArgumentMetavar.test_nargs_1_metavar_length2u!Q
;;;;;rc4|dddS)Nrurzrrrs rtest_nargs_1_metavar_length3z3TestAddArgumentMetavar.test_nargs_1_metavar_length3x!Q@@@@@rc4|dddS)Nrrrrrs rtest_nargs_2_metavar_stringz2TestAddArgumentMetavar.test_nargs_2_metavar_string}rrcL|dtdS)Nrrrrs rtest_nargs_2_metavar_length0z3TestAddArgumentMetavar.test_nargs_2_metavar_length0rrc4|dddS)Nrrurrrs rtest_nargs_2_metavar_length1z3TestAddArgumentMetavar.test_nargs_2_metavar_length1!Q77777rc4|dddS)Nrrrrrs rtest_nargs_2_metavar_length2z3TestAddArgumentMetavar.test_nargs_2_metavar_length2s!!!:!>>>>>rc4|dddS)Nrrzrrrs rtest_nargs_2_metavar_length3z3TestAddArgumentMetavar.test_nargs_2_metavar_length3rrc4|dddS)Nrzrrrrs rtest_nargs_3_metavar_stringz2TestAddArgumentMetavar.test_nargs_3_metavar_stringrrcL|dtdS)Nrzrrrs rtest_nargs_3_metavar_length0z3TestAddArgumentMetavar.test_nargs_3_metavar_length0rrc4|dddS)Nrzrurrrs rtest_nargs_3_metavar_length1z3TestAddArgumentMetavar.test_nargs_3_metavar_length1rrc4|dddS)Nrzrrrrs rtest_nargs_3_metavar_length2z3TestAddArgumentMetavar.test_nargs_3_metavar_length2rrc4|dddS)Nrzrzrrrs rtest_nargs_3_metavar_length3z3TestAddArgumentMetavar.test_nargs_3_metavar_length3s!!!?!CCCCCrN)3rrr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrArrrrsECCCFFF;;;<<<>>>???DDD
:::;;;===>>>CCC
:::;;;===AAACCC
:::;;;:::AAACCC
<<<@@@???CCCHHH
===>>>@@@AAAFFF
888999;;;<<<AAA
888999888???AAA
888999888<<<DDDDDrrc.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|jdSNrrvr)	r+r,rrrrrrvEXPECTED_RANGE_MESSAGErrwr2rs    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,rrrrrrvEXPECTED_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)Nrrvabcd)rrs rtest_nargs_alphabeticz&TestInvalidNargs.test_nargs_alphabetics6&&S&111&&V&44444rc2|ddS)Nrrv)rrs rtest_nargs_zeroz TestInvalidNargs.test_nargs_zeros$$1$-----rN)	rrr rrrrrr	rArrrrse4LLLLNNN555.....rrceZdZdZdZdS)TestImportStarcttjD]*}|tt|+dSrO)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)rrdrs   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 rrrArrrrs7555BBBBBrrc$eZdZfdZdZxZS)TestWrappingMetavarcttd|_d}|jd|dS)N9this_is_spammy_prog_with_a_long_name_sorry_about_the_namez<http[s]://example:1234>z--proxyr)r
rKrr2r)rrfrs  rrKzTestWrappingMetavar.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>
            )r2rrrr)r	help_texts  rtest_help_with_metavarz*TestWrappingMetavar.test_help_with_metavarsLK++--	HO5%%					r)rrr rKrr"r#s@rrrsG=====							rrc eZdZdZdZdZdS)TestExitOnErrorc~tjd|_|jddtdS)NF)
exit_on_errorz
--integersN)rfr)r+r,r2rrrs rrKzTestExitOnError.setUps:-EBBB  s EEEEErc|jd}||t	jddS)Nz--integers 4r)integers)r2r;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+rr2r;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 rKr#r%rArrrrsDFFF===;;;;;rrcNit_tt_dSrO)rrrHrrArrtearDownModuler'sEJEJJJr__main__)r-r9rrrrSr_r]rrrPunittestr+rtest.supportrr
TextIOWrapperrrCr%skip_unless_working_chmodrrMrtr{rrrr,rrrrrrrrrr%r'r-r/r=r@rIrYr[r`rdrmrrrtryrrrrrrrrrrrrrrrrrrrrrrrrrrrrr	rr
rrrrrrr"r$r&r(r*r,r.r0r2r4r7r:r=r?rArCrJrPrRrUrWrYr^r`rgrmrqrur{rrrrrrr	eq_stderrrr
eq_bstderrrrrrrskip_if_dac_overriderrrrrrrrrr"r+rErNrUrrrr.rMrXr`rdrkrsr{rrrrrrrrrrrrrrrrrrrrrr
rrrrr#r&r+r1r3r5r7r9r;r?rBrDrGrJrNrQrSrUrWrYrcrlrorsrvrxrrrrrrrrr!r+r/r6rGrPrbrvrrrrrrr'rmainrArr<module>r1s#								







"""""":::::"":::$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