python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_csv.cpython-312.opt-2.pyc

͑ecddlZddlZddlZddlmZddlmZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZddlmZddlmZddlmZGd	d
ZGddej.ZGd
dej.ZGddej.ZGddeZGddej8ZGddeZGddeZGddej8Z GddeZ!Gddej.Z"Gdd ej.Z#Gd!d"ej.Z$Gd#d$ej.Z%Gd%d&Z&ejNe(ed'd(Gd)d*ej.Z)Gd+d,ej.Z*Gd-d.ej.Z+Gd/d0ej.Z,e-d1k(rej\yy)2N)StringIO)
TemporaryFile)support)warnings_helper
import_helpercheck_disallow_instantiation)permutations)dedent)OrderedDictceZdZdZy)BadIterablectNOSErrorselfs A/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_csv.py__iter__zBadIterable.__iter__s
N)__name__
__module____qualname__rrrr
r
srr
c^eZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZej6ej8ej<edZ dZ!dZ"dZ#dZ$dZ%dZ&d Z'd!Z(d"Z)d#Z*d$Z+d%Z,d&Z-y')(Test_CsvcT|jt||jt|d|jt||d|jt||d|jt||d|jtj||d|jt||d|jt||d|jt||d|jt||d|jt||d|jt||d	|jt||tjd
|jt||tjd|jt||tj
d
y)Nrbad_attr	delimiterXXfoo	quotecharlineterminatorquoting)r*r&)assertRaises	TypeErrorcsvError	QUOTE_ALL
QUOTE_NONE)rctorargs   r_test_arg_validzTest_Csv._test_arg_validss)T*)T40)T31=)T3A>)T3DA#))T36)T3$?)T3!<)T3!<)T3tD)T3qA)T3=)T3"%--2		?)T3"%--4		A)T3"%..B		@rc|jtjg|jttjtyr)r4r.readerr,rr
rs rtest_reader_arg_validzTest_Csv.test_reader_arg_valid2s.SZZ,'3::{}=rc|jtjtGdd}|j	t
tj|y)NceZdZedZy)1Test_Csv.test_writer_arg_valid.<locals>.BadWriterctrrrs rwritez7Test_Csv.test_writer_arg_valid.<locals>.BadWriter.write9s
rN)rrrpropertyr<rrr	BadWriterr:8s


rr>)r4r.writerrr,r)rr>s  rtest_writer_arg_validzTest_Csv.test_writer_arg_valid6s<SZZ4			
'3::y{;rc||}|j|jjd|j|jjd|j|jj
d|j|jjd|j|jjd|j|jjtj|j|jjd|j|jjd|jtt|jd|jtt |jdd|jtt|jd|jtt |jddy)	N,T
"Fr!:r*)assertEqualdialectr!assertIsdoublequote
escapecharr(r&r*r.
QUOTE_MINIMALskipinitialspacestrictr,AttributeErrordelattrsetattr)rr2argsobjs    r_test_default_attrszTest_Csv._test_default_attrs>sBDk..4

ckk--t4//633V<..4,,c.?.?@

ckk22E:

ckk((%0.'3;;L.'3;;SQ.'3;;	J.'3;;#T	+rcD|jtjgyr)rSr.r6rs rtest_reader_attrszTest_Csv.test_reader_attrsP  R0rcT|jtjtyr)rSr.r?rrs rtest_writer_attrszTest_Csv.test_writer_attrsS  XZ8rc
tdddddtjdd}||i|}|j|jj
d|j
|jjd|j|jjd|j|jjd|j|jjd|j|jjtj|j
|jjd|j
|jjdy)NrEF\
*T)r!rIrJr(r&r*rLrM)dictr.r1rFrGr!rHrIrJr(r&r*rLrM)rr2rQkwargsrRs     r_test_kw_attrszTest_Csv._test_kw_attrsVs4%)S!nnt!#D#F#..4

ckk--u5//633T:..4,,cnn=

ckk22D9

ckk(($/rcD|jtjgyr)r`r.r6rs rtest_reader_kw_attrszTest_Csv.test_reader_kw_attrsfsCJJ+rcT|jtjtyr)r`r.r?rrs rtest_writer_kw_attrszTest_Csv.test_writer_kw_attrsisCJJ
3rcGdd}||fz}||}|j|jjd|j|jjd|j|jj
d|j|jjd|j|jjd|j|jjtj|j|jjd|j|jjdy)	Nc@eZdZdZdZdZdZdZejZ
dZdZy)-Test_Csv._test_dialect_attrs.<locals>.dialect-F^$#TN)
rrrr!rIrJr(r&r.r0r*rLrMrrrrGrgns/IKJNIMMG!FrrGrhFrirjrkT)
rFrGr!rHrIrJr(r&r*r.r0rLrM)rr2rQrGrRs     r_test_dialect_attrszTest_Csv._test_dialect_attrsls		wj Dk..4

ckk--u5//533S9..4,,cmm<

ckk22D9

ckk((%0rcD|jtjgyr)rlr.r6rs rtest_reader_dialect_attrsz"Test_Csv.test_reader_dialect_attrsrVrcT|jtjtyr)rlr.r?rrs rtest_writer_dialect_attrsz"Test_Csv.test_writer_dialect_attrsrYrc(tddd5}tj|fi|}|j||j	d|j|j
||jjzdddy#1swYyxYwNw+utf-8r+encodingnewliner)	rr.r?writerowseekrFreadrGr()rfieldsexpectr_fileobjr?s      r_write_testzTest_Csv._write_tests|
4'2
>	E'ZZ262FOOF#LLOW\\^#fnn&C&CC
E		E	E	EsA0BBcFtddd5}tj|fi|}|j|5|j	|ddd|jd|j
|jddddy#1swYCxYw#1swYyxYwrr)rr.r?r,rxryrFrz)rexcr{r_r}r?s      r_write_error_testzTest_Csv._write_error_tests
4'2
>	1'ZZ262F""3'
('
(LLOW\\^R0	1	1
(
(	1	1s"(BB	9BB	BB c|jtjd|jdd|jdgd|jtjdgtj|jt
t
Gdd}|jt
|Gdd}|jt
|gy)	Nrr+""r)ceZdZdZdZy).Test_Csv.test_write_arg_valid.<locals>.BadListcy)N
rrs r__len__z6Test_Csv.test_write_arg_valid.<locals>.BadList.__len__src|dkDrty)Nr)ris  r__getitem__z:Test_Csv.test_write_arg_valid.<locals>.BadList.__getitem__sq5!MrN)rrrrrrrrBadListrs

"rrceZdZdZy).Test_Csv.test_write_arg_valid.<locals>.BadItemctrrrs r__str__z6Test_Csv.test_write_arg_valid.<locals>.BadItem.__str__
rN)rrrrrrrBadItemr
rr)rr.r/r~r1rr
)rrrs   rtest_write_arg_validzTest_Csv.test_write_arg_validssyy$/R $&syy4&CNNKw
6	"	"	
w	2			
w4rc@ddz}|j||g|d|y)NXPrB)r~)r	bigstrings  rtest_write_bigfieldzTest_Csv.test_write_bigfields*%K	)I.#Y10	1rc@|jgdd|jtjgdtj|jgddtj
|jgddtj|jgddtj|jddgdtj|jgd	d
tj|jgd	dtjy)Nar$zp,q	a,1,"p,q"r)z"a",1,"p,q"z
"a","1","p,q"a
br$z	"a
b","1")rr+Nr$z	"a","",,1z"a","",,"1")
r~rr.r/r1rKQUOTE_NONNUMERICr0
QUOTE_STRINGS
QUOTE_NOTNULLrs rtest_write_quotingzTest_Csv.test_write_quotings4syy-),		9#&#4#4		6
#&#7#7		9#&==		2&\#&==		2+#&#4#4		6-#&#4#4		6rc|jgddd|jtjgddd|jgdddd|jd	gd
dtj|jd	gddtjd
|jd	gddtj
|jgdddtj
|jddgddtj
|jddgddtj|jddgddtj|jddgddtj|jddgddtj
|jddgddtj|jgdddtjy)Nrrr[rJ)rr$zp,"q"F)rJrIz
a,1,"p,\"q\""rD"""")rJr*z\")rJr*rIza,1,p\,qrz\\,az"\\","a"z\ z\\ ,az\,z\\\,,az,\z",\\",a)zC\67zX"z
C\\,6,7,"X""")r~rr.r/rKr1r0rs rtest_write_escapezTest_Csv.test_write_escapes$(		*syy/*.E		C*;$(		?#$(C4E4E		G#$(C4E4E',		.	
#$(CNN		D$(CNN		D$h$(#..		B$h$(#2C2C		E$l$(#--		A%y$(#2C2C		E%{$(#..		B%{$(#2C2C		E02C$(#2C2C		Erc
ddD]}|j|5t5}tj||}|j	ddg|j	ddg|j|j
d|d|ddddddy#1swYxYw#1swYxYw)	N)rC
r\z!@#r'rbr$ra,bz1,2)subTestrr.r?rxrFgetvalue)rr(sior?s    rtest_write_lineterminatorz"Test_Csv.test_write_lineterminators=	=N^<
=Z=3 ZZNKFOOS#J/OOQF+$$S\\^'*>*:'*>*:&<=	=
=
=	===
=
=s#B&A$BB&B#B&&B/	c|jtgdd|jtgdd|jtgd|jtdgd|jtjtdgtj
|jtddgdy)	Nrr)rr$Nza,1,r+rr)rB)r~iterrr.r/r1rs rtest_write_iterablezTest_Csv.test_write_iterableso.<n-v6b2&tft,syy$v,OtTl+S1rcGdd}tj|}|jt|jdggtddd5}tj|}|jt|jd|j	ddgd	d
gg|jd|j|jddddy#1swYyxYw)
NceZdZdZy)+Test_Csv.test_writerows.<locals>.BrokenFilectrr)rbufs  rr<z1Test_Csv.test_writerows.<locals>.BrokenFile.writerrN)rrrr<rrr
BrokenFilerrrrrrsrtr+rurcdrz
a,b
c,d
)
r.r?r,r	writerowsrr-ryrFrz)rrr?r}s    rtest_writerowszTest_Csv.test_writerowss		JL)'6#3#3seW=
4'2
>	?'ZZ(Fi)9)94@sCj3*56LLOW\\^-=>	?	?	?s
A?CC'ctddd5}tj|}|jddgddgg|j	d|j|j
ddddtddd5}tj|}|jdgdgg|j	d|j|j
d	dddtddd5}tj|}|jdgdgg|j	d|j|j
d
dddy#1swYxYw#1swYxYw#1swYyxYw)Nrsrtr+rurrrza,
,d
z""
a
za
""
)rr.r?rryrFrzrr}r?s   rtest_writerows_with_nonez!Test_Csv.test_writerows_with_nonesH
4'2
>	='ZZ(FsDkD#;78LLOW\\^^<		=4'2
>	<'ZZ(Ftfse_-LLOW\\^];		<4'2
>	<'ZZ(FsedV_-LLOW\\^];		<	<	=	=	<	<	<	<s&AEAE&5AE2E#&E/2E;ctddd5}tj|}|jt|j
d|jt|j
tdddy#1swYyxYw)Nrsrtr+ru)rr.r?r,r-rrr
rs   rtest_writerows_errorszTest_Csv.test_writerows_errorssi
4'2
>	H'ZZ(Fi)9)94@gv'7'7G	H	H	HsA A88B)categoryc&ddl}|jd}tddd5}tj|}|j|gg|j
d|j|jddddy#1swYyxYw)Nrrrsrtr+ruza
)		_testcapiunicode_legacy_stringrr.r?rryrFrz)rrrr}r?s     rtest_writerows_legacy_stringsz&Test_Csv.test_writerows_legacy_stringss{	++C0
4'2
>	6'ZZ(FqcU#LLOW\\^W5		6	6	6sABBcjtj|fi|}t|}|j||yr)r.r6listrF)rinputr|r_r6results      r
_read_testzTest_Csv._read_test(s.E,V,f(rc6|jgg|jdggg|jtj|jdgdd|jdgdggd|jtj|jdgdy)	Nr+z"ab"cr$rMabcr)rIsabcrr,r.r/rs rtest_read_oddinputszTest_Csv.test_read_oddinputs-sBrd##))T__")TA		7	UG9A>#))T__!(D	*rc|jdgddgg|jdgddgg|jdgddgg|jdgddgg|jtj|jdgg|jtj|jdgg|jtj|jd	ggy)
Nrrrza,b
za,b
za,b
za,b
c,dza,b
c,dza,b
c,drrs r
test_read_eolzTest_Csv.test_read_eol7s3s)-	SI;/s3i[1	SI;/#))T__zlBG#))T__zlBG#))T__|nbIrc|jdgddgg|jdgdgg|jdgdggd|jtj|jdggd	|jtj|jdggd	|jtj|jdggdd
y)Nza,"rr+z"arirrTr)rJrMrrs r
test_read_eofzTest_Csv.test_read_eof@s3)-#(xC8#))T__ugr$O#))T__tfbN#))T__%D		Brc|jdgdgg|jdggdg|jdggdg|jdggdgd|jd	ggdgy)
Nra,b,c)rzbrza,b,c)rzbrza,b\,cr[rza,"b",crrs r
test_read_nulzTest_Csv.test_read_nulIsj$)&7%89&7%89
(9':tL
(9':;rc|jdggdg|jdggdgd|jdggdgdy)Nza,b,crrrza;b;c;r zabcrrrs rtest_read_delimiterzTest_Csv.test_read_delimiterPsC	O#45	O#4Do%6$Grc|jdggdgd|jdgddggd|jdgddggd|jd	gddggd|jd
gddggd|jdgdd
ggd|jdggdgd|jdggdgd|jdggdgd|jdggdgy)Nza,\b,crr[rza,b\,crzb,cza,"b\,c"za,"b,\c"z	a,"b,c\""zb,c"za,"b,c"\zb,c\za,^b,crirr)rz\brrrs rtest_read_escapezTest_Csv.test_read_escapeUso%64HsEl^E
e~$G
e~$G#vDI
g'7DI
_$5#Fo%64H&7%8TJ&7%89rc|jdggdg|jdggdgdd|jdggdgtjd|jdggdgtj	|jd
gddgg|j	t
|jd
gggtj	|jdggdgd|jdggdgdy)Nz	1,",3,",5)1z,3,5)rrD3rDrr[)r&rJr*rJz
,3,"5",7.3, 9)r+rg333333@	r)z"a
b", 7rz 7zabc,3z	1,@,3,@,5@r%z	1,,3,,5r)rr.r1rr,
ValueErrorrs rtest_read_quotingzTest_Csv.test_read_quotingas
(9':;
(A'B"&4		9
(A'B #4		A	
),@+A # 4 4		6
'78*doo")bT"%"6"6		8	

(9':cJ*;)<Mrc4|jdggdgdy)Nzno space, space,  spaces,	tab)zno spacespacespacesz	tabT)rLrrs rtest_read_skipinitialspacez#Test_Csv.test_read_skipinitialspaceqs"9:AB)-		/rctj}	d}d|z}|d|}|j|g||ggtj||j|g||gg|jtj|tj|dz
|j	tj
|j|gg|j	ttjd|j	ttjddtj|y#tj|wxYw)NrrrBr$)r.field_size_limitrrFr,r/r-)rlimitsizerbiglines     rtest_read_bigfieldzTest_Csv.test_read_bigfieldvs$$&
	(Dd
I!*I6GOOWII(>'?@  &OOWII(>'?@S113T:  a(cii7)RHi)=)=tDi)=)=q$G  'C  'sDD//Ectjgd}|j|jdt	||j|jdt	||j|jdt	||j|jd|jtt||j|jdy)N)zline,1zline,2zline,3rr$rr)r.r6rFline_numnextr,
StopIteration)rrs  rtest_read_linenumzTest_Csv.test_read_linenumsJJ56Q'QQ'QQ'QQ'-q1Q'rc@tddd5}tj|}ddgddgg}|j||j	d	ttj|D]\}}|j|||	dddy#1swYyxYw)
Nrsrtr+rurrrx
dr)rr.r?rry	enumerater6rFrr}r?rowsrrows      rtest_roundtrip_quoteed_newlinesz(Test_Csv.test_roundtrip_quoteed_newliness
4'2
>	/'ZZ(FCL#h0DT"LLO#CJJw$78
/3  d1g.
/	/	/	/sA;BBctddd5}tj|tjd}ddgd	d
gg}|j	||jdt
tj|tjdD]\}}|j|||	dddy#1swYyxYw)Nrsrtr+rur[rrrrrr)	rr.r?r1rryrr6rFrs      r(test_roundtrip_escaped_unquoted_newlinesz1Test_Csv.test_roundtrip_escaped_unquoted_newliness
4'2
>	.'ZZ$OFCL#h0DT"LLO#CJJws~~Y]$^_
.3  T!W-
.	.	.	.sBB66B?N).rrrr4r7r@rSrUrXr`rbrdrlrnrpr~rrrrrrrrrrrcpython_onlyrequires_legacy_unicode_capirignore_warningsDeprecationWarningrrrrrrrrrrrrrrrrrrrs
@(><+$190 ,41,19E15&16"E>	=2?<&H
)W))+$_$$.@A6B,6)
*JB<H

:N /
(&
(/.rrcNeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
y)
TestDialectRegistryc |jttjd|jttj|jtj
tjd|jtj
tjd|jttj|jtj
tjd|jtj
tjd|jttjd|jttjdd|jttjddd|jttjdd|jttjdd|jttjgy)Nnonesuchr)badargumentr))r,r-r.
list_dialectsget_dialectr/unregister_dialectregister_dialectrs rtest_registry_badargsz)TestDialectRegistry.test_registry_badargssZ)S%6%6=)S__5#))S__d;#))S__jA)S%;%;<#))S%;%;TB#))S%;%;ZH)S%9%94@)S%9%94F)S%9%9:q!L)S%9%9:&*		,)S%9%9:"&		()S%9%92>rcGddtj}d}tj|gz}|jtj|||jtj||jtj|jdttj}|j||y)NceZdZdZy)5TestDialectRegistry.test_registry.<locals>.myexceltsv	Nrrrr!rrr
myexceltsvrIrrr)r.excelrsortr
addCleanuprrFrr!sorted)rrnameexpected_dialectsgot_dialectss     r
test_registryz!TestDialectRegistry.test_registrys		--/4&8 T:...5.88$?c//12*L9rc	:d}tj|d|jtj||j	tj
|jd|j	gdgttjdg|y)Nfedcbarr )rYZzX;Y;Z)	r.rrrrFrr!rr6)rrs  rtest_register_kwargsz(TestDialectRegistry.test_register_kwargssoTS1..5.88#>/*DWIt1L,MNrc
fGddtj}d}tj||dddddtj	|j	tj
|tj|}|j|jd|j|jd|j|jd|j|jd|j|jd|j|jtjy)
Nc8eZdZdZdZdZdZdZejZ
y)DTestDialectRegistry.test_register_kwargs_override.<locals>.mydialectrrDTFrCN)rrrr!r&rIrLr(r.rKr*rrr	mydialectr)s'IIK$#N''Grr*test_dialectr'FTr)r!r&rIrLr(r*)r.Dialectrr0rrrrFr!r&rIrLr(r*)rr*rrGs    rtest_register_kwargs_overridez1TestDialectRegistry.test_register_kwargs_overrides	(	(T9'*'*)..2,0%(]]
	4	
..5//$'**C0**C0,,e41148//6#--8rcvGddtj}|jtj|y)NceZdZdZy)?TestDialectRegistry.test_incomplete_dialect.<locals>.myexceltsvrNrrrrrr1rrr)r.r-r,r/)rrs  rtest_incomplete_dialectz+TestDialectRegistry.test_incomplete_dialects&		#))Z0rcjGddtj}tdd5}|jd|j	dtj
||}|j
t|d	d
g|j
t|ddgdddy#1swYyxYw)
Nc,eZdZdZej
ZdZy)5TestDialectRegistry.test_space_dialect.<locals>.space r[N)rrrr!r.r1r*rJrrrrr5sInnGJrrrsrtrvzabc def
c1ccccc1 benzene
rrGrdefc1ccccc1benzene)r.rrr<ryr6rFr)rrr}r6s    rtest_space_dialectz&TestDialectRegistry.test_space_dialects	CII	
4'
2	DgMM78LLOZZ9FT&\E5>:T&\J	+BC	D	D	DsA9B))B2ctddd5}tj|g|i|}|jgd|j	d|j|j
|dddy#1swYyxYw)Nrsr+rtrwrvr$rrr)rr.r?rxryrFrz)rexpected	writeargskwwriteargsr}r?s      rcompare_dialect_123z'TestDialectRegistry.compare_dialect_123sj
4g
>	7'ZZC)C{CFOOG$LLOW\\^X6	7	7	7sAA66A?cGddtj}Gddtj}Gddtj}Gddtj}Gd	d
}tjd|	|jd|jdd|jd||jd
||jd||jdd|jd|d|jd|tjdy#tjdwxYw)NceZdZdZy)5TestDialectRegistry.test_dialect_apply.<locals>.testArNrrrrtestArFrrrGceZdZdZy)5TestDialectRegistry.test_dialect_apply.<locals>.testBrENrrrrtestBrIIrrJceZdZdZy)5TestDialectRegistry.test_dialect_apply.<locals>.testC|NrrrrtestCrMrKrrOceZdZdZy)7TestDialectRegistry.test_dialect_apply.<locals>.testUniuΛNrrrrtestUnirQ
s IrrRceZdZy);TestDialectRegistry.test_dialect_apply.<locals>.unspecifiedNrrrrrrunspecifiedrT
srrVz1,2,3
r8z1	2	3
z1:2:3
z1|2|3
z1;2;3
r)rGr!u	1Λ2Λ3
)r.rrrCr)rrGrJrOrRrVs      rtest_dialect_applyz&TestDialectRegistry.test_dialect_applys!	CII		CII		CII		!cii	!			We,
	,$$[1$$[$$?$$[+$F$$]E:$$[%'$B$$['$B$$[%/2
%
4$$%:-4
%
6
""7+C""7+s
BD77Ec<|jttjgd|jttjgd|jttjgd|jttjgdy)Nrrr r)d)r,r-r.r6rs rtest_bad_dialectz$TestDialectRegistry.test_bad_dialect!sn)SZZB)SZZF)SZZrB)SZZsCrctjD]<}tj|}|jtt
j
|>yr)r.rrr,r-copy)rrrGs   r	test_copyzTestDialectRegistry.test_copy)s>%%'	=Dood+GiG<	=rctjD]^}tj|}ttj
dzD](}|j
ttj||*`y)Nr$)	r.rrrangepickleHIGHEST_PROTOCOLr,r-dumps)rrrGprotos    rtest_picklezTestDialectRegistry.test_pickle.sc%%'	KDood+Gv66:;
K!!)V\\7EJ
K	KrN)rrrrr!r&r.r2r<rCrWr[r^rerrrr
r
s=?"
:O981
D7,<D=
Krr
ceZdZdZdZy)TestCsvBasec
tddd5}|j||jdtj||j
}t
|}|j||dddy#1swYyxYw)Nrsrtr+rurr8)rr<ryr.r6rGrrF)rrexpected_resultr}r6r{s      rreaderAssertEqualzTestCsvBase.readerAssertEqual5si
4'2
>	6'MM% LLOZZ4<<@F&\FV_5	6	6	6sA!A99Bctddd5}tj||j}|j	||jd|j
|j|dddy#1swYyxYw)Nrsrtr+rur8r)rr.r?rGrryrFrz)rrrir}r?s     rwriterAssertEqualzTestCsvBase.writerAssertEqual=sh
4'2
>	>'ZZ4<<@FU#LLOW\\^_=		>	>	>sA$A<<BN)rrrrjrlrrrrgrg4s6>rrgceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZy)TestDialectExcelrc,|jddggy)Nrrjrs rtest_singlezTestDialectExcel.test_singleGuwi0rc.|jdgdgy)Nz	1,2,3,4,5)r2r4rrprs rtest_simplezTestDialectExcel.test_simpleJs{-B,CDrc(|jdgyNr+rprs rtest_blanklinezTestDialectExcel.test_blanklineMr2&rc.|jdddggy)NrBr+rprs rtest_empty_fieldsz"TestDialectExcel.test_empty_fieldsPssb"XJ/rc,|jddggy)Nrr+rprs rtest_singlequotedz"TestDialectExcel.test_singlequotedSstrdV,rc.|jdddggy)Nz"",r+rprs rtest_singlequoted_left_emptyz-TestDialectExcel.test_singlequoted_left_emptyVu2wi0rc.|jdddggy)Nz,""r+rprs rtest_singlequoted_right_emptyz.TestDialectExcel.test_singlequoted_right_emptyYrrc,|jddggy)NrrDrprs rtest_single_quoted_quotez)TestDialectExcel.test_single_quoted_quote\svw/rc,|jddggy)Nz""""""rrprs rtest_quoted_quotesz#TestDialectExcel.test_quoted_quotes_sx4&2rc,|jddggy)Nza""brprs rtest_inline_quotez"TestDialectExcel.test_inline_quotebvz2rc,|jddggy)Nza"b"crprs rtest_inline_quotesz#TestDialectExcel.test_inline_quotesesw'4rc,|jddggy)Nz"a"babrprs rtest_quotes_and_morez%TestDialectExcel.test_quotes_and_morehs	
vx0rc,|jddggy)Nza"brprs rtest_lone_quotez TestDialectExcel.test_lone_quotemrrrc,|jddggy)Nz"a" "b"za "b"rprs rtest_quote_and_quotez%TestDialectExcel.test_quote_and_quoteps	
yG9+6rc,|jddggy)Nz "a"rprs rtest_space_and_quotez%TestDialectExcel.test_space_and_quoteurrc.|jdgdgy)Nz#1,2,3,"I think, therefore I am",5,6)rrtrzI think, therefore I amrrrprs rtest_quotedzTestDialectExcel.test_quotedxsD!+ ,	-rc.|jdgdgy)NzJ1,2,3,"""I see,"" said the blind man","as he picked up his hammer and saw")rrtrz"I see," said the blind manz"as he picked up his hammer and sawrprs rtest_quoted_quotez"TestDialectExcel.test_quoted_quote~s k!G H	Irc8d}|j|gdgdgy)NzR1,2,3,"""I see,""
said the blind man","as he picked up his
hammer and saw"
9,8,7,6)rrtrz"I see,"
said the blind manz"as he picked up his
hammer and saw)98rrrp)rrs  rtest_quoted_nlzTestDialectExcel.test_quoted_nls+
	
u!J!2 3	4rc.|jdgdgy)Nz	12,12,1",)12rz1"r+rprs rtest_dubious_quotez#TestDialectExcel.test_dubious_quotes{-C,DErc(|jgdyrxrlrs r	test_nullzTestDialectExcel.test_nullrzrc,|jdggdy)Nrzabc
rrs rtest_single_writerz#TestDialectExcel.test_single_writersy)4rc.|jgdgdy)N)r$rrrz
1,2,abc,3,4
rrs rtest_simple_writerz#TestDialectExcel.test_simple_writers 346GHrc.|jgdgdy)N)r$rza"bc"rrz1,2,"a""bc""",3,4
rrs rtest_quoteszTestDialectExcel.test_quotes 568OPrc,|jdggdyNabc,defz"abc,def"
rrs rtest_quote_fieldsepz$TestDialectExcel.test_quote_fieldsep}o>rc.|jgdgdy)N)r$rza
bcrrz1,2,"a
bc",3,4
rrs r
test_newlineszTestDialectExcel.test_newliness 568MNrN)rrrrGrqrvryr|r~rrrrrrrrrrrrrrrrrrrrrrrrnrnDsG1E'0-1103351
17
3-I
4F'5IQ?Orrnc(eZdZejZdZy)EscapedExcelr[N)rrrr.r1r*rJrrrrrsnnGJrrc&eZdZeZdZdZy)TestEscapedExcelc,|jdggdy)Nr
abc\,def
rrs rtest_escape_fieldsepz%TestEscapedExcel.test_escape_fieldseprrc,|jddggy)Nrrrprs rtest_read_escape_fieldsepz*TestEscapedExcel.test_read_escape_fieldseps)
>rN)rrrrrGrrrrrrrsnG??rrceZdZdZdZdZy)TestDialectUnixunixc.|jgdgdy)N)r$abc defr"1","abc def","abc"
rrs rrz"TestDialectUnix.test_simple_writerrrc.|jdgdgy)Nr)rrrrprs rtest_simple_readerz"TestDialectUnix.test_simple_readers69P8QRrN)rrrrGrrrrrrrsGQSrrc(eZdZejZdZy)QuotedEscapedExcelr[N)rrrr.rr*rJrrrrrs""GJrrc&eZdZeZdZdZy)TestQuotedEscapedExcelc,|jdggdyrrrs rtest_write_escape_fieldsepz1TestQuotedEscapedExcel.test_write_escape_fieldseprrc,|jddggy)Nz"abc\,def"
rrprs rrz0TestQuotedEscapedExcel.test_read_escape_fieldseps0I;-@rN)rrrrrGrrrrrrrs "G?ArrceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZy)TestDictFieldsctddd5}tj|gd}|j}|j	|ddddy#1swYyxYw)Nrsrtr+ruf1f2f3
fieldnamesr)rr.
DictWriterwriteheaderrF)rr}r?writeheader_return_values    rtest_writeheader_return_valuez,TestDictFields.test_writeheader_return_valuesV
4'2
>	;'^^G:LMF'-'9'9';$5r:	;	;	;s<AActddd5}tj|gd}|j|j	d|j|j
d|jd	d
d|j	d|j
|j|jddddy#1swYyxYw)
Nrsrtr+rurrr
f1,f2,f3
rr)rrz	10,,abc
)	rr.rrryrFreadlinerxrzrs   rtest_write_simple_dictz%TestDictFields.test_write_simple_dicts
4'2
>	<'^^G:LMF LLOW--/@OO2U34LLOW\\^];	<	<	<sB0CCc t}tj|gd}|j|j	|jd|j
ddddddd	dg|j	|jd
y)Nrrrr$rfrxyzzf1,f2,f3
1,abc,f
2,5,xyz
)rr.rrrFrrrs   rtest_write_multiple_dict_rowsz,TestDictFields.test_write_multiple_dict_rowss*4FG))+^<%s;!"!59;	<))+=	?rcbt}|jttj|yr)rr,r-r.rrr}s  rtest_write_no_fieldsz#TestDictFields.test_write_no_fieldss*)S^^W=rctddd5}tj|gd}|jt5}|jddd	d
dddt
j}|jd||jd||jd
||jd|dddy#1swYoxYw#1swYyxYw)Nrsrtr+rurrrspamr)f4rr$rz'f4'z'f2'r)
rr.rr,rrxstr	exceptionassertInassertNotIn)rr}r?cxrs     r#test_write_fields_not_in_fieldnamesz2TestDictFields.test_write_fields_not_in_fieldnamess
4'2
>		*'^^G:LMF"":.
D"rE BC
DBLL)IMM,	2MM&),VY/MM#y)		*		*
D
D		*		*s#/CCA%CC	CCclt}|jttj|ddgdy)Nrrraisedextrasaction)rr,rr.rrs  r&test_typo_in_extrasaction_raises_errorz5TestDictFields.test_typo_in_extrasaction_raises_errors/**cnngd|'/		1rcNt}tj|ddgd}ddddd	}|jttjj
||tj|ddgd
}|jttjj
||y)Nrrraiserrr$rrf0rrrRAISE)rr.rr,rrxrr}r?dictrows    r)test_write_field_not_in_field_names_raisez8TestDictFields.test_write_field_not_in_field_names_raises*$GL!1A6*cnn&=&=vwO$GL*cnn&=&=vwOrcNt}tj|ddgd}ddddd	}tjj|||j	|jd
tj|ddgd}tjj||y)Nrrignorerrr$rrrz1,2
IGNORE)rr.rrxrFrrs    r*test_write_field_not_in_field_names_ignorez9TestDictFields.test_write_field_not_in_field_names_ignores*$HM!1A60))+Y7$HM0rcgd}t}tj|t|}|j	|j
|yNr)rr.
DictReaderrrFrrrrr6s    r(test_dict_reader_fieldnames_accepts_iterz7TestDictFields.test_dict_reader_fieldnames_accepts_iter9$
J4
#34**J7rcgd}t}tj||}|j|j|yr)rr.rrFrrs    r(test_dict_reader_fieldnames_accepts_listz7TestDictFields.test_dict_reader_fieldnames_accepts_list4$
J:.**J7rcgd}t}tj|t|}|j	|j
|yr)rr.rrrFrrrrr?s    r(test_dict_writer_fieldnames_rejects_iterz7TestDictFields.test_dict_writer_fieldnames_rejects_iterrrcgd}t}tj||}|j|j|yr)rr.rrFrrs    r(test_dict_writer_fieldnames_accepts_listz7TestDictFields.test_dict_writer_fieldnames_accepts_list"rrcFt}tj|d}y)Nr)rr.r)rrr6s   r'test_dict_reader_fieldnames_is_optionalz6TestDictFields.test_dict_reader_fieldnames_is_optional(sJd3rctdd5}|jd|jdtj|gd}|jt
|dd	d
ddddy#1swYyxYw)Nrsrtr7z	1,2,abc
rrrrrtrrr<ryr.rrFrrr}r6s   rtest_read_dict_fieldsz$TestDictFields.test_read_dict_fields,sm
4'
2	PgMM-(LLO^^G/ACFT&\#S+NO	P	P	PsAA22A;c0tdd5}|jd|jdtj|}|jt
|dddd	|j|jgd	dddy#1swYyxYw)
Nrsrtr7f1,f2,f3
1,2,abc
rrrtrr)rr<ryr.rrFrrrs   rtest_read_dict_no_fieldnamesz+TestDictFields.test_read_dict_no_fieldnames4s
4'
2	DgMM34LLO^^G,FT&\#S+NOV..0BC	D	D	DsA5BBc	ltdd5}|jd|jdtj|ttj|}|j|jgd|jt|dd	d
ddddy#1swYyxYw)Nrsrtr7rrrrrrtr)	rr<ryr.rrr6rFrrs   r#test_read_dict_fieldnames_from_filez2TestDictFields.test_read_dict_fieldnames_from_file>s
4'
2	PgMM34LLO^^G/3CJJw4G/HJFV..0BCT&\#S+NO
	P	P	PsBB**B3c	nddl}tdd5}|jd|jdt	j
|}t
|}|j|g|D]6}|j|jgd|j|ddd	d8	dddy#1swYyxYw)
Nrrsrtr7rrrrtr)
	itertoolsrr<ryr.rrchainrFr)rrr}r6firstrs      rtest_read_dict_fieldnames_chainz.TestDictFields.test_read_dict_fieldnames_chainGs
4'
2	KgMM34LLO^^G,FLE w7
K  !2!24FG  S5&IJ
K	K	K	KsBB++B4ctdd5}|jd|jdtj|ddg}|jt
|d	d
gdddddy#1swYyxYw)
Nrsrtr71,2,abc,4,5,6
rrrrrrtrrurr)rrNrrs   rtest_read_longzTestDictFields.test_read_longRsx
4'
2	LgMM-.LLO^^G04d|=FT&\#S3I,K
L	L	L	LsAA44A=ctdd5}|jd|jdtj|ddgd	}|jt
|d
dgdd
dddy#1swYyxYw)Nrsrtr7rrrr_rest)rrestkeyrrtrrrr!rrs   rtest_read_long_with_restz'TestDictFields.test_read_long_with_rest[s{
4'
2	OgMM-.LLO^^G04d|WNFT&\#S6L,N
O	O	O	OsAA55A>c8tdd5}|jd|jdtj|d}|j|jdd	g|jt|d
dgdd
dddy#1swYyxYw)Nrsrtr7zf1,f2
1,2,abc,4,5,6
rr!r"rrrrtrr#)rr<ryr.rrFrrrs   r&test_read_long_with_rest_no_fieldnamesz5TestDictFields.test_read_long_with_rest_no_fieldnamesds
4'
2	OgMM67LLO^^GW=FV..t=T&\#S6L,N
O	O	O	OsA9BBc`tdd5}|jd|jdtj|djd}|j
t|d	d
ddd
dd|j
t|d	d
ddddddddy#1swYyxYw)Nrsrtr7z1,2,abc,4,5,6
1,2,abc
r1 2 3 4 5 6DEFAULT)rrestvalrrtrrurrrrtrrurr)rr<ryr.rsplitrFrrs   rtest_read_shortzTestDictFields.test_read_shortms
4'
2
	>gMM89LLO^^G/</B/B/D,57F
T&\3U25Cc,K
LT&\3U2;)2;,=
>
	>
	>
	>sB
B$$B-c	gd}tj|dj}|jt	|dddddd	y)
N)z2147483648,43.0e12,17,abc,def
z147483648,43.0e2,17,abc,def
z47483648,43.0,170,abc,def
zi1 float i2 s1 s2r
2147483648z43.0e1217rr9)i1floati2s1s2r.rr-rFr)rsampler6s   rtest_read_multizTestDictFields.test_read_multizsO+>+D+D+FHfl2;/3/4/4	(6	7rc
tjgddj}|jt	|dddddd	d
|jt	|dddddd	d
y)N)rrCrr)rrrtrrurrr,r7rr6s  rtest_read_with_blanksz$TestDictFields.test_read_with_blanksst!6+8+>+>+@B	
fSs.1#(G	HfSs.1#(G	Hrc
tjdgdjd}|jt	|ddddd	d
dy)Nz1;2;abc;4;5;6
r)r)rr!rrtrrurrr,r7r;s  rtest_read_semi_sepz!TestDictFields.test_read_semi_sepsO!4 5+8+>+>+@*-/	
fSs.1#(G	HrN)rrrrrrrrrrrrrr	rr
rrrrrr$r'r.r9r<r>rrrrrs;	<?>
*1
P	188884PDP	KLOO>
7HHrrc$eZdZdZdZdZdZy)TestArrayWritesc	ddl}tdDcgc]}d|z
	}}|jd|}tddd5}tj|d	}|j|d
j
|Dcgc]
}t|c}dz}|jd|j|j|dddycc}wcc}w#1swYyxYw)Nrrrsrtr+rurr8rBrCarrayr`rr.r?rxjoinrryrFrzrrDrcontentsrr}r?r@s        rtest_int_writezTestArrayWrites.test_int_writes$)"I.qRT..KKX&
4'2
>	7'ZZ9FOOAxx 3AQ 34V;HLLOW\\^X6	7	7/!4	7	7s#C8C8C

;CCC!c	ddl}tdDcgc]
}d|z
dz}}|jd|}tddd5}tj|d	
}|j|dj
|Dcgc]
}t|c}dz}|jd|j|j|dddycc}wcc}w#1swYyxYw)
NrrB皙?rrsrtr+rurr8rBrCrCrFs        rtest_double_writez!TestArrayWrites.test_double_write(-b	21RT3J22KKX&
4'2
>	7'ZZ9FOOAxx 3AQ 34V;HLLOW\\^X6	7	73
!4	7	7#C8C;C

;CCC$c	ddl}tdDcgc]
}d|z
dz}}|jd|}tddd5}tj|d	
}|j|dj
|Dcgc]
}t|c}dz}|jd|j|j|dddycc}wcc}w#1swYyxYw)
NrrBrJrrsrtr+rurr8rBrCrCrFs        rtest_float_writez TestArrayWrites.test_float_writerLrMclddl}ddl}|jd|j}tddd5}t	j
|d}|j
|d	j|d
z}|jd|j|j|dddy#1swYyxYw)Nrursrtr+rurr8rBrC)rDstring
ascii_lettersrr.r?rxrEryrFrz)rrDrRrr}r?r@s       rtest_char_writezTestArrayWrites.test_char_writesKKV112
4'2
>	7'ZZ9FOOAxx{6)HLLOW\\^X6	7	7	7sA.B**B3N)rrrrHrKrOrTrrrr@r@s
7	7	7	7rr@c*eZdZdZdZdZdZdZy)TestDialectValiditycfGddtj}|}|j|jtjd|_|jtj|d|_tj|_d|_	|}|j|jtj|j|jd|j|jd|_	|jtj5}|ddd|jtjdd|_	|jtj5}|ddd|jt|jdd|_	|jtj5}|ddd|jt|jd	y#1swYxYw#1swYxYw#1swYGxYw)
Nc8eZdZdZdZdZdZdZejZ
y)3TestDialectValidity.test_quoting.<locals>.mydialectrr[FTrCNrrrr!rJrIrLr(r.r1r*rrrr*rY%IJK##NnnGrr*TrDr+z("quotechar" must be a 1-character stringz''rz+"quotechar" must be string or None, not int)
r.r-rFr*r1r,r/rIr0r&
assertTruerrrr*rcms    rtest_quotingz TestDialectValidity.test_quotings	%	%
KCNN3 	#))Y/ $	MM	!	KCMM2c*

& 	


syy
)	RK	R\\*C	E#	


syy
)	RK	R\\*C	E 	


syy
)	RK	R\\*F	H						s$#H>HH'HH$'H0cGddtj}|}|j|jdd|_|j	tj
5}|ddd|jt
jdd|_|j	tj
5}|ddd|jt
|jdd|_|j	tj
5}|ddd|jt
|jdd	|_|j	tj
5}|ddd|jt
|jd
d|_|j	tj
5}|ddd|jt
|jdy#1swYxYw#1swYNxYw#1swYxYw#1swYxYw#1swYaxYw)Nc8eZdZdZdZdZdZdZejZ
y)5TestDialectValidity.test_delimiter.<locals>.mydialectrr[FTrCNrZrrrr*rbr[rr*r:::z("delimiter" must be a 1-character stringr+,z%"delimiter" must be string, not bytesrz#"delimiter" must be string, not intz("delimiter" must be string, not NoneType)r.r-rFr!r,r/rrr]s    rtest_delimiterz"TestDialectValidity.test_delimiters	%	%
Kc*#	


syy
)	RK	R\\*C	E!	


syy
)	RK	R\\*C	E#	


syy
)	RK	R\\*@	B 	


syy
)	RK	R\\*>	@#	


syy
)	RK	R\\*C	E5										s<#H>HH4H+H7HHH(+H47IcGddtj}|}|j|jdd|_|j	tj
d5|dddd|_|j	tj
d5|dddd|_|j	tj
d5|dddd	|_|j	tj
d
5|dddy#1swYxYw#1swYxYw#1swYYxYw#1swYyxYw)Nc8eZdZdZdZdZdZdZejZ
y)6TestDialectValidity.test_escapechar.<locals>.mydialectrr[FTrCNrZrrrr*rhr[rr*r[r+z)"escapechar" must be a 1-character stringz***z."escapechar" must be string or None, not bytesrz,"escapechar" must be string or None, not int)r.r-rFrJassertRaisesRegexr/)rr*rs   rtest_escapecharz#TestDialectValidity.test_escapechars	%	%
Kt,!	

#
#CII/Z
[	K	 $	

#
#CII/Z
[	K	 $	

#
#CII/_
`	K	 !	

#
#CII/]
^	K										s0$DD&D2	D>D#&D/2D;>EcGddtj}|}|j|jdd|_|}|j|jdd|_|j	tj
5}|ddd|jt
jdy#1swY/xYw)Nc8eZdZdZdZdZdZdZejZ
y):TestDialectValidity.test_lineterminator.<locals>.mydialectrr[FTrCNrZrrrr*rn5r[rr*rCrcrz!"lineterminator" must be a string)r.r-rFr(r,r/rrr]s    rtest_lineterminatorz'TestDialectValidity.test_lineterminator4s	%	%
K))62#(	 K))51#$	 


syy
)	RK	R\\*<	>		s
CCcvd}dD]}|j|5|jtj||d|jtj||d|jtj||d|jtj||ddddy#1swYxYw)Nc^Gddtj}t||||}y)NceZdZy)QTestDialectValidity.test_invalid_chars.<locals>.create_invalid.<locals>.mydialectNrUrrrr*rsKsrr*)r.r-rP)
field_namevaluer*rs    rcreate_invalidz>TestDialectValidity.test_invalid_chars.<locals>.create_invalidJs%
CKK
Iz51Ar)r!rJr&)rtr+rxr)rr,r.r/)rrvrts   rtest_invalid_charsz&TestDialectValidity.test_invalid_charsIs	C	LJ4
L!!#))^ZL!!#))^ZO!!#))^ZN!!#))^ZK	
L
L	L
L
LsB	B//B8	N)rrrr_rerkrorxrrrrVrVs &HP'ER6>*LrrVceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
edZed
ZedZedZdZdZdZdZdZdZdZdZdZy)TestSnifferzHarry's, Arlington Heights, IL, 2/1/03, Kimi Hayes
Shark City, Glendale Heights, IL, 12/28/02, Prezence
Tommy's Place, Blue Island, IL, 12/28/02, Blue Sunday/White Crow
Stonecutters Seafood and Chop House, Lemont, IL, 12/19/02, Week Back
a'Harry''s':'Arlington Heights':'IL':'2/1/03':'Kimi Hayes'
'Shark City':'Glendale Heights':'IL':'12/28/02':'Prezence'
'Tommy''s Place':'Blue Island':'IL':'12/28/02':'Blue Sunday/White Crow'
'Stonecutters ''Seafood'' and Chop House':'Lemont':'IL':'12/19/02':'Week Back'
z+"venue","city","state","date","performers"
z05/05/03?05/05/03?05/05/03?05/05/03?05/05/03?05/05/03
05/05/03?05/05/03?05/05/03?05/05/03?05/05/03?05/05/03
05/05/03?05/05/03?05/05/03?05/05/03?05/05/03?05/05/03
zT2147483648;43.0e12;17;abc;def
147483648;43.0e2;17;abc;def
47483648;43.0;170;abc;def
zaaa	bbb
AAA	
BBB	
za|b|c
d|e|f
z'a'|'b'|'c'
'd'|e|f
z+"venue"+"city"+"state"+"date"+"performers"
zHarry's+ Arlington Heights+ IL+ 2/1/03+ Kimi Hayes
Shark City+ Glendale Heights+ IL+ 12/28/02+ Prezence
Tommy's Place+ Blue Island+ IL+ 12/28/02+ Blue Sunday/White Crow
Stonecutters Seafood and Chop House+ Lemont+ IL+ 12/19/02+ Week Back
a'Harry''s'+ Arlington Heights'+ 'IL'+ '2/1/03'+ 'Kimi Hayes'
'Shark City'+ Glendale Heights'+' IL'+ '12/28/02'+ 'Prezence'
'Tommy''s Place'+ Blue Island'+ 'IL'+ '12/28/02'+ 'Blue Sunday/White Crow'
'Stonecutters ''Seafood'' and Chop House'+ 'Lemont'+ 'IL'+ '12/19/02'+ 'Week Back'
z|
                        abc,def
                        ghijkl,mno
                        ghi,jkl
                        z~
                        abc,def
                        ghijkl,mnop
                        ghi,jkl
                         z"time","forces"
                        1,1.5
                        0.5,5+0j
                        0,0
                        1+1j,6
                        z|"time","forces"
                        0,0
                        1,2
                        a,b
                        zabcdef
ghijklmno
ghijkl
ctj}|j|j|j|j|j|jyr)r.Snifferr\
has_headersample12assertFalsesample13rsniffers  rtest_issue43625zTestSniffer.test_issue43625sE++-**4==9:++DMM:;rc	tj}|j|j|j|j|j|j
yr)r.r|rr}sample10sample11rs  rtest_has_header_stringsz#TestSniffer.test_has_header_stringssJN++-++DMM:;++DMM:;rctj}|j|j|jd|j|j|j
|jzdyNFT)r.r|rHr}sample1header1rs  rtest_has_headerzTestSniffer.test_has_headerP++-

g((6>

g(()DEtLrctj}|j|j|jd|j|j|j
|jzdyr)r.r|rHr}sample8header2rs  r'test_has_header_regex_special_delimiterz3TestSniffer.test_has_header_regex_special_delimiterrrctj}dD]}|j|5|j|d}|j	|j
d|j	|jd|j|jd|j|jddddy#1swYxYw)N)z	;'123;4';z'123;4';z;'123;4'z'123;4'z,;rr,F)
r.r|rsniffrFr!r&rHrIrL)rrheaderrGs    rtest_guess_quote_and_delimiterz*TestSniffer.test_guess_quote_and_delimiters++-F	?Ff%
?!--5  !2!2C8  !2!2C8

g1159

g66>
?
?	?
?
?sBB99C	ctj}|j|j}|j	|j
d|j	|jd|j|jd|j|j}|j	|j
d|j	|jd|j|jdy)NrBrDTrEr,F)
r.r|rrrFr!r&rHrLsample2rrrGs   r
test_sniffzTestSniffer.test_sniffs++----**C0**C0

g..5---**C0**C0

g..6rctj}|j|j}|j	|j
|j|j|jd}|j
|j
d|j|jd}|j
|j
d|j|j}|j
|j
d|j|j}|j
|j
d|j|j}|j
|j
d|j|j}|j
|j
d|j
|jd	|j|j}|j
|j
d
|j|j}|j
|j
d
|j
|jd	|j|j}|j
|j
dy)Nz?,)
delimiters?z/,/rrrNr,+r)r.r|rsample3rr!rFsample4sample5sample6sample7r&rsample9sample14rs   rtest_delimiterszTestSniffer.test_delimiterss++----	


g''6--->**C0--->**C0---**C0---**D1---**C0---**C0**C0---**C0---**C0**C0--

.**D1rcHtj}|j|j}|j	|j
|j|j}|j	|j
|j|j}|j|j
|j|j}|j	|j
|j|j}|j|j
yr)r.r|rrrrIrrr\rrrs   rtest_doublequotezTestSniffer.test_doublequotes++----,,----,,----++,---,,----++,rN)rrrrrrrrrrrrrrr
rrr~rrrrrrrrrrrrrrzrzXsGGGGG/G"G*GGGGHHHHH<
<M
M
?
728-rrzceZdZdZeZy)NULcyrr)srQs  rr<z	NUL.writesrN)rrrr<
writelinesrrrrrs
Jrrgettotalrefcountzrequires sys.gettotalrefcount()c$eZdZdZdZdZdZy)	TestLeakscd}tj}tdD]}tj|jtjgtj}tjdgtjdgtjdg||z
}|}|j|dy)NrrBa,b,c
r
sysrr`gccollectrFgarbager.r6
assertLess)rdeltalastrcrrcs     rtest_create_readzTestLeaks.test_create_reads%%'r	AJJLRZZ,%%'BJJ}%JJ}%JJ}%vIEF		
q!rcd}tj}t}tdD]}t	j
|j
tjgtj}tj|tj|tj|||z
}|}|j|dy)NrrBr)rrrr`rrrFrr.r?r)rrrrrrs      rtest_create_writezTestLeaks.test_create_writes%%'Er	AJJLRZZ,%%'BJJqMJJqMJJqMvIEF		
q!rcVd}dgdz}tj}tdD]m}tj|jtjgtj}tj|}|D]}||z
}|}o|j|dy)NrrrrBr)rrrrrrrdrrs        r	test_readzTestLeaks.test_read$s}Q%%'r	AJJLRZZ,%%'B**T"C

vIEF		
q!rcd}gdgdz}t}tj}tdD]~}t	j
|j
tjgtj}tj|}|D]}|j|||z
}|}|j|dy)Nrr?rrB)rrrr`rrrFrr.r?rxr)	rrrrrrrr?rs	         r
test_writezTestLeaks.test_write4sy{E%%'r	AJJLRZZ,%%'BZZ]F
%$
%vIEF		
q!rN)rrrrrrrrrrrrs
"" " "rrc eZdZgdZdZdZy)TestUnicode)uMartin von LöwisuMarc André LemburgzGuido van RossumuFrançois Pinardc<tddd5}|jdj|jdz|j	dtj|}|jt||jgdddy#1swYyxYwNrsr+rtr>rBrCr)	rr<rEnamesryr.r6rFrrs   rtest_unicode_readzTestUnicode.test_unicode_readLsv
4g
>	9'MM#((4::.78LLOZZ(FT&\DJJ<8		9	9	9sA:BBcHtddd5}tj|}|j|jdj|jdz}|j
d|j|j|dddy#1swYyxYwr)	rr.r?rxrrEryrFrz)rr}r?r@s    rtest_unicode_writezTestUnicode.test_unicode_writeTs{
4g
>	7'ZZ(FOODJJ'xx

+F2HLLOW\\^X6	7	7	7sBBB!N)rrrrrrrrrrrEs
!E
97rrceZdZdZdZy)KeyOrderingTestct}tdD]}tddd5}tj||}|j|j
dtj|}t|j}|j|||j|ddd|jt|ddy#1swYxYw)	Nabcdersr+rtr>rxz@Key ordering: some key permutations not collected (expected 120))
setr	rr.rrryrtuplerrFaddlen)r	resultsetkeys
fileobjectdwdrkts       r,test_ordering_for_the_dict_reader_and_writerz<KeyOrderingTest.test_ordering_for_the_dict_reader_and_writer^sE	 )	"DtR'B
"j^^J5 "^^J/2==)  r*

b!
"
"	"	
Y.pq
"
"sBCC	ctdj}|jtt	j
|t
ddgt
dddddgfgt
dd	gt
d
dgg|jtt	j
|d
t
ddgt
dddddgfgt
dd	gt
d
dgg|d=|jtt	j
|ddgt
ddgt
dddddgfgt
ddgt
ddggy)Nz            FirstName,LastName
            Eric,Idle
            Graham,Chapman,Over1,Over2

            Under1
            John,Cleese
        )	FirstNameEric)LastNameIdle)rGraham)rChapmanOver1Over2)rUnder1)rN)rJohn)rCleese	OtherInfor&rfnamelnamer)rr)rr)rr)rr)rr)rN)rr)rr)r

splitlinesrFrr.rr)rdatas  rtest_ordered_dict_readerz(KeyOrderingTest.test_ordered_dict_readerls
Z\	
	
cnnT23
/1EF
G
13J'7!3467
13EF
G
/1GH
I	
		
cnnT;GH
/1EF
G
13J&'(:;=>
13EF
G
/1GH
I	
	
GcnnTw>PQR
+->?
@
-/C'7!3467
-?
@
+-@A
B	
	rN)rrrrrrrrrr\s
r!rrc<eZdZdZdZejdZy)MiscTestCasecFddh}tj|td|y)N__doc____version__)r._csv)extra)rcheck__all__r.)rrs  rtest__all__zMiscTestCase.test__all__s M*T3uErc6Gddtj}y)NceZdZy)+MiscTestCase.test_subclassable.<locals>.FooNrUrrrFoorsrr)r.r/)rrs  rtest_subclassablezMiscTestCase.test_subclassables!#))!rctjd}|j|jfD])}|j	|5t||ddd+y#1swY6xYw)Nr)tp)r
import_moduleReaderWriterrr)rrrs   rtest_disallow_instantiationz(MiscTestCase.test_disallow_instantiations`**62++t{{*	7B$
7,T26
7
7	7
7
7s
AA$	N)rrrrrrrrrrrrrs'F"
77rr__main__)/r]runittestiortempfilerr.rratestrtest.supportrrrrr	textwrapr
collectionsrr
TestCaserr
rgrnrrrrrrrr@rVrzr
skipUnlesshasattrrrrrrmainrrr<module>rs
"
	
UU"#
M.x  M.^KK(++KKZ>(##> _O{_OB399?{?SkSA[AOHX&&OHb,7h'',7\NL(++NLbc-(##c-J
WS"4568?"!!?"8?"B7(##7.1h''1h78$$7 zHMMOr