:K`lSSKrSSKrSSKrSSKrSSKrSrSr"SS\R5r\ "\SS5(d8\ "\5H,r \ RS5(dM\ S:wdM#\ "\\ 5 M. \S :Xa\R"5 gg) Nux|x| foo bar|foo|bar| foo bar|foo|bar| foo bar |foo|bar| foo bar bla fasel|foo|bar|bla|fasel| x y z xxxx|x|y|z|xxxx| \x bar|\|x|bar| \ x bar|\|x|bar| \ bar|\|bar| foo \x bar|foo|\|x|bar| foo \ x bar|foo|\|x|bar| foo \ bar|foo|\|bar| foo "bar" bla|foo|"bar"|bla| "foo" "bar" "bla"|"foo"|"bar"|"bla"| "foo" bar "bla"|"foo"|bar|"bla"| "foo" bar bla|"foo"|bar|bla| foo 'bar' bla|foo|'bar'|bla| 'foo' 'bar' 'bla'|'foo'|'bar'|'bla'| 'foo' bar 'bla'|'foo'|bar|'bla'| 'foo' bar bla|'foo'|bar|bla| blurb foo"bar"bar"fasel" baz|blurb|foo"bar"bar"fasel"|baz| blurb foo'bar'bar'fasel' baz|blurb|foo'bar'bar'fasel'|baz| ""|""| ''|''| foo "" bar|foo|""|bar| foo '' bar|foo|''|bar| foo "" "" "" bar|foo|""|""|""|bar| foo '' '' '' bar|foo|''|''|''|bar| \""|\|""| "\"|"\"| "foo\ bar"|"foo\ bar"| "foo\\ bar"|"foo\\ bar"| "foo\\ bar\"|"foo\\ bar\"| "foo\\" bar\""|"foo\\"|bar|\|""| "foo\\ bar\" dfadf"|"foo\\ bar\"|dfadf"| "foo\\\ bar\" dfadf"|"foo\\\ bar\"|dfadf"| "foo\\\x bar\" dfadf"|"foo\\\x bar\"|dfadf"| "foo\x bar\" dfadf"|"foo\x bar\"|dfadf"| \''|\|''| 'foo\ bar'|'foo\ bar'| 'foo\\ bar'|'foo\\ bar'| "foo\\\x bar\" df'a\ 'df'|"foo\\\x bar\"|df'a|\|'df'| \"foo"|\|"foo"| \"foo"\x|\|"foo"|\|x| "foo\x"|"foo\x"| "foo\ "|"foo\ "| foo\ xx|foo|\|xx| foo\ x\x|foo|\|x|\|x| foo\ x\x\""|foo|\|x|\|x|\|""| "foo\ x\x"|"foo\ x\x"| "foo\ x\x\\"|"foo\ x\x\\"| "foo\ x\x\\""foobar"|"foo\ x\x\\"|"foobar"| "foo\ x\x\\"\''"foobar"|"foo\ x\x\\"|\|''|"foobar"| "foo\ x\x\\"\'"fo'obar"|"foo\ x\x\\"|\|'"fo'|obar"| "foo\ x\x\\"\'"fo'obar" 'don'\''t'|"foo\ x\x\\"|\|'"fo'|obar"|'don'|\|''|t'| 'foo\ bar'|'foo\ bar'| 'foo\\ bar'|'foo\\ bar'| foo\ bar|foo|\|bar| foo#bar\nbaz|foobaz| :-) ;-)|:|-|)|;|-|)| áéíóú|á|é|í|ó|ú| u1x|x| foo bar|foo|bar| foo bar|foo|bar| foo bar |foo|bar| foo bar bla fasel|foo|bar|bla|fasel| x y z xxxx|x|y|z|xxxx| \x bar|x|bar| \ x bar| x|bar| \ bar| bar| foo \x bar|foo|x|bar| foo \ x bar|foo| x|bar| foo \ bar|foo| bar| foo "bar" bla|foo|bar|bla| "foo" "bar" "bla"|foo|bar|bla| "foo" bar "bla"|foo|bar|bla| "foo" bar bla|foo|bar|bla| foo 'bar' bla|foo|bar|bla| 'foo' 'bar' 'bla'|foo|bar|bla| 'foo' bar 'bla'|foo|bar|bla| 'foo' bar bla|foo|bar|bla| blurb foo"bar"bar"fasel" baz|blurb|foobarbarfasel|baz| blurb foo'bar'bar'fasel' baz|blurb|foobarbarfasel|baz| ""|| ''|| foo "" bar|foo||bar| foo '' bar|foo||bar| foo "" "" "" bar|foo||||bar| foo '' '' '' bar|foo||||bar| \"|"| "\""|"| "foo\ bar"|foo\ bar| "foo\\ bar"|foo\ bar| "foo\\ bar\""|foo\ bar"| "foo\\" bar\"|foo\|bar"| "foo\\ bar\" dfadf"|foo\ bar" dfadf| "foo\\\ bar\" dfadf"|foo\\ bar" dfadf| "foo\\\x bar\" dfadf"|foo\\x bar" dfadf| "foo\x bar\" dfadf"|foo\x bar" dfadf| \'|'| 'foo\ bar'|foo\ bar| 'foo\\ bar'|foo\\ bar| "foo\\\x bar\" df'a\ 'df"|foo\\x bar" df'a\ 'df| \"foo|"foo| \"foo\x|"foox| "foo\x"|foo\x| "foo\ "|foo\ | foo\ xx|foo xx| foo\ x\x|foo xx| foo\ x\x\"|foo xx"| "foo\ x\x"|foo\ x\x| "foo\ x\x\\"|foo\ x\x\| "foo\ x\x\\""foobar"|foo\ x\x\foobar| "foo\ x\x\\"\'"foobar"|foo\ x\x\'foobar| "foo\ x\x\\"\'"fo'obar"|foo\ x\x\'fo'obar| "foo\ x\x\\"\'"fo'obar" 'don'\''t'|foo\ x\x\'fo'obar|don't| "foo\ x\x\\"\'"fo'obar" 'don'\''t' \\|foo\ x\x\'fo'obar|don't|\| 'foo\ bar'|foo\ bar| 'foo\\ bar'|foo\\ bar| foo\ bar|foo bar| foo#bar\nbaz|foo|baz| :-) ;-)|:-)|;-)| áéíóú|áéíóú| c\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrg) ShlexTestc[R5Vs/sHnURS5SSPM snUl[R5Vs/sHnURS5SSPM snUlURHnUSR SS5US'M URHnUSR SS5US'M gs snfs snf)N|rz\n )data splitlinessplit posix_datareplace)selfxitems 6/opt/alt/python313/lib64/python3.13/test/test_shlex.pysetUpShlexTest.setUps"oo/1/WWS\#2&/1 %/$9$9$;=$;q773<,$;=IID1gooeT2DGOOD1gooeT2DG$ 1=s CCc [[U55HJn[R"XSUS9nUR XAUSSXS<SU<SXSS<35 ML g)Nrcomments:  != )rangelenshlexr assertEqual)rr rils r splitTestShlexTest.splitTests_s4y!A DGAJ:A   QQ "gaj!TWQR[: ;"c/n[R"[R"U55nUR5nU(a*UR U5 UR5nU(aM*U$N)rioStringIO get_tokenappend)rsretlextoks roldSplitShlexTest.oldSplitsOkk"++a.)mmo JJsO--/Cc r#cUR[5 [R"S5 SSS5 g!,(df  g=fr%) assertRaises ValueErrorrr rs r testSplitNoneShlexTest.testSplitNones(   z * KK + * *s 6 Ac8URURSS9 g)z%Test data splitting with posix parserTrN)r!r r3s rtestSplitPosixShlexTest.testSplitPosixs t6r#c *[[UR55HqnURURUS5nUR X RUSSURUS<SU<SURUSS<35 Ms g)zTest compatibility interfacerrNrr)rrr r.r)rrr s r testCompatShlexTest.testCompats{s499~&A diil1o.A   Q ! QR 0"iil1oq$))A,qr2BD E'r#c SHunSU-SU-/nSSUSS/n[R"US5HFupE[R"USS 9nXVl[ U5nUR X7S U<S U<S 35 MH Mw g )z)Test handling of syntax splitting of &, |) &&&z|&;&;;&||rz&|z;|z;;|echo hi %s echo byeecho hi%secho byeechohibyeFTTpunctuation_charsWhile splitting '' [ws=]N itertoolsproductrwhitespace_splitlistrr delimitersrcrefsswsr*results rtestSyntaxSplitAmpersandAndPipe)ShlexTest.testSyntaxSplitAmpersandAndPipes 8I(94&24C4FE:C#++C?KKd;%'"a  fCEr!JL @ 8r#c SHynSU-SU-SU-/nSSUSS/n[R"US5HFupE[R"US S 9nXVl[ U5nUR X7S U<S U<S 35 MH M{ g)z&Test handling of syntax splitting of ;);z;;r?r@rBzecho hi%s echo byerCrDrErFrGTrHrJrKrLNrMrRs rtestSyntaxSplitSemicolon"ShlexTest.testSyntaxSplitSemicolons2I(94')3&24C4FE:C#++C?KKd;%'"a  fCEr!JL @ 2r#c SHrnSU-SU-SU-/nSSUS/n[R"US5H@upE[R"US S 9n[U5nUR X7S U<S U<S 35 MB Mt g)z&Test handling of syntax splitting of >)r>zb-c --color=autorAd*.py?rrHzWhile splitting '%s' [ws=False])z~/a&&b-crjrArkrlTzWhile splitting '%s' [ws=True]N)rrQrrP)rrVrUr*rXs rtestSyntaxSplitCustomShlexTest.testSyntaxSplitCustomsw -J KKc 2a &G"&LM> KKc 2!a &F&KLr#cS/SQ44Hzup[R"USS9n/nUR5nXSR:XaO,USUR;aSnOSnUR XV45 MLUR XB5 M| g) z2Test that tokens are split with types as expected.z a && b || c))arp)r=c)brp)rArq)rqrpTrHrrqrpN)rr(eofrIr)r)rsourceexpectedr*observedttts rtestTokenTypesShlexTest.testTokenTypess"/";!<! F  Fd;AHKKM:Q41...BB(   X 0!! r#c[R"SSS9nURSUR5 UR[ U5/SQ5 g)z:Test that any punctuation chars are removed from wordcharsa_b__c_rH)rpr}rr__rqN)r assertNotIn wordcharsrrQrr*s rtestPunctuationInWordChars$ShlexTest.testPunctuationInWordCharss; KKC 8 akk* a"<=r#c[R"SSS9nUR[U5/SQ5 [R"SSS9nSUlUR[U5/SQ5 g)z9Test that with whitespace_split, behaviour is as expectedza && b || cr>rH)rpr=rrrrrqT)rpr=rrrArqN)rrrQrPrs r"testPunctuationWithWhitespaceSplit,ShlexTest.testPunctuationWithWhitespaceSplitsZ KK(C @ a"AB KK(C @! a"=>r#c[R"SSSS9nUR[U5/SQ5 [R"SSSS9nUR[U5/SQ5 g)z@Test that punctuation_chars and posix behave correctly together.zf >"abc"TposixrI)f>abcz f >\"abc\")rrz"abc"N)rrrQrs rtestPunctuationWithPosix"ShlexTest.testPunctuationWithPosix$sR KK $$ G a"34 KKdd K a"56r#c/SQnSH5n[R"SSUS9n[U5nURXA5 M7 /SQn[R"SSS9nUR[U5U5 g) z8Test that parsing of empty strings is correctly handled.)rfrrGz'')abcTr)''rfrrHN)rrQr)rrupunctr*slists rtestEmptyStringHandling!ShlexTest.testEmptyStringHandling,sg$"E HDEJAGE   U -#& KKD 9 a(+r#cSnS/n[R"USS9nSUlUR[U5U5 /SQn[R"USS9nUR[U5U5 g)z;Test punctuation_chars and whitespace_split handle unicode.uℙƴ☂ℌøἤTrH)uℙuƴu☂uℌøuἤN)rrPrrQ)rrVrUr*s rtestUnicodeHandlingShlexTest.testUnicodeHandling8sd 356 KKd 3! a#&J KKd 3 a#&r#c[R[R-S-nSnSU-nUR[R "S5S5 UR[R "U5U5 UR[R "S5S5 UH/nUR[R "SU-5S U-5 M1 UH/nUR[R "S U-5S U-5 M1 g) Nz @%_-+=:,./uéàßz"`$\!rrztest file namez'test file name'z test%snamez 'test%sname'z test%s'name'z'test%s'"'"'name'"'"'')string ascii_lettersdigitsrrquote)r safeunquotedunicode_sampleunsafeus r testQuoteShlexTest.testQuoteEs++fmm;lJ 'N* R$/ \2LA %568JKA   U[[)9:+a/ 1A   U[[!);<9A= ?r#cSS/S4SS/S4/SQS4S S /S 44HDupURUS 9 [R"U5nURX25 SSS5 MF g!,(df  MX=f) Nza rrz'a ' brpz bza ' b')rp rrza ' ' bz"azb"z '"a' 'b"'command)subTestrjoinr)r split_commandrjoineds rtestJoinShlexTest.testJoinTszC[( #4[( # i (D\? + ' "M g.M2  1/. ' /.s (A  A/ cURUR-nUHYtp#URUS9 [R"U5n[R "U5nUR X55 SSS5 M[ g!,(df  Mm=f)Nr)r r rrrr r)rall_datarrrresplits rtestJoinRoundtripShlexTest.testJoinRoundtrip_sh99t.'/ #Gg.M2++f-  8/.(0..s >A:: B cSn[R"US9nURURU5 UR[5 SUlSSS5 g!,(df  g=f)Nz/|$%^rHF)rrrIr1AttributeError)rrIshlex_instances rtestPunctuationCharsReadOnly&ShlexTest.testPunctuationCharsReadOnlygsP#7HI 99;LM   ~ ./4N ,/ . .s A A')r r N)__name__ __module__ __qualname____firstlineno__rr!r.r4r7r:rYr]rbrgrmryrrrrrrrrr__static_attributes__r#rrrsq3;7EL"L L H M1(> ?7 , ' ? 295r#rr testr:__main__)r&rNrrunittestr r TestCasergetattrdirmethname startswithdelattrrmainrr#rrs   =~> @c5!!c5Nugt$$ N   v & &8|+C Ix (# z MMOr#