spvSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK r SSK r SSK r SSK r SSKJr SSKJr SSKJr SSKJrJr SSK Jr "SS\R.5r"S S \ R25r"S S \ R25r\R6"S S\55r"SS\5r"SS\5r"SS\ 5r!Sr""SS\ RF5r$"SS\%5r&\4r'\&"S\'05r("SS\(5r)"SS\(5r*"SS \(5r+"S!S"\(5r,"S#S$\(5r-"S%S&\(5r."S'S(\(5r/"S)S*\(5r0"S+S,\(5r1"S-S.\(5r2"S/S0\(5r3"S1S2\(5r4"S3S4\(5r5"S5S6\(5r6"S7S8\(5r7"S9S:\(5r8"S;S<\(5r9"S=S>\(5r:"S?S@\(5r;"SASB\(5r<"SCSD\(5r="SESF\(5r>"SGSH\(5r?"SISJ\(5r@"SKSL\(5rA"SMSN\(5rB"SOSP\(5rC"SQSR\(5rD"SSST\(5rE"SUSV\(5rF"SWSX\(5rG"SYSZ\(5rH"S[S\\(5rI"S]S^\(5rJ"S_S`\(5rK"SaSb\(5rL"ScSd\(5rM"SeSf\(5rN"SgSh\(5rO"SiSj\(5rP"SkSl\(5rQ"SmSn\(5rR"SoSp\5rS"SqSr\(5rT"SsSt\(5rU"SuSv\(5rV"SwSx\(5rW"SySz\(5rX"S{S|\(5rY"S}S~\(5rZ"SS\(5r["SS\(5r\"SS\(5r]"SS\(5r^"SS\(5r_"SS\(5r`"SS\(5ra"SS\(5rb"SS\(5rc"SS\(5rd"SS\(5re"SS\(5rf"SS\(5rg"SS\(5rh"SS\(5ri"SS\(5rj"SS\(5rk"SS\(5rl"SS\(5rm"SS\(5rn"SS\(5ro"SS\(5rp"SS\(5rq"SS\(5rr"SS\(5rs"SS\(5rt"SS\(5ru"SS\(5rv"SS\(5rw"SS\(5rx"SS\(5ry"SS\(5rz"SS\(5r{"SS\(5r|"SS\(5r}"SS\(5r~"SS\(5r"SS\(5r"SS\(5r"SS\\(5r"SS\\(5r"SS\5r\"5r\"5r"SS5r\"S5r\"S5r\"S5r\"S5r\"S5r\"S5r"SS\5r"SS\\(5r"SS\\(5r"SS\\(5r"SS\5r\GR&"SS\\(55r\GR&"SS\\(55r\GR&"SS\\(55r\GR&"SS\55r"SS\5r"SS\5r"SS\(5r"SS\(5r"SS\(5r"SS\5r"SS\(5r"SS\5r"SS\(5r"SGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GS GS \5r"GS GS \\5r"GS GS\\5r"GSGS\\5r"GSGS\\5r"GSGS\\5r"GSGS\\5r"GSGS\\5r"GSGS\\5r"GSGS\\5r"GSGS\\5r"GSGS \\5r"GS!GS"\\5r"GS#GS$\5r"GS%GS&\\5r"GS'GS(\\5r"GS)GS*\\5r"GS+GS,\\5r"GS-GS.\\5r"GS/GS0\\5r"GS1GS2\\5r"GS3GS4\\5r"GS5GS6\5r"GS7GS8\5r"GS9GS:\5r"GS;GS<\%5r\4r'\"GS=\'05r"GS>GS?\5r"GS@GSA\5r"GSBGSC\5r"GSDGSE\5r"GSFGSG\5r"GSHGSI\5r"GSJGSK\5r"GSLGSM\5r"GSNGSO\5r"GSPGSQ\5r"GSRGSS\5r"GSTGSU\5r"GSVGSW\5r"GSXGSY\5r"GSZGS[\5r"GS\GS]\5r"GS^GS_\5r"GS`GSa\5r"GSbGSc\5r"GSdGSe\5r"GSfGSg\5r"GShGSi\5r"GSjGSk\5r"GSlGSm\5r"GSnGSo\5r"GSpGSq\5r"GSrGSs\5r"GStGSu\5r"GSvGSw\5r"GSxGSy\5r"GSzGS{\5r"GS|GS}\5r"GS~GS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5r"GSGS\5Gr"GSGS\5GrGSGrG\GS:Xa]G\"\GR 5GS:a1\GR GSGS:Xa\"\ 5 \GR "S5 \ GR"5 gg(N)StrEnum)captured_stderr) os_helper)TestTranslationsBaseupdate_translation_snapshots)mockc6^\rSrSrSrSU4SjjrSrSrU=r$) 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>URS5n[TU] [R"[R "U55SUS9 g)Nutf-8)newline)encodesuper__init__ioBufferedWriterBytesIO)self initial_valuer __class__s 9/opt/alt/python313/lib64/python3.13/test/test_argparse.pyrStdIOBuffer.__init__!s@%,,W5  **2::m+DE '  3cUR5 URRR5R S5$)Nr )flushbufferrawgetvaluedecoders rrStdIOBuffer.getvalue&s- {{'')0099r) ) __name__ __module__ __qualname____firstlineno____doc__rr__static_attributes__ __classcell__rs@rr r s3 ::rr c \rSrSrSrSrSrg) StdStreamTest+c[R"5n[R"S5 [R "S5 UR SSS9 SSS5 SSS5 g!,(df  N=f!,(df  g=f)Nargparse._sys.exitrfoo)statusmessage)argparseArgumentParser contextlibredirect_stderrrpatchexitrparsers rtest_skip_invalid_stderr&StdStreamTest.test_skip_invalid_stderr-sX((*  & &t , JJ+ , KKq%K 0 - - , , , - ,s#A6A%A6% A3 /A66 Bc [R"5nURUR[R "UR S/54HnURUS9 [R"S5 [5n[R"U5 [R"S5 U"5 URUR5S5 SSS5 SSS5 SSS5 SSS5 SSS5 M g!,(df  N3=f!,(df  N<=f!,(df  NE=f!,(df  NN=f!,(df  GM =f)N-h)funcr2zusage:)r6r7 print_usage print_help functoolspartial parse_argssubTestr8redirect_stdoutr r9rr: assertRegexr)rr=rB mocked_stderrs rtest_skip_invalid_stdout&StdStreamTest.test_skip_invalid_stdout5s((*         f//$ 8 D  $ '**40 **=9 /0  !7!7!99E1:1('  10:9 10('sl!E 8 D9D( D 1(D D !D( )D91E  DD  D%!D( ( D6 2D99 E E  E r#N)r&r'r(r)r>rLr+r#rrr/r/+s 1Frr/c\rSrSrSrSrg)TestCaseHcVUR[R"55nSUS'g)N80COLUMNS) enterContextrEnvironmentVarGuardrenvs rsetUpTestCase.setUpJs& = = ?@Irr#N)r&r'r(r)rXr+r#rrrOrOHsrrOc,\rSrSrSrSrSrSrSrg) TempDirMixinRc[R"5Ul[R"5Ul[R "UR5 gN)tempfilemkdtemptemp_dirosgetcwdold_dirchdirr!s rrXTempDirMixin.setUpUs/ ((* yy{  rc[R"UR5 [R"URSS9H\upnUHPn[R "[R RURU5[R5 MR M^ [R"URS5 g)NF)topdownT) rbrerdwalkrachmodpathjoinstatS_IWRITEshutilrmtree)rrootdirsfilesnames rtearDownTempDirMixin.tearDownZst !#!F DdmmT:DMMJ"G  dmmT*rc[RRURU5n[ USSS9nUR U5 SSS5 U$!,(df  U$=f)Nwr encoding)rbrkrlraopenwrite)rfilename file_pathfiles rcreate_writable_file!TempDirMixin.create_writable_fileasNGGLL9 )S7 3t JJx 44 3s A A!cl[R"URU5[R5 gr^)rbrjrrmS_IREAD)rr}s rcreate_readonly_file!TempDirMixin.create_readonly_filegs **84dllCr)rdraN) r&r'r(r)rXrurrr+r#rrr[r[Rs + Drr[c\rSrSrSrSrg)SigjcXlX lgr^argskwargsrrrs rr Sig.__init__ls   rrNr&r'r(r)rr+r#rrrrjsrrc&\rSrSrSrSrSrSrg)NSqc :URRU5 gr^)__dict__update)rrs rr NS.__init__ss V$rc[URR55nSRUVs/sHnSU-PM sn5n[ U5R <SU<S3$s snf)Nz, z%s=%r())sortedritemsrltyper&)r sorted_itemstup kwarg_strs r__repr__ NS.__repr__vsUdmm1134 II E w} EF :.. ::FsA&c0[U5[U5:H$r^)varsrothers r__eq__ NS.__eq__{sDzT%[((rr#N)r&r'r(r)rrrr+r#rrrrqs%; )rrc\rSrSrSSjrSrg)ArgumentParserErrorNc`[RXX#5 XlX lX0lX@lgr^) Exceptionrr5stdoutstderr error_code)rr5rrrs rrArgumentParserError.__init__s&4&9   $r)rr5rr)NNNrr#rrrrs%rrc ,[[R[5(d#[[R[5(aU"U0UD6$[Rn[Rn[5[l[5[lU"U0UD6n[ [ U55Hn[XV5nU[RLa[XVU5 M/U[RRLa[XV[US[55 MiU[RLa[XVU5 MU[RRLdM[XV[US[55 M UU[lU[l$![a[nURn [RR5n [RR5n [SXU 5SeSnAff=f!U[lU[lf=f)Nr SystemExit) isinstancesysrr rlistrgetattrsetattrrBIN_STDOUT_SENTINELBIN_STDERR_SENTINELrcoderr) rGrr old_stdout old_stderrresultkeyattrerrrs rstderr_to_parser_errorrs#**k**j[.Q.Q4*6**JJCJCJ  >00FDL)v+3::%F4SZZ...FXGZ)[\SZZ'F4SZZ...FXGZ)[\*    >66DZZ((*FZZ((*F%fd49= >  >   s,CF F G8AG33G88G;;Hc@^\rSrSrU4SjrU4SjrU4SjrSrU=r$)ErrorRaisingArgumentParserc>>[[U] n[U/UQ70UD6$r^)rrrGr)rrrrGrs rrG%ErrorRaisingArgumentParser.parse_argss%5tG %jB4B6BBrc>>[[U] n[U/UQ70UD6$r^)rrr;r)rrrr;rs rr;ErrorRaisingArgumentParser.exits%/;%d>[[U] n[U/UQ70UD6$r^)rrerrorr)rrrrrs rr ErrorRaisingArgumentParser.errors%0$=%e=d=f==rr#) r&r'r(r)rGr;rr+r,r-s@rrrsC=>>rrc\rSrSrSrSrSrg)ParserTesterMetaclassaQAdds 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 cUS:Xag[US5(d[5Ul[US5(d [UlSnSnSnSnSn"S S [ 5n XEU4Hn Xx4H n U "X U 5 M M g) NParserTestCaseparser_signature parser_classcbUH)nUR"UR0URD6 M+ g)z(Add all arguments directly to the parserN) add_argumentrr)r=argument_signaturessigs r no_groups1ParserTesterMetaclass.__init__..no_groupss'*##SXX<<+rcURS5nUH)nUR"UR0URD6 M+ g)z4Add all arguments under a single group in the parserr3N)add_argument_grouprrr)r=rgrouprs r one_group1ParserTesterMetaclass.__init__..one_groups7--e4E*""CHH; ;+rc[U5H?up#URSU-5nUR"UR0URD6 MA g)z0Add each argument in its own group to the parserzfoo:%iN) enumeraterrrr)r=rirrs r many_groups3ParserTesterMetaclass.__init__..many_groupssC#$7811(Q,?""CHH; ;9rc$URU5$)z#Parse the args by passing in a list)rG)r=rs rlistargs0ParserTesterMetaclass.__init__..listargss$$T* *rc[RnUS/U-[lUR5U[l$!U[lf=f)z(Parse the args by defaulting to sys.argvr)rargvrG)r=r old_sys_argvs rsysargs/ParserTesterMetaclass.__init__..sysargss>88L$Q(4/CH (((*'<s ? A c,\rSrSrSrSrSrSrSrg)0ParserTesterMetaclass.__init__..AddTestscFX lX0lURRnURRnURUR4H=nURnXtU4nSR U5n U4Sjn Xl[XU 5 M? g![ a Nf=f)N_cU"U5 gr^r#r test_funcs rwrapperJParserTesterMetaclass.__init__..AddTests.__init__..wrapper  !$r)_add_arguments _parse_argsr& test_failurestest_successesrl TypeErrorr) r tester_cls add_argumentsrGadd_arguments_nameparse_args_namer func_namenames test_namers rr9ParserTesterMetaclass.__init__..AddTests.__init__s&3##- %)%8%8%A%A""&"2"2";";"&"4"4d6I6I!JI ) 2 2I%?JE #I09(+4(J7;"K%s<B B B cURRnURRnUR"U0UD6nUR XAR 5 U$r^)rrrrrr)rtesterrrr=s r _get_parser.AddTests._get_parsersR..330077,,d=f=##F,F,FG rc>URU5nURHYnUR5nURUS9 UR [ US9 UR U5 SSS5 SSS5 M[ g!,(df  N=f!,(df  M~=f)Nr)msg)rfailuressplitrH assertRaisesrrG)rrr=args_strrs rr>ParserTesterMetaclass.__init__..AddTests.test_failuress}))&1 &H#>>+DT2#001D$0O"--d3P32!0PO32s$B A<'B < B B  B c2URU5nURHdup4[U[5(aUR 5nUR US9 UR X#5nURXE5 SSS5 Mf g!,(df  Mx=f)Nr)r successesrstrr rHr assertEqual)rrr=r expected_ns result_nss rr?ParserTesterMetaclass.__init__..AddTests.test_successes"sz))&1)/)9)9%D!$,,#zz|T2$($4$4V$B **;B32*:32s #B B )rrN) r&r'r(r)rrrrr+r#rrAddTestsrs <&  4 Crr)hasattrrrrrobject) clsrtbasesbodydictrrrrrrrrGs rrParserTesterMetaclass.__init__s # # s.//#&5C sN++9C   =  <  < + (+ Cv+ C^(K@M'1 Z82Arr#N)r&r'r(r)r*rr+r#rrrrs  a9rrrc |\rSrSrSr\"S5/r/SQrS\"SS94S\"S S94S \"S S94S \"S S94S \"S S94/r Sr g)TestOptionalsSingleDashi81Test an Optional with a single-dash option string-x)r a--foo-x --fooz-x -yr$Nx-x ar!-xaz-x -1-1z-x-1r# r&r'r(r)r*rrr rrr+r#rrrr8sY;t9+8H R$Z c S  "t* d Irrc(\rSrSrSr\"SSS9\"SSSS 9\"S 5/r/S QrS \"S SSS94S\"SSSS94S\"S SSS94S\"S SSS94S\"SSSS94S\"SSSS94S\"SSSS94S\"SSSS94S\"S SSS94S\"S SSS94S\"SSSS94S\"SSSS94/ r Sr g)TestOptionalsSingleDashCombinediFrr  store_trueactionz-yyy store_const*r.const-z) r!r"r'r#z-x -zz-z -xz-yxz-yz az-yyyxz-yyyzaz-xyzaz-x=r$FN)r%yyyzT-zar!-z az-xzaz-xz az-x -zaz-x -z a-yz -x -yyy -zaz -x -yyy -z ar#r)r#rrr+r+Fs ; D& F=3 D  CH R%TT *+ rDdd+, U,- e-. d,- "t-. 2$#./ B43/0 rErT*+ et,- TrS12 dc23 Irr+c |\rSrSrSr\"S5/r/SQrS\"SS94S\"S S94S \"S S94S \"S S94S \"S S94/r Sr g)TestOptionalsSingleDashLongi`zATest an Optional with a multi-character single-dash option string-foo)r;r!r"z -foo --fooz-foo -y-fooar$Nr3z-foo ar!z-foo -1r(z-fo a-f ar#r)r#rrr:r:`sYKv;-GH RD\ 2#; B4L! "+  Irr:c \rSrSrSr\"S5\"S5\"S5/r/SQrS\"SSSS 94S \"S SSS 94S \"S SSS 94S \"SSSS 94S\"SSSS 94S\"SS SS 94S\"SSS S 94/r Sr g)&TestOptionalsSingleDashSubsetAmbiguousinz=Test Optionals where option strings are subsets of each other-f-foobar-foorab)rAr;-fo-foo bz-foobz-foobaz-foorar$N)ffoobarfoorabr>r!-fa-foaoar<ooa -foobar a -foorab ar#r)r#rrr@r@nsGt9c)nc)nEKH R$tD 12 c$t45 Sd34 d456 "uT$78 b4D9: b4S9:Irr@c\rSrSrSr\"S5\"S5/r/SQrS\"SSS94S \"S SS94S \"S SS94S \"SS S94S \"SS S94S\"S SS94S\"S SS94S\"SS S94S\"SS S94S\"S SS94S\"S SS94S\"SS S94S\"SS S94/ r Sr g) TestOptionalsSingleDashAmbiguousi~z7Test Optionals that partially match but are not subsetsrBrC) rAr>rIrJr;rDrEz-f=az-foo=br$N)rGrHz-foob ar!z-foob=az-foor az-foor=az-fooba az-fooba=az-foora az-foora=arMz -foobar=arNz -foorab=ar#r)r#rrrPrP~sAy>3y>:"H RtD )* Bc$/0 Bc$/0 Bd3/0 Bd3/0 Rs401 Rs401 RtC01 RtC01 bD12 bD12 bS12 bS12IrrPcl\rSrSrSr\"SSS9/r/SQrS\"SS 94S \"S S 94S \"S S 94S \"SS 94/r Sr g)TestOptionalsNumericiz(Test an Optional with a short opt stringr(onedest)r(r!z-1 --fooz-1 -yz-1 -1z-1 -2r$N)rSz-1 ar!z-1az-1-2-2r#r)r#rrrRrRsQ2t%01AH RD\  s   IrrRc |\rSrSrSr\"S5/r/SQrS\"SS94S\"S S94S \"S S94S \"S S94S \"S S94/r Sr g)TestOptionalsDoubleDashiz1Test an Optional with a double-dash option stringr")r"rAr>r!z--foo -xz --foo --barr$Nr=z--foo ar!z--foo=az --foo -2.5z-2.5z --foo=-2.5r#r)r#rrrXrXsY;w<.FH RD\ B3K B3K rf~& rf~& IrrXc \rSrSrSr\"SSS9\"S5/r/SQrS\"S S S 94S \"S S S 94S\"SS S 94S\"SS S 94S\"SS S 94S\"SS S 94/r Sr g )#TestOptionalsDoubleDashPartialMatchiz7Tests partial matching with a double-dash option string--badgerr,r-z--bat)--bar--b--ba--b=2z--ba=4 --badge 5r$FN)badgerbatz--bat XX--badT--badg--badger#r)r#rrrZrZsA J|, G HH Ru$ '( Be-. "Dd+, 2Tt,- Bd-. Rt./ IrrZc \rSrSrSr\"SSS9\"S5/r/SQrS\"S S S 94S \"S S S 94S\"S S S 94S\"SS S 94S\"SS S 94S\"SS S 94S\"SS S 94/r Sr g )"TestOptionalsDoubleDashPrefixMatchiz?Tests when one double-dash option string is a prefix of anotherr[r,r-r^)r\r]r^r_r`r$FN)rabaz--ba Xrcz--ba=XrdTrerfr#r)r#rrrhrhsI J|, F >H Ru &' 2Us+, 2Us+, "DT*+ 2Td+, Bdt,- Rt-.Irrhc \rSrSrSr\"SSS9\"S5\"SSS S 9/r/S QrS \"S SSS94S\"SSSS94S\"S SSS94S\"SSSS94S\"SSS S94S\"SSS S94/r Sr g)TestOptionalsSingleDoubleDashiz D& G  F=3 qH R%Tt ,- rDd-. 23D12 rDct45 "t2./ 2$B/0 Irrtc \rSrSrSr\"SSS9r\"SSS9\"S 5\"S S S S 9/r/SQrS\ "SSSS94S\ "SSSS94S\ "SSSS94S\ "SSSS94S\ "SSS S94S\ "SSS S94/r Sr g)*TestOptionalsAlternatePrefixCharsAddedHelpizWhen ``-`` not in prefix_chars, default operators created for help should use the prefix_chars in use rather than - or -- http://bugs.python.org/issue9444ruTrvryr,r-rzr{r/r0r1)r\rmrnrorAr|rlr$FNrpr~rorrrr#rr#rrrrs+= D& G  F=3 HH R%Tt ,- rDd-. 23D12 rDct45 "t2./ 2$B/0 Irrc \rSrSrSr\"SSS9r\"SSS9\"S SS9\"S SS9/r/S QrS \ "SSSS 94S\ "SSSS 94S\ "SSSS 94S\ "SSSS 94/r Sr g)2TestOptionalsAlternatePrefixCharsMultipleShortArgsiz@Verify that Optionals must be called with their defined prefixesz+-Frvr r,r-z+yz+z)-wz-xyzz+xr8z+xyzr$r%yr5Tz+y -xz+yz -xr#Nrr#rrrrsJu= D& D& D& H R%5E *+ rDEU+, "ttu-. 2-. Irrc \rSrSrSr\"SSSSSS9/r/S QrS \"S S 94S\"S S 94S\"S S 94S\"S S 94S\"S S 94/r Sr g)TestOptionalsShortLongi)zH R$Z R/*+Irrc\rSrSrSr\"SSS9\"SSSS9\"S SS S 9\"S S\S SS9/rS/rS\ "SSS SS94S\ "SSS SS94S\ "SSS SS94S\ "SSS SS94S\ "SSS SS94S \ "SSSSS94S\ "SSSSS94S \ "SSS SS94S\ "SSS SS94/ r Sr g)TestOptionalsNargsOptionalisz0Tests specifying an Optional arg for an Optionalr?rr r0)rr2r8spamrrr34284)rrr2r2r$NTrxr%rr5z-w 2z-x 2z-y 2z-z 2r# r&r'r(r)r*rintrr rrr+r#rrrrss: D D2& DV, D#T4@  uH R$$&B /0 rDDFb12 cTVr23 rDB&B/0 dcVr23 rDDDB/0 ddcR01 rDDFb12 ddf23 Irrc \rSrSrSr\"SSS9\"SSSS9/rS /rS \"S SS 94S\"/SS 94S \"S /SS 94S\"S S/SS 94S\"S /S 94S\"S S /S 94S\"S S S/S 94/r Sr g )TestOptionalsNargsZeroOrMorei?Tests specifying args for an Optional that accepts zero or morer *rr8rrr!r$Nrr&rr-y a-y a br#r)r#rrrrsI D DV,uH R$& !" rB&!" sev&' 2c f-. rDB dse$% 2c +,Irrc \rSrSrSr\"SSS9\"SSSS9/r/S QrS \"S SS 94S \"S/SS 94S\"SS/SS 94S\"S S/S 94S\"S SS/S 94/r Sr g )TestOptionalsNargsOneOrMoreiz>Tests specifying args for an Optional that accepts one or morer +rr8rr)r!r r8rza -y br$Nrr&r!rrrrr#r)r#rrrrsH D DV,3H R$& !" sev&' 2c f-. dse$% 2c +, Irrc \rSrSrSr\"SSS9\"S\\"S5S9/r/S Qr S \ "S S S 94S \ "SS S 94S\ "SS S 94S\ "S SS 94S\ "S SS 94S\ "SSS 94/r Sr g )TestOptionalsChoicesiz,Tests specifying the choices for an OptionalrAabcchoicesz-grr)r!z-f dz-f abz-fadz-gaz-g 6r$N)rFrr>r!z-f crz-g 0rz-g 03rz-fb -g4rr# r&r'r(r)r*rrrangerr rrr+r#rrrrs6 D%  DsE!H-/=H R$$  cT"# cT"# da! "tq/" BN# IrrcR\rSrSrSr\"S\SS9/rSS/rS\ "S S 94S \ "S S 94/r S r g)TestOptionalsRequirediz)Tests an optional action that is requiredr Trrequiredr!r$-x 1rr$z-x42r0r#Nrr#rrrrsE3 DsT*RyH a bIrrcP\rSrSrSr\"SSS9/rSS/rS\"S S 94S \"S S 94/r S r g )TestOptionalsActionStoreiz&Tests the store action for an Optionalr storer-r!rr$Nr$z-xfoor3r#r)r#rrrrs=0tG45V}H R$Z "u+IrrcP\rSrSrSr\"SS\S9/rS/rS\ "SS 94S\ "\S 94/r S r g) TestOptionalsActionStoreConstiz,Tests the store_const action for an Optionalr8r/r1r!r$Nrr#) r&r'r(r)r*rrrr rrr+r#rrrrs=6tMHIuH R$Z rF|IrrcP\rSrSrSr\"SSS9/r/SQrS\"SS 94S\"S S 94/r S r g ) TestOptionalsActionStoreFalseiz,Tests the store_false action for an Optionalr3 store_falser-)r!r6r7r$T)r5Fr#Nr)r#rrrrs96tM:;#H R$Z rE{IrrcP\rSrSrSr\"SSS9/r/SQrS\"SS 94S\"S S 94/r S r g ) TestOptionalsActionStoreTrueiz+Tests the store_true action for an Optionalz--appler,r-)r!z --apple=bz --apple br$F)appleTr#Nr)r#rrrrs95y>?.H Re_ BTN#Irrc \rSrSrSr\"S\RS9/rSS/r S\ "SS 94S\ "S S 94S \ "S S 94S \ "S S 94S\ "S S 94/r Sr Sr Srg)TestBooleanOptionalActionizTests BooleanOptionalActionr"r- --foo bar --foo=barr$Nr=T--no-fooFz--foo --no-fooz--no-foo --fooc[R"5nUR[5nUR SS[R S9 SSS5 UR S[WR55 g!,(df  N4=f)Nr"Tr2r.z*got an unexpected keyword argument 'const') r6r7r rrBooleanOptionalActionassertInr exceptionrr=cms r test_const$TestBooleanOptionalAction.test_constsc((*   y )R   tH# G G  F F*- F;> G  G G.r#)r&r'r(r)r*rr6rrr rrrrr+r#rrrrss%wx/M/MNO[)H RD\ ", RE]# 2%=) 2$<( IW)rrcd\rSrSrSr\"SS\RS9/rS/r S\ "SS94S\ "S S94/r S r g ) !TestBooleanOptionalActionRequiredi7z$Tests BooleanOptionalAction requiredr"T)rr.r$r=rFr#N) r&r'r(r)r*rr6rrr rrr+r#rrrr7sI. Gd8+I+IJtH ", RE]#Irrcd\rSrSrSr\"SSS9/r/SQrS\"SS 94S \"S /S 94S \"S S /S 94/r Sr g)TestOptionalsActionAppendiC'Tests the append action for an Optionalrappendr-r!ra --baz --baz a br$Nrr--baz ar!--baz a --baz brr#r)r#rrrrCsL1wx895H RD\ BC5M" BC:./Irrcl\rSrSrSr\"SSS/S9/r/SQrS\"S/S 94S \"SS /S 94S \"/S QS 94/r Sr g)$TestOptionalsActionAppendWithDefaultiOrrrrcr.rrr$rrr!r)rcr!rr#Nr)r#rrrrOsQ1wx#GH5H RSE] BC:&' B?34Irrc \rSrSrSr\"SSS9\"SSS9\"SSS9\"S SS9/r/S QrS \"S S S S S 94S\"S /S S S S 94S\"S S /S S S 94S\"S S S S S 94S \"S S S S S 94/r Sr g )!TestConstActionsMissingConstKwargi[z=Tests that const gets default value of None when not providedrA append_constr-r"rr/r\)z-f vrrr$N)rFr3rrqr#r)r#rrr r [sG D( GN+ D' GM*  2H R$DDd 34 rTF$78 "t$4T:; rDdd56 "t489 Irr c x\rSrSrSr\"SS\S9\"SSSS 9/r/S QrS \ "S S 94S\ "\/S 94S\ "\S\S/S 94/r Sr g )TestOptionalsActionAppendConstin-Tests the append_const action for an Optionalrr r1rrrr.rUr!rza -cz-bxz-b xr$Nr-b -cx -b -cyzr%yzr# r&r'r(r)r*rrrr rrr+r#rrr r nsf7 Dy9 D,2H R$Z rYK ! 2CD ABCIrr c \rSrSrSr\"SS\S/S9\"SSS S 9/r/S QrS \ "S/S 94S\ "S\/S 94S\ "S\S\S/S 94/r Sr g))TestOptionalsActionAppendConstWithDefaulti}rrr rc)r.r2rrrrrrr$rrr%rr#Nrr#rrrr}sq7 Dy3%H D,2H R3%[ rS)$%& 2ii FGHIrrcP\rSrSrSr\"SSS9/r/SQrS\"SS 94S\"S S 94/r S r g) TestOptionalsActionCountiz&Tests the count action for an Optionalr countr-)r!r&z-x bz -x a -x br$Nr$rr#r)r#rrrrs80tG451H R$Z rAwIrrc \rSrSrSr\"S5\"S5\"SSS9/rSS /rS \"S S S S 94S\"SS S S 94S\"SS S S 94S\"S SS S 94S\"S SS S 94S\"SS SS 94/r Sr g )"TestOptionalsAllowLongAbbreviationiz2Allow long options to be abbreviated unambiguouslyr"--foobaz--foobler,r-z--foob 5--foobr$NF)r3foobazfooblez--foo 77z--foo=7z --fooba ar!z --fooba=az--foobl --foo grTr#r)r#rrrrs< G  J J|, H%H RDe 45 B3tE:; B3tE:; bT#e<= bT#e<= B3tDAB Irrc \rSrSrSr\"SS9r\"S5\"SSS9\"S 5/r/S QrS \ "S SS S 94S\ "SSS S 94S\ "SSSS 94/r Sr g )%TestOptionalsDisallowLongAbbreviationi1Do not allow abbreviations of long options at allF allow_abbrevr"--foodler,r---foonly)-foon 3z--foon 3--foodz--food --foo 2r$Nr3foodlefoonlyz--foo 33z--foonly 7 --foodle --foo 2rTr!r#rr#rrr#r#sr;. G  J|, J CH RDt 45 B3uT:; &s4(LMIrr#c \rSrSrSr\"SSS9r\"S5\"SSS 9\"S 5/r/S QrS \ "S SS S94S\ "SSS S94S\ "SSSS94/r Sr g )0TestOptionalsDisallowLongAbbreviationPrefixCharsizBDisallowing abbreviations works with alternative prefix charactersrFrwr&z++fooz++foodler,r-z++foonly)z+foon 3z++foon 3z++foodz++food ++foo 2r$Nr+z++foo 3r.z++foonly 7 ++foodle ++foo 2rTr!r#rr#rrr0r0stL%@ G  J|, J CH RDt 45 B3uT:; &s4(LMIrr0c \rSrSrSr\"SS9r\"S5\"SSS9\"S 5/r/S QrS \ "S SS S 94S\ "SSS S 94S\ "SSSS 94/r Sr g )/TestOptionalsDisallowSingleDashLongAbbreviationir$Fr%r;z-foodler,r-z-foonly)r)z-foodz -food -foo 2r$Nr+z-foo 3r.z-foonly 7 -foodle -foo 2rTr!r#rr#rrr3r3sq;. F  Il+ I 4H RDt 45 2#eD9: #RCS%IJIrr3c \rSrSrSr\"SS9r\"S5\"SSS9/rSS /rS \ "S S S 94S \ "SS S 94S\ "SS S 94S\ "S SS 94S\ "SSS 94S\ "SSS 94/r Sr g )/TestDisallowLongAbbreviationAllowsShortGroupingir$Fr%z-rrrr-z-c -rr$Nrrz-rar!z-rccccz-ccrz-cc -raz-ccrccr#rr#rrr5r5s;. D  D!gH R$$  SD!" dd#$ TQ BN# 2?# Irr5c \rSrSrSr\"SSS9r\"S5\"SSS 9/rSS /rS \ "S S S 94S\ "SS S 94S\ "SS S 94S\ "S SS 94S\ "SSS 94S\ "SSS 94/r Sr g )5TestDisallowLongAbbreviationAllowsShortGroupingPrefixizEShort option grouping works with custom prefix and allow_abbrev=FalserFr1z+rz+crr-z+c +rr$Nr6z+rar!z+rccr8z+ccrz+cc +raz+ccrccr#rr#rrr:r:sO%@ D  D!gH R$$  SD!" dd#$ TQ BN# 2?# Irr:c<\rSrSr"SS\5rSrSrSrSr g) TestStrEnumChoicesic \rSrSrSrSrSrSrg)TestStrEnumChoices.Coloriredgreenbluer#N)r&r'r(r)REDGREENBLUEr+r#rrColorr>srrEc[R"5nURSURS9 UR SS/5nUR UR URR5 g)N--colorrr?)r6r7rrErGrcolorrBrr=rs rtest_parse_enum_value(TestStrEnumChoices.test_parse_enum_value sX((*Itzz:  )U!34 TZZ^^4rc[R"5nURSURSS9 UR SUR 55 UR SUR 55 g)NrGzChoose a colorrhelpz[--color {red,green,blue}]z --color {red,green,blue})r6r7rrEr format_usage format_helpr<s r'test_help_message_contains_enum_choices:TestStrEnumChoices.test_help_message_contains_enum_choicessZ((*Itzz@PQ 2F4G4G4IJ 2F4F4F4HIrc[R"SS9nURSURS9 UR [R SUR SS/5 g)NF exit_on_errorrGrz9invalid choice: 'yellow' \(choose from red, green, blue\)yellow)r6r7rrEassertRaisesRegex ArgumentErrorrGr<s r$test_invalid_enum_value_raises_error7TestStrEnumChoices.test_invalid_enum_value_raises_errorsT((u=Itzz:   " " H     !  rr#N) r&r'r(r)rrErJrQrYr+r#rrr<r<s 5 J  rr<cD\rSrSrSr\"S5/r/SQrS\"SS94/r Sr g) TestPositionalsNargsNonei#z,Test a Positional that doesn't specify nargsr3r$r a br!r=r#Nr)r#rrr\r\#s)6u:, H bSkIrr\cD\rSrSrSr\"SSS9/r/SQrS\"S/S94/r S r g ) TestPositionalsNargs1i-z.Test a Positional that specifies an nargs of 1r3rrr]r!r=r#Nr)r#rrr`r`-s/8uA./ H bcUmIrr`cF\rSrSrSr\"SSS9/r/SQrS\"SS /S 94/r S r g ) TestPositionalsNargs2i7z.Test a Positional that specifies an nargs of 2r3rr)r$r!r a b cr^r!rr=r#Nr)r#rrrbrb7s28uA./'H Sz"#Irrbcb\rSrSrSr\"SSS9/rS/rS\"/S94S \"S /S94S \"S S /S94/r S r g )TestPositionalsNargsZeroOrMoreiAz0Test a Positional that specifies unlimited nargsr3rrr r$r=r!r^rr#Nr)r#rrrereAsN:uC01vH RBZ bcUm Sz"#Irrecd\rSrSrSr\"SSSS9/rS/rS\"SS 94S \"S /S 94S \"S S /S 94/r S r g)%TestPositionalsNargsZeroOrMoreDefaultiMz>Test a Positional that specifies unlimited nargs and a defaultr3rrqrr r$r=r!r^rr#Nr)r#rrrgrgMsPHuC?@vH RE] bcUm Sz"#IrrgcV\rSrSrSr\"SSS9/rSS/rS\"S/S 94S \"SS /S 94/r S r g )TestPositionalsNargsOneOrMoreiYz2Test a Positional that specifies one or more nargsr3rrr$r r!r=r^rr#Nr)r#rrririYsD<uC01DzH bcUm Sz"#IrricP\rSrSrSr\"SSS9/rSS/rS\"S S 94S \"S S 94/r S r g ) TestPositionalsNargsOptionalidzTests an Optional Positionalr3rrr r^r$Nr=r!r#r)r#rrrkrkds=&uC01e}H RD\ bSkIrrkcR\rSrSrSr\"SSSS9/rSS/rS \"SS 94S \"S S 94/r S r g )#TestPositionalsNargsOptionalDefaultioz1Tests an Optional Positional with a default valuer3rr0rr r^r$r=r!r#Nr)r#rrrmrmos?;uC<=e}H RBZ bSkIrrmcT\rSrSrSr\"SS\SS9/r/SQrS\ "S S 94S \ "S S 94/r S r g),TestPositionalsNargsOptionalConvertedDefaultizzfTests an Optional Positional with a default value that needs to be converted to the appropriate type. r3rrrrr)r r^1 2r$r0r=1rr#Nrr#rrrorozsE E35$H RBZ bQiIrrocT\rSrSrSr\"S5\"S5/r/SQrS\"SSS 94/r S r g ) TestPositionalsNargsNoneNoneiz-Test two Positionals that don't specify nargsr3rq)r$r r!rcr^r!rr3rqr#Nr)r#rrrtrts37u:s5z2'H s$%IrrtcT\rSrSrSr\"S5\"SSS9/r/SQrS\"S S /S 94/r S r g )TestPositionalsNargsNone1iz6Test a Positional with no nargs followed by one with 1r3rqrr)r$r"r!rcr^r!rrur#Nr)r#rrrwrws8@u:s5':;*H s&'IrrwcV\rSrSrSr\"SSS9\"S5/r/SQrS\"S S /S S 94/r S r g)TestPositionalsNargs2Noneiz8Test a Positional with 2 nargs followed by one with noner3rrrqr$r"r!r^a b c drcr!rrrur#Nr)r#rrryrys:BuA.E ;3H "#s-.Irryc.\rSrSrSr\"S5\"S5\"SSS9/r/SQrS \"S S /S 94S \"S S S /S 94S\"S S S S/S 94S\"SS /S 94S\"SS /S 94S\"SS S /S 94S\"SS S /S 94S\"SS S /S 94S\"SS S S/S 94S\"SS S S/S 94S\"SS S S/S 94/ r Sr g )"TestPositionalsNargsNoneZeroOrMoreiz>Test a Positional with no nargs followed by one with unlimitedr r3rqrr)r$r" a b -x X cr!Nr%r3rqr^rrcr-x X arca -x X-x X a ba -x X ba b -x X -x X a b c a -x X b c a b c -x Xr#r)r#rrr}r}sHt9c%j#e32GH*H b4Sb)* Ts./ "t3*56 2"-. 2"-. R#3SE23 R#3SE23 R#3SE23 rCSsCj9: rCSsCj9: rCSsCj9: Irr}c\rSrSrSr\"S5\"S5\"SSS9/r/SQrS \"S S S /S 94S\"S S S S/S 94S\"SS S /S 94S\"SS S /S 94S\"SS S /S 94S\"SS S S/S 94S\"SS S S/S 94S\"SS S S/S 94/r Sr g )!TestPositionalsNargsNoneOneOrMoreiz@Test a Positional with no nargs followed by one with one or morer r3rqrrr$r"r!r~r^Nr!rrrcrrrcrrrrrr#r)r#rrrrsJt9c%j#e32GH/H Ts./ "t3*56 R#3SE23 R#3SE23 R#3SE23 rCSsCj9: rCSsCj9: rCSsCj9: Irrc \rSrSrSr\"S5\"S5\"SSS9/r/SQrS \"S S S S 94S \"S S S S 94S\"SS S S 94S\"SS S S 94S\"SS S S 94S\"SS S S 94S\"SS S S 94/r Sr g ) TestPositionalsNargsNoneOptionaliz@Test a Positional with no nargs followed by one with an Optionalr r3rqrrr$r"rcr!Nrr^rrrcrrrrr#r)r#rrrrsJt9c%j#e32GH%H b4Sd+, Ts,- 2$/0 2$/0 R#3C01 R#3C01 R#3C01Irrc\rSrSrSr\"S5\"SSS9\"S5/r/SQrS \"S /S S 94S \"S S /S S 94S\"S S S /SS 94S\"S/S S 94S\"S/S S 94S\"SS /S S 94S\"SS /S S 94S\"SS S /SS 94S\"SS S /SS 94/ r Sr g )"TestPositionalsNargsZeroOrMoreNoneiz@Test a Positional with unlimited nargs followed by one with noner r3rrrq)r$r"rrr~r!Nrr^rrcrrrcrrrrrr#r)r#rrrrsJt9c%s&;SZHDH b4RS)* Tu#./ "t#s56 2-. 2-. R#C5c23 R#C5c23 rCc3ZS9: rCc3ZS9: Irrc \rSrSrSr\"S5\"SSS9\"S5/r/SQrS \"S S /S S 94S\"S S S /SS 94S\"SS /S S 94S\"SS /S S 94S\"SS /S S 94S\"SS S /SS 94S\"SS S /SS 94/r Sr g )!TestPositionalsNargsOneOrMoreNoneizBTest a Positional with one or more nargs followed by one with noner r3rrrq)r$r"r!rr~r^Nr!rrrcrrrcrrrrr#r)r#rrrrsLt9c%s&;SZH=H Tu#./ "t#s56 R#C5c23 R#C5c23 R#C5c23 rCc3ZS9: rCc3ZS9:Irrcd\rSrSrSr\"SSSS9\"S5/r/SQrS \"SS S 94S \"S S S 94/r S r g) TestPositionalsNargsOptionalNoneizBTest a Positional with an Optional nargs followed by one with noner3rr0rrqrr!rur^rr#Nr)r#rrrrsGLuC R#3Eu=> R#3Eu=> rCScu=> rCScu=> rCScu=> Irrcr\rSrSrSr\"SSS9\"SSSS9/rS S /rS \"S SS 94S\"SSS 94S\"SSS 94/r Sr g )$TestPositionalsNargsOptionalOptionalizTest two optional nargsr3rrrqr0rr"rcr$Nrur!r^rr#r)r#rrrrse! E Eb)!H RDb !" bSb!" s$%Irrc \rSrSrSr\"SSS9\"SSS9/rS/rS \"S /S 94S \"S /S 94S \"S S/S 94S\"S SS/S 94/r Sr g )&TestPositionalsNargsOptionalZeroOrMoreiz1Test an Optional narg followed by unlimited nargsr3rrrqrr"r$Nrur!r^rrcrr#r)r#rrrrsn;uC0#e32GHyH RDb !" bSb!" s&' "3*-. Irrcx\rSrSrSr\"SSS9\"SSS9/rSS /rS \"S S /S 94S \"S S/S 94S\"S SS/S 94/r Sr g )%TestPositionalsNargsOptionalOneOrMoreiz3Test an Optional narg followed by one or more nargsr3rrrqrr$r"r!Nrur^rrcrr#r)r#rrrrsc=uC0#e32GHG}H bTu%& s&' "3*-.Irrc\\rSrSrSr\"S\"S5S9/r/SQrS\ "SS94S \ "S S94/r S r g ) TestPositionalsChoicesStringiz&Test a set of single-character choicesrabcdefgrr$r"rrefr!rrr#N) r&r'r(r)r*rsetrr rrr+r#rrrrs=0vs9~>?-H bcl bclIrrc^\rSrSrSr\"S\\"S5S9/r/SQr S\ "SS 94S \ "S S 94/r S r g )TestPositionalsChoicesIntizTest a set of integer choicesrrr4rr15r#Nrr#rrrrs?'vCrCD-H baj rr{IrrcX\rSrSrSr\"SSS9\"SSSS9/r/SQrS \"S S S //S 94/r Sr g)TestPositionalsActionAppendizTest the 'append' actionrrr-rr.rrzrcr!rrrr#Nr)r#rrrrsI" F8$ F81-4H "3c +,-IrrcT\rSrSrSr\"SSS9\"SSSS9/r/SQrS \"/S QS 94/r S r g )TestPositionalsActionExtendizTest the 'extend' actionrextendr-rrrzrcrrr#Nr)r#rrrrs@" F8$ F81-4H "/*+Irrc \rSrSrSr\"SSS9\"SSSS 9/rS S /rS \"S SS94S\"SSS94S\"S SS94S\"SSS94/r Sr g )"TestOptionalsNumericAndPositionalsiz;Tests negative number args when numeric options are presentr%rrz-4rr,rUr.rVz-315r$NFrr!Tz-4 ar#r)r#rrrrssE Cs Ds<0f~H R$% ! b3% ! rDD!" cT"# Irrc \rSrSrSr\"SSS9\"SSSS 9/rS /rS \"S S S94S\"SS S94S\"SS S94S\"S SS94S\"SSS94/r Sr g )(TestOptionalsAlmostNumericAndPositionalsizBTests negative number args when almost numeric options are presentr%rrz-k4rr,rz-k3r$NFrrVr!Tz-k4 ar#r)r#rrrrsL Cs EL1wH R$% ! rDE"# b3% ! TT"# "sd#$ Irrc~\rSrSr\"SSSS9\"S5/rS/rS\"S S //S S 94S \"S //S S 94S\"S S //SS 94/rSr g )!TestOptionalsAndPositionalsAppendi r3rrrr.r\r;r^r!rNru --bar a b a b --bar crr# r&r'r(r)rrr rrr+r#rrrr sj EX. G xH c |./ bseW#./ c |56Irrcx\rSrSr\"SSSS9\"S5/rS/rS\"S S /S S 94S \"S /S S 94S\"S S /SS 94/rSr g )!TestOptionalsAndPositionalsExtendir3rrrr\r;r^r!rNrurrrr#rr#rrrrsd EX. G xH Szt,- bcU,- Szs34Irrc \rSrSr\"SSS9\"SSSS9/rS/rS /\"S S S 94S /\"S S S 94S /\"S S S 94SS /\"S S S 94SS /\"S S S 94SS /\"S S S 94S/\"S S S 94S/\"S S S 94/rSr g )$TestEmptyAndSpaceContainingArgumentsi$r%rrr8z--yyyrrTr$Nrza badgerz -a badgerz--yyy=a badgerz--yyy=-a badgerr#rr#rrrr$s Cs D'$vH rB$ rJ$/0 [D12 R$"%&  R$*56  b4;78  R$*56  b4;78 Irrc \rSrSr\"SS9r\"SSSSS9\"S S \S S 9\"S SSS9/rSS/rS\ "SS SS94S\ "SS SS94S\ "SS SS94S\ "SSSS94S \ "SS SS94S\ "SS SS94/r Sr g) TestPrefixCharacterOnlyArgumentsi7z-+rw-r%rra)rUrr2rrr0)rUrrz-+-r5r,rr8z+ -r$NFrz- Xrcz+ -3Tz- ===z===r#) r&r'r(r)rrrrr rrr+r#rrrr7s- CcH5 CcR0 EL1 e}H R$" &' b8rU+, SB%() dbE*+ TR4() "ue,- Irrc \rSrSrSr\"SSS9\"SSS9/r/rS\"S/S 94S\"//S 94S \"S //S 94S \"S /S /S 94S \"SS /S 94S\"/S /S 94S\"S /S /S 94/r Sr g)TestNargsZeroOrMoreiJrr rrrr$Nrr&r!z -x a -- brrrr#r)r#rrrrJsIt3/S1DEH R$"  rB"~ ser"# bC5SE*+ b4C5!" bSE"# 2#'(Irrc \rSrSrSr\"S5\"SSS9\"S5/r/SQrS \"S /S S 94S \"S /S S 94S\"S SS/S S 94S\"S /SQS S 94S\"S /SQS S 94S\"S /SQS S 94S\"S SS/S S 94/r Sr g )TestNargsRemainderiZz2Tests specifying a positional with nargs=REMAINDERr%r...rr3)r$r3z-z ZrcNrz-z Z XZz -z Z X A BAroz X -z Z A B)r3rrroz X A -z Z B)rr3rro X A B -z Z)rror3rz X Y --fooYr"r#r)r#rrrrZs<s8SE%:CIF!H b3"%& 2rS)* rCC:56 rC#8DAB rC#8DAB rC#8DAB b33.D9:Irrc \rSrSrSr\"S\S9\"S\SS9\"SS S 9/r/S QrS \ "S S /S94S\ "SS /S94S\ "SS S/S94S\ "S S/S94S\ "S S/S94S\ "S S/S94S\ "S SS/S94S\ "S S S/S94S\ "SS S/S94S\ "SS S/S94S\ "S SS/S94/ r Sr g )TestOptionLikeijz.Tests options that may or may not be argumentsr rz-3r)rrUr5rr) r z-y2.5r'z-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 ar$Nrz-x 2.5@z-x 2.5 ar!z-3.5?z-3-.5gz-3 .5za -3.5za -x 1g?z-x 1 az-3 1 ar#) r&r'r(r)r*rfloatrr rrr+r#rrrrjs8 Du Du3' Cs 0H R$$" %& 2tr*+ R##/0 dcR() "ttr*+ "tsb)* 2u-. b44C5)* 2tu-. 2tu-. 2u-. Irrcx\rSrSrSr\"SS\\RS9\"SS\\RS9\"SS \RS 9\"S S\\RS9\"S S\\RS9/r /S Qr S\ "54S\ "SS94S\ "SS/S94S\ "SS94S\ "SSS94S\ "SS/SS94S \ "SS94S\ "SS94S \ "/S94S\ "SS/S94/ r S r g)!TestDefaultSuppressiz%Test actions with suppressed defaultsr3rrprqrrr,rz--qux--quux)r r!z1 ar$rrrr=rqrruTrz1 --bazr3rrz --baz 1 2r3rqrrN)quxz--qux 1)quuxz --quux 1 2r#)r&r'r(r)r*rrr6SUPPRESSrr rrr+r#rrrrs/ E30A0AB E30A0AB GL(2C2CD G3S(2C2CD HCc83D3DE "H RT bQi qqc"# ", B1$'( bQQCT23 ", B1I 22; r1v' Irrc \rSrSrSr\"\RS9r\"SSS9\"SSS9\"S S S 9/r S /r S \ "54S\ "SS94S\ "SS/S94S \ "SS94S\ "SSS94S\ "SS/SS94/r Sr g)TestParserDefaultSuppressiz4Test actions with a parser-level default of SUPPRESSargument_defaultr3rrrqrrr,r-r r$r!r=r^rruTrrrrrr#N)r&r'r(r)r*rr6rrrr rrr+r#rrrrs>H,=,=> E E GL) vH RT bSk s&' ", B3D)* bSse67 Irrc \rSrSrSr\"SS9r\"SSSS9\"S S S 9\"S S S 9\"SSS9/rS/rS\ "SSSSS94S\ "SSSSS94S\ "SS/SSS94S\ "SSSSS94S\ "SSSSS94S\ "SS/SSS94/r Sr g)TestParserDefault42iz.Test actions with a parser-level default of 42r0r --versionversion1.0r.rr3rrrqrrr,r-r r$)r3rqrrrr!r^rTrrr#Nrr#rrrrs8B/ K 59 E E GL)  vH RBBB 34 bSbb"56 s2r:; "r:; B3BD"=> bSserBC Irrc ^\rSrSrSrU4Sjr\"SS9r\"S5\"S5\"SS S 9/r/S Qr S \ R-r S \ "SSS/S94S\ "SSSS/S94S\ "S\ S/S94S\ "SS\ /S94S\ "S\ SS/S94S\ "SS\ S/S94/SQ\ "SSS/S94/r\ R(aL\ RR!S5r\R&"\5r\S\ "S\S/S94S\ "SS\/S94/- rS rU=r$SrS rU=r$)!TestArgumentsFromFilei"Test reading arguments from a filec >[[U] 5 S[R"UR 5S-4SSSUR S-4/nUH+up#[US5nURU5 SSS5 M- g!,(df  M?=f)Nhello ) recursives -a A @hello)invalids@no-such-path undecodablewb) rrrXrbfsencoderrr{r|r file_textsrktextrrs rrXTestArgumentsFromFile.setUps #T02 bkk$**-5 6 % , D,,u4 5  %JDdD!T 4 "!%!!s A>> B @fromfile_prefix_charsrr%rrr)r$rrcz@invalidz@missingz hello world!zX YNrcr)r!r%rz X -a A Y Zrr@hello XzX @helloz-a B @recursive Y ZzX @recursive Z -a Bro)rr$rcrr$@z@undecodable XzX @undecodablerr#)r&r'r(r)r*rXrrrr r FS_NONASCIIrrrTESTFN_UNDECODABLElstriprrbfsdecodedecoded_undecodabler+r,r-s@rrrsP, !5 D  C Cs 7H Y22 2E TSSE*+ rC33*56 R$%C512 R$#%12 SEc3Z @A SCE3< @A rB##78I##2299$?  kk+6 rD,?C5I J rDC4G3HI J   rrc|^\rSrSrSrU4Sjr"SS\5r\r\ "SS9r \ "SS S 9/r /r S \ "/S QS 94/rSrU=r$)TestArgumentsFromFileConverterirc>[[U] 5 S/nUH+up#[US5nUR U5 SSS5 M- g!,(df  M?=f)N)rs hello world! r)rrrXr{r|rs rrX$TestArgumentsFromFileConverter.setUpsP ,d9; ( %JDdD!T 4 "!%!!s A  A c\rSrSrSrSrg)>TestArgumentsFromFileConverter.FromFileConverterArgumentParseric#p# UR5HnUR5(dMUv M g7fr^)r strip)rarg_lineargs rconvert_arg_line_to_argsWTestArgumentsFromFileConverter.FromFileConverterArgumentParser.convert_arg_line_to_argss)~~'yy{{ (s46r#N)r&r'r(r)rr+r#rrFromFileConverterArgumentParserrs rrrrrrrr )rzworld!rcrr#)r&r'r(r)r*rXrrrrrrr rrr+r,r-s@rrrsX,!*D3L5 CsH R234Irrc2\rSrSrSrSrSrSrSrSr g) TestFileTypeRepricf[R"S5nURS[U55 g)Nr7z FileType('r')r6FileTyperreprrrs rtest_rTestFileTypeRepr.test_rs&  % $t*5rch[R"SS5nURS[U55 g)NrrzFileType('wb', 1)r r#s r test_wb_1TestFileTypeRepr.test_wb_1s)  q) ,d4j9rcd[R"SSS9nURS[U55 g)Nr7latin_1ryz!FileType('r', encoding='latin_1')r r#s r test_r_latinTestFileTypeRepr.test_r_latin s)  y9 [[U] 5 SHPn[[R R URU5SSS9nURU5 SSS5 MR URS5 g!,(df  Mu=f)Nrurxr ryreadonly) rrUrXr{rbrkrlrar|rr file_namerrs rrXTestFileTypeR.setUpdsp mT(*'Ibggll4==)<G-04 9%--( !!*---s A<< B r rrr7)r r$znon-existent-file.txtr3Nr%r -x foo barrq bar -x foo-x - -rXr#)r&r'r(r)r*rXrr6r!rr rrGeq_stdinrr+r,r-s@rrUrUasB. Dx((*+ F**3/03H Te -. rE%LuU|<= rE%LuU|<= 2x01 R$U:%678 IrrUc^\rSrSrSrU4Sjr\"S\R"S5SS9/r S/r S \ "\ "S 5S 94/r S rU=r$) TestFileTypeDefaultsiyz[[U] 5 [[R R URS5SSS9nURS5 UR5 g)Ngoodrxr ry) rrbrXr{rbrkrlrar|rQ)rrrs rrXTestFileTypeDefaults.setUp{sG "D/1BGGLL7wO 6 rrr7z no-file.txtrrr$z-c goodrd)rr#)r&r'r(r)r*rXrr6r!rr rrGrr+r,r-s@rrbrbysKF Dx((-}EtHR%-012Irrbc ^\rSrSrSrU4Sjr\"S\R"S5S9\"S\R"S5S9/r SS/r S \ "S \ "S 5S 94S \ "\ "S 5\ "S 5S 94S\ "\ "S 5\ "S 5S 94S\ "\ \ S 94/rSrU=r$)TestFileTypeRBirVc>[[U] 5 SHPn[[R R URU5SSS9nURU5 SSS5 MR g!,(df  Md=f)Nrurxr ry) rrhrXr{rbrkrlrar|rYs rrXTestFileTypeRB.setUps` nd)+'Ibggll4==)<G-04 9%--(--s A++ A: r rbrrr$r3Nr\r]rqr^r_r#)r&r'r(r)r*rXrr6r!rr rrG eq_bstdinrr+r,r-s@rrhrhsB& Dx((./ F**401bzH Te -. rE%LuU|<= rE%LuU|<= 2 23 Irrhc.\rSrSr\"5rSrSrSrg)WFileicXlgr^rIrJs rrWFile.__init__rLrcXR;a_SnSUR;aURS5nURU5 UR 5 URR U5 UR UR :H$)NzCheck that file is writable.rrN)rOmoderr|rQaddrtrRs rr WFile.__eq__sc  !1Dejj {{7+ KK  KKM IIMM% yyEJJ&&rrIN) r&r'r(r)rrOrrr+r#rrrnrns 5D'rrnc ,^\rSrSrSrU4Sjr\"S\R"S5S9\"S\R"S5S9/r /SQr S \ "S \ "S 5S 94S \ "S \ "S 5S 94S \ "\ "S 5\ "S5S 94S\ "\ "S 5\ "S5S 94S\ "\ \ S 94/rSrU=r$) TestFileTypeWiz8Test the FileType option/argument type for writing filescf>[TU]5 URS5 URS5 gNrXwritablerrXrrrrs rrXTestFileTypeW.setUp(   !!*- !!*-rr rxrr)r r$rXr3Nr\ryr]rqr^r_r#r&r'r(r)r*rXrr6r!rr rrn eq_stdoutrr+r,r-s@rrvrvsB. Dx((-. F**3/0&H Te -. R$U:%678 rE%LuU|<= rE%LuU|<= 2 23 Irrvc^\rSrSrSrU4Sjr\"S\R"S5S9\"S\R"S5S9/r /SQr S \ "\ "S 5\ "S 5S 94S \ "\ \ S 94/rSrU=r$) TestFileTypeXizATest the FileType option/argument type for writing new files onlycf>[TU]5 URS5 URS5 grxrzr{s rrXTestFileTypeX.setUpr}rr r%rr)r r$rXryr]r3rqr\r_r#r~r-s@rrrssK. Dx((-. F**3/02H rE%LuU|<= 2 23Irrc \rSrSrSr\"S\R"S5S9\"S\R"S5S9/rSS/r S\ "S \ "S5S 94S \ "\ "S5\ "S 5S 94S \ "\ "S5\ "S 5S 94S\ "\ \ S 94/r Srg )TestFileTypeWBiz?Test the FileType option/argument type for writing binary filesr rrrr$r3Nr\r]rqr^r_r#)r&r'r(r)r*rr6r!rr rrn eq_bstdoutrr+r#rrrrsI Dx((./ F**401bzH Te -. rE%LuU|<= rE%LuU|<= 2 45 Irrc\rSrSrSr\"S\R"S5S9\"S\R"S5S9/rS\ "\ "S5\ "S 5S 94S \ "\ \ S 94/r S r g )TestFileTypeXBizHTest the FileType option/argument type for writing new binary files onlyr xbrrr]r3rqr\r_r#N)r&r'r(r)r*rr6r!rrrnrrr+r#rrrrshN Dx((./ F**401 rE%LuU|<= 2 45Irrc$\rSrSrSrSrSrSrg)TestFileTypeOpenArgsiz0Test that open (the builtin) is correctly calledc 2[RnU"S5S4U"SS5S4U"SSS9S4U"S S S 9S 4U"SS SS5S4/n[R"S5nUH upEU"S5 UR"S/UQ76 M" SSS5 g!,(df  g=f)Nrk)rkNNrxr)rxrNNr4r5)rxrNr4rr.ry)rrr.Nrl1strict)rxrrrz builtins.openr3)r6r!rr:assert_called_with)rFTcasesmrrs rtest_open_args#TestFileTypeOpenArgs.test_open_argss    X- . QZ- . I &(B C v &(@ A Qh ')A B  ZZ (A# U $$U2T2$) ( (s 'B BcUR[5 [R"S5"S5 SSS5 g!,(df  g=f)Nrz-test)r  ValueErrorr6r!r!s rtest_invalid_file_type+TestFileTypeOpenArgs.test_invalid_file_type s/   z *   c "7 ++ * *s < A r#N)r&r'r(r)r*rrr+r#rrrrs: 3,rrc\rSrSrSrSrSrg)!TestFileTypeMissingInitializationizl Test that add_argument throws an error if FileType class object was passed instead of instance of FileType c6[R"5nUR[5nUR S[R S9 SSS5 UR [R <S3[WR55 g!,(df  NF=f)Nr rz: is a FileType class object, instance of it must be passed) r6r7r rrr!rrrrs rtest&TestFileTypeMissingInitialization.testsq((*   z *b   8+<+<  =+    #   + *s B  Br#Nr&r'r(r)r*rr+r#rrrrs   rrcp\rSrSrSr\"S\S9\"S\S9/r/SQr S\ "SS S 94S \ "S S S 94S\ "SSS 94/r Sr g)TestTypeCallablei$z,Test some callables as option/argument types--eggsrr)r!42jz--eggs az --eggs 2iz --eggs=42 42r0gE@)eggsrz--eggs 2j -- -1.5y@z1024.675Ng3333@r#) r&r'r(r)r*rcomplexrrr rrr+r#rrrr$s^6 H7# F5H $/0 bbt45 RT12Irrc\rSrSrSr"SS\5r\"S\S9\"S\S9/r/r S\ "\"S 5\"S 5S 94S \ "\"S 5\"S5S 94/r Sr g)TestTypeUserDefinedi3z(Test a user-defined option/argument typec \rSrSrSrSrSrg)TestTypeUserDefined.MyTypei6cXlgr^valuerrs rr#TestTypeUserDefined.MyType.__init__8Jrc`[U5UR4[U5UR4:H$r^rrrs rr!TestTypeUserDefined.MyType.__eq__;'J +U U[[/II IrrNrDr#rrMyTyper6   Jrrr rrrrr!r\-xf grFrr#N) r&r'r(r)r*rOrrrr rrr+r#rrrr3sm2JJ Dv F H 2s &+67 "vc{56Irrc\rSrSrSr"SS5r\"S\S9\"S\S9/r/rS\ "\"S 5\"S 5S 94S \ "\"S 5\"S5S 94/r Sr g)TestTypeClassicClassiIzTest a classic class typec \rSrSrSrSrSrg)TestTypeClassicClass.CiLcXlgr^rrs rrTestTypeClassicClass.C.__init__Nrrc`[U5UR4[U5UR4:H$r^rrs rrTestTypeClassicClass.C.__eq__QrrrNrDr#rrCrLrrrr rrrrr!r\rrFrr#N) r&r'r(r)r*rrrr rrr+r#rrrrIsk#JJ Dq FH 2#QsV,- "qvAcF+,Irrc\rSrSrSrSrSrg)TestTypeRegistrationi_z*Test a user-defined type by registering itcvSn[R"5nURSSU5 URSSS9 URSSS9 UR UR SR 55[SSS 95 UR UR S R 55[SS S 95 g) Nc SU-$)Nz my_type{%s}r#strings r get_my_type.TestTypeRegistration.test..get_my_typeds  6) )rrmy_typer rrrrz my_type{1}rz-x 1 42z my_type{42})r6r7registerrrrGr r)rrr=s rrTestTypeRegistration.testbs *((* ;7Dy1Ci0 **399;7dl3 5 **9??+<=lm< >rr#Nrr#rrrr_s 4 >rrc \rSrSrSr"SS\R 5r"SS\R 5r\ "SS\\ S S 9\ "S \\ S S S9/r /r S\"SS S94S\"S SS94S\"SSS94S\"SSS94/rSrg)TestActionUserDefinedivz*Test a user-defined option/argument actionc\rSrSrSSjrSrg)$TestActionUserDefined.OptionalActioniyNcXURS:XdSUR-5eUS:Xd SU-5e[SS9nUS;aSUlOUS ;aS UlO[S U-5eXR:XdS U<S U<35e[ USU5 g![an[ SU-5eSnAff=f)Nrdest: %s-szflag: %s?r)?rr)@r value: %s expected , got zopt_action failed: %s)rUrraAssertionErrorrrrr= namespacer option_stringrrs r__call__-TestActionUserDefined.OptionalAction.__call__{s GyyF*BJ,BB*$,Hj=.HH,!dm N*)*K&e^)+K&(u)<=="/L3> 3KL/ Ivu -" G)*AA*EFF GsA;B B)B$$B)r#r^r&r'r(r)rr+r#rrOptionalActionrys .rrc\rSrSrSSjrSrg)&TestActionUserDefined.PositionalActioniNcnUb SU-5eURS:XdSUR-5e[SS9nUS;aSUlO*US;aS UlOUS ;aS UlO[S U-5eXR:XdS U<SU<35e[ USU5 g![an[ SU-5eSnAff=f)Nzoption_string: %srarrra)r0rr)rr)rrrrrzarg_action failed: %s)rUrrrrrrs rr/TestActionUserDefined.PositionalAction.__call__s G$,>/B/<0=>,yyH,Dj499.DD,!l H$'+K$c\',K$c\',K$(u)<=="/L3> 3KL/ Ix /" G)*AA*EFF GsBB B4!B//B4r#r^rr#rrPositionalActionrs 0rrrrr)rUr.rrrarr)r.rrrz-s0.125r)rrarr0z -s 0.625 1rrz84 -s2rrr#N)r&r'r(r)r*r6Actionrrrrrrr rrr+r#rrrrvs4..,08??04 Dvn & H-C , H BE!,- rtB'( ruQ/0 23r*+ IrrcH\rSrSrSr"SS\R 5rSrSr g)TestActionRegistrationiz5Test a user-defined action supplied by registering itc\rSrSrSSjrSrg)TestActionRegistration.MyActioniNc6[X RSU-5 g)Nzfoo[%s])rrU)rr=rvaluesrs rr(TestActionRegistration.MyAction.__call__s Iyy)f*< =rr#r^rr#rrMyActionrs >rrc,[R"5nURSSUR5 UR SSS9 UR UR S/5[SS95 UR UR S/5[S S95 g) Nr. my_actionrar-rrzfoo[1]rrzfoo[42])r6r7rrrrrGrr<s rrTestActionRegistration.tests{((*+t}}=H[9 **C512X3FG **D62Bi4HIrr#N) r&r'r(r)r*r6rrrr+r#rrrrs?>8??> JrrcB\rSrSr\"SSS\S9/rSrS\"/SQS 94/r Sr g ) TestActionExtendir"rr)r.rrr#z--foo f1 --foo f2 f3 f4)f1f2f3f4r=N) r&r'r(r)rrrr rrr+r#rrrrs4 GHCc:H "B+C$DEIrrcN\rSrSrSr"SS\R 5rSrSr Sr g) TestInvalidActioniz Test invalid user defined Actionc\rSrSrSrg)#TestInvalidAction.ActionWithoutCallir#Nr&r'r(r)r+r#rrActionWithoutCallrs rrc[R"5nURSURS9 UR [ UR SS/5 g)Nr"r-rq)r6r7rrr NotImplementedErrorrGr<s rtest_invalid_type#TestInvalidAction.test_invalid_typesG((*GD,B,BC -v/@/@7EBRSrc[5nURS5nSUlUR[UR SS/5 g)Nr"rrq)rrrr rrGrr=r.s rtest_modified_invalid_action.TestInvalidAction.test_modified_invalid_actions?+-$$W-  -v/@/@7EBRSrr#N) r&r'r(r)r*r6rrrrr+r#rrrrs!* HOO T Trrc^\rSrSrSrSrS"SjrU4SjrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#U=r$$)#TestAddSubparsersizTest the add_subparsers methodc8UR"[/UQ70UD6 gr^r rrs rassertArgumentParserError+TestAddSubparsers.assertArgumentParserError -???rcdU(a&[SSUS9nURUSS-S-SSS 9 O[SSS 9nURS SSS 9 URS [S S9 SS0nU(a SUS'SUS'OSUS'UR"S50UD6nUR [ R SUR5 [SS9nU(aSUS'U(aSS/US'UR"S60UD6nURS[SS9 URS /S!QS"S#9 [S$S9n U(aS%U S'UR"S70U D6n U RS&/S'QS(S#9 U RS)[S*S+S,9 [S-S9n U(aS.U S'UR"S80U D6n U RS/[S0S9 U RS1S2S3S49 U$)9NPROGmain description)prog descriptionrwrrr3r,foo helpr.rNrrr"rqbar helprrNrFCOMMANDrcommandstitle command helprNz(cannot have multiple subparser argumentsz 1 descriptionrz1 help1alias11alias2aliasesrw helpr%rx helprMz 2 descriptionz2 helpr8rrrr.y helpr5rz help)rrrNz 3 descriptionz3 helptzt helpurzu helprrNr#rr)r)r.) rrradd_subparsersrWr6rXdict add_parserrr) rsubparser_helprwrr=subparsers_kwargs subparsersparser1_kwargsparser1parser2_kwargsparser2parser3_kwargsparser3s rrTestAddSubparsers._get_parsers  /);,XF   Q!#e+Lz  S0);=F    :  ? J  0(/ +4 i ()3 g &(6 f %**?->?  x55I%44 6 /: %-N6 " )2I(>N9 %''>~>T(;S/I/: %-N6 "''>~>T?JSwcI/: %-N6 "''>~>Ss:SH= rct>[TU]5 UR5UlURSS9Ulg)NT)r,)rrXrr=command_help_parserr{s rrXTestAddSubparsers.setUp* s2  &&( #'#3#34#3#H rcSH9nUR5nURURRU5 M; g)N)r$r!za az0.5 az0.5 1z0.5 1 -yz0.5 2 -w)r r r=rG)rr rs rtest_parse_args_failures*TestAddSubparsers.test_parse_args_failures/ s41H>>#D  * *4;;+A+A4 H1rc $URURRSR55[ SSSSS95 URURRSR55[ SS S S S /S 95 URURRSR55[ SSSSS95 URURRSR55[ SSS/SQS95 g)N 0.5 1 b -w 7Frrr3rqrxr%z0.25 --foo 2 -y 2 3j -- -1jTrry@y)r3rqrr5z--foo 0.125 1 crrz-1.5 3 11 -- a --foo 7 -- br )r!r"r!--r)r3rqr%r&)rr=rGr rr!s rtest_parse_args!TestAddSubparsers.test_parse_args6 s  KK " ">#7#7#9 : 5cQ# .   KK " "#@#F#F#H I 4TSRI 6   KK " "#4#:#:#< = 4Udc 2   KK " "#@#F#F#H I 5db,J K rc URURRSR55[ SSSSS9/45 URURRSR55[ SSSSS9S/45 URURRS R55[ SSSSS9S/45 URURRS R55[ SSSSS9S S /45 URURRS R55[ SSSSS9/SQ45 g)Nr=Frr>rr?z0.5 -p 1 b -w 7-p0.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-Xrr)rr=parse_known_argsr rr!s rtest_parse_known_args'TestAddSubparsers.test_parse_known_argsI sC  KK ( ()=)=)? @ Esa3 / 4   KK ( ():)@)@)B C Esa3 /$ 8   KK ( ():)@)@)B C Esa3 /$ 8   KK ( ()>)D)D)F G Esa3 /$ ?   KK ( ()A)G)G)I J Esa3 /1G H rcn"SS5nURURRSR5US9US/45 UR UR S5 URUR S5 URURS5 URURS 5 g) Nc\rSrSrSrg)ETestAddSubparsers.test_parse_known_args_to_class_namespace..Ci` r#Nrr#rrrrL`  rrrF)rrEFrr>r) rr=rGr assertIsr3rqrxr%)rrs r(test_parse_known_args_to_class_namespace:TestAddSubparsers.test_parse_known_args_to_class_namespace_ s    KK ( ():)@)@)Ba ( P K  aeeU# $ a  c"rc [5nURS5 URS5 UR5nURS5nURS5 URS5 UR UR /SQ5[ SSSSS95 UR UR /S Q5[ SSSSS95 URUR /S Q5 UR UR /S Q5[ SSSSS95 UR UR /S Q5[ SSSSS95 UR UR /S Q5[ SSSSS95 URUR /SQ5 g)Nr'r(rq--foz--foonew)r*rrrqrr)r,r-fofoonew)--foonrrrq)rRrrrq)rqrRrr)rqr"rr)rqrUrr)rqr*rr)rrr)r+rrGrr rr=r.r0s rtest_abbreviation#TestAddSubparsers.test_abbreviationk se+-J'J'**, ''.V$Z( **+CD5$tL N **+CD4$tL N &&v'8'8:PQ **+AB4tL N **+BC4eL N **+CD4eL N &&v'8'8:RSrc[5nURSSSSS9 URSSSSS9 URURSS/5[ S SS 9S/45 URURSS/5[ S SS 9S/45 URURS /5[ S SS 9S/45 UR URS /5 URURS /5[ SSS 9S /45 URURS/5[ SSS 9S/45 URURS/5[ S SS 9S/45 UR URS/5 URURS/5[ S SS 9S/45 URURS/5[ S S S 9S/45 UR URS/5 UR URS/5 UR URS/5 URURS/5[ S S S 9S/45 g)Nz-kz--knownrrrrz--newz-ur)knownnewz-kuz-k=uz-ukz-u=kz -kunknownz-unknownz -k=unknownz -ku=nknownz -u=nknownz-knewz-ewz-kn=ewz-k-newz-kn-ewz-kne-wz-e-w)rrrrGrr r<s r-test_parse_known_args_with_single_dash_option?TestAddSubparsers.test_parse_known_args_with_single_dash_option sR+-D)GQGD''1E 00$>1!,tf5 7 00$>1!,tf5 7 00%91!,tf5 7 &&v'>'>I 00%91!,ug6 8 00&:1!,vh7 9 00+?1!,zl; = &&v'>'>O 00,@1!,{m< > 00';1!,ug6 8 &&v'>'> K &&v'>'> K &&v'>'> K 00(<1!,vh7 9rc [5nURSSS9 URSS9nURS5nURS5 UR [ SSS S 9UR S R555 g) Nr"r,r-rqrTrrrrFrrrq)rrr)r+rrrGr rVs r test_destTestAddSubparsers.test_dest s{+-GL9***6 '',U# 3C8**5;;=9 ;rcURS/5nURURS5 URURS5 g)Nrunr#)rGrcommandr )rr=rets r_test_required_subparsers+TestAddSubparsers._test_required_subparsers s@( e, &&v'8'8"=rc[5nURSS9nSUlURS5 UR U5 g)NrcrTTrb)rr)rr+rerr=r.s r&test_required_subparsers_via_attribute8TestAddSubparsers.test_required_subparsers_via_attribute sA+-** *: " e$ &&v.rc|[5nURSSS9nURS5 URU5 g)NrcTrUrrb)rr)r+rerhs r"test_required_subparsers_via_kwarg4TestAddSubparsers.test_required_subparsers_via_kwarg s;+-** D*I e$ &&v.rc[5nURSS9nURS5 URS5nUR UR 5 g)NrcrTrbr#rr)r+rG assertIsNonercrr=r.rds r test_required_subparsers_default2TestAddSubparsers.test_required_subparsers_default sM+-** *: e$# #++&rcF[5nURSS9nURS5 URS5 UR[5nUR S5 SSS5 UR WRRS5 g!,(df  N5=f)NTrr3rqr#z8error: the following arguments are required: {foo,bar} $ rr)r+r rrGrJrrrr=r.excinfos r-test_required_subparsers_no_destination_error?TestAddSubparsers.test_required_subparsers_no_destination_error s+-**D*9 e$e$   2 3w   b !4     $ $ G 4 3 B B cF[5nURSS9nURS5 URS5 UR[5nUR S5 SSS5 UR WRRS5 g!,(df  N5=f)NTrvr3rqrzLerror: argument {foo,bar}: invalid choice: 'baz' \(choose from foo, bar\)\n$rwrxs r3test_wrong_argument_subparsers_no_destination_errorETestAddSubparsers.test_wrong_argument_subparsers_no_destination_error s+-**D*9 e$e$   2 3w   h '4     $ $ [ 4 3r|c[5nURSSS9nURS5 URS5nUR UR 5 g)NrcFrlrbr#rprrs rtest_optional_subparsers*TestAddSubparsers.test_optional_subparsers sO+-** E*J e$# #++&rcURURR5S5 URURR5[R "S55 g)N)usage: PROG [-h] [--foo] bar {1,2,3} ... a? usage: PROG [-h] [--foo] bar {1,2,3} ... main description positional arguments: bar bar help {1,2,3} command help options: -h, --help show this help message and exit --foo foo help )rr=rOrPtextwrapdedentr!s r test_helpTestAddSubparsers.test_help sQ 113E G 002HOO E 5 rcURSS9nURUR5S5 URUR5[R "S55 g)Nz+:-rz)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 rrrOrPrrr<s rtest_help_extra_prefix_chars.TestAddSubparsers.test_help_extra_prefix_chars s\!!u!5 ,,.E G ++-x @ 0 rc[SSS9nURSSSS9 URUR5[R "S55 g) Nrrrz--non-breakingruRhelp message containing non-breaking spaces shall not wrap at non-breaking spacesru7 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 rrrrPrrr<s rtest_help_non_breaking_spaces/TestAddSubparsers.test_help_non_breaking_spaces s[+%79 ];  < ++-x @ 0 rc>[SSS9nURSSS9 URUR5[R "S55 [SSS9nURS/SS 9 URUR5[R "S 55 g) Nrrrr3z rNz usage: PROG [-h] foo main description positional arguments: foo options: -h, --help show this help message and exit z %(choices)srMz usage: PROG [-h] {} main description positional arguments: {} options: -h, --help show this help message and exit rr<s rtest_help_blank!TestAddSubparsers.test_help_blank s+%79    ++-x @ 0 ,%79 2   ++-x @ 0 rcURSS9nURUR5S5 URUR5[R "S55 g)Nrurz)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 rr<s r test_help_alternate_prefix_chars2TestAddSubparsers.test_help_alternate_prefix_chars; s\!!u!5 ,,.E G ++-x @ 0 rcURURR5S5 URURR5[R "S55 g)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 )rr7rOrPrrr!s rtest_parser_command_help*TestAddSubparsers.test_parser_command_helpM sU 11>>@E G 11==?!* rch[SSS9nURSSSS9 URSS S 9 URS S S S9nURS5nURS5nUR UR 5S5 UR UR 5[R"S55 g)Nrrrr"r,rrrqrr subcommandsrzadditional text)rrrNrrrz'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 ) rrr)r+rrOrPrr)rr=r.r0r2s rtest_subparser_title_help+TestAddSubparsers.test_subparser_title_helpb s+8JLGLzJE 3**7E0A+C '','', ,,.C E ++-x@0 rcUR[5nURRUR 55 SSS5 UR UWR R5 g!,(df  N5=fr^)r rr=rGr rrr)rr  expected_helprs r_test_subparser_help&TestAddSubparsers._test_subparser_help sT   2 3r KK " "8>>#3 44  (;(;<4 3s *A// A=cPURS[R"S55 g)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 rrrr!s rtest_subparser1_help&TestAddSubparsers.test_subparser1_help " !!*hoo ? / rcPURS[R"S55 g)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 rr!s rtest_subparser2_help&TestAddSubparsers.test_subparser2_help rrc URSS9nURURSR55[ SSSSS9/45 URURSR55[ SSSSS9/45 g) NTrz 0.5 1alias1 bFrrr?z 0.5 1alias2 b)rrrGr rr<s rtest_alias_invocation'TestAddSubparsers.test_alias_invocation s!!$!/   # #O$9$9$; < Esdc 2B 7    # #O$9$9$; < Esdc 2B 7 rcvURSS9nURURSR55 g)NTrz 0.5 1alias3 b)rr rGr r<s rtest_error_alias_invocation-TestAddSubparsers.test_error_alias_invocation s8!!$!/ &&v'8'8'6'<'<'> @rcURSSS9nSUlURUR5[R "S55 g)NT)rr,a  usage: PROG [-h] [--foo] bar COMMAND ... main description positional arguments: bar bar help options: -h, --help show this help message and exit --foo foo help commands: COMMAND 1 (1alias1, 1alias2) 1 help 2 2 help 3 3 help )rmaxDiffrrPrrr<s rtest_alias_help!TestAddSubparsers.test_alias_help sH!!$t!D  ++-x@0 r)r7rr=)FNF)%r&r'r(r)r*r rrXr:rBrHrOrWr\r_rerirmrsrzr~rrrrrrrrrrrrrrr+r,r-s@rrrs(@>B!7rI I & , #T,98;>// '    '"&$ D$*<=    @ rrc*\rSrSrSrSrSrSrSrg)TestPositionalsGroupsi z@Tests that order of group positionals matches construction orderc[5nURS5 URS5nURS5 URS5 [SSSS9nUR S R 55nUR X45 g) Nr3rrqrrrrrr.r1 2 3)rrrrrGr rrr=rexpectedrs rtest_nongroup_first)TestPositionalsGroups.test_nongroup_first sv+-E"))#. 5!E"#3C0""7==?3 *rc[5nURS5nURS5 URS5 URS5 [SSSS9nUR S R 55nUR X45 g) Nxxxr3rqrrrrrr.rrrrrrrGr rrs rtest_group_first&TestPositionalsGroups.test_group_first sv+-))%0 5!E"E"#3C0""7==?3 *rc\[5nURS5nURS5 URS5 URS5 URS5nURS5 [SSS S S 9nUR S R 55nUR X45 g) Nrr3rqrrr4frellrrrr.r)r3rqrrrz1 2 3 4rrs rtest_interleaved_groups-TestPositionalsGroups.test_interleaved_groups s+-))%0E" 5!E"))%0 7##3Cs;""9??#45 *rr#N) r&r'r(r)r*rrrr+r#rrrr sJ++ +rrc^\rSrSrSrSrU4SjrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrU=r$)TestParentParsersi z5Tests that parsers can be created with parent parsersc8UR"[/UQ70UD6 gr^r rs rr +TestParentParsers.assertArgumentParserError r rc>[TU]5 [SS9UlURR S5 URR S5nUR S5 URR S5 [SS9UlUR R S5 UR R S5 UR R S 5nUR S 5 [SS9UlURR S5 [SS9UlURR S5 [SS9Ul URR5nUR S S S 9 UR SS S 9 [RR[RS5Ulg)NFrxz--wr%r8r5r!rrz--drr,r-r)rrXr wxyz_parentrr abcd_parentw_parentz_parentab_mutex_parentadd_mutually_exclusive_grouprbrkbasenamerr main_program)rx_groupc_grouprrs rrXTestParentParsers.setUp sb  5uE %%e,""55c:T" %%c*5uE %%c* %%d+""55c:U#2EB  ""5)2EB  ""3' :5I$$AAC 4 5 4 5GG,,SXXa[9rc [UR/S9nURURSR 55[ SSSS95 g)Nparentsz -y 1 2 --w 3r.rrrrxrr5)rrrrGr rr<s rtest_single_parent$TestParentParsers.test_single_parent sE+T5E5E4FG **>+?+?+ABcSC0 2rcURURR5 [UR/S9nURUR5 gNr)_test_mutex_abrrGrr<s rtest_single_parent_mutex*TestParentParsers.test_single_parent_mutex sC D00;;<+T5I5I4JK F--.rc|UR/n[SUS9n[U/S9nURUR5 g)NF)rxrr)rrrrGrrr=s rtest_single_granparent_mutex.TestParentParsers.test_single_granparent_mutex s<''(+UGL+VH= F--.rcURU"/5[SSS95 URU"S/5[SSS95 URU"S/5[SSS95 URUSS/5 URUSS/5 URUS/5 URUSS/5 URUSS/5 g)NFr!rrTrr)rrr )rrGs rr TestParentParsers._test_mutex_ab% s Beu)=> TF+R$%-@A TF+R%4-@A &&zD$<@ &&zD$<@ &&zD6: &&zD$<@ &&zD$<@rc URUR/n[US9nURUR SR 55[ SSSSSSS95 g)Nrz--d 1 --w 2 3 4r.rrrr)r!rrrxrr5)rrrrrGr rrs rtest_multiple_parents'TestParentParsers.test_multiple_parents/ sZ##T%5%56+G< **+<+B+B+DEcTSC43G Irc bURUR/n[US9nURUR SR 55[ SSSSSS95 URURSR 55 URURS R 55 g) Nrz -a --w 2 3TFrr.)r!rrxrr5z -a --w 2 3 -bz -a -b --w 2 3)rrrrrGr rr rs rtest_multiple_parents_mutex-TestParentParsers.test_multiple_parents_mutex5 s'')9)9:+G< **<+=+=+?@desdcB D &&   446 8 &&   446 8rcUR[R[RURUR /S9 gr)r r6rXr7rrr!s rtest_conflicting_parents*TestParentParsers.test_conflicting_parents? s9   " "  # #]]D$4$45  7rcUR[R[RURUR /S9 gr)r r6rXr7rrr!s rtest_conflicting_parents_mutex0TestParentParsers.test_conflicting_parents_mutexE s;   " "  # #%%t';';<  >rc URUR/n[US9nURUR SR 55[ SSSS95 g)Nrrqrr)rrrrrGr rrs rtest_same_argument_name_parents1TestParentParsers.test_same_argument_name_parentsK sM##T]]3+G< **5;;=9ddc2 4rc [5nUR5nURSUR/S9nUR S5 UR UR SR55[SSSSS 95 g) Nrqrrzbar -b 1 --d 2 3 4r.rrrr)r!rrr) rr)r+rrrrGr r)rr=r. abcde_parsers rtest_subparser_parents(TestParentParsers.test_subparser_parentsQ sw+-**, !,,UT=M=M+-**, ''(**5'*B // :S!##T%9%9:#..ug.F##C( **:+;+;+=>des3 5 **+>+D+D+FGetsdcSI K &&   }224 6 &&   }224 6rc URUR/n[US9nUR5nURnUR U[ R"SRXD(aSOS555 g)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$) rrrrPrrrrformat)rrr= parser_helpprognames rtest_parent_help"TestParentParsers.test_parent_helpl sm##T%5%56+G<((* $$ hoo7 " F8HS" 6#'8 9rc [SS9nURSSS9nURS5 URS5 UR5nURS5 URS 5 [U/S 9nUR [ UR /S Q5 UR5nURnURU[R"S RXf(aS OS555 g)NFrrgdrrrr r8r3rr8rr3rz 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$) rrrrr rrGrPrrrrr)rparentrrr=rrs rtest_groups_parents%TestParentParsers.test_groups_parents s+U;  % %CT % B t t  / / 1 t t+VH= -v/@/@ " $((* $$ hoo 7  F8HS" 6 '8 9rc8UR[[S/S9 g)Nrr)r rrr!s rtest_wrong_type_parents)TestParentParsers.test_wrong_type_parents s )%?!Mrc[SS9nURSSS9nURS5 URS5 UR5nURS5 URS 5 [S U/S 9nUR [ UR /S Q5 UR5nURU[R"S 55 g)NFrrr r rr r8r3r)rrr z usage: PROG [-h] [-w W] [-x X] [-y Y | -z Z] options: -h, --help show this help message and exit g: gd -w W -x X -y Y -z Z ) rrrrr rrGrPrrr)rr rrr=rs rtest_mutex_groups_parents+TestParentParsers.test_mutex_groups_parents s+U;  % %CT % B t t * * , t t+&J -v/@/@ " $((*  hoo 7 ' r)rrrrrr)r&r'r(r)r*r rXrrrrrrrrrrrrrrrr+r,r-s@rrr sd?@:82 / / AI 87 > 4 96&909<Nrrc2\rSrSrSrSrSrSrSrSr g) TestMutuallyExclusiveGroupErrorsi c\[5nURnU"[URSS9 g)Nr3)r)rr rr)rr=raisess rtest_invalid_add_argument_group@TestMutuallyExclusiveGroupErrors.test_invalid_add_argument_group s'+-""y&==UKrc[5nUR5nURnURnU"[USSS9 U"[US5 U"[USSS9 U"[USSS9 U"[US[ R S9 g)Nr"Trvrqrrr)rrrr rr6PARSER)rr=rrrs rtest_invalid_add_argument:TestMutuallyExclusiveGroupErrors.test_invalid_add_argument sv+-335)) ""z<4@z</z<c:z<a8z<hooFrcB[SS9nUR5nURSSS9 URSSS9 UR5nURSSS9 URS SS9 S nURUR 5[ R "U55 g) Nrrr"r,r-r\rz--soupz--nutsz usage: PROG [-h] [--foo | --bar] [--soup | --nuts] options: -h, --help show this help message and exit --foo --bar --soup --nuts )rrrrrPrr)rr=group1group2rs rr*TestMutuallyExclusiveGroupErrors.test_help s+8446GL9GM:446H\:H];  ++-xx/HIrc SUl[SS9nURSSS9nURS5nUR 5nUR SS[ RS 9 UR S S[ RS 9 S nS nUR U5 S USUSUSUS3 nURUR5[R"U55 g)Nrr!rrc)rrUr3rr,rz--quietz--longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongڀLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGLONGz> usage: PROG foo [-h] [rzj] options: -h, --help show this help message and exit z ) rrr)r+rrr6rrrPrr)rr=rcmd_foorlongoptlongmetars rCtest_help_subparser_all_mutually_exclusive_group_members_suppresseddTestMutuallyExclusiveGroupErrors.test_help_subparser_all_mutually_exclusive_group_members_suppressed s +8((z (J%%e,446 ;|(BSBST 9\@Q@QR"W%%Yaz2iq #  ,,.0IJrc[R"5nUR5nUR[5 UR S/5 SSS5 g!,(df  g=f)NrA)r6r7rr rrGrr=rs rtest_empty_group1TestMutuallyExclusiveGroupErrors.test_empty_group sH((*335   z *   tf %+ * *s A A%)rN) r&r'r(r)rrrr*r.r+r#rrrr sL GJ(K*&rrcD\rSrSrSrSrSrSrSrSr Sr S r S r g ) MEMixini cURSS9Rn[nURH;nUR US9 UR X!UR 55 SSS5 M= g!,(df  MO=fNFrvr get_parserrGrr rHr r rrGr args_strings rtest_failures_when_not_required'MEMixin.test_failures_when_not_required sa__e_4?? #==K;/!!%[5F5F5HI0/)//s !A,, A; cURSS9Rn[nURS/-H;nUR US9 UR X!UR 55 SSS5 M= g!,(df  MO=f)NTrvr$rr4r6s rtest_failures_when_required#MEMixin.test_failures_when_required sh__d_3>> #==B4/K;/!!%[5F5F5HI0/0//s !A00 A? c URSS9RnURUR-nUHDup4UR US9 U"UR 55nUR XT5 SSS5 MF g!,(df  MX=fr3)r5rGrsuccesses_when_not_requiredrHr r)rrGrr7r actual_nss r test_successes_when_not_required(MEMixin.test_successes_when_not_required sw__e_4?? NNT%E%EE (1 $K;/&{'8'8':;   80/)2//s (A>> B cURSS9RnURHDup#URUS9 U"UR 55nUR XC5 SSS5 MF g!,(df  MX=f)NTrvr)r5rGrrHr r)rrGr7rr?s rtest_successes_when_required$MEMixin.test_successes_when_required sg__d_3>> (, $K;/&{'8'8':;   80/)7//s (A// A> cURSS9RnURnURU"5[R "U55 gNFrv)r5rOusage_when_not_requiredrrrrrOexpected_usages rtest_usage_when_not_required$MEMixin.test_usage_when_not_required' s>6CC 55 )HIrcURSS9RnURnURU"5[R "U55 gNTrv)r5rOusage_when_requiredrrrrHs rtest_usage_when_required MEMixin.test_usage_when_required, s>5BB 11 )HIrcURSS9RnURUR-nUR U"5[ R "U55 grF)r5rPrGrNrrrrrPrNs rtest_help_when_not_required#MEMixin.test_help_when_not_required1 sGoouo5AA ++dii7 (=>rcURSS9RnURUR-nUR U"5[ R "U55 grM)r5rPrNrNrrrrRs rtest_help_when_requiredMEMixin.test_help_when_required6 sGooto4@@ ''$))3 (=>rr#N) r&r'r(r)r8r;r@rCrJrOrSrVr+r#rrr1r1 s.JJ99J J ? ?rr1c \rSrSrSSjrSS/rS\"SSS94S \"S SS94S \"SS S94S \"SS S94/rS\"SSS94/rSr Sr Sr Sr g)TestMutuallyExclusiveSimplei< Ncz[SS9nURUS9nURSSS9 URSSS S S 9 U$) Nrr!rvr\rrrrrbaz help)rr2rNrrrrrr=rs rr5&TestMutuallyExclusiveSimple.get_parser> sN+833X3F 74 7#SzJ r--bar X --baz Yz --bar X --baz--bar Xrcrqrrz--bar X --bar Zr--baz Yrrr$z; usage: PROG [-h] [--bar BAR | --baz [BAZ]] z; usage: PROG [-h] (--bar BAR | --baz [BAZ]) z options: -h, --help show this help message and exit --bar BAR bar help --baz [BAZ] baz help r#r^ r&r'r(r)r5r rrr>rGrNrNr+r#rrrYrY< s"?3H B3D)* B3D12 B4S)* "3'( I RDd #$#   DrrYc \rSrSrSSjrS/rS\"SSSSS94S\"S SSSS94S \"SSSSS94S \"SS SSS94/rS \"SSSSS94/rS r Sr Sr Sr g)TestMutuallyExclusiveLongi_ Nc[SS9nURSSS9 URSSS9 URUS9nURS S S9 URS S S9 U$) Nrr!z--abcdez abcde helprz--fghijz fghij helprvz--klmnoz klmno helpz--pqrstz pqrst helprrrr]s rr5$TestMutuallyExclusiveLong.get_parsera sp+8IL9IL933X3F 9<8 9<8 rz--klmno X --pqrst Yz --klmno Xrc)abcdefghijklmnopqrstz--abcde Y --klmno Xrz --pqrst Xz--pqrst X --fghij Yr$zi usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ] [--klmno KLMNO | --pqrst PQRST] zi usage: PROG [-h] [--abcde ABCDE] [--fghij FGHIJ] (--klmno KLMNO | --pqrst PQRST) z options: -h, --help show this help message and exit --abcde ABCDE abcde help --fghij FGHIJ fghij help --klmno KLMNO klmno help --pqrst PQRST pqrst help r#r^rcr#rrrere_ s&&H bt4s$GH  SCt < > bt4t3GH  TD < > I Rd$d$ ?@# Drrect\rSrSrSrS/rS\"SSS94S\"S SS94S \"S S S94/rS \"S SS94/rSr Sr Sr Sr g )$TestMutuallyExclusiveFirstSuppressedi c[SS9nURUS9nURS[RS9 URSSSS 9 U$) Nrr!rvr rr8rr#rrrrr6rr]s rr5/TestMutuallyExclusiveFirstSuppressed.get_parser sR+833X3F 4h&7&78 4 HE rz-x X -yz-x XrcTrz -x X -x Yrr8NFr$z& usage: PROG [-h] [-y] z$ usage: PROG [-h] -y zm options: -h, --help show this help message and exit -y y help r#rcr#rrrnrn st{H cT"# b3$'( rDE"#I R$$  #   Drrnc \rSrSrSr/SQrS\"SSSS94S\"S S SS94S \"S SS S94S \"SSSS94/rS \"S SSS94/rS=r r Sr Sr g)#TestMutuallyExclusiveManySuppressedi c[SS9nURUS9nURnU"SS[RS9 U"SS[RS9 U"S [RS 9 U$) Nrr!rv--spamr,rr[rz --bladderrrp)rrr=rrss rr5.TestMutuallyExclusiveManySuppressed.get_parser sc+833X3F   H\0A0AB J}83D3DE Kh//0 r)z--spam --badgerz--badger --bladder Bz--bladder B --spamruTN)rrabladderr[Fz --bladder Broz --spam --spamr$z! usage: PROG [-h] P options: -h, --help show this help message and exit r# r&r'r(r)r5r rrr>rNrGrNr+r#rrrsrs sH 24d;< RU5$?@ dC@A "$tTBC I RU4 67#5  1 Drrsc \rSrSrSr/SQrS\"SS/S94S\"S S /S94S \"S SS /S94S \"S S/S QS94/rS\"S S/S94/rSr Sr Sr Sr g)*TestMutuallyExclusiveOptionalAndPositionali c[SS9nURUS9nURSSSS9 URSS S 9 URS S S S9 U$)Nrr!rvr"r,FOOrruSPAMrrarBADGERr'r\r]s rr55TestMutuallyExclusiveOptionalAndPositional.get_parser sa+833X3F 7 r)z--foo --spam Sz --spam S XzX --foozX Y Z --spam S --foo X Yr"TNr3rraz--spam SFSrczX Y Z)rcrrr$zD usage: PROG [-h] [--foo | --spam SPAM | badger ...] zD usage: PROG [-h] (--foo | --spam SPAM | badger ...) z positional arguments: badger BADGER options: -h, --help show this help message and exit --foo FOO --spam SPAM SPAM r#rcr#rrr{r{ sH "D45 REB78 bUse45 "T/BC I RER 01#   Drr{c\rSrSrSr/SQrS\"SSSSSS94S\"SSSSSS94S \"SSSSSS94S \"SSSSSS94S \"SSSSSS94S \"SSSSSS94/rS \"SSSSSS94S\"SSSSSS94S\"SSSSSS94/rS=r r Sr Sr g)#TestMutuallyExclusiveOptionalsMixedi c[SS9nURSSSS9 URUS9nURSSS S9 URS SS S9 URS SS S9 URSSSS9 U$)Nrr!r r,r!rrvra helprb helpr8r#rc helprgr]s rr5.TestMutuallyExclusiveOptionalsMixed.get_parser s+8DHE33X3F 4 8D 4 8DDHE 4 8D r)z-a -b-b -cz-a -cz-a -b -crTFr!rrr%rrrz-a -xz-y -bz-x -y -cr$r r8z: usage: PROG [-h] [-x] [-a] [-b] [-y] [-c] z options: -h, --help show this help message and exit -x x help -a a help -b b help -y y help -c c help r#Nryr#rrrr s7H rDEUeu=> rETUeu=> rEUdeu=> "tu?@ "u$?@ R%5DDDAB I R%5EUe <= rEUetu=> rEUeu=># 5  1 Drrcj\rSrSrSSjrSS/rS\"SSS94S \"SS S94/rS \"SSS94/rS r S r Sr Sr g)TestMutuallyExclusiveInGroupi& Nc[SS9nURSSS9nURUS9nURSSS 9 URS S S 9 U$) Nrr!z Titled groupzGroup descriptionr rvr\rrrr[)rrrr)rrr= titled_group mutex_groups rr5'TestMutuallyExclusiveInGroup.get_parser( sk+800 .A1C   5 5x 5 H   z :  z : rr_z--baz X --bar Yr`rcrarbrr$z9 usage: PROG [-h] [--bar BAR | --baz BAZ] z9 usage: PROG [-h] (--bar BAR | --baz BAZ) z options: -h, --help show this help message and exit Titled group: Group description --bar BAR bar help --baz BAZ baz help r#r^rcr#rrrr& si"#45H B3D)* B4S)*I RDd #$#   Drrc \rSrSrSr/SQrS\"SSSSSS94S \"S S SSSS94S \"S SS SSS94S \"SSSSS S94S\"S S SSS S94/rS\"S SSSSS94S\"S SSSS S94/rS=r r Sr Sr g )1TestMutuallyExclusiveOptionalsAndPositionalsMixediN c[SS9nURSSS9 URSSSS 9 URUS 9nURS S S S9 URSSSS 9 URSSSS 9 U$)Nrr!r%r!rr8r,r#rrvr!rrr'rrrrrgr]s rr5 B#>? I b45ESE:; deut<=# 5  1 Drrc6\rSrSrSrSrSrSrSrSr Sr Sr Sr g)TestMutuallyExclusiveNestediw cf[SS9nURUS9nURS5 URS5 [R"5 [R "S[ 5 URUS9nSSS5 WRS5 URS5 [R"5 [R "S[ 5 URUS9nSSS5 WRS 5 URS 5 U$!,(df  N=f!,(df  NC=f) Nrr!rvrrr/rrrrA)rrrwarningscatch_warnings simplefilterr)rrr=rr#group3s rr5&TestMutuallyExclusiveNested.get_parser~ s+833X3F 4  4  $ $ &  ! !(,> ?777JF' D!D!  $ $ &  ! !(,> ?88(8KF' D!D! ' & ' &s+D:+D" D" D0zO usage: PROG [-h] [-a A | -b B | [-c C | -d D | [-e E | -f F]]] zO usage: PROG [-h] (-a A | -b B | (-c C | -d D | (-e E | -f F))) z options: -h, --help show this help message and exit -a A -b B -c C -d D -e E -f F Nr#) r&r'r(r)r5rGrNrNr8r;r@rCr+r#rrrrw s8"   D'+#"&'+$#' rrcz\rSrSrSSjrSS/rS\"SSS94S \"SSS94S \"SSS94/rS \"SSS94/rS r S r Sr Sr g)%TestMutuallyExclusiveOptionalOptionali Ncx[SS9nURUS9nURS5 URSSS9 U$)Nrr!rvr"r\rrr\r]s rr50TestMutuallyExclusiveOptionalOptional.get_parser sE+833X3F 7# 7#. r--foo X --bar Yz --foo X --bar--foo Xrcrur`r\r$z; usage: PROG [-h] (--foo FOO | --bar [BAR]) z; usage: PROG [-h] [--foo FOO | --bar [BAR]] z{ options: -h, --help show this help message and exit --foo FOO --bar [BAR] r#r^ryr#rrrr s| H B3D)* B4S)* "4()I RDd #$#   Drrcz\rSrSrSSjrSS/rS\"SSS 94S \"SSS 94S \"SS S 94/rS \"SSS 94/rSr Sr Sr Sr g)(TestMutuallyExclusiveOptionalWithDefaulti Nc[SS9nURUS9nURS5 URS[SS9 U$)Nrr!rvr"r\Trfrrrrr]s rr53TestMutuallyExclusiveOptionalWithDefault.get_parser sG+833X3F 7# 7t< rrz--foo X --bar=rrcTrur`z--bar=Fr$z9 usage: PROG [-h] (--foo FOO | --bar BAR) z9 usage: PROG [-h] [--foo FOO | --bar BAR] zx options: -h, --help show this help message and exit --foo FOO --bar BAR r#r^ryr#rrrr s| H B3D)* B4T*+ 2$E*+I RDd #$#   Drrch\rSrSrSSjrS/rS\"SSS94S\"SSS94/rS \"SSS94/rS r S r S r S r g)*TestMutuallyExclusivePositionalWithDefaulti Nc[SS9nURUS9nURS5 URSS[SS9 U$) Nrr!rvr"rqrTrprr]s rr55TestMutuallyExclusivePositionalWithDefault.get_parser sI+833X3F 7# 5$E rrrrcTrur$z3 usage: PROG [-h] (--foo FOO | bar) z3 usage: PROG [-h] [--foo FOO | bar] z positional arguments: bar options: -h, --help show this help message and exit --foo FOO r#r^ryr#rrrr sj H B3D)* bTt$%I RDd #$#   Drrc,^\rSrSrSU4SjjrSrU=r$)MEPBaseicV>[[U] US9n[URSU/S9nU$)NrvF)rrxr)rrr5rr)rrr r=rs rr5MEPBase.get_parsers4w0(0C+uvh@ rr#r^)r&r'r(r)r5r+r,r-s@rrrs rrc\rSrSrSrg)&TestMutuallyExclusiveGroupErrorsParentir#Nrr#rrrrrrc\rSrSrSrg)!TestMutuallyExclusiveSimpleParenti#r#Nrr#rrrr#rrrc\rSrSrSrg)TestMutuallyExclusiveLongParenti(r#Nrr#rrrr(rrrc\rSrSrSrg)*TestMutuallyExclusiveFirstSuppressedParenti-r#Nrr#rrrr-rrrc\rSrSrSrg))TestMutuallyExclusiveManySuppressedParenti2r#Nrr#rrrr2rrrc\rSrSrSrg)0TestMutuallyExclusiveOptionalAndPositionalParenti7r#Nrr#rrrr7rrrc\rSrSrSrg))TestMutuallyExclusiveOptionalsMixedParenti<r#Nrr#rrrr<rrrc\rSrSrSrg)7TestMutuallyExclusiveOptionalsAndPositionalsMixedParentiAr#Nrr#rrrrArrrc>\rSrSrSrSrSrSrSrSr Sr S r g ) TestSetDefaultsiIc [5nURSS9 URSSS9 UR[SSSS9UR /55 UR[SSSS9UR /[555 UR[SSSS9UR /[SS955 UR[SSSS9UR /[SSS 955 g) Nr3r$rqr)rr5rrrr)r%r5r set_defaultsrrrGr<s rtest_set_defaults_no_args)TestSetDefaults.test_set_defaults_no_argsKs+-e$eq) eu2**2. 0 eu2**2rt4 6 eu2**2rE{; = eu2**2rEQ/?@ Brc [5nURSSS9 URSSS9 UR[ SSS9UR /55 UR[ SSS9UR /[ 555 UR[ SSS9UR /[ SS955 UR[ S SS9UR S R 555 UR[ S SS9UR S R 5[ 555 UR[ S SS9UR S R 5[ SS955 g) Nr3rqrr xfooxrrrr$rrr)rrrrrrGr r<s rtest_set_defaults_with_args+TestSetDefaults.test_set_defaults_with_argsXs6+-eu-D'2 g/**2. 0 g/**2rt4 6 eu-**2rE{; = cU+**6<<>: < cU+**6<<>24@ B cU+**6<<>2;G Irc[5nURSS9 UR5nURS5nURSS9 UR [ SSS9UR SR555 g)Nr3r$r!rqrr)rrr)r+rrrGr )rr=r.parser_as rtest_set_defaults_subparsers,TestSetDefaults.test_set_defaults_subparsersisu+-e$**, ((-& eu-**399;7 9rc[SS9nURSS9 [U/S9nUR[SS9UR /55 g)NFrr3r$rr)rr r=s rtest_set_defaults_parents)TestSetDefaults.test_set_defaults_parentsrsH+U;e$+VH= ef&7&7&;0"0rrc\rSrSrSrSrg)TestGetDefaultic[5nURURS55 URURS55 URS5 URURS55 URURS55 URS[SS9 URURS55 UR SURS55 UR SS9 UR SURS55 UR SURS55 g) Nr3rqr"r\r0rfrar=)rrq get_defaultrrrrr<s rtest_get_defaultTestGetDefault.test_get_defaults +- &,,U34 &,,U34G$ &,,U34 &,,U34G#r: &,,U34 V//67) 6#5#5e#<= V//67rr#N)r&r'r(r)rr+r#rrrrs8rrc \rSrSrSrSrSrg)TestNamespaceContainsSimpleicv[R"5nURSU5 URSU5 g)Nr$r%)r6 Namespace assertNotInrnss r test_empty&TestNamespaceContainsSimple.test_emptys0    ! R  b!rc[R"SSS9nURSU5 URSU5 URSU5 URSU5 URSU5 g) Nrrrr$r%rxxr5)r6rrrrs rtest_non_empty*TestNamespaceContainsSimple.test_non_emptys`   !q ) R  c2 c2 r" b!rr#N)r&r'r(r)rrr+r#rrrrs " "rrc\rSrSrSrSrg)TestHelpFormattingMetaclassicXUS:Xag"SS[5nSHupVU"XU5 M g)N HelpTestCasec8\rSrSrSrSrSrSrSrSr Sr g ) 6TestHelpFormattingMetaclass.__init__..AddTestsicX lX0lURURUR4H/nUR <SU<3nU4SjnXVl[XU5 M1 g![ a Nf=f)NrcU"U5 gr^r#rs r test_wrapperUTestHelpFormattingMetaclass.__init__..AddTests.__init__..test_wrapperrr) func_suffixstd_name test_format test_printtest_print_filer&rr)r test_classrrrrrs rr?TestHelpFormattingMetaclass.__init__..AddTests.__init__sw#. ( "&"2"2"&//"&"6"6"8I,5+=+={ KI5>(09-J<@"8%s A$$ A10A1cv[R"URR0URRD6n[ US/5H)nUR "UR0URD6 M+ [ US/5nUHZupVUR"UR0URD6nUH)nUR "UR0URD6 M+ M\ [ US/5nU(a?UR5n UH)n U R"U R0U RD6 M+ U$)Nrargument_group_signaturessubparsers_signatures) r6r7rrrrrrr)r+) rrr= argument_sig group_sigs group_sig argument_sigsrsubparsers_sigsr. subparser_sigs rrBTestHelpFormattingMetaclass.__init__..AddTests._get_parsers=!00,,116--446%,F4I2$NL''):):?*6*=*=?%O%V-H"M 0:,I"55y~~J8A8H8HJE(5 **L,=,=B-9-@-@B)61; #*&2I2"N"!'!6!6!8J)8 "--}/A/AG1>1E1EG*9 rc[XR5n[R"U5nSUlUR X25 gr^)rrrrrr)rr parser_text expected_texts r_test.AddTests._tests5 '0@0@ A ( > !%""=>rcURU5n[USUR-5nURX"55 g)Nz format_%s)rrrr)rrr=rs rrBTestHelpFormattingMetaclass.__init__..AddTests.test_formats9))&1 t7G7G)GH 668,rcURU5n[USUR-5n[[UR5n[ [UR[ 55 U"5 [[UR5R5n[ [URU5 URX5 g![ [URU5 f=fNzprint_%s) rrrrrrr rr)rrr=print_ old_streamrs rrATestHelpFormattingMetaclass.__init__..AddTests.test_print s))&1 d6F6F)FG$S$--8 T]]KM:<H")#t}}"="F"F"HKC ; 6/C ;s )/CC"cURU5n[USUR-5n[5nU"U5 UR 5nUR X5 gr)rrrr rr)rrr=rsfilers rrFTestHelpFormattingMetaclass.__init__..AddTests.test_print_filesO))&1 d6F6F)FG# u #nn.  6/r)rrN) r&r'r(r)rrrrrrr+r#rrrrs! A" , ?  - 0 0rr))usager)rNr)r)rrtrrrrrs rr$TestHelpFormattingMetaclass.__init__s5 > ! F 0vF 0R&: !K Sx 0&:rr#Nrr#rrrrsO1rrrc \rSrSrSr\"SSSS9r\"SSS S S 9\"S S SS9\"SSS9\"SSS9\"SSS9/r/rSr \ S-r Sr Sr g)TestHelpBiggerOptionalsi(;Make sure that argument help aligns when options are longerr DESCRIPTIONEPILOGrrepilogrrr0.1rr r,X HELPr--yY HELPrr3FOO HELPrqBAR HELPz; usage: PROG [-h] [-v] [-x] [--y Y] foo bar aW DESCRIPTION positional arguments: foo FOO HELP bar BAR HELP options: -h, --help show this help message and exit -v, --version show program's version number and exit -x X HELP --y Y Y HELP EPILOG  0.1 r#N r&r'r(r)r*rrrr r!rNrr+r#rrr$r$(sEM"*, D+i? DH5 E! E # E # !# E  D  Grr$c\rSrSrSrSr\Rr\Rr\Rr Sr \ S-r \Rr Sr g)TestShortColumnsiLzTest 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. cpUR[R"55nURSS5 g)NrSr)rTrrUrrVs rrXTestShortColumns.setUpRs) = = ?@  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 r#N)r&r'r(r)r*rXr$rrr r!rNrr+r#rrr3r3LsW !#:"J"J"9"M"M"9"S"S E  D:#:"A"AGrr3c \rSrSrSr\"SSSS9r\"SSS S S 9\"S S SS9\"SSS9\"SSS9\"SSS9/r\"SSS9\"SSS9\"SSSS9/4/rS r \ S!-r S"r S#r g$)%TestHelpBiggerOptionalGroupsir%rr&r'r(rrrr*rr r,r+rr,r-rr3r.rqr/z GROUP TITLEzGROUP DESCRIPTIONrrrzBAZ HELPr3rzZ HELPr'zN usage: PROG [-h] [-v] [-x] [--y Y] [-z Z [Z ...]] foo bar baz a DESCRIPTION positional arguments: foo FOO HELP bar BAR HELP options: -h, --help show this help message and exit -v, --version show program's version number and exit -x X HELP --y Y Y HELP GROUP TITLE: GROUP DESCRIPTION baz BAZ HELP -z Z [Z ...] Z HELP EPILOG r0r#Nr1r#rrr7r7sEM"*, D+i? DH5 E! E # E #  ](; < J ' Ch /?1 2!  E  D, Grr7cr\rSrSrSr\"SSS9r\"SSSS 9\"S S S 9\"S SS 9\"SSS 9/r/rSr \ S-r Sr Sr g)TestHelpBiggerPositionalsiz4Make sure that help aligns when arguments are longerUSAGEr&r!rr r,r+rr,r-rekiekiekifekangzEKI HELPrqr/ usage: USAGE a DESCRIPTION positional arguments: ekiekiekifekang EKI HELP bar BAR HELP options: -h, --help show this help message and exit -x X HELP --y Y Y HELP r$r#Nr1r#rrr9r9sl>mD DH5 E! J/ E #  !# E   DGrr9cz\rSrSrSr\"SSS9r\"SSSS 9\"S S S S 9/r\"S SS9\"SSSS9/4/rSr \ S-r Sr Sr g)TestHelpReformattingi>Make sure that text after short names starts on the first linerze oddly formatted description that is so long that it should go onto multiple lines when wrappedrr rzoddly formatted -x helprrNrr4z normal y helprz' oddly formatted group descriptionrrr,z` oddly formatted -a help again, so long that it should be wrapped over multiple linesr2 usage: PROG [-h] [-x XX] [-a] yyy a oddly formatted description that is so long that it should go onto multiple lines when wrapped positional arguments: yyy normal y help options: -h, --help show this help message and exit -x XX oddly formatted -x help title: oddly formatted group description -a oddly formatted -a help again, so long that it should be wrapped over multiple lines r$r#Nr1r#rrr?r?sH )* D$&= > C_5 W#0 1 d<$ % &  ' ! E   D(Grr?c|\rSrSrSr\"SSS9r\"SSSS 9\"S S S S 9/r\"S 5\"SSSS9/4/rSr \ S-r Sr Sr g)TestHelpWrappingShortNamesir@rzZD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD Drr rzxXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXrArr4dYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHALPHASrr,zPAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHArrBa D DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD D positional arguments: yyy YH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YHYH YH options: -h, --help show this help message and exit -x XX XHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HXXHH HX ALPHAS: -a AHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHAAHHH HHA r$r#Nr1r#rrrDrDszH[A D$]3 C\2 X \ @B C! E   D,GrrDc\rSrSrSr\"SSS9r\"SSSS S 9\"S S S S9\"SSSS9/r\"S5\"SSSS9\"SSSS9/4/rSr \ S-r Sr Sr g)TestHelpWrappingLongNamesi,z!   ,,.6rc /SQn[R"S5nURSSSSS9 URSS S S RU5S 9 [R "S 5nUR UR5U5 g)N)12345612345r12311111111111111rrz verbose moder,rPtargetszinstallation targetsrr%rNrrz usage: 11111111111111 [-h] [-v] 123456 12345 12345 123 [123456 12345 12345 123 ...] )r6r7rrlrrrrO)rmappingr=r!s rtest_newline_in_metavar6TestHelpUsageNoWhitespaceCrash.test_newline_in_metavar s5(()9:D+!/   FI!7"%$(IIg$6  8 !   ,,.6rc[R"SS9nURSSSS9 URSSS 9 S nURUR 5U5 g) Nrr!z--nilr$T)rrz--aFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArTzqusage: PROG [-h] --nil [--a AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA] )r6r7rrrO)rr=r!s rtest_empty_metavar_required_arg>TestHelpUsageNoWhitespaceCrash.test_empty_metavar_required_arg!s_((f5GR$?E84 )  ,,.6rc[R"SS9nUR5nURSSSS[RS9 URSSSS[RS9 S nUR UR 5U5 g) Nrr!z--param1rrNAME)rr2rrNz--param2zusage: PROG [-h] )r6r7rrrrrOrs r-test_all_suppressed_mutex_with_optional_nargsLTestHelpUsageNoWhitespaceCrash.test_all_suppressed_mutex_with_optional_nargs-s((f5335  YX=N=N  P  YX=N=N  P% ,,.6rcR[R"SS9nUR5nURS5 [R "5 [R "S[5 UR5nSSS5 WRS5 URS[RS9 URS5 URS 5 URS 5 [R"S 5nURUR5U5 g!,(df  N=f) Nrr!rur/z--haxz--hoxrz--hexrz--numzw usage: PROG [-h] [--spam SPAM | [--hax HAX | --hex HEX] | --eggs EGGS] [--num NUM] ) r6r7rrrrrrrrrrrO)rr=rggr!s rtest_nested_mutex_groups7TestHelpUsageNoWhitespaceCrash.test_nested_mutex_groups:s((f5  / / 1 x  $ $ &  ! !(,> ?//1B'   h&7&78   x G$!   ,,.6' &s ,D D&c[R"SS9nUR5nURSSSS9 URSSS S9 URS S S 9 URS SS S9 URSS S 9 URSSS 9 URSSSS9 [R "S5nUR UR5U5 g)Nrr!z--op1METr)rrz--op2)MET1MET2rz--op3rz--op4rz--op5z--op6rz--op7)rrMET3z usage: PROG [-h] [--op1 [MET] | --op2 [MET1 [MET2 ...]] | --op3 [OP3 ...] | --op4 MET1 [MET2 ...] | --op5 OP5 [OP5 ...] | --op6 OP6 OP6 OP6 | --op7 MET1 MET2 MET3] )r6r7rrrrrrO)rr=rr!s rtest_long_mutex_groups_wrap:TestHelpUsageNoWhitespaceCrash.test_long_mutex_groups_wrapMs((f5  / / 1 wS9 w(8D wc* w(8D wc* wa( w(@J!   ,,.6rr#N) r&r'r(r)rrrrrrr+r#rrrrs  77, 7 77&7rrc \rSrSrSr\"SS9r\"S\SS9\"SS S S S S 9\"S/SQSS9\"SSSS/SSS9\"SSS9\"SSSS9/r\"S 5\"S!S"S9\"S#S$S%S9/4/r S&r \ S'-r S(r S)r g*)+TestHelpVariableExpansioni`z:Test that variables are expanded properly in help messagesrr!r z"x %(prog)s %(default)s %(type)s %%rr8r/r0XXXz y %(prog)s %(default)s %(const)s)r.rr2rNr"rz$foo %(prog)s %(default)s %(choices)srMr\rrrrBBBz!bar %(prog)s %(default)s %(dest)s)rrrrNrzspam %(prog)s %(default)srrarzbadger %(prog)s %(default)s)rrNrrza %(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 r$r#N)r&r'r(r)r*rrrrr r!rNrr+r#rrrr`sD' Ds5 7 D%3 5 G_7 9 GUQFE4 6 F45 Hc(EF  W 3 4 b'? @  !  E   D"Grrc@\rSrSrSr\"SSS9r/r/rSr \ S-r Sr S r g ) &TestHelpVariableExpansionUsageSuppliediz@Test that variables are expanded properly when usage= is presentrz %(prog)s FOOrr!z usage: PROG FOO rxr$r#Nr1r#rrrrs=Jn= " E   D Grrc:\rSrSrSr\"SSS9r/r/rSr \ r Sr Sr g ) $TestHelpVariableExpansionNoArgumentsiz;Test that variables are expanded properly with no argumentsrFrXz usage: PROG r$r#Nr1r#rrrrs1E7 " E DGrrcf\rSrSrSr\"S\RS9r\"SSS9\"SS S9/r /r S r S r S r S rg )TestHelpSuppressUsageiz3Test that items can be suppressed in usage messagesrrr"rrr spam helpz positional arguments: spam spam help options: -h, --help show this help message and exit --foo FOO foo help r$r#N)r&r'r(r)r*rr6rrrr rNr!rr+r#rrrrsO=h.?.?@ G*% F%!# D EGrrcl\rSrSrSr\"SSS9r\"S\RS9\"SS S9/r /r S r \ S -r S r S rg)TestHelpSuppressOptionaliz?Test that optional arguments can be suppressed in help messagesrFrXr"rrrz! usage: PROG spam zA positional arguments: spam spam help r$r#Nr&r'r(r)r*rrr6rrr r!rNrr+r#rrrrs[I7 G(++, F%!# E   D Grrc\rSrSrSr\"SS9r\"SSS9\"SS S9/r\"S 5\"S \RS9/4/r S r \ S -r Sr Srg)TestHelpSuppressOptionalGroupiz! E   DGrrcj\rSrSrSr\"SS9r\"SSS9\"S\RS9/r /r S r \ S -r S r S rg )TestHelpSuppressPositionalizATest that positional arguments can be suppressed in help messagesrr!r"rrrz- usage: PROG [-h] [--foo FOO] o options: -h, --help show this help message and exit --foo FOO foo help r$r#Nrr#rrrrsYK' G*% F**+!# E   D GrrcL\rSrSrSr\"SS9r\"SSSS9/r/rS r \ S -r S r S r g )TestHelpRequiredOptionaliz.Test that required options don't look optionalrr!r"Tr)rrNz+ usage: PROG [-h] --foo FOO rr$r#Nr1r#rrrrsK8' Gd4!# E   D Grrc^\rSrSrSr\"SSSS9r\"SSS S 9\"S S S S9/r/rSr \ S-r Sr Sr g)TestHelpAlternatePrefixCharsiz:Test that options display with different prefix charactersrz^;F)rrwrxz^^foor,rrz;bz;;barrrz- usage: PROG [^^foo] [;b BAR] z^ options: ^^foo foo help ;b, ;;bar BAR bar help r$r#Nr1r#rrrrs[DTEJ GLz: D' +!# E   D GrrcX\rSrSrSr\"SSS9r\"SSS9\"S S S9/r/rS r \ S -r S r Sr g)TestHelpNoHelpOptionali-z=Test that the --help argument can be suppressed help messagesrFrXr"rrrrz- usage: PROG [--foo FOO] spam zv positional arguments: spam spam help options: --foo FOO foo help r$r#Nr1r#rrrr-sUG7 G*% F%!# E   DGrrcZ\rSrSrSr\"SS9r\"S5\"S5/r/rSr \ S-r S r S r g ) TestHelpNoneiDz1Test that no errors occur if no help is specifiedrr!r"rrz positional arguments: spam options: -h, --help show this help message and exit --foo FOO r$r#Nr1r#rrrrDsM;' G  F !# E   DGrrc ~\rSrSrSr\"SS9r\"SSSSS 9\"S S S S S 9\"SSSSS 9\"SSSSS 9/r/rSr \ S-r Sr Sr g)TestHelpTupleMetavarOptionali\z"Test specifying metavar as a tuplerr!rrxrW1W2rr r%rX1X2r8rrY1Y2Y3r3r5rZ1z] usage: PROG [-h] [-w W1 [W2 ...]] [-x [X1 [X2 ...]]] [-y Y1 Y2 Y3] [-z [Z1]] z options: -h, --help show this help message and exit -w W1 [W2 ...] w -x [X1 [X2 ...]] x -y Y1 Y2 Y3 y -z [Z1] z r$r#Nr1r#rrrr\sx,' Ds#|< Ds#|< Ds!-?@ Ds#x8  !# E   DGrrc ~\rSrSrSr\"SS9r\"SSSSS 9\"S S S S S 9\"SSSSS 9\"SSSSS 9/r/rSr \ S-r Sr Sr g)TestHelpTupleMetavarPositionaliwz2Test specifying metavar on a Positional as a tuplerr!rxr rrrr%r!rrrr#rrr5r$rrzI usage: PROG [-h] W1 [W2 ...] [X1 [X2 ...]] Y1 Y2 Y3 [Z1] z positional arguments: W1 W2 w help X1 X2 x help Y1 Y2 Y3 y help Z1 z help options: -h, --help show this help message and exit r$r#Nr1r#rrrrwsx<' Chc<@ Chc<@ Cha1CD Chc7;  !# E   DGrrc\rSrSrSr\"S\RSS9r\"SSS9\"S S S9/r \"S S S 9\"SSS9/4/r Sr \ S-r Sr Srg)TestHelpRawTextiTest the RawTextHelpFormatterr7Keep the formatting exactly as it is written here rformatter_classrr"z- foo help should also appear as given hererrrr? This text should be indented exactly like it is here rr\r> usage: PROG [-h] [--foo FOO] [--bar BAR] spam a Keep the formatting exactly as it is written here positional arguments: spam spam help options: -h, --help show this help message and exit --foo FOO foo help should also appear as given here title: This text should be indented exactly like it is here --bar BAR bar help r$r#N)r&r'r(r)r*rr6RawTextHelpFormatterrrr r!rNrr+r#rrrrs' X%B%B G1 2 F% W#B C gJ ' ( *!  E   D,Grrc\rSrSrSr\"S\RSS9r\"SSS9\"S S S9/r \"S S S 9\"SSS9/4/r Sr \ S-r Sr Srg)TestHelpRawDescriptionirrrrr"z4 foo help should not retain this odd formattingrrrrrrr\rra Keep the formatting exactly as it is written here positional arguments: spam spam help options: -h, --help show this help message and exit --foo FOO foo help should not retain this odd formatting title: This text should be indented exactly like it is here --bar BAR bar help r$r#N)r&r'r(r)r*rr6RawDescriptionHelpFormatterrrr r!rNrr+r#rrrrs' X%I%I G; < F% W#B C gJ ' ( *!  E   D*Grrc \rSrSrSr\"S\RSS9r\"SSS9\"S S S S 9\"S \RSSS9\"S\RS\RS9\"SSSS9\"SSS9\"SSSSS9/r \"SSS9\"S \ SS!S"9/4/r S#r\S$-rS%rS&rg')(TestHelpArgumentDefaultsiz&Test the ArgumentDefaultsHelpFormatterrrrr"z)foo help - oh and by the way, %(default)srr\r,rrz--tazzWhether to taz itT)r.rNrz--corgezWhether to corge itrz Set the quuxr0)rNrrrrarwoodenz badger helprrrNrrrr[)rrrNz usage: PROG [-h] [--foo FOO] [--bar] [--taz | --no-taz] [--corge | --no-corge] [--quux QUUX] [--baz BAZ] spam [badger] ay description positional arguments: spam spam help badger badger help (default: wooden) options: -h, --help show this help message and exit --foo FOO foo help - oh and by the way, None --bar bar help (default: False) --taz, --no-taz Whether to taz it (default: True) --corge, --no-corge Whether to corge it --quux QUUX Set the quux (default: 42) title: description --baz BAZ baz help (default: 42) r$r#N)r&r'r(r)r*rr6ArgumentDefaultsHelpFormatterrrrrrr r!rNrr+r#rrrrs0 X%K%K!# GEF GLz: GH::$d 4 Ih<<&0A0A C H>26 F% HC F  W- 0 gC* = > @! E   D*GrrcP\rSrSrSr\"SSS9r\"SSSS S 9/r/rS r \ S -r S r Sr g)TestHelpVersionActioni&z,Test the default help for the version actionrrr-Vrrz3.6rz& usage: PROG [-h] [-V] z description options: -h, --help show this help message and exit -V, --version show program's version number and exit r$r#Nr1r#rrrr&sK6MBt[ERS " E   DGrrcx\rSrSrSr\"SS9r\"SSSS\RS 9\"S S S 9\"S SS 9/r /r Sr \ S-r Sr g)TestHelpVersionActionSuppressi:zCTest that the --version argument can be suppressed in help messagesrr!rrrr)r.rrNr"rrrrrrr#N)r&r'r(r)r*rrr6rrr r!rNr+r#rrrr:seM' D+i"" $ G*% F%  !# E   Drrc \rSrSrSr\"SSS9r\"SSSS S 9/rS VVVs/sH n[ US 9PM snnnrS r \ S-r Sr Sr gs snnnf)TestHelpSubparsersOrderingiS5Test ordering of subcommands in help matches the coderdisplay some subcommandsrrrrr*r)r!rrrrrI6 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 r0r#N) r&r'r(r)r*rrrr r!rNrr+).0rtrs000rrrSsv?'ACt[ERS*CD)B!d^)BD E   D G'DsArc \rSrSrSr\"SSS9r\"SSSS S 9/rS r\VVVVs/sHup[ XS 9PM snnnnr S r \ S-r Sr Sr gs snnnnf)"TestHelpSubparsersWithHelpOrderingiprrrrrrrr*r))r!za subcommand help)rzb subcommand help)rzc subcommand help)rzd subcommand help)rze subcommand help)rtrNra 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 r0r#N)r&r'r(r)r*rrrsubcommand_datar r!rNrr+)rrtrNrs0000rrrps?'ACt[ERSO0?@/>!d6/>@ E   D" G1@sA rc~\rSrSrSr\"SS\RS9r\"S\ S9\"S\S9\"S \ S S 9/r /r S r \ S -rSrSrg)TestHelpMetavarTypeFormattericU$r^r#rs r custom_type(TestHelpMetavarTypeFormatter.custom_types rrr)rrrr!rrrz SOME FLOAT)rrzF usage: PROG [-h] [-b custom_type] [-c SOME FLOAT] int z description positional arguments: int options: -h, --help show this help message and exit -b custom_type -c SOME FLOAT r$r#N)r&r'r(r)rrr6MetavarTypeHelpFormatterrrrrr r!rNrr+r#rrrrsrM+3+L+LNs-t+6t%FH!# E   DGrrc"\rSrSrSrSrSrSrg)!TestHelpUsageLongSubparserCommandiz.custom_formatters00L Lrr)rrrCMDzcommand to use)rrrNrsz add somethingrremovezremove somethingza-very-long-commandzcommand that does somethinga} usage: PROG [-h] CMD ... options: -h, --help show this help message and exit commands: CMD command to use add add something remove remove something a-very-long-command command that does something )r6r7r)r+rPrrr)rr parent_parsercmd_subparsersrs rr2TestHelpUsageLongSubparserCommand.test_parent_helps M!// 0 '55J>C;K6M !!%'6 " 8 !!('9 " ; !!"7'D " F$//1  hoo 7 ' rr#)r&r'r(r)r*rrr+r#rrrrsFG!rrc\rSrSrSrSS.SjrSS.SjrSrSrS r S r S r S r S r SrSrSrSrSrSrSrSrSrg)TestInvalidArgumentConstructorsiz-Test a bunch of invalid Argument constructorsN)errmsgcx[R"5nUR"[XR/UQ70UD6 gr^)r6r7rWrrrr rrr=s rassertTypeError/TestInvalidArgumentConstructors.assertTypeErrors8((* y&2E2E 0 $ 0(. 0rcx[R"5nUR"[XR/UQ70UD6 gr^)r6r7rWrrr s rassertValueError0TestInvalidArgumentConstructors.assertValueErrors8((* z63F3F 0 $ 0(. 0rcURSSS9 URSSS9 URSSS9 URS0S9 g) Nr )rqr8r3)callbackr#) callback_args)callback_kwargsrr!s rtest_invalid_keyword_arguments>TestInvalidArgumentConstructors.test_invalid_keyword_argumentssN Tt, TE2 T4 T26rcUR5 SH*nURUS9 URUS9 SSS5 M, g!,(df  M>=f)Nrrrr-)rrHrr.s rtest_missing_destination8TestInvalidArgumentConstructors.test_missing_destinationsF 3FV,$$F$3-,4,,s A A cHURS5 URS5 g)NrAz---rr!s rtest_invalid_option_strings;TestInvalidArgumentConstructors.test_invalid_option_stringss d# e$rc(URSS5 g)Nr"z+foor r!s rtest_invalid_prefix3TestInvalidArgumentConstructors.test_invalid_prefixs gv.rcXURSSS9 URS[[4S9 g)Nr"rr)rrrr!s rr1TestInvalidArgumentConstructors.test_invalid_types, gE2 gS%L9rcURSSS9 URSSS9 URSSS9 URSSSS 9 g) Nr r3r-rrr")rrz store-truezunknown action)r.r r r!s rtest_invalid_action3TestInvalidArgumentConstructors.test_invalid_actionsV d51 eE2 g.AB gl%5  7rc[R"5nURSS9 UR[5nURSSS9 SSS5 UR S[ WR55 g!,(df  N4=f)Nr3rTrqrrz+dest supplied twice for positional argument)r6r7rr rrrrrs rtest_multiple_dest2TestInvalidArgumentConstructors.test_multiple_destsm((*'   z *b   E  2+ C",,' )+ *s A99 Bc SHnURUS9 [[S9[SS9[SS/S94HCnURUS 9 UR"SS U0UD6 UR"SS U0UD6 SSS5 ME URS US S9 URS US S9 SSS5 M g!,(df  M=f!,(df  M=f)N)r/r,rr rr-rrrr!rr)attrsr r.r%rr)r r$)rHr*rr)rr.r/s rtest_no_argument_actions8TestInvalidArgumentConstructors.test_no_argument_actionss0FV,"ndo"C:68EE2,,J&JEJ,,II5I328 $$T&$B$$Sq$A-,0 32-,s#3B>)B, 1.B>, B; 6B>> C cSH=nURUS9 URSSUS9 URSSUS9 SSS5 M? g!,(df  MQ=f)N)r,rrr-r r3rrrrHrrs r!test_no_argument_no_const_actionsATestInvalidArgumentConstructors.test_no_argument_no_const_actions#sUs>5FV,$$TV$D-,6,,s 4 A cURSSS9 URSSSS9 URSS[RS9 g)Nrcparsersr-r)r.r)r.r)rr6r7r!s r"test_parsers_action_missing_paramsBTestInvalidArgumentConstructors.test_parsers_action_missing_paramsDsK Yy9 YyvF Yy*2*A*A  Crc$URSSS9 g)Nrcrr-rr!s rtest_version_missing_params;TestInvalidArgumentConstructors.test_version_missing_paramsJs Yy9rc$URSSS9 g)Nr3Trvrr!s rtest_required_positional8TestInvalidArgumentConstructors.test_required_positionalMs UT2rc ^"SS[5m"U4SjS[5n[R"5nUR TUR SUTTS9 UR TUR SUTTS9 g)Nc\rSrSrSrg)ITestInvalidArgumentConstructors.test_user_defined_action..SuccessiRr#Nrr#rrSuccessrIRrMrrJc.>\rSrSrSU4SjjrSrSrg)HTestInvalidArgumentConstructors.test_user_defined_action..ActioniUc8>US:XaUTLa UTLaT"5eggg)Nrr#)roption_stringsrUr2rrrJs rrQTestInvalidArgumentConstructors.test_user_defined_action..Action.__init__Ws2 6>'"g-"))O.("rcgr^r#rs rrQTestInvalidArgumentConstructors.test_user_defined_action..Action.__call__bsrr#N)F)r&r'r(r)rrr+)rJsrrrLUs#( , rrru)r.rr2r)rrr6r7r r)rrr=rJs @rtest_user_defined_action8TestInvalidArgumentConstructors.test_user_defined_actionPsy i  V  ((* '6#6#6!'  I '6#6#6!'  Irr#)r&r'r(r)r*rrrrr!r$rr)r,r0r4r8r;r?rBrErRr+r#rrr r sh7,00 .20 7 4 %/:7) BEF"E C :3Irr c \rSrSrSrSrSrg)TestActionsReturnedioc@[R"5nURS5nURURS5 URSS5nURURS5 URSS5nURURS5 g) Nr"r3rr\rqr r8r%)r6r7rrrUrs rr_TestActionsReturned.test_destqs((*$$W- e,$$T73 e,$$T40 c*rc 4[R"5nURSSSS[SS/SSS S 9 nUR UR S5 UR UR S5 UR URS5 UR UR[5 UR URSS/5 UR URS5 UR URS5 UR URS 5 g) Nr"rr0rrrr}BARrr)rr2rrrrNrrU) r6r7rrrrr2rrrrNrrUrs r test_miscTestActionsReturned.test_misczs((*$$WCr-/cAq6*/U%L s+ r* , c* !Q0 e, / e,rr#N)r&r'r(r)r_rZr+r#rrrUrUos + -rrUc,\rSrSrSrSrSrSrSrg)TestConflictHandlingicJUR[[RSS9 g)Nr3)conflict_handler)r rr6r7r!s r test_bad_type"TestConflictHandling.test_bad_types" *h&=&=+0  2rc[R"5nURS5 UR[RURS5 URS5 UR[RURS5 g)Nr ru)r6r7rr rXr<s rtest_conflict_error(TestConflictHandling.test_conflict_errorsn((*D! (00 --t 5H% (00 --x 9rc[RnU"SSS9nURSSS9 URSSS9 URUR 5[ R "S55 URS S S 9 URS S S 9 URUR 5[ R "S 55 g)Nrresolve)rr_r zOLD XrzNEW Xz usage: PROG [-h] [-x X] options: -h, --help show this help message and exit -x X NEW X ruOLD_SPAMrTNEW_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 )r6r7rrrPrr)rr5r=s rtest_resolve_error'TestConflictHandling.test_resolve_errors,, )DDw/Dw/ ++-x@0  Hj9Hj9 ++-x@0 rc[R"5nUR5nURSS/S9 UR [R URS5 UR [R URS5 UR [R URSS/S9 UR [R URSS/S9 g)Nfullnamealiasrr)r6r7r)r+r rX)rr=sps rtest_subparser_conflict,TestConflictHandling.test_subparser_conflicts((*  " " $ j7) 4 (00-- 5 (00-- 2 (00--:,  H (00--7)  Err#N) r&r'r(r)r`rcriror+r#rrr]r]s292 Err]cN\rSrSrSrSrSrSrSrSr Sr S r S r S r S rg )TestOptionalsHelpVersionActionsiz!Test the help and version actionscUR[5nURUR55 SSS5 UR UR 5WR R5 g!,(df  NC=fr^)r rrGr rrPrr)rr=r rs rassertPrintHelpExit3TestOptionalsHelpVersionActions.assertPrintHelpExitsY   2 3r   hnn. /4 ++-r||/B/BC4 3s A33 BcFUR[URU5 gr^)r rrGrIs rr 9TestOptionalsHelpVersionActions.assertArgumentParserErrors -v/@/@$Grc[5nURSSSSS9 URUS5 URUS5 UR[[ US5 g) NrrrrrrAr}format_versionrrrtr rBrr<s r test_version,TestOptionalsHelpVersionActions.test_versionsV+-D+iO   .   2 .'6;KLrc[SS9nURSSSSS9 UR[5nUR S/5 SSS5 UR SWR R5 g!,(df  N5=f) NPPPr!rrrz %(prog)s 3.5rzPPP 3.5 rrr rrGrrrrs rtest_version_format3TestOptionalsHelpVersionActions.test_version_formatsl+7D+iX   2 3r   tf %4 bll&9&9:4 3s A33 Bc[SS9nURSSSSS9 URUS5 URUS 5 UR[[ US 5 g) NFrrrrrrrAr}ry)rrr r rBrr<s rtest_version_no_help4TestOptionalsHelpVersionActions.test_version_no_helpsX+U;D+iO &&vt4 &&vx8 .'6;KLrc[SS9nURSSSS9 UR[5nUR S/5 SSS5 UR SWR R5 g!,(df  N5=f)Nrr!rrz %(prog)s 3.7rzXXX 3.7 rrs rtest_version_action3TestOptionalsHelpVersionActions.test_version_actionsj+7DNK   2 3r   tf %4 bll&9&9:4 3s A22 Bc[SS9nURUS5 URUS5 URUS5 URUS5 g)NFrrAr}rr)rr r<s r test_no_help,TestOptionalsHelpVersionActions.test_no_helpsL+U; &&vt4 &&vx8 &&vt4 &&v{;rc[5nURSSS9 URSSS9 URUS5 URUS5 URUS5 UR [ [ US5 g) Nr rNr-r8rrrry)rrrtr r rBrr<s rtest_alternate_help_version;TestOptionalsHelpVersionActions.test_alternate_help_versionsu+-D0D3   . &&vt4 &&v{; .'6;KLrcR[5nURSSSS9 URSSS9 URS5 /S QnUS S /-nUHZnUH nU<S U<3nM URUWS -5 URXS-5 UR[[ US5 M\ g)Nrrrrr r,r-r)r$r r3z-x barzbaz -xz --bad-optionz foo bar bazz %s rAr}ryrz)rr=valid_prefixesvalid_suffixesprefixsuffixrs r!test_help_version_extra_argumentsATestOptionalsHelpVersionActions.test_help_version_extra_argumentss+-K 5ID6C ?'>=*II$F((.7)  $ $VVd] ;  $ $Vh-> ?   ngv?O P %rr#N)r&r'r(r)r*rtr r{rrrrrrr+r#rrrrrrs8+D HM;M;<MQrrrcH\rSrSrSrSrSrSrSrSr Sr S r S r S r g ) TestStringsiz3Test str() and repr() on Optionals and PositionalscZ[[4HnURU"U5U5 M gr^)rr"r)robj result_stringrBs rassertStringEqualTestStrings.assertStringEquals$$KD   T#Y 6 rc j[R"/SQSSSS/SQSSS S 9 nS nURX5 g) N)r"rrrrrr0rrrFHELPMETAVAR rNrUrrrrrrNrzAction(option_strings=['--foo', '-a', '-b'], dest='b', nargs='+', const=None, default=42, type='int', choices=[1, 2, 3], required=False, help='HELP', metavar='METAVAR', deprecated=False))r6rr)roptionrs r test_optionalTestStrings.test_optionalsE0  3  v.rc |[R"/S[SS/SQSSSS9 nS [-nURX5 g) Nr%rr)rg?rTzH 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', deprecated=False))r6rrr)rargumentrs r test_argumentTestStrings.test_argument,sO??#   #( (  x0rcT[R"SSS9nSnURX5 g)Nr0rruzNamespace(foo=42, bar='spam')r6rrrrrs rtest_namespaceTestStrings.test_namespace>s'   BF 30 r*rcZ[R"S0SS0D6nSnURX5 g)N"quotezNamespace(**{'"': 'quote'})r#rrs r'test_namespace_starkwargs_notidentifier3TestStrings.test_namespace_starkwargs_notidentifierCs,    13. 12 r*rc^[R"SSS0SS0D6nSnURX5 g)Nr!rrrz Namespace(a=1, **{'"': 'quote'})r#rrs r2test_namespace_kwargs_and_starkwargs_notidentifier>TestStrings.test_namespace_kwargs_and_starkwargs_notidentifierHs1    6! 6W~ 67 r*rcZ[R"S0SS0D6nSnURX5 g)NvalidTzNamespace(valid=True)r#rrs r$test_namespace_starkwargs_identifier0TestStrings.test_namespace_starkwargs_identifierMs,    27D/ 2( r*rct[R"SS9nS[R-nURX5 g)Nrr!zvArgumentParser(prog='PROG', usage=None, description=None, formatter_class=%r, conflict_handler='error', add_help=True))r6r7 HelpFormatterr)rr=rs r test_parserTestStrings.test_parserRs:((f5 '55 6  v.rr#N)r&r'r(r)r*rrrrrrrrr+r#rrrrs-=7/$1$+ + + + /rrc&\rSrSrSrSrSrSrg) TestNamespacei^c[R"5nUR[[US5 [R"SSS9nUR UR S5 UR URS5 g)Nr%r0rr)r6rr rBrrr!rrs rtest_constructorTestNamespace.test_constructor`s^    ! .'2s;   " / r" v&rc[R"SSS9n[R"SSS9n[R"SS9n[R"SS9nURX5 URX5 URX5 URX#5 URX$5 UR X:g5 UR X:g5 UR X#:g5 UR X$:g5 g)Nrrr)rr!)r!r)r6rrassertNotEqual assertTrue)rns1ns2ns3ns4s r test_equalityTestNamespace.test_equalityhs  1*  1*  1%  1% " C% C% C% C%  #  #  #  #rc[R"SSS9nURURS5[5 URUR S5[5 g)Nrrr)r6rrNrNotImplemented__ne__rs r$test_equality_returns_notimplemented2TestNamespace.test_equality_returns_notimplementedxs@   !q ) biio~6 biio~6rr#N)r&r'r(r)rrrr+r#rrrr^s'$ 7rrc&\rSrSrSrSrSrSrg) TestEncodingic[RRU5upUS- n[USSS9nUR 5 SSS5 g!,(df  g=f)Nz.pyr7r ry)rbrksplitextr{rP)rrkrrFs r_test_module_encoding"TestEncoding._test_module_encodingsD''""4(   $g .! FFH/ . .s A  AcBUR[R5 gr^)rr6__file__r!s rtest_argparse_module_encoding*TestEncoding.test_argparse_module_encodings ""8#4#45rc.UR[5 gr^)rrr!s r"test_test_argparse_module_encoding/TestEncoding.test_test_argparse_module_encodings ""8,rr#N)r&r'r(r)rrrr+r#rrrrs 6-rrc\rSrSrSrSrg)TestArgumentErroriclSn[R"SU5nUR[U5U5 g)Nz my error here)r6rXrr)rr rs rtest_argument_error%TestArgumentError.test_argument_errors-&&tS1 US)rr#N)r&r'r(r)rr+r#rrrrs*rrc\rSrSrSrSrg)TestArgumentTypeErroric Sn[SSS9nURSUS9 UR[5nUR S/5 SSS5 UR SWR R5 g!,(df  N5=f) Nc.[R"S5e)Nspam!)r6ArgumentTypeErrorrs rr.spams,,W5 5rrFrXr%rrz-usage: PROG x PROG: error: argument x: spam! )rrr rrGrrr)rrr=rs rtest_argument_type_error.TestArgumentTypeError.test_argument_type_errorsu 6,%HCd+   2 3r   ug &4 J,, .4 3s A55 Br#N)r&r'r(r)rr+r#rrrrs .rrc&\rSrSrSrSrSrSrg)TestMessageContentErroric[SSS9nURS[S9 URS[SS9 URS [S S 9 UR [ 5nUR /5 SSS5 [WR5nURUS5 URUS 5 URUS 5 UR [ 5nUR S /5 SSS5 [UR5nURUS5 URUS 5 URUS 5 UR [ 5nUR S S/5 SSS5 [UR5nURUS5 URUS 5 URUS 5 g!,(df  GNR=f!,(df  N=f!,(df  N}=f)Nrr$rreq_posr-req_optTrneed_oner)rrreq_opt myXargumentz -req_opt=1) rrrrr rrGrrJrrr=rr s r%test_missing_argument_name_in_message=TestMessageContentError.test_missing_argument_name_in_messages+rBIC0JS4@JS<   2 3r   b !4",, i( i( j)   2 3r   }o .4",, i( i( j)   2 3r   }l; <4",, i( i( j)#4 3 4 3 4 3s$F;G G; G  G G,c[SSS9nURS[S9 URS[SS9 URS [S SS 9 UR [ 5nUR/5 SSS5 [WR5nURUS5 URUS 5 URUS 5 UR [ 5nURS/5 SSS5 [UR5nURUS5 URUS 5 URUS 5 g!,(df  N=f!,(df  Nk=f)Nrr$rrrz --req_optTrz --opt_optr)rrrropt_optz --req_opt=1) rrrrrr rrGrrJrrs r%test_optional_optional_not_in_message=TestMessageContentError.test_optional_optional_not_in_messages*+rBIC0KcDAKd#$(  *   2 3r   b !4",, i( i( i(   2 3r   }o .4",, i( i( i(4 3 4 3sEE E EcN[SSS9nURS5 URSSSS9 UR[5nUR /5 SSS5 [ WR 5nURUS5 URUS5 g!,(df  NH=f) Nrr$rroptional_positionalrrr) rrr rrGrrrJrrs r'test_optional_positional_not_in_message?TestMessageContentError.test_optional_positional_not_in_messages+rBI&1fM   2 3r   b !4",, i( 34 4 3s B B$r#N)r&r'r(r)rrrr+r#rrrrs*2)&5rrc\rSrSrSrSrg)TestTypeFunctionCallOnlyOnceic^U4Sjn[R"5nURSUSS9 URSR 55nTR [ SS9U5 g)Nc*>TRUS5 g)Nr foo_convertedr)string_to_convertrs rrLTestTypeFunctionCallOnlyOnce.test_type_function_call_only_once..spams   . 8"rr"rqrfz --foo spam!rr=)r6r7rrGr rrrrr=rs` r!test_type_function_call_only_once>TestTypeFunctionCallOnlyOnce.test_type_function_call_only_onces[ #((*G$>  !4!4!67 0$7rr#N)r&r'r(r)rr+r#rrrrs8rrc2\rSrSrSrSrSrSrSrSr g) TestDeprecatedArgumentsicH[R"5nURSSSS9 [5nUR SS/5 SSS5 WR 5nUR US5 URURS5S5 [5nUR SS/5 SSS5 UR 5nUR US 5 URURS5S5 [5nUR /S Q5 SSS5 UR 5nUR US5 UR US 5 URURS5S 5 [5nUR /S Q5 SSS5 UR 5nUR US5 URURS5S5 g!,(df  GN=f!,(df  GNI=f!,(df  N=f!,(df  N=f) NrAr"T) deprecatedr%warning: option '--foo' is deprecated is deprecatedr"warning: option '-f' is deprecated)r"rrAhamr)r"rr"r) r6r7rrrGrrJrrrr=rs rtest_deprecated_option.TestDeprecatedArguments.test_deprecated_options((*D'd;  &   w/ 0" !HI o6:  &   tVn -" !EF o6:  &   < =" !HI !EF o6:  &   ? @" !HI o6:/      s/GG0H>H G-0 G? H H!c`[R"5nURSS[RSS9 [ 5nUR S/5 SSS5 WR 5nURUS5 URURS5S5 [ 5nUR S/5 SSS5 UR 5nURUS5 URURS5S5 [ 5nUR S /5 SSS5 UR 5nURUS 5 URURS5S5 [ 5nUR SS /5 SSS5 UR 5nURUS5 URUS 5 URURS5S 5 g!,(df  GN=f!,(df  GNH=f!,(df  N=f!,(df  N=f) NrAr"T)r.r r rrrrz(warning: option '--no-foo' is deprecatedr) r6r7rrrrGrrJrrrs rtest_deprecated_boolean_option6TestDeprecatedArguments.test_deprecated_boolean_options((*D'(2P2P]ab  &   wi (" !HI o6:  &   tf %" !EF o6:  &   zl +" !KL o6:  &   w 3 4" !HI !KL o6:/       s0G*(G<H8H* G9< H  H H-cJ[R"5nURSSSS9 URSSSS9 [5nUR /5 SSS5 WR 5nUR URS5S5 [5nUR S/5 SSS5 UR 5nURUS 5 UR URS5S 5 [5nUR SS /5 SSS5 UR 5nURUS 5 URUS 5 UR URS5S 5 g!,(df  GN$=f!,(df  N=f!,(df  N=f)Nr3rTrr rqrrr%warning: argument 'foo' is deprecatedrrz%warning: argument 'bar' is deprecatedr r6r7rrrGrrrrJrs rtest_deprecated_arguments1TestDeprecatedArguments.test_deprecated_arguments<sN((*E>E>  &   b !" o6:  &   vh '" !HI o6:  &   vuo ." !HI !HI o6:!     s$E1F?F1 F F F"c[R"5nURSSSS9 [5nUR /5 SSS5 WR 5nUR URS5S5 [5nUR S/5 SSS5 UR 5nURUS5 UR URS5S 5 [5nUR SS /5 SSS5 UR 5nURUS5 UR URS5S 5 g!,(df  GN=f!,(df  N=f!,(df  Nu=f) Nr3rTrrrrrrrrrs rtest_deprecated_varargument3TestDeprecatedArguments.test_deprecated_varargumentSs(((*E>  &   b !" o6:  &   vh '" !HI o6:  &   vuo ." !HI o6:     s#EE .E1 E E.1 E?cH[R"5nUR5nURSS/SS9 URS5 [ 5nUR S/5 SSS5 WR 5nURURS5S5 [ 5nUR S/5 SSS5 UR 5nURUS5 URURS5S 5 [ 5nUR S/5 SSS5 UR 5nURUS 5 URURS5S 5 g!,(df  GN=f!,(df  N=f!,(df  Nu=f) Nr3rrT)rr rqrrz$warning: command 'foo' is deprecatedrz$warning: command 'baz' is deprecated) r6r7r)r+rrGrrrrJ)rr=r.rs rtest_deprecated_subparser1TestDeprecatedArguments.test_deprecated_subparserhsF((***, eeWFe$  &   ug &" o6:  &   ug &" !GH o6:  &   ug &" !GH o6:     s$E0)FF0 E? F F!r#N) r&r'r(r)rrrrr!r+r#rrr r s;:;:;.;*;rr c,\rSrSrSrSrSrSrSrg)TestTypeFunctionCalledOnDefaultic^U4Sjn[R"5nURSUSS9 UR/5nTR [ SS9U5 g)Nc*>TRUS5 g)Nrrr)int_to_convertrs rr]TestTypeFunctionCalledOnDefault.test_type_function_call_with_non_string_default..spams   ^Q /"rr"rrfr=r6r7rrGrrrs` r/test_type_function_call_with_non_string_defaultOTestTypeFunctionCalledOnDefault.test_type_function_call_with_non_string_defaultsQ #((*G$:  $ D)rcSn[R"5nURSUSS9 UR/5nUR [ SS9U5 g)Ncg)Nrr#)r's rrYTestTypeFunctionCalledOnDefault.test_type_function_call_with_string_default..spams"rr"0rfrr=r)rs r+test_type_function_call_with_string_defaultKTestTypeFunctionCalledOnDefault.test_type_function_call_with_string_defaultsQ #((*G$<  $ 0$7rcSn[R"5nURSUSS9 UR/5nUR [ SS9U5 g)Nc US-$)Nrr#)str_to_converts rrYTestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_default..extends !C' 'r--testrrfz**)rr))rrr=rs r)test_no_double_type_conversion_of_defaultITestTypeFunctionCalledOnDefault.test_no_double_type_conversion_of_defaultsR (((*H63?  $ -rc[R"5nURSS[/SS9 UR /5nUR UR /5 g)Nr6rr)rUrrr.)r6r7rrrGrrrIs rtest_issue_159060TestTypeFunctionCalledOnDefault.test_issue_15906sT((*H6$&x  9  $ B'rr#N) r&r'r(r)r*r0r7r:r+r#rrr$r$s *8 .(rr$c>\rSrSrSrSrSrSrSrSr Sr S r g ) TestParseKnownArgsicP[R"5nURS5 g)Nr#r6r7rGr<s rtest_arguments_tuple'TestParseKnownArgs.test_arguments_tuple((*"rcP[R"5nUR/5 gr^r?r<s rtest_arguments_list&TestParseKnownArgs.test_arguments_listrBrcr[R"5nURS5 URS5 g)Nr%r$r6r7rrGr<s rtest_arguments_tuple_positional2TestParseKnownArgs.test_arguments_tuple_positionals,((*C &!rct[R"5nURS5 URS/5 g)Nr%rGr<s rtest_arguments_list_positional1TestParseKnownArgs.test_arguments_list_positionals.((*C 3% rc[R"5nURS5 URSR 55up#UR [ SS9U5 UR SS/U5 g)Nr"z--foo F --bar --bazFr=r\r)r6r7rrGr rr)rr=rextrass rtest_optionals!TestParseKnownArgs.test_optionalssc((*G$../D/J/J/LM  d+ '7+V4rc([R"5nURSSS[S9 URSSS9 URS5 /S QnUR U5up4UR [ S S S S 9U5 UR /SQU5 g)Nrrr)rr2rrurr-ra)rorr"rr.rrTro)vrra)rr"r)r6r7rrrGrr)rr=rrrOs r test_mixedTestParseKnownArgs.test_mixeds((*D13?H];H%2..t4  ad37> ,f5rc[R"5nURSSSS9 UR/5nUR [ /S9U5 g)Nr%rr)rrr$r)rIs rtest_zero_or_more_optional-TestParseKnownArgs.test_zero_or_more_optionalsI((*CsJ?  $ b4(rr#N) r&r'r(r)r@rDrHrKrPrTrWr+r#rrr=r=s%" ! 5 6)rr=c8\rSrSrSrSrSrSrSrSr Sr g ) TestDoubleDashicP[R"SS9nURSS5 URSSS9 URS/5nUR [ S /S 9U5 UR [RS URSS /5 URS /5nUR [ S /S 9U5 UR [RS URSS /5 UR/S Q5nUR [ SSS/S 9U5 UR/SQ5nUR [ SSS/S 9U5 UR/SQ5nUR [ S/SQS 9U5 UR/SQ5nUR [ S/SQS 9U5 g)NFrTrAr"rqrr--foo=--rAruz(argument -f/--foo: expected one argument-f--)r"r!rArrr!rr)r!rr"r)r!rArr"r)r!rArrArr"r)r!rrArr"r)r6r7rrGrrrWrXrIs rtest_single_argument_option*TestDoubleDash.test_single_argument_options((u=D'*E-  *. "-t4 x55 6    0  &* "-t4 x55 6   d| -  !?@ #s4d;  !9: #s4d;  !?@ *BCTJ  !JK *MNPTUrc[R"SS9nURSSSS9 URSSS9 URS/5nUR [ S //S 9U5 URSS /5nUR [ //S 9U5 URS /5nUR [ S //S 9U5 URSS /5nUR [ //S 9U5 UR/S Q5nUR [ S S/SS/S 9U5 UR/SQ5nUR [ SS/S S/S 9U5 UR/SQ5nUR [ S/SQS 9U5 UR /SQ5up#UR [ S/S S/S 9U5 UR US S/5 g)NFrTrAr"rrrqr\rArur])r"r!rrArrr!rrr)r!rr"rr)r!rArr"rr)r!rr"rrAr)r6r7rrGrrrG)rr=rrs rtest_multiple_argument_option,TestDoubleDash.test_multiple_argument_options((u=D'5E-  *. B/6  '41 +T2  &* B/6  $. +T2  !DE c c ;TB  !>? c c ;TB  !DE *GH$O,,-PQ  C:6= c{+rcD[R"SS9nURS5 URSSS9 UR/SQ5nUR [ SS S /S 9U5 UR/S Q5nUR [ SS S /S 9U5 UR/S Q5nUR [ SS S /S 9U5 UR/SQ5nUR [ S/SQS 9U5 UR/SQ5nUR [ S/S QS 9U5 g)NFrTr3rqrrrAr!rrr!rrrur!rArrr!rrArr!rArrArrrAr)rArAr!rArrrAr)rIs rtest_multiple_double_dashes*TestDoubleDash.test_multiple_double_dashess ((u=E"E-  !67 #s4d;  !67 #s4d;  !67 #s4d;  !<= )9:DA  !BC *?@$Grc[R"SS9nURS5 URSSS9 UR/SQ5nUR [ SS S /S 9U5 UR/S Q5nUR [ SS S /S 9U5 UR/S Q5nUR [ S/SQS 9U5 UR/SQ5nUR [ S/SQS 9U5 [R"SS9nURS5 URSSS9 UR/SQ5nUR [ S/SQS 9U5 g)NFrTr3rqrrrdr!rrrurerfrhrgr")r"r!rArrAr)rArrArr)rIs rtest_remainderTestDoubleDash.test_remainder"s7((u=E"E/  !67 #s4d;  !67 #s4d;  !67 )9:DA  !<= )9:DA((u=G$E/  !EF )?@$Grc.[R"SS9nURS5 UR5nUR S5nURS5 URSSS9 UR /S Q5nUR [S S S S /S9U5 UR /SQ5nUR [S S/SQS9U5 UR /SQ5nUR [S S/SQS9U5 UR /SQ5nUR [S S/SQS9U5 UR /SQ5nUR [S S S S /S9U5 UR /SQ5nUR [S S S S /S9U5 UR /SQ5nUR [S S/SQS9U5 UR /SQ5nUR [S S/SQS9U5 UR[RSUR /SQ5 g)NFrTr3rbrArqrr)r%rbr!rrArr%rr!rr3rFrq)r%rbr!rrArAr)r!rrAr)r%rbr!rArrAr)r%rbrAr!rrAr)r%rArbr!rrAr)rAr%rbr!rrAr)r%rbrAr!rAr)r!rAr)r%rArbrAr!rArinvalid choice: '--')rAr%rArbr!r r6r7rr)r+rGrrrWrXrr=r.r0rs rtest_subparserTestDoubleDash.test_subparser6s((u=E"**, ''.T"U#.  !BC sc ;TB  !HI t1FGN  !HI t1FGN  !HI t1FGN  !HI sc ;TB  !HI sc ;TB  !CD t1ABDI  !IJ t1ABDI x55 "   A Crc[R"SS9nURSSS9 UR5nUR S5nURS5 URSSS9 UR /S Q5nUR [S S /S S S/S9U5 UR[RSUR /SQ5 g)NFrTr"rrrbrArq) r"r%rrArbr!rrArr%rrr!rrorp)r"r%rArArbr!rrqrrs r-test_subparser_after_multiple_argument_optionrc$URSSS9 g)Nr"rrr!s rtest_nargs_None_metavar_length36TestAddArgumentMetavar.test_nargs_None_metavar_length3s T?Crc$URSSS9 g)Nrrrrrr!s r"test_nargs_optional_metavar_string9TestAddArgumentMetavar.test_nargs_optional_metavar_string !!S!9rc4URS[5S9 g)Nrrrr!s r#test_nargs_optional_metavar_length0:TestAddArgumentMetavar.test_nargs_optional_metavar_length0 S%':rc$URSSS9 g)Nrr(rrr!s r#test_nargs_optional_metavar_length1:TestAddArgumentMetavar.test_nargs_optional_metavar_length1 !!V!rc$URSSS9 g)Nrrrrr!s r$test_nargs_remainder_metavar_length2;TestAddArgumentMetavar.test_nargs_remainder_metavar_length29s !!z!Brc$URSSS9 g)Nrr"rrr!s r$test_nargs_remainder_metavar_length3;TestAddArgumentMetavar.test_nargs_remainder_metavar_length3<s !!!Grc$URSSS9 g)NA...rrrrr!s r test_nargs_parser_metavar_string7TestAddArgumentMetavar.test_nargs_parser_metavar_stringAs !!!rc$URSSS9 g)Nrr"rrr!s rtest_nargs_2_metavar_length33TestAddArgumentMetavar.test_nargs_2_metavar_length3or rc$URSSS9 g)Nrrrrrr!s rtest_nargs_3_metavar_string2TestAddArgumentMetavar.test_nargs_3_metavar_stringtr rc4URS[5S9 g)Nrrrr!s rtest_nargs_3_metavar_length03TestAddArgumentMetavar.test_nargs_3_metavar_length0wr rc$URSSS9 g)Nrr(rrr!s rtest_nargs_3_metavar_length13TestAddArgumentMetavar.test_nargs_3_metavar_length1zr rc$URSSS9 g)Nrrrrr!s rtest_nargs_3_metavar_length23TestAddArgumentMetavar.test_nargs_3_metavar_length2}r rc$URSSS9 g)Nrr"rrr!s rtest_nargs_3_metavar_length33TestAddArgumentMetavar.test_nargs_3_metavar_length3s !!?!Crr#N)5r&r'r(r)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r r r r r r r r# r& r) r, r/ r2 r+r#rrrrsECF;<>?D :;=>C :;=AC :;:AC <@?CH =>@AF 89;<A 898?A 898<Drrc4\rSrSrSrSrSrSrSrSr Sr g ) TestInvalidNargsizinvalid nargs valueznargs for store actions must be != 0; if you have nothing to store, actions such as store true or store const may be more appropriatec[R"5nUR[5nUR SUS9 SSS5 UR WR RSUR5 g!,(df  NB=fNr"rr) r6r7r rrrrrEXPECTED_RANGE_MESSAGErrr=rs rdo_test_range_exception(TestInvalidNargs.do_test_range_exceptionsf((*   z *b   u  5+ **1-t/J/JK+ *rc[R"5nUR[5nUR SUS9 SSS5 UR WR RSUR5 g!,(df  NB=fr7 ) r6r7r rrrrrEXPECTED_INVALID_MESSAGEr9 s rdo_test_invalid_exception*TestInvalidNargs.do_test_invalid_exceptionsf((*   z *b   u  5+ **1-t/L/LM+ *rc@URSS9 URSS9 g)Nr!rabcd)r> r!s rtest_nargs_alphabetic&TestInvalidNargs.test_nargs_alphabetics$ &&S&1 &&V&4rc"URSS9 g)Nrr)r: r!s rtest_nargs_zero TestInvalidNargs.test_nargs_zeros $$1$-rr#N) r&r'r(r)r= r8 r: r> rB rE r+r#rrr5 r5 s'4LL N5.rr5 c \rSrSrSrSrSrg)TestImportStaricp[RH"nUR[[U55 M$ gr^)r6__all__rrrJs rrTestImportStar.tests%$$D OOGHd3 4%rcP[[5R5VVs/sHDupURS5(aMUS:XaM%[R "U5(aMBUPMF nnnUR [U5[[R55 gs snnf)Nrngettext) rr6r startswithinspectismodulerrrJ )rrtrrs r'test_all_exports_everything_but_modules6TestImportStar.test_all_exports_everything_but_moduless $H~335 5 OOC( ,0J,> ##E* 5  x/?/?(@A  sB"B" B"&B"r#N)r&r'r(r)rrQ r+r#rrrH rH s 5BrrH c.^\rSrSrU4SjrSrSrU=r$)TestWrappingMetavaricz>[TU]5 [S5UlSnURR SUS9 g)N9this_is_spammy_prog_with_a_long_name_sorry_about_the_namezz--proxyrT)rrXrr=r)rrrs rrXTestWrappingMetavar.setUps9  0 G  -   G ] options: -h, --help show this help message and exit --proxy )r=rPrrr)r help_texts rtest_help_with_metavar*TestWrappingMetavar.test_help_with_metavars4KK++-  HOO5% rr=)r&r'r(r)rXrZ r+r,r-s@rrT rT s=  rrT c\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrg)TestExitOnErroricv[R"SSS9UlURRSS[S9 g)NFr)rUrz --integersN)rr)r6r7r=rrr!s rrXTestExitOnError.setUps3--EDGI    s ErcURRSR55nURU[R "SS95 g)Nz --integers 4r)integers)r=rGr rr6rrs r!test_exit_on_error_with_good_args1TestExitOnError.test_exit_on_error_with_good_argss: [[ # #N$8$8$: ; X//;#7#7#9 :7 6 6s *A A!cUR[RSURRSR 55 gNz!unrecognized arguments: --foo barr)rWr6rXr=rGr r!s rtest_unrecognized_args&TestExitOnError.test_unrecognized_argss4 x55B#{{55{7H7H7J LrcUR[RSURRSR 55 grj )rWr6rXr=r}r r!s r!test_unrecognized_intermixed_args1TestExitOnError.test_unrecognized_intermixed_argss4 x55B#{{@@+BSBSBU WrcURRS5 URRS5 UR[RSURR /5 g)Nrqrr/the following arguments are required: bar, baz$r=rrWr6rXrGr!s rtest_required_args"TestExitOnError.test_required_argssN   '   ' x55P#{{55r ;rcURRS5 URRSSS9 UR[RSURR /5 g)NrqrrBaZrTz/the following arguments are required: bar, BaZ$rr r!s rtest_required_args_with_metavar/TestExitOnError.test_required_args_with_metavarsS   '    6 x55P#{{55r ;rcURRS5 URRSSS9 UR[RSURR /5 g)Nrqrrrrrq rr r!s rtest_required_args_n$TestExitOnError.test_required_args_nsS   '   a 0 x55P#{{55r ;rcURRS5 URRSSSS9 UR[RSURR /5 g)Nrqrrr)rorrrz3the following arguments are required: bar, B, A, Z$rr r!s r!test_required_args_n_with_metavar1TestExitOnError.test_required_args_n_with_metavarsU   '   a I x55T#{{55r ;rcURRS5 URRSSS9 UR[RSURR /5 g)Nrqrrrr*the following arguments are required: bar$rr r!s rtest_required_args_optional+TestExitOnError.test_required_args_optionalS   '   c 2 x55K#{{55r ;rcURRS5 URRSSS9 UR[RSURR /5 g)Nrqrrrrr rr r!s rtest_required_args_zero_or_more/TestExitOnError.test_required_args_zero_or_morer rcURRS5 URRSSS9 UR[RSURR /5 g)Nrqrrrrrq rr r!s rtest_required_args_one_or_more.TestExitOnError.test_required_args_one_or_moresS   '   c 2 x55P#{{55r ;rcURRS5 URRSSSS9 UR[RSURR /5 g)Nrqrrr)BaZ1BaZ2rz9the following arguments are required: bar, BaZ1\[, BaZ2]$rr r!s r+test_required_args_one_or_more_with_metavar;TestExitOnError.test_required_args_one_or_more_with_metavarsV   '   c;K L x55[#{{55r ;rcURRS5 URRSSS9 UR[RSURR /5 g)Nrqrrrrr rr r!s rtest_required_args_remainder,TestExitOnError.test_required_args_remaindersS   '   e 4 x55K#{{55r ;rcURRSS9nURS5 URS5 UR[R SURR /5 g)NTrvr\rz,one of the arguments --bar --baz is requiredr=rrrWr6rXrGrrs r%test_required_mutually_exclusive_args5TestExitOnError.test_required_mutually_exclusive_args$s] 88$8G 7# 7# x55M#{{55r ;rc\URR5nURS5 URSSSS9 UR[R SURR /SQ5 UR[R SURR /S Q5 g) Nr\rrrrv rz.argument BaZ: not allowed with argument --bar$r\r!rz.argument --bar: not allowed with argument BaZ$r!r\rr r s r>test_conflicting_mutually_exclusive_args_optional_with_metavarNTestExitOnError.test_conflicting_mutually_exclusive_args_optional_with_metavar,s 88: 7# 5U; x55O#{{557J L x55O#{{557J Lrc\URR5nURS5 URSSSS9 UR[R SURR /SQ5 UR[R SURR /S Q5 g) Nr\rrr)BAZ1rz/argument BAZ1: not allowed with argument --bar$r z/argument --bar: not allowed with argument BAZ1$r r r s rCtest_conflicting_mutually_exclusive_args_zero_or_more_with_metavar1STestExitOnError.test_conflicting_mutually_exclusive_args_zero_or_more_with_metavar17s 88: 7# 5Y? x55P#{{557J L x55P#{{557J Lrc\URR5nURS5 URSSSS9 UR[R SURR /SQ5 UR[R SURR /S Q5 g) Nr\rrr)r BAZ2rz8argument BAZ1\[, BAZ2]: not allowed with argument --bar$r z8argument --bar: not allowed with argument BAZ1\[, BAZ2]$r r r s rCtest_conflicting_mutually_exclusive_args_zero_or_more_with_metavar2STestExitOnError.test_conflicting_mutually_exclusive_args_zero_or_more_with_metavar2Bs 88: 7# 55EF x55Z#{{557J L x55Z#{{557J Lrc`URRS5 URRSSS9 URRS5 UR[RSURR S/5 UR[RSURR S /5 UR[RS URR /S Q5 UR[RSURR /S Q5 g) Nrrr,r---fooglez7ambiguous option: --foob could match --foobaz, --fooblerz:ambiguous option: --foob=1 could match --foobaz, --fooble$--foob=1z8ambiguous option: --foob could match --foobaz, --fooble$)rrrr r)r r rrr r!s rtest_ambiguous_option%TestExitOnError.test_ambiguous_optionMs   ,   L A   , x55I KK " "XJ 0 x55L KK " "ZL 2 x55J KK " "$D F x55L KK " "$A CrcURRS5 UR[RSURR S/5 g)Nrz)No such file or directory: 'no-such-file'z @no-such-filerr r!s r test_os_errorTestExitOnError.test_os_error^s@   ( x55J#{{557H Jrr\ N)r&r'r(r)rXrd rg rk rn rs rw rz r} r r r r r r r r r r r r+r#rrr^ r^ snF =;L W ;;;;;;;;;; L L LC"Jrr^ c\rSrSrSrSrg)TestTranslationsiic.UR[5 gr^)assertMsgidsEqualr6r!s rtest_translations"TestTranslations.test_translationsks x(rr#N)r&r'r(r)r r+r#rrr r is)rr c@0[l[5[lgr^)rGrOrrnr#rrtearDownModuler osEJEJr__main__rz--snapshot-update(r8rErO rr=rbrormrrr_unittestr6renumr test.supportrrtest.support.i18n_helperrrr TextIOWrapperr rOr/skip_unless_working_chmodrr[rrrrrr7rrrrrrr+r:r@rPrRrXrZrhrkrtrrrrrrrrrrrrrrrrrrrrrr r rrrr#r0r3r5r:r<r\r`rbrergrirkrmrortrwryr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr9r`r eq_stderrrlr eq_bstderrrGrUrbrhrnskip_if_dac_overridervrrrrrrrrrrrrrrrrrr1rYrernrsr{rrrrrrrrrrrrrrrrrrrrrr$r3r7r9r?rDrHrNrRrWr\r_rdrjrlrnrprrrtrrrrrrrrrrrrrrrrrrrrrrrr rUr]rrrrrrrrrr r$r=rZryrrr5 rH rT r^ r r r&lenrr;mainr#rrr sr   ("W:""":$FH%%F:x   $$D6D%D.& ) )%)%# L >!8!8 >q9Dq9f  &'7C n n4 .  ^  ~. >  n .$&N&(,. ^    > ...>&.">" N ~NN>>>@     > & ^   ~&N"~"n"n&N&  @~NN ^  N N>. > >(" ~  $   ~n^N n ^N.,., >  ^  N > .  .    ~"    >&~& .    ^6.2(.**L.*Z\>DKxK0hh,,, W % h ' h ' n -  /  / /F/"L.03<3"\>.'F'" L. , L. &  \>      ]   ,8,,  $ ~ .,>,>8>.>N>BJXJ$~TT0[[B!+H!+NMMf@&x@&D1?f1?h  '8  F((V 7H B! '8! H* (* Z' '8' T% 7H% P' ' R/('8/(d  GX  F  w  F  (  Lf  -   (   &   1   0   7   0   > X0hX0|8X8. "( "&Q1$Q1f  *>5"E " l" H3B|3Bl, <, ^ >1<1h%%P3 3 l6L6r<,\>L:!|!H<2##L<D!L!H\4|01\1ha7Xa7H+ +\\" < L*|(L4*|(<*\.<0<6\8.l.b-\-`0|0dL( L 2  :' ' V<:%%XEIhEIV-(-<3E83EtEQhEQXE/(E/V7H7J -8 -$** .H .$65h65z 88 8"};h};H+(h+(b*)*)Z|LX|LF\T\T~))0eDXeDP.x.@ BX B (0VJhVJz)+)   z 388}qSXXa[,??$X.   MMO r