python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_io.cpython-311.pyc

e

dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlmZmZddlmZmZddlmZddlmZmZmZddlmZddlmZdd	lmZdd
lm Z ddlm!Z!ddl"m#Z#ddl$Z$ddl%Z%ddl&Z'	ddl(Z(d
Z)Gdde(j*Z+n#e,$rdZ)YnwxYwe-e	dpe	j.j/Z0dZ1e
j2e-eddZ3GddZ4GddZ5Gdde5e%j6Z7Gdde5e'j6Z8Gdde5Z9Gdd e9e%j6Z:Gd!d"e9e'j6Z;Gd#d$e9Z<Gd%d&e<e%j6Z=Gd'd(e<e'j6Z>Gd)d*e9Z?Gd+d,e?e%j6Z@Gd-d.e?e'j6ZAGd/d0e9ZBGd1d2eBe%j6ZCGd3d4eBe'j6ZDGd5d6ZEGd7d8eEe%jFZGGd9d:eEe'jFZHGd;d<ZIGd=d>eIe%jFZJGd?d@eIe'jFZKGdAdBZLGdCdDeLe%j6ZMGdEdFeLe'j6ZNGdGdHe
jOZPGdIdJePZQGdKdLePZRejSGdMdNe
jOZTGdOdPZUGdQdRZVGdSdTe
jOeUZWGdUdVeWeVZXGdWdXeWZYGdYdZe
jOeUZZGd[d\eZeVZ[Gd]d^eZZ\Gd_d`e
jOZ]Gdadbe]Z^Gdcdde]Z_GdedfeWeZZ`Gdgdhe`eVZaGdidje`ZbGdkdle$jcZddmZeGdndoe
jOZfGdpdqe
jOZgGdrdse%jFZhdtZiGdudvegZjGdwdxegZkGdydze
jOZlGd{d|elZmGd}d~elZnGdde
jOZoGddeoZpGddeoZqe
jrejsdkdGdde
jOZtGddetZuGddetZvdZwexdkre
jydSdS)zUnit tests for the io module.N)dequeUserList)cyclecount)support)assert_python_okassert_python_failurerun_python_until_end)
import_helper)	os_helper)threading_helper)warnings_helper)skip_if_sanitizer)FakePathct|i|}t}tj|t	||t|ddd<|S)z?Create a bytes-like object having no string or sequence methodsBN)bytesEmptyStructctypesresizelen
memoryviewcast)poskwdataobjs    @/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_io.py	bytesliker;s\c R  mm
c3t99%%%'+
3S!!!!!$
ceZdZdS)rN__name__
__module____qualname__r rrrBsr rc@tjdt|i|S)Nb)arrayr)rrs  rrr8s!{3s 1b 1 1222r gettotalrefcountcrttdd5}|jcdddS#1swxYwYdS)z(Get the default TextIOWrapper chunk sizerlatin-1encodingN)open__file___CHUNK_SIZE)fs r_default_chunk_sizer4Js}	
hi	0	0	0A}s,00alarmztest requires signal.alarm()ceZdZdZdS)BadIndexcddzdSNrr&selfs r	__index__zBadIndex.__index__U	!r N)r#r$r%r=r&r rr7r7Ts#r r7cReZdZdZddZdZdZdZdZdZ	d	Z
d
ZdZdd
Z
dS)MockRawIOWithoutReadzmA RawIO implementation without read(), so as to exercise the default
    RawIO.read() which calls readinto().r&cXt||_g|_d|_d|_dSNr)list_read_stack_write_stack_reads_extraneous_reads)r<
read_stacks  r__init__zMockRawIOWithoutRead.__init__\s/
++!"r cn|jt|t|SN)rEappendrrr<r(s  rwritezMockRawIOWithoutRead.writebs*  q***1vv
r cdSNTr&r;s rwritablezMockRawIOWithoutRead.writableftr cdSN*r&r;s rfilenozMockRawIOWithoutRead.filenoisrr cdSrPr&r;s rreadablezMockRawIOWithoutRead.readablelrRr cdSrPr&r;s rseekablezMockRawIOWithoutRead.seekableorRr cdSrBr&r<rwhences   rseekzMockRawIOWithoutRead.seekrqr cdSrBr&r;s rtellzMockRawIOWithoutRead.tellur_r cd|xjdz
c_t|}	|jd}n!#t$r|xjdz
c_YdSwxYw|
|jd=dSt|}t||kr|jd=||d|<|S|d||dd<||d|jd<|Sr9)rFrrD
IndexErrorrG)r<bufmax_lenrns     rreadintozMockRawIOWithoutRead.readintoxsqc((	#A&DD			""a'""11	< #4IIt99 #CGH(7(^CF"&wxx.DQNs
/A
A
Nc|SrKr&)r<rs  rtruncatezMockRawIOWithoutRead.truncates
r )r&rK)r#r$r%__doc__rIrNrQrVrXrZr^rargrir&r rr@r@Xs,,####*r r@ceZdZdS)CMockRawIOWithoutReadNr"r&r rrlrlDr rlceZdZdS)PyMockRawIOWithoutReadNr"r&r rrorormr roceZdZddZdS)	MockRawIONc|xjdz
c_	|jdS#|xjdz
c_YdSxYw)Nr:rr )rFrDpoprGr<rfs  rreadzMockRawIO.readsRq	#''***	""a'""33s	,ArKr#r$r%rur&r rrqrqs(r rqceZdZdS)
CMockRawIONr"r&r rrxrxrmr rxceZdZdS)PyMockRawIONr"r&r rrzrzrmr rzc@eZdZfdZdfd	ZdZdZfdZxZS)MisbehavedRawIOcLt|dzSN)superrN)r<r(	__class__s  rrNzMisbehavedRawIO.writesww}}Q!##r NcLt|dzSr~)rru)r<rfrs  rruzMisbehavedRawIO.readsww||A""r cdS)Nir&r\s   rr^zMisbehavedRawIO.seekrRr cdS)Ni8r&r;s rrazMisbehavedRawIO.tellrRr cjt|t|dzS)N)rrgr)r<rdrs  rrgzMisbehavedRawIO.readintos+
3xx!|r rK)	r#r$r%rNrur^rarg
__classcell__rs@rr|r|s$$$$$######r r|ceZdZdS)CMisbehavedRawIONr"r&r rrrrmr rceZdZdS)PyMisbehavedRawIONr"r&r rrrrmr rc$eZdZfdZdZxZS)SlowFlushRawIOcxttj|_dSrK)rrI	threadingEventin_flush)r<rs rrIzSlowFlushRawIO.__init__s,
!))


r c`|jtjddS)Ng?)rsettimesleepr;s rflushzSlowFlushRawIO.flushs,

4r )r#r$r%rIrrrs@rrrsG*****r rceZdZdS)CSlowFlushRawIONr"r&r rrrrmr rceZdZdS)PySlowFlushRawIONr"r&r rrrrmr rceZdZdZdZdS)CloseFailureIOrc0|jsd|_tdSNr:closedOSErrorr;s rclosezCloseFailureIO.closes"{	DKM		r N)r#r$r%rrr&r rrrs(
Fr rceZdZdS)CCloseFailureIONr"r&r rrrrmr rceZdZdS)PyCloseFailureIONr"r&r rrrrmr rc4eZdZfdZdfd	ZfdZxZS)
MockFileIOcXg|_t|dSrK)read_historyrrI)r<rrs  rrIzMockFileIO.__init__s)
r Nct|}|j|dnt	||SrK)rrurrLr)r<rfresrs   rruzMockFileIO.reads@ggll1oo  #c((CCC
r c~t|}|j||SrK)rrgrrL)r<r(rrs   rrgzMockFileIO.readintos6ggq!!  %%%
r rK)r#r$r%rIrurgrrs@rrrso
r rceZdZdS)CMockFileIONr"r&r rrrrmr rceZdZdS)PyMockFileIONr"r&r rrrrmr rc&eZdZdZdZdZdZdS)MockUnseekableIOcdSNFr&r;s rrZzMockUnseekableIO.seekablesur c,|dNznot seekableUnsupportedOperationr<argss  rr^zMockUnseekableIO.seek''777r c,|drrrs  rrazMockUnseekableIO.tellrr c,|drrrs  rrizMockUnseekableIO.truncaterr N)r#r$r%rZr^rarir&r rrrsP88888888888r rceZdZejZdS)CMockUnseekableION)r#r$r%iorr&r rrrs2r rceZdZejZdS)PyMockUnseekableION)r#r$r%pyiorr&r rrrs4r rc@eZdZdZdZdZdZdZddZdZ	d	Z
d
S)MockNonBlockWriterIOc"g|_d|_dSrK)rE
_blocker_charr;s rrIzMockNonBlockWriterIO.__init__s!r cRd|j}g|jdd<|SNr )joinrE)r<ss  rpop_writtenz MockNonBlockWriterIO.pop_writtens,HHT&''!!!!r c||_dS)z'Block when a given char is encountered.N)r)r<chars  rblock_onzMockNonBlockWriterIO.block_ons!r cdSrPr&r;s rrXzMockNonBlockWriterIO.readablerRr cdSrPr&r;s rrZzMockNonBlockWriterIO.seekablerRr rcdSrBr&r\s   rr^zMockNonBlockWriterIO.seeksqr cdSrPr&r;s rrQzMockNonBlockWriterIO.writable#rRr c@t|}d}|jr^	||j}|dkr$|j|d||Sd|_dS#t
$rYnwxYw|j|t
|S)Nr)rrindexrErL
ValueErrorr)r<r(rfs   rrNzMockNonBlockWriterIO.write&s!HH
	 
 GGD.//q55%,,QrrU333H*.D&4



	
  ###1vv
sA''
A43A4Nr)r#r$r%rIrrrXrZr^rQrNr&r rrr
s"""
"""r rceZdZejZdS)CMockNonBlockWriterION)r#r$r%rBlockingIOErrorr&r rrr:s(OOOr rceZdZejZdS)PyMockNonBlockWriterION)r#r$r%rrr&r rrr=s*OOOr rceZdZdZdZdZd7dZdZdZdZ	e
jej
d	e
jeed
ddZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)d%Z*d&Z+d'Z,d(Z-d)Z.d*Z/d+Z0d,Z1d-Z2d.Z3d/Z4d0Z5d1Z6d2Z7d3Z8d4Z9d5Z:d6S)8IOTestcBtjtjdSrKrunlinkTESTFNr;s rsetUpzIOTest.setUpC)*****r cBtjtjdSrKrr;s rtearDownzIOTest.tearDownFrr c||dd|d||d|d||dd||dd||dd||d||ddd||dtd}|||d	d
|dd<||dd||dd||ddd
||d
||dd||d
|t|jddS)Nsblah.rrsHello.rr:s	 world


	s	*********hr
)assertEqualrNrirar^	bytearrayassertRaises	TypeError)r<r3buffers   r	write_opszIOTest.write_opsIs:**A...	

1


1%%%	q			**A...A&&&++Q///1%%%A***1%%%?++!,,,qqq	A&&&***A+++2&&&B,,,2&&&)QVS11111r Fc.|d}||dt|}|||d|t	|dtd}|||d|t
|d||ddd||dd||dd||d	d
||tdd||ddd
||dd||dd
||td||dd	d||dd||d|	t|jd|r|d||d|d
||d||d
|dtd}|||d|t	|ddSdS)Nrshellos worlrd
rhello world
r:r xirsworld
rsworld
)rurrrgrrrr^rarr	readinto1)r<r3bufferedrs    rread_opszIOTest.read_opsasKvvayyx(((D))1---th///||D))1---TA&&&bqb6***A&&&%5666C(((IdOO44a888A***H---C(((IKK00!444A***H---2&&&)QVS111		4
FF1IIIQVVXX'7888
FF1IIIQVVXXz222QVVXXs+++
FF1IIIQ<<DQ[[..222U4[[(33333		4		4r lc|sJ|sJ	|||j|jn,#t
tf$r|dYnwxYw|||j||	dd|||jdz||dd|jdz||
|jdz|||jdz||dd|jdz||
|jdz|jdz|||jdz||dd|jdz||dd|j||dddS)	Nzno largefile supportxxxrr:rrr)rXrQrr^LARGE
OverflowErrorrskipTestrarNrirur<r3s  rlarge_file_opszIOTest.large_file_opssQzz||zz||	2QVVDJ//<<<<z*	2	2	2MM011111	24:...!,,,4:>222A
Q777tzA~6664:>2221tzA~666DJN33TZ!^DDD4:>2221tzA~666A
333D)))))s3A""&B
Bc|j}|tjdd5}|||j|||jdddn#1swxYwY|tjd5}|||j|||jdddn#1swxYwY|tjdd5}|||j|||jdddn#1swxYwY|tjdd5}|||jd|||jd	gdddn#1swxYwY|tjd5}|||jd|||jd	gdddn#1swxYwY|tjd
d5}|||jd|||jdg|||j	d
|j
|||j	d|jddddS#1swxYwYdS)Nwutf-8r.wbr	bufferingrbsblahsblah
r,blahzblah
r:r)rr0rrrrureadlinerN
writelinesr^SEEK_CURSEEK_END)r<excfps   rtest_invalid_operationszIOTest.test_invalid_operationss'
YYy'wY
?
?	02c27+++c2;///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0YYy'
.
.	0"c27+++c2;///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0YYy'Y
;
;	0rc27+++c2;///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0YYy'Y
;
;	?rc28W555c2=9+>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?YYy'
.
.	?"c28W555c2=9+>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?YYy'wY
?
?	?2c28V444c2=8*===c27At}===c27B
>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?sl7A--A14A17CC"C7EEE8:F>>GG):H//H36H3A>K''K+.K+%fstat() of a pipe fd is not supportedpiperequires os.pipe()cfd}fd}fd}fd}fd}fd}fd}fd}|d	f|d
f|df|df|d
f|df|df|dfjd
fjd
ff
}	|	D]\}
}|
5|
5}d|v}
||
d|v}||t
|jrd}n4t
|jj	frd}n
dd|vr|n t|j|
r*|d|nAt|jdt|j|r||n!t|j|t jdr|
||fvr	ddddddd|v}|||r*||dnAt|jt|jd|r,|r*||dnAt|jt|jddddn#1swxYwYdddn#1swxYwY dS)Nctj\}}tj||dS)Nr,)osrrFileIO)r,r	r<s  rpipe_readerz3IOTest.test_optional_abilities.<locals>.pipe_readers3WYYFQHQKKK;;q#&&&r c<tj\}}tj|t	jtj|df}||j	|dS)Ndtargetrr	)
rr
addCleanuprrThreadrustartrr)r,r	threadr<s   rpipe_writerz3IOTest.test_optional_abilities.<locals>.pipe_writersxWYYFQOOBHa(((%RWAs8DDDFLLNNNOOFK(((;;q#&&&r cRSrK)BufferedReaderrr;srbuffered_readerz7IOTest.test_optional_abilities.<locals>.buffered_reader#&&t'<'<'>'>???r cRSrK)BufferedWriterrr;srbuffered_writerz7IOTest.test_optional_abilities.<locals>.buffered_writerr+r cRSrK)BufferedRandomBytesIOr;srbuffered_randomz7IOTest.test_optional_abilities.<locals>.buffered_randoms&&t||~~666r cxSrK)BufferedRWPairrr;srbuffered_rw_pairz8IOTest.test_optional_abilities.<locals>.buffered_rw_pairs8&&t'<'<'>'>%%''))
)r cjGfddj}|dS)Nc@eZdZjjZjjZdS)MIOTest.test_optional_abilities.<locals>.text_reader.<locals>.UnseekableReaderN)r#r$r%BufferedIOBaserQrNr;srUnseekableReaderr8s%.7+1r r:asciir
TextIOWrapper)r:r<s rtext_readerz3IOTest.test_optional_abilities.<locals>.text_readers\
2
2
2
2
2
2
24#8
2
2
2%%&6&6&8&8'BBBr cjGfddj}|dS)Nc@eZdZjjZjjZdS)MIOTest.test_optional_abilities.<locals>.text_writer.<locals>.UnseekableWriterN)r#r$r%r9rXrur;srUnseekableWriterrAs%.7*/r rBr;r<)rBr<s rtext_writerz3IOTest.test_optional_abilities.<locals>.text_writers\
0
0
0
0
0
0
04#8
0
0
0%%&6&6&8&8'BBBr frfwr,r	rwsrw33zUnknown base classr3r:winrr)r1StringIOsubTestrrXrQ
isinstance
TextIOBaser9	RawIOBasefailrVrrrurNsysplatform
startswithrZrar^ri)r<rr'r*r.r2r5r>rCteststest	abilitiesrrXrQrrZs`                rtest_optional_abilitieszIOTest.test_optional_abilitiess	'	'	'	'	'
	'	'	'	'	'	@	@	@	@	@	@	@	@	@	@	7	7	7	7	7	)	)	)	)	)	C	C	C	C	C	C	C	C	C	C$+t!4
c"_c$:
e$'7&>
#c 2
\5!DM5#9
"'2	@2	@T9d##1
@1
@TTVV1
@s)+  :::)+  :::c4?334DDd&94>%JKK4DDII2333)##JJLLLL%%gsz:::9HHQKKKHHJJJJ%%gsx;;;%%gsx888@IIdOOOO%%gsy$???<**511d#[?27272C1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@D)+  :::<HHJJJHHQKKKK%%gsx888%%gsx;;;@@LLNNNLLOOOO%%gs|<<<%%gs|Q???c1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@1
@2	@2	@sD1M)<F*M&M)>DMM)MM)MM))M-	0M-	cFd}|t|j|ddt|d}t	j5t	jdt|t|j|ddddddS#1swxYwYdS)Nzfoobarr	r
r.r;ignore)rrr0rwarningscatch_warningssimplefilterDeprecationWarning)r<fn_with_NULbytes_fns   rtest_open_handles_NUL_charsz"IOTest.test_open_handles_NUL_charss *dicGTTTg..

$
&
&	V	V!(,>???j$)XsWUUU	V	V	V	V	V	V	V	V	V	V	V	V	V	V	V	V	V	Vs
?BBBc$|tjdd5}||d||d||d||dddn#1swxYwY|tjdd5}||d||d||d||ddddS#1swxYwYdS)NrrrFTr	r0rrrrXrQrZrrrs  rtest_raw_file_iozIOTest.test_raw_file_io&s
YYy'Y
;
;	qQZZ\\5111QZZ\\4000QZZ\\4000NN1																
YYy'Y
;
;	qQZZ\\4000QZZ\\5111QZZ\\4000MM!																			s%BB==CC*BFF	F	c|tjd5}||d||d||d||dddn#1swxYwY|tjd5}||d||d||d||dddddS#1swxYwYdS)NrFTrrbrs  rtest_buffered_file_iozIOTest.test_buffered_file_io2s
YYy'
.
.	!QZZ\\5111QZZ\\4000QZZ\\4000NN1																
YYy'
.
.	#!QZZ\\4000QZZ\\5111QZZ\\4000MM!T"""		#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#s%BB;;B?B?&BFF	Fc|tjd5}|ddddn#1swxYwY|tjd5}||d||dd||dd||d	d
||d||dd|t|jd
dddn#1swxYwY|tjdd5}|t|jd
ddddS#1swxYwYdS)Nrs"abc
def
xyzzy
foobar
another linerabc
rdef
rxyszzy
sfoobar
sanother lineg333333@r,r
r.)r0rrrNrrrrrs  r
test_readlinezIOTest.test_readline>sg
YYy'
.
.	B!
GG@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B
YYy'
.
.	:!QZZ\\8444QZZ^^X666QZZ]]E222QZZ]]H555QZZ\\?;;;QZZ--???iS999	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:YYy'wY
?
?	:1iS999	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:	:s6AA
A.DFFF="G,,G03G0cGdd|j}|ttft|dS)NceZdZdZdS)+IOTest.test_readline_nonsizeable.<locals>.RcdSrKr&r;s rrz4IOTest.test_readline_nonsizeable.<locals>.R.readlinePtr N)r#r$r%rr&r rRrnO#




r rq)IOBaserr
StopIterationnextr<rqs  rtest_readline_nonsizeablez IOTest.test_readline_nonsizeableLsY									
9m4dAACC@@@@@r c~Gdd|j}|t|jddS)NceZdZdZdS)'IOTest.test_next_nonsizeable.<locals>.RcdSrKr&r;s r__next__z0IOTest.test_next_nonsizeable.<locals>.R.__next__Xrpr N)r#r$r%r|r&r rrqrzWrrr rqr:)rsrr	readlinesrvs  rtest_next_nonsizeablezIOTest.test_next_nonsizeableTsV									
)QQSS]A66666r c|}|||}||d||}||ddS)NrT)r1rgetvaluerr)r<r3rs   rtest_raw_bytes_iozIOTest.test_raw_bytes_io\spLLNNqzz||/000LL

ar ctjdddkstjdkrtjdd|jz|tjdd5}||dddn#1swxYwY|tjd5}||ddddS#1swxYwYdS)NrrJdarwin	largefilez-test requires %s bytes and a long time to runw+br)	rQrRrrequiresrr0rrrrs  rtest_large_file_opszIOTest.test_large_file_opsdsX<u$$(@(@?$*L
N
N
NYYy'
2
2	#a"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#
YYy'
/
/	#1"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#s$'B		B
B
4CCCcdD]}d}|tjd|5}|ddddn#1swxYwY||jdd}	|tjd|5}ddzdddn#1swxYwY|d#t$r||jdYwxYwdS)N)rr rrTr:rz1/0 didn't raise an exception)r0rrrNrrrPZeroDivisionError)r<bufsizer3s   rtest_with_openzIOTest.test_with_openqs	;	;GA9+T7;;
 q
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 QXt,,,A
;YYy/w??1aCC
		9::::%
1
1
1  400000
1	;	;sGA

A	A	3!CB&C&B*	*C-B*	.C%C/.C/c|tjd5}|ddddn#1swxYwY|tjdd5}||ddddn#1swxYwY|tjd5}||ddddn#1swxYwY|tjdd	5}||dddddS#1swxYwYdS)
Nrrabrrrar
r.)r0rrrNrra
assertGreaterrs  rtest_append_mode_tellzIOTest.test_append_mode_tells&
YYy'
.
.	!
GGFOOO															
YYy'Y
;
;	*qQVVXXq)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*
YYy'
.
.	*!QVVXXq)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*
YYy'wY
?
?	,1qvvxx+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,sGAA
A0)B%%B),B))DD	D	2)E((E,/E,cgGfdd|j}tjdtf5|tjd}|d~tj|	gd|
tjd5}|	|ddddn#1swxYwYddddS#1swxYwYdS)Nc:eZdZfdZfdZfdZxZS)(IOTest.test_destructor.<locals>.MyFileIOcd	tj}|dS#t$rYdSwxYwrrLr__del__AttributeErrorr<r3rrecords  rrz0IOTest.test_destructor.<locals>.MyFileIO.__del__Z

a   AACCCCC&DD7
AAcrdtdSr~rLrrr<rrs rrz.IOTest.test_destructor.<locals>.MyFileIO.close*

a   

r crdtdSNrrLrrrs rrz.IOTest.test_destructor.<locals>.MyFileIO.flushrr r#r$r%rrrrrrs@rMyFileIOrz






 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 r rrrr:rrr)rrcheck_warningsResourceWarningrrrNr
gc_collectrr0ru)r<rr3rs   @rtest_destructorzIOTest.test_destructors	 	 	 	 	 	 	 t{	 	 	 
+R,A
B
B	3	3)400A
GGFOOO   VYYY///9+T22
3a  6222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3s6A8C9,)C!C9!C%	%C9(C%	)C99C=C=cgGfdd|}|}~tj|gddS)Nc@eZdZdZfdZfdZfdZxZS)+IOTest._check_base_destructor.<locals>.MyIOc0d|_d|_d|_dS)Nr:rr)on_delon_closeon_flushr;s rrIz4IOTest._check_base_destructor.<locals>.MyIO.__init__s
  !
 !


r c|j	tj}|dS#t$rYdSwxYwrK)rLrrrrrs  rrz3IOTest._check_base_destructor.<locals>.MyIO.__del__s\

dk***AACCCCC&DDs<
A
	A
c||jtdSrK)rLrrrrs rrz1IOTest._check_base_destructor.<locals>.MyIO.close,

dm,,,

r c||jtdSrK)rLrrrrs rrz1IOTest._check_base_destructor.<locals>.MyIO.flushrr )r#r$r%rIrrrrrs@rMyIOrs
"
"
"






 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 r rr)rrr)r<baserr3rs    @r_check_base_destructorzIOTest._check_base_destructors{	 	 	 	 	 	 	 4	 	 	 .
DFF
+++++r c:||jdSrK)rrsr;s rtest_IOBase_destructorzIOTest.test_IOBase_destructors##DK00000r c:||jdSrK)rrOr;s rtest_RawIOBase_destructorz IOTest.test_RawIOBase_destructors##DN33333r c:||jdSrK)rr9r;s rtest_BufferedIOBase_destructorz%IOTest.test_BufferedIOBase_destructors##D$788888r c:||jdSrK)rrNr;s rtest_TextIOBase_destructorz!IOTest.test_TextIOBase_destructors##DO44444r cb|tjd5}|ddddn#1swxYwY|tjd5}||dddddS#1swxYwYdS)Nrrrr0rrrNrrurs  rtest_close_flusheszIOTest.test_close_flushess
YYy'
.
.	!
GGFOOO															
YYy'
.
.	/!QVVXXv...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/#AA
A.)B$$B(+B(crtjdtdtfd}||tjd|	|
	|		dS)Nirc|5||fddddS#1swxYwYdSrK)rrNr)r3rrfr<s rcheckz'IOTest.test_array_writes.<locals>.checks
#
#  Q///aT"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#sAAAAr	)r)rangertobytesr1rrrr-rqr0r4)r<rrrfs` @@rtest_array_writeszIOTest.test_array_writessKU2YY''			#	#	#	#	#	#	#	dllnn
dkk)*C00111
d!!$.."2"233444
d!!$.."2"233444
d!!$.."2"2DNN4D4DEEFFFFFr cd|t|jtjddddS)Nr	r
Fr/closefdrrr0rrr;s rtest_closefdzIOTest.test_closefds;*di1A3#*E		;	;	;	;	;r c|tjdd5}|ddddn#1swxYwY|tjdd5}||ddd}||d|d||	t|jdddn#1swxYwY|tjd	5}||d	d
}||ddd||	t|jtd
ddddS#1swxYwYdS)Nr	r
r.egg
r,Frrrrrseggr:)
r0rrrNrVrrur^rrrrgrr<r3files   rtest_read_closedzIOTest.test_read_closeds`
YYy'wY
?
?	1
GGG															
YYy'wY
?
?	5199QXXZZw9NNDTYY[['222IIaLLLJJLLLj$)444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5YYy'
.
.	G!99QXXZZu9==DTYY[[!_f555JJLLLj$-1FFF		G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	Gs7AA	A	2BDD"DBG00G47G4cd|t|jtjddddS)Nr,r
Frrr;s rtest_no_closefd_with_filenamez$IOTest.test_no_closefd_with_filenames;*di1A3#*E		;	;	;	;	;r c|tjd5}|ddddn#1swxYwY|tjdd5}||jjjd||ddd}||jjjdddddS#1swxYwYdS)	Nrsegg
r,r
r.TFr)	r0rrrNrrrawrrVrs   rtest_closefd_attrzIOTest.test_closefd_attrsT
YYy'
.
.	!
GGH															
YYy'wY
?
?	=1QX\1488899QXXZZw9NNDT[_4e<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=s$AA
A0A6C33C7:C7c2tjdtf5|tjd}|d||_tj	|}~tjdddn#1swxYwY||||
tjd5}||dddddS#1swxYwYdS)Nrrsabcxxxr)rrrrrrrNr3weakrefrefrrassertIsNoner0rru)r<r3wrs   rtest_garbage_collectionzIOTest.test_garbage_collectionsq
+R,A
B
B	!	!I,d33A
GGIACQB   
	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	
""$$###
YYy'
.
.	2!QVVXXy111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s$A%B

BB)DDDcd}tj|s(|d|t
jdkr|dtjtj	kr|d|
|dd5}|t|j
dddn#1swxYwY|
|d5}|t|j
dddn#1swxYwY|
|d	5}|t|j
ddddS#1swxYwYdS)
Nz	/dev/zeroz{0} does not existz+test can only run in a 32-bit address spacez&test requires at least 2 GiB of memoryrrrr,)rpathexistsrformatrQmaxsizerreal_max_memuse_2Gr0rrru)r<zeror3s   rtest_unbounded_filezIOTest.test_unbounded_filesw~~d##	=MM.55d;;<<<;##MMGHHH"W[00MMBCCC
YYtTQY
/
/	51mQV444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5
YYtT
"
"	5amQV444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5
YYtS
!
!	5QmQV444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5s66!C##C'*C'!D11D58D5!FFFc&|j|i|gfd}|_|tj|j||dd_dS)Nc:jgdd<trKr)rr3sr	bad_flushz4IOTest.check_flush_error_on_close.<locals>.bad_flush%s
F111I))Or rcdSrKr&r&r r<lambda>z3IOTest.check_flush_error_on_close.<locals>.<lambda>-$r )r0rrrr
assertTruerassertFalse)r<rkwargsrrr3s    @@rcheck_flush_error_on_closez!IOTest.check_flush_error_on_close s
DIt&v&&						'17+++!!!###,r c|tjddtjtjtjtjz}||ddtjtjtjtjz}||dddtj||tjdtjtjtjtjz}||dtjtjtjtjz}||ddtj||tjdd	tjtjtjtjz}||dd	tjtjtjtjz}||ddd
tj|dS)NrrrF)r
rrr	r
r.r)rrrrr0O_WRONLYO_CREATr)r<fds  rtest_flush_error_on_closez IOTest.test_flush_error_on_close/s	
''	(8$!'LLL
WY%r{2:'=
>
>''DA'>>>
WY%r{2:'=
>
>''DAu'MMM
''	(8$???
WY%r{2:'=
>
>''D111
WY%r{2:'=
>
>''D%'@@@
''	(8#'PPP
WY%r{2:'=
>
>''C''BBB
WY%r{2:'=
>
>''C'5'QQQ
r c|tjdd}||||t
|jdS)Nrrr)r0rrrrrrrs  rtest_multi_closezIOTest.test_multi_closeGsaIIi&I::												*ag.....r c|d}||dd||dd||dd||dd||dd||dd||dd||dddS)	N)abcdNefgNrabcrefgr )r@rrur<rawios  rtest_RawIOBase_readzIOTest.test_RawIOBase_readNs))*LMMA...A---A---A---A...A---A---A,,,,,r c|||||f}|D]%}|t
|d&dS)N__dict__)rsrOrNrKr1rhasattr)r<rUrs   rtest_types_have_dictzIOTest.test_types_have_dict[s~KKMMNNOOMMOOLLNN
	6	6COOGC445555	6	6r c|tjdd5}|ddddn#1swxYwYt	jtjtjfd}|ddd|5}||dddddS#1swxYwYdS)	Nr	r
r.rcSrKr&)rflagsrs  ropenerz"IOTest.test_opener.<locals>.openerjsIr non-existentr,)r/r)r0rrrNrO_RDONLYrru)r<r3rrs   @rtest_openerzIOTest.test_openerfsK
YYy'wY
?
?	1
GGG															
WY%r{
3
3					
YY~sWVY
L
L	0PQQVVXXw///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0s#AA

A
)CCCcd}|t5}tdd|dddn#1swxYwY|t	|jddS)NcdSNrr&fnamers  r	badopenerz4IOTest.test_bad_opener_negative_1.<locals>.badopenerq2r rr,rzopener returned -1rrr0rstr	exceptionr<rcms   rtest_bad_opener_negative_1z!IOTest.test_bad_opener_negative_1o			


z
*
*	8bY7777	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8R\**,@AAAAA=AAcd}|t5}tdd|dddn#1swxYwY|t	|jddS)NcdS)Nr&rs  rrz8IOTest.test_bad_opener_other_negative.<locals>.badopeneryrr rr,rzopener returned -2rr s   rtest_bad_opener_other_negativez%IOTest.test_bad_opener_other_negativewr#r$ctj|t5}|dfddddn#1swxYwY||jjtjdS)NfoocSrKr&)namerrs  rrz/IOTest.test_opener_invalid_fd.<locals>.<lambda>sr r)	rmake_bad_fdrrr0rrerrnoEBADF)r<r!rs  @rtest_opener_invalid_fdzIOTest.test_opener_invalid_fds
"
$
$


w
'
'	<2IIe$:$:$:$:I;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<+U[99999sAAAc|td5}|td5}||d}||d|||dddn#1swxYwYddddS#1swxYwYdS)NrFr)r0r1rrVrIrr)r<f1f2fileios    rtest_fileio_closefdzIOTest.test_fileio_closefds@
YYx
&
&	"
YYx
&
&	*,[[e[<<FOOBIIKKO777KKMMMLLNNNKKMMM																																	s5C+BCC+C	C+C	C++C/2C/c
tj|5|t5|t
jddddddn#1swxYwYddddS#1swxYwYdS)Nr	r
rr/r
rcheck_no_resource_warningrrr0rrr;s rtest_nonbuffered_textiozIOTest.test_nonbuffered_textios"

6t
<
<	P	P"":..
P
P		)*C'Q	OOO
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P4A8$A A8 A$	$A8'A$	(A88A<?A<c
tj|5|t5|t
jddddddn#1swxYwYddddS#1swxYwYdS)Nr	r
invalidr/newliner8r;s rtest_invalid_newlinezIOTest.test_invalid_newlines"

6t
<
<	V	V"":..
V
V		)*C'9	UUU
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V	V	V	V	V	V	V	V	V	V	V	V	V	V	V	V	V	V	Vr;c	bGdd|j}|}dD]}||5td}|t	|||d|t|ddddn#1swxYwYdS)NceZdZdZeZdS)3IOTest.test_buffered_readinto_mixin.<locals>.StreamcdS)N12345r&r<sizes  rruz8IOTest.test_buffered_readinto_mixin.<locals>.Stream.readsxr N)r#r$r%ruread1r&r rStreamrCs"
 
 
 EEEr rIrgrrrE)r9rLrrgetattrr)r<rIstreammethodrs     rtest_buffered_readinto_mixinz#IOTest.test_buffered_readinto_mixins					T(			/	:	:Ff%%
:
:"1  !8!8!8!@!@!DDD  v999
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:	:	:sA B##B'	*B'	c<fd}|ttj|ttjtjtjdd5}t|}t5|dddddn#1swxYwYdddn#1swxYwYtd}t5|dddddn#1swxYwYtt}t5|dddddn#1swxYwY
td5ttjddddddS#1swxYwYdS)NcD|dd5}|ddddn#1swxYwY|dd5}|dddddS#1swxYwYdS)Nr	r
r.rr,)r0rNrru)rr3r<s  rcheck_path_succeedsz7IOTest.test_fspath_support.<locals>.check_path_succeedss4w77
!1   
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!4w77
41  7333
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4s!<AA)BBBr	r
r.zread/write/append moderwxa)rrrrfsencoder0rVrrFloatingPointErrorassertRaisesRegexr)r<rQr3bad_paths`   rtest_fspath_supportzIOTest.test_fspath_supports7	4	4	4	4	4	HY%566777HR[1A%B%BCCDDD
YYy'wY
?
?	;1

++H""9--
;
;		(C'	:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;
D>>


y
)
)	7	7IIhgI666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7.//


1
2
2	7	7IIhgI666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7
#
#J0H
I
I	L	LIIhy/00&7IKKK	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	Lsl?<C7;C C7 C$	$C7'C$	(C77C;>C;+EEE	F..F25F20HHHc|d}||d|d}||ddSNrrrabcdefg)r@rrureadallrs  rtest_RawIOBase_readallzIOTest.test_RawIOBase_readallsn))*@AAz222))*@AA*55555r c	Gdd|j}d}d}|D]>}||5|\}}}}|tt|}	t	|f|z}
t|	|}|||
||t|
|||
d|t||f||z
z}||
|d||t|	j	||z
dddn#1swxYwY@dS)Nc eZdZdZdZdZdS)3IOTest.test_BufferedIOBase_readinto.<locals>.Readerc||_dSrKavail)r<rcs  rrIz<IOTest.test_BufferedIOBase_readinto.<locals>.Reader.__init__s
"


r cL|jd|}|j|d|_|SrKrb)r<rGresults   rruz8IOTest.test_BufferedIOBase_readinto.<locals>.Reader.reads)ETE*!Z.

r cH|t|dS)z$Returns no more than 5 bytes at oncer)ruminrFs  rrHz9IOTest.test_BufferedIOBase_readinto.<locals>.Reader.read1syyT1...r N)r#r$r%rIrurHr&r rReaderr`sA
#
#
#



/
/
/
/
/r rh)
)rgrrr)rgrrr)rgrrr)rgrr)rgrrr)rrrr)rrrr)rrrr)rrrir)rrrr)
r9rLrrrrKrrassertSequenceEqualrc)r<rhrTUNUSED_BYTErUrMrcrequestrereaderrunuseds            rtest_BufferedIOBase_readintoz#IOTest.test_BufferedIOBase_readintos		/		/		/		/		/T(		/		/		/

	D	DDd##

D

D15.weEll 3 344"K>G#;<< 00  888  Vg666((%--HHH%7V+;<((&AAA  V\!2!2EFNCCC

D

D

D

D

D

D

D

D

D

D

D

D

D

D

D	D	DsDE

E	E	cGdd|j}|}|t|jd|_dS)NceZdZdZdZdS)#IOTest.test_close_assert.<locals>.RcdSrKr&)r<r,values   r__setattr__z/IOTest.test_close_assert.<locals>.R.__setattr__r ctrKrr;s rrz)IOTest.test_close_assert.<locals>.R.flushsiir N)r#r$r%rvrr&r rrqrss2



 
 
 
 
 r rqcdSrKr&r;s rrz*IOTest.test_close_assert.<locals>.<lambda>tr )rsrrrr)r<rqr3s   rtest_close_assertzIOTest.test_close_assertsc	 	 	 	 	 	 	 	 

ACC'17+++$#r NF);r#r$r%rrrrrrrunittestskipIfr
is_emscripten
skipUnlessrrrWr`rcrerkrwr~rrrrrrrrrrrrrrrrrrrrrr	r
rr"r(r0r5r:r@rNrWr]rpr|r&r rrrAsg++++++22204444B
E***(???2X_FXV,,.BCCf@f@DCf@PVVV



#
#
#:::AAA777###
;
;
; ,,,3334,,,<111444999555///GGG;;;
G
G
G;;;
===222555 


0///---	6	6	6000BBBBBB:::


PPP
VVV
:::LLL8666'D'D'DR$$$$$r rceZdZdZdS)CIOTestcGdd|j}||}||_tj|}~~t	j|||dS)NceZdZdZdS)*CIOTest.test_IOBase_finalize.<locals>.MyIOcdSrKr&r;s rrz0CIOTest.test_IOBase_finalize.<locals>.MyIO.closerwr Nr#r$r%rr&r rrrs#




r r)rsrrrrrr)r<rrrs    rtest_IOBase_finalizezCIOTest.test_IOBase_finalizes					4;			
	
dff
[

""$$#####r N)r#r$r%rr&r rrrs#$$$$$r rceZdZdS)PyIOTestNr"r&r rrrrmr rceZdZdZdZdS)APIMismatchTestctjtjtjd}||t
ddS)z:Test that pyio RawIOBase class has all c RawIOBase methods)__weakref__)rYz6Python RawIOBase does not have all C RawIOBase methodsmsgN)rdetect_api_mismatchrrOrrrr<mismatchs  rtest_RawIOBase_io_in_pyio_matchz/APIMismatchTest.test_RawIOBase_io_in_pyio_match sM.t~r|6FHHH355.fgggggr ctjtjtj}||t
ddS)z:Test that c RawIOBase class has all pyio RawIOBase methodsz6C RawIOBase does not have all Python RawIOBase methodsrN)rrrrOrrrrs  rtest_RawIOBase_pyio_in_io_matchz/APIMismatchTest.test_RawIOBase_pyio_in_io_match&s>.r|T^LL355.fgggggr N)r#r$r%rrr&r rrrs:hhhhhhhhr rcbeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdS)CommonBufferedTestsc|}||}||||t
|jt
|dSrK)rqtpassertIsdetachrrreprr<rrds   rtest_detachzCommonBufferedTests.test_detach/scnnggcll

cjjllC(((*cj111S					r c|}||}|d|dSrT)rqrrrVr<rbufios   rtest_filenozCommonBufferedTests.test_fileno7sD  U\\^^,,,,,r c|}||}|t|jdd|t|jdddS)Nrrr)rqrrrr^rs   rtest_invalid_argsz%CommonBufferedTests.test_invalid_args=s^  *ej!R888*ej!Q77777r c|j}gGfdd|}|}||}~tj|gddS)Nc:eZdZfdZfdZfdZxZS)BCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIOcd	tj}|dS#t$rYdSwxYwrrrs  rrzJCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIO.__del__HrrcrdtdSr~rrs rrzHCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIO.closePrr crdtdSrrrs rrzHCommonBufferedTests.test_override_destructor.<locals>.MyBufferedIO.flushSrr rrs@rMyBufferedIOrGrr rr)rrqrrr)r<rrrrrs     @rtest_override_destructorz,CommonBufferedTests.test_override_destructorDs
W	 	 	 	 	 	 	 2	 	 	   U##+++++r c|}||fd}||t|dS)Nc@5	ddddS#1swxYwYdSrKr&rsr_withz7CommonBufferedTests.test_context_manager.<locals>._with`sp



















s)rqrrr)r<rrrs   @rtest_context_managerz(CommonBufferedTests.test_context_manager\se  							
*e,,,,,r c|}tj5}|t5||jdddn#1swxYwYts||j	n,|j	%|
|j	jtddddS#1swxYwYdSrK)
rrcatch_unraisable_exceptionrrrxyzzyIOBASE_EMITS_UNRAISABLEr
unraisablerexc_typerr<rr!s   rtest_error_through_destructorz1CommonBufferedTests.test_error_through_destructorhs[##%%

/
1
1	BR"">22
%
%$$
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%+
B!!"-0000*  !7AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs6CA*C*A.	.C1A.	2ACCCc|}||}d|jjd|jj}|t|d|zd|_|t|d|zd|_|t|d|zdS)N(z\.)?z<%s>dummyz<%s name='dummy'>dummyz<%s name=b'dummy'>)rqrr$r%assertRegexrr,)r<rr(clsnames    r	test_reprzCommonBufferedTests.test_reprusnnGGCLL"&'"4"4"4dg6J6JKa&7"2333a"5"?@@@a"6"@AAAAAr c|}||}tj|d|5	t	|n#t
$rYnwxYwddddS#1swxYwYdS)Nr,)rqrr	swap_attrrRuntimeErrorr<rr(s   rtest_recursive_reprz'CommonBufferedTests.test_recursive_reprsnnGGCLL

sFA
.
.		
Q



																		s6A/AA/
AA/AA//A36A3c|gfd}|_||tj|j|j||d|dd_dS)NcFjjgdd<trKr)r(rrsrrz@CommonBufferedTests.test_flush_error_on_close.<locals>.bad_flushs"3:.F111I))Or rr:cdSrKr&r&r rrz?CommonBufferedTests.test_flush_error_on_close.<locals>.<lambda>Dr )	rqrrrrrrrr)r<rr(rrs  @@@rrz-CommonBufferedTests.test_flush_error_on_closesnn								GGCLL'17+++!!!
######### L			r c4|}d}d}||_||}||_|t
5}|dddn#1swxYwY||jjd|	|jj
t
||jj
jd||jd|_d|_dS)Nc tdNrryr&r rrz@CommonBufferedTests.test_close_error_on_close.<locals>.bad_flush'"""r c tdNrryr&r r	bad_closez@CommonBufferedTests.test_close_error_on_close.<locals>.bad_closerr rrcdSrKr&r&r rrz?CommonBufferedTests.test_close_error_on_close.<locals>.<lambda>rr cdSrKr&r&r rrz?CommonBufferedTests.test_close_error_on_close.<locals>.<lambda>rr )
rqrrrrrrrrassertIsInstance__context__rrr<rrrr(errs      rtest_close_error_on_closez-CommonBufferedTests.test_close_error_on_closesAnn	#	#	#	#	#	#	GGCLL


w
'
'	3
GGIII															+Z888cm7AAA27DDD"""!L	,A99A=A=cT|}d}d}||_||}||_|t
5}|dddn#1swxYwY|dt|j|	|jj
t
|dt|jj
||jd|_d|_dS)NctrKnon_existing_flushr&r rrzNCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.bad_flush$$r ctrKnon_existing_closer&r rrzNCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.bad_closerr rrcdSrKr&r&r rrzMCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.<lambda>rr cdSrKr&r&r rrzMCommonBufferedTests.test_nonnormalized_close_error_on_close.<locals>.<lambda>rr )
rqrrrr	NameErrorassertInrrrrrrrs      r'test_nonnormalized_close_error_on_closez;CommonBufferedTests.test_nonnormalized_close_error_on_closesInn	%	%	%	%	%	%	GGCLL


y
)
)	S
GGIII															

*C
,>,>???cm7CCC

*C
0I,J,JKKK""", L			rc|}||}||||t|jdSrK)rqrrrrrrs   rrz$CommonBufferedTests.test_multi_closesennGGCLL												*ag.....r c||d}||j|j||j|jddS)N
AAAAAAAAAAr)rrrrrar^r<rs  rtest_unseekablez#CommonBufferedTests.test_unseekables_--i8899$3UZ@@@$3UZCCCCCr c|}||}|}|t5||_ddddS#1swxYwYdSrK)rqrrrr)r<rrdxs    rtest_readonly_attributesz,CommonBufferedTests.test_readonly_attributessnnggcllNN


~
.
.		CG																		sA--A14A1N)r#r$r%rrrrrrrrrrrrrrr&r rrr,s---888,,,0
-
-
-BBBBBB!!!$(!!!*///DDD
r rcNeZdZejdZejdZdS)
SizeofTestc>d}d}|}|||}tj||z
}|}|||}|tj|||zdS)N buffer_size)rqrrQ	getsizeofr)r<bufsize1bufsize2rrrGs      rtest_sizeofzSizeofTest.test_sizeofs  844}U##h.  844u--th?????r cd}|}|||}tj||z
}||tj||dS)Nrr)rqrrQrrr)r<rrrrGs     rtest_buffer_freeingzSizeofTest.test_buffer_freeingsr  733}U##g-



u--t44444r N)r#r$r%rcpython_onlyrrr&r rrrsS@@@
55555r rceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZejejddZdZdZdZdZdZdS)BufferedReaderTestrc|dg}||}||||d||d|d||t|j|d|t|j|d|t|j|d|dg}|||d|dS)Nrrrr)rqrrIrrurrrs   rtest_constructorz#BufferedReaderTest.test_constructors&x((
u
u$///
u"---...*eneKKK*eneMMM*eneLLLx((
u.....r cv|j|j}~|j|j}|ttfd|jd||||dddSNuninitialized|has no attributerr )	r__new__rUrrrurIrqrrs  rtest_uninitializedz%BufferedReaderTest.test_uninitializeds((((
N;?$z1	.	.	.	t~~''(((A,,,,,r cdD]U}|d}||}|d||V|t
|jddS)N)NrirZr[r')rqrrrurr)r<argrrs    r	test_readzBufferedReaderTest.test_read
su	:	:CNN#9::EGGENNEZC9999*ej"55555r c|d}||}|d|d|d|d||jd|d|d|d|d||jd|d	|d||jd
|d|d||jd|d|d||jd
dS)NrZar:br rrr rrrrrjrqrrrurHrFrs   r
test_read1zBufferedReaderTest.test_read1s566uzz!}}---u{{1~~...q)))ekk!nn---u{{3//000q)))u{{3//000q)))S!1!1222q)))ekk#..///q)))))r cZ|d}||}|d|d|d||d||d|d||jd|d	|||jd
dS)NrZrr:sbcrrrrr rjrrs   rtest_read1_arbitraryz'BufferedReaderTest.test_read1_arbitrary"s566uzz!}}---

...u{{}}---R111q)))ekkmm,,,q)))))r c>|d}||}td}|||d||d|||d||d|||d||d|||d||d|||d||d|d	}||}|||d||d|||d||d
dS)NrZrrcdrr:sgfr)rNscb)rqrrrrg)r<rrr(s    r
test_readintoz BufferedReaderTest.test_readinto-s566aLL**A...E"""**A...E"""**A...E"""**A...E"""**A...E"""~..**A...E"""**A...E"""""r cd}|d}|||}td}||dd||jd|||d||d||jd|||d||ddd	||jd|||d||d
||jdtd|z}||dd||jd|||d||ddd
||jddS)Nr)rdefghsjklrrrrr:rrrrrsfghjklrj)rqrrrpeekrFr)r<rrrr(s     rtest_readinto1z!BufferedReaderTest.test_readinto1Bs>??;77aLLA///q)))++Q///E"""q)))++Q///2A2%%%q)))++Q///E"""q)))am$$A///q)))++Q///2A2	***q)))))r c	nd}d}||f}|||}tjdd}t|dksJ||}||t|t
|d}||t||	|d||d||	||ddt||dzdS	N<saaaaaaaaaaaaaaaaaaaaaaaaaarrs xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrrr)
rqrr)rrgrrr
assertLessrr<rrrrr(rfbms        rtest_readinto_arrayz&BufferedReaderTest.test_readinto_arrayYsw'';77
KY''1vv||||
NN11c!ff%%%]]


$
$3r77###BQBbqb***ABBRV!566666r c	nd}d}||f}|||}tjdd}t|dksJ||}||t|t
|d}||t||	|d||d||	||ddt||dzdSr)
rqrr)rrrrrr!rr"s        rtest_readinto1_arrayz'BufferedReaderTest.test_readinto1_arraynsw'';77
KY''1vv||||
OOA1c!ff%%%]]


$
$3r77###BQBbqb***ABBRV!566666r cBfd}|gd|dddg|dgddS)NcXd}|S)Nrgrr)rqr)rr<s rrz0BufferedReaderTest.test_readlines.<locals>.bufios%NN#<==E775>>!r r)rrgrrr}rs` rtest_readlinesz!BufferedReaderTest.test_readliness	"	"	"	"	"	
**,,.G.G.GHHH**1--&/ABBB**4002K2K2KLLLLLr c	zd}t|}dgd|dggdgd|ggdgdgdgg}|D]\}}}||}|||	}d}	|D];}
|||
||	|	|
z|	|
z
}	<||j|dS)
N	abcdefghir )rr:rjr)rrrrj)r:rrjr)rjrjr:r)rrrrrur)r<rdlenrTrbuf_read_sizesraw_read_sizesrrrnbytess           rtest_bufferingz!BufferedReaderTest.test_bufferings4yy>>>T1;0:::T80>>>;;;0
8=	A	A3G^^OOD))EGGEwG77EC(

  F!3!3T#c&j.5IJJJv
U/@@@@	A	Ar c|d}||}|d|d|d|d|d||d|d|||d||d}|d	|||dS)
N)rrNrNNNabcdrer:sfgr )rNNr)rqrrrurrr\rs   rtest_read_non_blockingz)BufferedReaderTest.test_read_non_blockings-MNN%**Q--000uzz!}}---

---ejjmm,,,%**,,'''ejjll+++122u}}///%--//*****r c|d}||}|d|ddS)NrZr[i(#rqrrrurs   rtest_read_past_eofz%BufferedReaderTest.test_read_past_eofsK566UZZ%5%566666r c|d}||}|d|dSrYr9rs   r
test_read_allz BufferedReaderTest.test_read_allsG566UZZ\\22222r cpucR	
	d}ttd|z}tj|t	t|}|tjd5

	|dddn#1swxYwY|tj|j
d5}||dg	g	fd

fdtd	D}tj
|5tjd
dddn#1swxYwY|	d	zd}tdD]H}t	t|g}||||I	dddn#1swxYwYtjtjdS#tjtjwxYw)
Nrrrr.c	tddgD]1}|}|sdS|2dS#t$r}|d}~wwxYw)Nr:)rrurL	Exception)rfrererrorsresultss   rr3z*BufferedReaderTest.test_threads.<locals>.fs
!&2w..A %

1

A#$& %#NN1----..%

a(((s+AA
A-A((A-c:g|]}tjSr"rr$.0rr3s  r
<listcomp>z3BufferedReaderTest.test_threads.<locals>.<listcomp>'III!9+1555IIIr r{Gz?(the following exceptions were caught: %rr )rCrrandomshufflerrr0rrrN	read_moderr

start_threadsrrrrrrr)r<NlrrthreadsrcrrEr3rFs        @@@@rtest_threadszBufferedReaderTest.test_threadss$	/AU3ZZ  1$AN1ill##A9+T22
a

















9+T^qII
4SQJIIIuRyyIII%3G<<%%Jt$$$%%%%%%%%%%%%%%%  >GIIIHHW%%s44Ainn--A$$QWWQZZ33334-
4
4
4
4
4
4
4
4
4
4
4
4
4
4
44
Y-.....IY-....szA1H7B
HBH B!*HAGD=1G=E	GE	B	GHGH"G#H H&c||d}||j|j||j|jd|d||j|jd||j|jdS)Nrrr:)rrrrrar^rurs  rrz"BufferedReaderTest.test_unseekables--i8899$3UZ@@@$3UZCCC

1


$3UZCCC$3UZ@@@@@r c|d}||}|t|jd|t|jd|_dS)NrZrcdSrKr&r&r rrz7BufferedReaderTest.test_misbehaved_io.<locals>.<lambda>dr )r|rrrr^rarrs   rtest_misbehaved_ioz%BufferedReaderTest.test_misbehaved_iosf$$%;<<'5:q111'5:...#lr c	|d}d|dz
||dz|dzfD]'}|d|zg}|||}|||d|z||jdd||j|d|dz
zdg}|||}|||d|z||jdd||j)dS)Nrrr:rrzfailed for {}: {} != 0)rqrrrurGr)r<rrfrrs     rtest_no_extraneous_readz*BufferedReaderTest.test_no_extraneous_readsXWq['7Q;!D
	Z
	ZANND1H:..EGGE7++EUZZ]]D1H555U4a5<<Q@WXX
Z
Z
ZNNDAEND#9::EGGE7++EUZZ]]D1H555U4a5<<Q@WXX
Z
Z
Z
Z
	Z
	Zr c&tjtjd}|d||t|j|t|jddS)N12r:)	rr)r1rurrrrrHrMs  rtest_read_on_closedz&BufferedReaderTest.test_read_on_closedspbj//00	q							*af---*agq11111r c*|d}||}||||j|j||j|jddS)Nrr)rrrrQrrrirs   rtest_truncate_on_read_onlyz-BufferedReaderTest.test_truncate_on_read_onlys~''))***$3U^DDD$3U^QGGGGGr N)r#r$r%rSrrrrrrrr$r&r+r3r7r:r<r
requires_working_threadingrrequires_resourcerYrr^r`rcrer&r rrrsI///---666*** 	*	*	*###****.777*777*MMMAAA(
+
+
+7773331022Wu%%%/%/&%32%/NAAA###ZZZ(222HHHHHr rcneZdZejZeddddZdZdZ	dZ
dZd	Zd
Z
dS)CBufferedReaderTestTLsanitizer defaults to crashing instead of returning NULL for malloc failure.memoryaddressreasonc"t|tjdkrd|}||}|tttf|j
|tjdSdSNr)rrrQrrqrrrMemoryErrorrrIrs   rrz$CBufferedReaderTest.test_constructor	++D111;##NN$$EGGENNE}k:Fs{
4
4
4
4
4$#r c|dg}||}|t|j|d|t|j|t|j|d|t|j|t|j|d|t|jdS)Nrrrrr)rqrrrrIrurs   rtest_initializationz'CBufferedReaderTest.test_initialization'sx((*eneKKK*ej111*eneMMM*ej111*eneLLL*ej11111r c|d}||}|t|jddS)NrZr)r|rrrrurs   rtest_misbehaved_io_readz+CBufferedReaderTest.test_misbehaved_io_read1sG$$%;<<	
'5:r22222r c|tjtjt	jdtf5|tjd}||}||_	tj|}~tj
dddn#1swxYwY|||dS)Nrr)r#rrrrrrrrr3rrrrrr<rr3rs    rrz+CBufferedReaderTest.test_garbage_collection8s	
	()*:;;;

+R,A
B
B	!	!KK	 0%88EAACQB   
	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	
""$$#####sA%B77B;>B;c|td5|tjdddddddS#1swxYwYdS)Nr)rrUrrrr1r;s rtest_args_errorz#CBufferedReaderTest.test_args_errorE

#
#I/?
@
@	4	4GGBJLL$d333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4*AAAcVtjtjd}d|_||}|t5}|dddn#1swxYwY||j	j
dS)NrbcdSrr&rds rrz=CBufferedReaderTest.test_bad_readinto_value.<locals>.<lambda>LsRr )rr)r1rgrrrrrr	__cause__r<rrr!s    rtest_bad_readinto_valuez+CBufferedReaderTest.test_bad_readinto_valueJs!"*U"3"344'


w
'
'	2NN															",011111A??BBcbtjtjd}d|_||}|t5}|dddn#1swxYwY||j	j
tdS)NrbcdSrr&rs rrz<CBufferedReaderTest.test_bad_readinto_type.<locals>.<lambda>TsSr )rr)r1rgrrrrrrrrrs    rtest_bad_readinto_typez*CBufferedReaderTest.test_bad_readinto_typeRs!"*U"3"344(


w
'
'	2NN															bl4i@@@@@rN)r#r$r%rr)rrrrtrvrr{rrr&r rriris		BdD;GHHH44HH4222333$$$444
222AAAAAr riceZdZejZdS)PyBufferedReaderTestN)r#r$r%rr)rr&r rrr[	
	BBBr rc"eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZejejddZdZdZdZejdZdS)BufferedWriterTestrc*|}||}||||d||d|d|d||t|j|d|t|j|d|t|j|d|||d|d	||d
|j	ddS)Nrrrrrrrrghir sabcghi)
rqrrIrrNrrrrrErs   rrz#BufferedWriterTest.test_constructorbsV  
u
u$///
u"---EKK//000



*eneKKK*eneMMM*eneLLL
uEKK//000



%"455yAAAAAr cv|j|j}~|j|j}|ttfd|jd||||dddS)Nr	r r)	rr
rUrrrNrIrqrrs  rrz%BufferedWriterTest.test_uninitializedrs((((
N;?${C	1	1	1	t~~''(((S))1-----r c|}||}|d||j|||jdgdS)Nshowdy!)rqrrNrrErrrs   rtest_detach_flushz$BufferedWriterTest.test_detach_flush|swnnggcll		))***

)I;77777r c|}||d}|d||jtd}||d|dd<||d|jddS)Nr.rdef***r abcdef)	rqrrNrrErrrr)r<writerrrs    r
test_writezBufferedWriterTest.test_writes!!""
F,---6""
Fqqq	



&"566	BBBBBr cv|}||d}d}tdt|dD]"}||||dz#d|j}|||dd|dS)Nr.sabcdefghijklmnoprrr i)	rqrrrrNrrErrS)r<rrcontentsrfflusheds      rtest_write_overflowz&BufferedWriterTest.test_write_overflows!!""&q#h--++	)	)AKK1Q3((((((6.//	
**8CRC=997CCCCCr chttddz}d}|}||d}d}|}|t	|krtt
|t	||z
}||||||z|||||z
}|t	|k|	||d
|jdS)Nr@r?rrc3ZKtdD]}tdD]}|VdS)Nr:)rr)rGrs  r	gen_sizesz2BufferedWriterTest.check_writes.<locals>.gen_sizessJa

rAJJJJ

r r )rrrqrrrgrurrNrrrE)	r<intermediate_funcrrfrrrsizesrGs	         rcheck_writeszBufferedWriterTest.check_writess$s$$t+
!!##				#h--tE{{CMMA$566DU[[!AdF();<<dCCCe$$$
IA	#h--
	


388F,?#@#@AAAAAr c2|ddS)NcdSrKr&rs rrz0BufferedWriterTest.test_writes.<locals>.<lambda>sr rr;s rtest_writeszBufferedWriterTest.test_writess ,,-----r c2|ddS)Nc*|SrKrrs rrz<BufferedWriterTest.test_writes_and_flushes.<locals>.<lambda>s

r rr;s rtest_writes_and_flushesz*BufferedWriterTest.test_writes_and_flushess 5566666r cfd}||d}||dS)Nc|}||dzd||dz
d||ddSr9)rar^rrs  r_seekabsz:BufferedWriterTest.test_writes_and_seeks.<locals>._seekabssY**,,CJJsQw"""JJsQw"""JJsAr c|dd}|dd|dd||ddS)Nrr:r)r^rs  r_seekrelz:BufferedWriterTest.test_writes_and_seeks.<locals>._seekrelsW**Q""CJJr1JJr1JJsAr r)r<rrs   rtest_writes_and_seeksz(BufferedWriterTest.test_writes_and_seekssR			
	
(###			
	
(#####r c2|ddS)NcP||SrK)rirars rrz>BufferedWriterTest.test_writes_and_truncates.<locals>.<lambda>suzz||(D(Dr rr;s rtest_writes_and_truncatesz,BufferedWriterTest.test_writes_and_truncatess DDEEEEEr c|}||d}||dd||dd|d||dd|d	|d	|d
n#|j$r}|j}Yd}~nd}~wwxYw||d||d||d
d|}|	|
d|dS)Nr.r5rjsefghirksjklmn0sopqrwxyz0123456789z'BlockingIOError should have been raisedrsabcdefghijklmnopqrwxyzs	ABCDEFGHIrs	01234567A)rrrrNrrPrcharacters_writtenrrrS)r<rrrDwrittenrs      rtest_write_non_blockingz*BufferedWriterTest.test_write_non_blockings''))QW--q111X..222TX..222	T	AKK-...
II?@@@@#	+	+	+*GGGGGG	+	
"%%%**%	'	'	'	
\22A666OO\22A66666sC<<
DDDctj}||d}||dd||d|dd||dd|dd||d||dd|||d	dS)
NrjrrrsXYrsXYcdefs123456sXYcdef123456)	rr1rrrNrar^rrr<rrs   rtest_write_and_rewindz(BufferedWriterTest.test_write_and_rewindsjllQY//333q)))

1aU++Q///

1a333Y//333



99999r c|}||d}|d||d|jddSNr.rr)rqrrNrrrEr<rrs   r
test_flushzBufferedWriterTest.test_flushsg!!""
F



!4Q!788888r cgd}|}||d}||||d|jddSN)rrrr.r r)rqrrrrrrEr<rVrrs    rtest_writelinesz"BufferedWriterTest.test_writeliness{!!!!!""




&"566	BBBBBr c*tgd}|}||d}||||d|jddSr)rrqrrrrrrErs    rtest_writelines_userlistz+BufferedWriterTest.test_writelines_userlists***++!!""




&"566	BBBBBr c$|}||d}|t|jgd|t|jd|t|jddS)Nr.rabc)rqrrrrrs   rtest_writelines_errorz(BufferedWriterTest.test_writelines_errors!!"")U%5yyyAAA)U%5t<<<)U%5u=====r c|}||d}|d~tj|d|jddSr)rqrrNrrrrErs   rrz"BufferedWriterTest.test_destructorsl!!""
F!4Q!788888r c|tjtj|tj|jd5}||d}|d||	dd||
ddddn#1swxYwY|tjdd5}||dddddS#1swxYwYdS)	Nrrr.rrrrr)r#rrrr0
write_moderrNrriraru)r<rrr3s    r
test_truncatez BufferedWriterTest.test_truncates	()*:;;;
YYy'AY
F
F	.#GGCOOEKK	"""U^^A..222UZZ\\1---		.	.	.	.	.	.	.	.	.	.	.	.	.	.	.
YYy'Y
;
;	/qQVVXXv...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/s%A=CC"C)D>>EEc^|tjtj|tjd5}|ddzdddn#1swxYwYgd}|D]}|tjd|5}|d|dzz|d|||	|dzdddn#1swxYwYdS)	Nri')rrzr+brr:r)
r#rrrr0rNrurirra)r<r3buffer_sizesrs    rtest_truncate_after_writez,BufferedWriterTest.test_truncate_after_writes	
	()*:;;;
YYy'
.
.	%!
GGGeO$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%)(('	<	<K9+UkJJ
<a;?3444q			

  ;?;;;

<
<
<
<
<
<
<
<
<
<
<
<
<
<
<	<	<s%A00A47A4%A0D!!D%	(D%	r=c

	d}ttd|z}tddg}d}t
|t	|krGt|}
||||z||z
}|t	|kG~|tj	|j
d5}||d
g

fdfd	td
D}tj
|5tjddddn#1swxYwY|dz
dddn#1swxYwY|tj	d
5}dddn#1swxYwYtdD]9}	||t|	g|:	tjtj	dS#tjtj	wxYw)Nr?r@r:rBrrr.c			}n#t$rYdSwxYw|=#t$r}|d}~wwxYwrK)popleftrcrNrCrL)rrDrrEqueues  rr3z*BufferedWriterTest.test_threads.<locals>.fIs	+'$)MMOO#-''' &'!KKNNN+%

a(((s2AA
(A(A
A&A!!A&c:g|]}tjSrHrJrKs  rrMz3BufferedWriterTest.test_threads.<locals>.<listcomp>TrNr rrOrPr)rrrrrrurLr0rrrrr
rTrrrrrurrr)r<rUrrrfrGrrWrrrrEr3rs          @@@@rrYzBufferedWriterTest.test_threads1s+	/AU3ZZ((1,H1b'NNEAGGEc(mm##E{{Xa$h/000T	c(mm##9+T_JJ
cQ






JIIIuRyyIII%3G<<%%Jt$$$%%%%%%%%%%%%%%%  >GIII


'














(9+T22
aFFHH














3ZZ
9
9  s!4!4a8888
9
Y-.....IY-....szCH?
AE>D:.E>:D>	>E>D>	0E>2H?>FH?F#H?)G
>H?
GH?GAH?? Ic.|}||d}|t|jd|t|j|t|jdd|_dS)NrrrcdSrKr&r&r rrz7BufferedWriterTest.test_misbehaved_io.<locals>.<lambda>ir]r )r|rrrr^rarNrrs   rr^z%BufferedWriterTest.test_misbehaved_ioas$$&&q!!'5:q111'5:...'5;	:::#lr c|t5||ddddddS#1swxYwYdSNr.rrrrrqr;s rtest_max_buffer_size_removalz/BufferedWriterTest.test_max_buffer_size_removalks


y
)
)	-	-GGDNN$$a,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s*AAAc
|}d}||_||}|d|t|j||jdS)NctrKry)r(s r	bad_writez?BufferedWriterTest.test_write_error_on_close.<locals>.bad_writeqs))Or spam)rqrNrrrrrr)r<rrr(s    rtest_write_error_on_closez,BufferedWriterTest.test_write_error_on_closeosznn				GGCLL	'17+++!!!!!r c|}||d}tj|j}||j|t|j
d||j|
dS)Nr.rIr)rrrr$rr%rwaitrrrNrrr)r<rrts    rtest_slow_close_from_threadz.BufferedWriterTest.test_slow_close_from_threadys##%%q!!EK000				
*ek7;;;%%%	r N) r#r$r%rrrrrrrrrrrrrrrrrrrrr
rfrrgrYr^rrrr&r rrr_sJBBB ...888
C
C
C	D	D	DBBB(...777$$$FFF7776:::999CCCCCC>>>999	/	/	/<<<$1022Wu%%,/,/&%32,/\###---"""1022		32			r rc\eZdZejZeddddZdZdZ	dZ
dS)	CBufferedWriterTestTrjrkc"t|tjdkrd|}||}|tttf|j
|tjdSdSrp)rrrQrrqrrrrqrrIrs   rrz$CBufferedWriterTest.test_constructorrrr c|}||}|t|j|d|t|jd|t|j|d|t|jd|t|j|d|t|jddS)Nrrrrr)rqrrrrIrNrs   rrtz'CBufferedWriterTest.test_initializations  *eneKKK*ek6:::*eneMMM*ek6:::*eneLLL*ek6:::::r c|tjtjt	jdtf5|tjd}||}|	d||_
tj|}~tjdddn#1swxYwY||||tjd5}||dddddS#1swxYwYdS)Nrrs123xxxr)r#rrrrrrrrrNrrrrrrr0rrurxs    rrz+CBufferedWriterTest.test_garbage_collections	
	()*:;;;

+R,A
B
B	!	!KK	 0%88EA
GGIACQB   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	
""$$###
YYy'
.
.	2!QVVXXy111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s%A:CCC)EEEc|td5|tjdddddddS#1swxYwYdS)Nr-rrzr;s rr{z#CBufferedWriterTest.test_args_errorr|r}N)r#r$r%rr-rrrrtrr{r&r rrrs		BdD;GHHH44HH4;;;222"44444r rceZdZejZdS)PyBufferedWriterTestN)r#r$r%rr-rr&r rrrrr rceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdS)BufferedRWPairTestc|||}||jdSrK)rrqrrr<pairs  rrz#BufferedRWPairTest.test_constructorsEwwt~~'')9)9::%%%%%r c@|j|j}~|j|j}|ttfd|jd|ttfd|jd||||	|dd|	|dddSr)
rr
rUrrrurNrIrqrrs  rrz%BufferedRWPairTest.test_uninitializedswtw''wtw''
N;?#y!	-	-	-	

N;?#z3	0	0	0	


dnn&&(8(89991s+++C!,,,,,r c|||}||j|jdSrK)rrqrrrrs  rrzBufferedRWPairTest.test_detachsJwwt~~'')9)9::$3T[AAAAAr c|t5|||ddddddS#1swxYwYdSrrr;s r(test_constructor_max_buffer_size_removalz;BufferedRWPairTest.test_constructor_max_buffer_size_removals


y
)
)	?	?GGDNN$$dnn&6&62>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?s=A%%A),A)cGddt}|t|j||dS)NceZdZdZdS)JBufferedRWPairTest.test_constructor_with_not_readable.<locals>.NotReadablecdSrr&r;s rrXzSBufferedRWPairTest.test_constructor_with_not_readable.<locals>.NotReadable.readableur Nr#r$r%rXr&r rNotReadabler#




r rrqrrr)r<rs  r"test_constructor_with_not_readablez5BufferedRWPairTest.test_constructor_with_not_readables`					)				
'47KKMM4>>;K;KLLLLLr cGddt}|t|j||dS)NceZdZdZdS)LBufferedRWPairTest.test_constructor_with_not_writeable.<locals>.NotWriteablecdSrr&r;s rrQzUBufferedRWPairTest.test_constructor_with_not_writeable.<locals>.NotWriteable.writablerr N)r#r$r%rQr&r rNotWriteablerrr rr)r<rs  r#test_constructor_with_not_writeablez6BufferedRWPairTest.test_constructor_with_not_writeables`					9				
'47DNN,<,<llnnMMMMMr c8||d|}||dd||dd||d||d|}||dddS)Nrrrr:rr)rr1rqrrurs  rrzBufferedRWPairTest.test_readswwt||I..0@0@AA1v...1t,,,e,,,wwt||F++T^^-=-=>>4&11111r c@fd}|gd|gd|dddgdS)NczdS)Ns	abc
def
h)rr1rqr;srrz3BufferedRWPairTest.test_readlines.<locals>.<lambda>s+twwt||N;;T^^=M=MNNr )rgrhrrrgrhr*rs` rr+z!BufferedRWPairTest.test_readlinessNNNN))++-G-G-GHHH))++-G-G-GHHH))!,,x.BCCCCCr c||d|}||dd||ddS)Nrrrr)rr1rqrrHrs  rrzBufferedRWPairTest.test_read1sqwwt||I..0@0@AAA///v.....r c	dD]}||5||d|}t	d}|t
|||d|t|ddddn#1swxYwYdS)NrJrsrsabcde)rLrr1rqrrrKr)r<rMrrs    rrz BufferedRWPairTest.test_readintos/	8	8Ff%%
8
8wwt||I668H8HII ++  !6v!6!6t!<!<a@@@  th777
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8	8	8sBCC	C	c|}|||}|d|t	d}||d|dd<|||jddgdS)Nrrr)rqrrNrrrrE)r<r	rrs    rrzBufferedRWPairTest.test_writesNNwwt~~''++

6

6""

6qqq	

&&)9:::::r cD||d|}||dd||dddS)Nrrr)rr1rqrrrSrrurs  r	test_peekzBufferedRWPairTest.test_peeks{wwt||I..0@0@AA		!//778881v.....r c|||}||dSrK)rrqrrXrs  r
test_readablez BufferedRWPairTest.test_readableIwwt~~'')9)9::

(((((r c|||}||dSrK)rrqrrQrs  rtest_writeablez!BufferedRWPairTest.test_writeablerr c|||}||dSrK)rrqrrZrs  r
test_seekablez BufferedRWPairTest.test_seekablesMwwt~~'')9)9::)))))r c
|||}||j|||jdSrK)rrqrrrrrs  rtest_close_and_closedz(BufferedRWPairTest.test_close_and_closed'sfwwt~~'')9)9::%%%

$$$$$r cd}|}||_|}|||}|t5}|dddn#1swxYwY|dt
|j||j	|
|j	||j	d|_dS)NctdSrKreader_non_existingr&r rreader_closezIBufferedRWPairTest.test_reader_close_error_on_close.<locals>.reader_close.r rcdSrKr&r&r rrzEBufferedRWPairTest.test_reader_close_error_on_close.<locals>.<lambda><r{r )rqrrrrrrrrrr)r<rrnrrrs      r test_reader_close_error_on_closez3BufferedRWPairTest.test_reader_close_error_on_close-s(	 	 	 !!#!!wwvv&&


y
)
)	SJJLLL															

+S-?-?@@@$$$'''
&&&$|s#BBBc d}|}|}||_|||}|t5}|dddn#1swxYwY|dt
|j||j	|
|j	||j	d|_d}tj5tj5d}tj
dddn#1swxYwYtj
ddddS#1swxYwYdS)NctdSrKwriter_non_existingr&r rwriter_closezIBufferedRWPairTest.test_writer_close_error_on_close.<locals>.writer_close?rr r$cdSrKr&r&r rrzEBufferedRWPairTest.test_writer_close_error_on_close.<locals>.<lambda>Mr{r )rqrrrrrrrrrrrrr)r<r%rnrrrs      r test_writer_close_error_on_closez3BufferedRWPairTest.test_writer_close_error_on_close>s)	 	 	 !!!!#wwvv&&


y
)
)	SJJLLL															

+S-?-?@@@%%%
&&&'''$|
/
1
1	!	!355
%
%"$$$
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!sH#BBB"F6EFE	FE	 FF
Fcd}d}|}||_|}||_|||}|t5}|dddn#1swxYwY|dt
|j||jj	t|dt
|jj	|
|j|
|j|
|jd|_d|_dS)NctdSrKrr&r rrzPBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.reader_closeYrr ctdSrKr#r&r rr%zPBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.writer_close[rr rr$cdSrKr&r&r rrzLBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.<lambda>lr{r cdSrKr&r&r rrzLBufferedRWPairTest.test_reader_writer_close_error_on_close.<locals>.<lambda>mr{r )rqrrrrrrrrrrr)r<rr%rnrrrs       r'test_reader_writer_close_error_on_closez:BufferedRWPairTest.test_reader_writer_close_error_on_closeXs	 	 	 	 	 	 !!#!!#wwvv&&


y
)
)	SJJLLL															

+S-?-?@@@cm7CCC

+S1J-K-KLLL%%%''''''$|#|s-BBBcGddt}||d|d}||||d|d}||||d|d}||||d|d}||dS)NceZdZdZdZdS)8BufferedRWPairTest.test_isatty.<locals>.SelectableIsAttycHt|||_dSrK)rqrI_isatty)r<isattys  rrIzABufferedRWPairTest.test_isatty.<locals>.SelectableIsAtty.__init__qs!""4(((%r c|jSrK)r2r;s rr3z?BufferedRWPairTest.test_isatty.<locals>.SelectableIsAtty.isattyus
|#r N)r#r$r%rIr3r&r rSelectableIsAttyr0ps2
&
&
&
$
$
$
$
$r r5FT)rqrrr3r)r<r5rs   rtest_isattyzBufferedRWPairTest.test_isattyosJ	$	$	$	$	$y	$	$	$ww''..0@0@0G0GHH'''ww''--/?/?/F/FGG

&&&ww''..0@0@0F0FGG

&&&ww''--/?/?/E/EFF

&&&&&r c|||}tj|}d}d}dSrK)rrqrr)r<brwrs   rtest_weakref_clearingz(BufferedRWPairTest.test_weakref_clearingsFggdnn&&(8(899k#r N)r#r$r%rrrrrrrr+rrrrrrrrr r'r-r6r9r&r rrrs[&&&---BBB???MMMNNN222DDD///888
;
;
;///))))))***%%%$$$"!!!4$$$.'''*r rceZdZejZdS)CBufferedRWPairTestN)r#r$r%rr4rr&r rr;r;s		BBBr r;ceZdZejZdS)PyBufferedRWPairTestN)r#r$r%rr4rr&r rr=r=rr r=ceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdS)BufferedRandomTestrb+zwb+cnt|t|dSrK)rrrr;s rrz#BufferedRandomTest.test_constructors0++D111++D11111r cnt|t|dSrK)rrrr;s rrz%BufferedRandomTest.test_uninitialized0--d333--d33333r c|d}||d}|d|d|d|d||j|d||d|jd	dS)
N)asdfghjkr.asrsdddseeerFsdddeeer)rqrrrurNrrEr<rrGs   rtest_read_and_writez&BufferedRandomTest.test_read_and_writesnn/00
WWS!__

+++

)***"'')),,,C$4Q$788888r ct|d}||}|d|d|d||dd|d|d|d|dd|d||d	||d
d|d||dd|d
||d|d||d||	t|jddS)Ns	asdfghjklrGrrrErjs123fs	asdf123flrrr:risflr)r1rrrurar^rNrrrrrHs   rtest_seek_and_tellz%BufferedRandomTest.test_seek_and_tellsll<((
WWS\\

+++BGGII&&&
1


"''!**---

1


rwwyy111BGGII&&&
ABGGII&&&
1


BGGII&&&,,,



s||~~666)RWc22222r c|d}||}|d||d|d|d||d|d|||d||d|||dd|d	||dd|d	||d
dS)Nr-rrrbrrrrsXYZr)r1rrrNrarr^)r<	read_funcrrs    rcheck_flush_and_readz'BufferedRandomTest.check_flush_and_readsMll<((		% 3 3444
E		% 3 3444EJJLL)))



EJJLL)))5!1!1222A		&





1a5!!4!455555r c2|ddS)Nc|j|SrK)ru)rrs  rrz8BufferedRandomTest.test_flush_and_read.<locals>.<lambda>szuz47Hr rPr;s rtest_flush_and_readz&BufferedRandomTest.test_flush_and_reads !!"H"HIIIIIr c8dd}||dS)Nrct|dkr|nd}||}t|d|S)Nr')rrgrrrfr(s   r	_readintoz=BufferedRandomTest.test_flush_and_readinto.<locals>._readintos@qAvv!!400Aq!!A2A2<<r rrS)r<rYs  rtest_flush_and_readintoz*BufferedRandomTest.test_flush_and_readintos2	 	 	 	 	
!!),,,,,r c8dd}||dS)Nrc||}|dkr
|d|}|t|d|SNrr:)rr^rrXs   r_peekz5BufferedRandomTest.test_flush_and_peek.<locals>._peeksH

1

ABwwbqbEJJs1vvq!!!Hr rZrSr<r_s  rtest_flush_and_peekz&BufferedRandomTest.test_flush_and_peeks2					
!!%(((((r c|d}||}|d||d||dd|d||d|dS)Nr-123s45rs	12345fghi)r1rrNrr^rrrurs   rtest_flush_and_writez'BufferedRandomTest.test_flush_and_writesll<((
F




E





1as||~~666uzz||44444r cnt|t|dSrK)rrYrr;s rrYzBufferedRandomTest.test_threadss0''---''-----r cfd}||d}||dS)Nc0|ddSr)rrs rr_z6BufferedRandomTest.test_writes_and_peek.<locals>._peeksJJqMMMMMr c|}|dd|d||ddS)Nrr:r)rar^rrs  rr_z6BufferedRandomTest.test_writes_and_peek.<locals>._peeksL**,,CJJr1JJqMMMJJsAr rr`s  rtest_writes_and_peekz'BufferedRandomTest.test_writes_and_peeksP			%   			
	
%     r c6d}||dS)Nc\|dd|ddSr^)r^rurs r_readz7BufferedRandomTest.test_writes_and_reads.<locals>._read	s)JJr1JJqMMMMMr rr<rls  rtest_writes_and_readsz(BufferedRandomTest.test_writes_and_reads	s-				
%     r c6d}||dS)Nc\|dd|ddSr^)r^rHrs r_read1z9BufferedRandomTest.test_writes_and_read1s.<locals>._read1	s)JJr1KKNNNNNr r)r<rqs  rtest_writes_and_read1sz)BufferedRandomTest.test_writes_and_read1s	s-				
&!!!!!r c6d}||dS)Ncv|dd|tddSr^)r^rgrrs rrlz;BufferedRandomTest.test_writes_and_readintos.<locals>._read	s4JJr1NN9Q<<(((((r rrms  rtest_writes_and_readintosz,BufferedRandomTest.test_writes_and_readintos
	s-	)	)	)	
%     r cdD]:}|d}||d}||dd||d|d|z|||dz||||dz|}||dd|zzdd|z
zz<dS)N)r:rrrjr:ABr)r1rrrurarNrr)r<overwrite_sizerrrs     rtest_write_after_readaheadz-BufferedRandomTest.test_write_after_readahead	s9%	L	LN,,y))CGGCOOEUZZ]]D111UZZ\\1---KK~-...UZZ\\>A+=>>>
KKMMMUZZ\\>A+=>>>AQtn,,tq>7I/JJ
L
L
L
L	L	Lr c	d}d}tdt|D]}t|t|D]}||}||d}|||||t|}d||<d||<|||d||fzdS)Nc||ksJ|||||z
|d|||ddS)N)r^rurN)rpos1pos2s   rmutatez:BufferedRandomTest.test_write_rewind_write.<locals>.mutate)	su4<<<<JJtJJtd{###KK   
JJtKK     r srr rr:zfailed result for i=%d, j=%d)rrr1rrrrr)r<rr(rjrrexpecteds        rtest_write_rewind_writez*BufferedRandomTest.test_write_rewind_write'	s		!		!		!
$q#a&&!!
	J
	JA1c!ff%%	
J	
Jll1ooS))ua###


$Q<<  !?1a&!HJJJJ	
J
	J
	Jr c|d}||d}||dd||d||dd||ddS)Nrr rsAAsBBrj)r1rrrurirNrs   r!test_truncate_after_read_or_writez4BufferedRandomTest.test_truncate_after_read_or_writeA	sll9%%S!!A...))1---U++Q///))1-----r cnt|t|dSrK)rr^rr;s rr^z%BufferedRandomTest.test_misbehaved_ioI	rCr cD|d5}||d5}|d||dd|d||dd|dt
d}||||d	|d
||dd|	||
ddddn#1swxYwYdddn#1swxYwY|d
5}||d5}||dd|d||dd|	||
ddddn#1swxYwYddddS#1swxYwYdS)Nsabcdefghr 1r:r2rrIf4rs1b2d3f4hrrrsa2c)r1rrNrrurHrrgrrr)r<rr3rds    rtest_interleaved_read_writez.BufferedRandomTest.test_interleaved_read_writeM	s
\\+
&
&
	>#c""
>a


  D111


  T222


ll

3  d+++


  D111			  ===
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
	>
	>
	>
	>
	>
	>
	>
	>
	>
	>
	>
	>
	>
	>
	>\\&
!
!	9Sc""
9a  D111


  D111			  888
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9slFEE?3F?F	FF	FFF6J
B$I=1J=J	JJ	JJJc|d5}||5}|d||d|d||d|d||d|||ddddn#1swxYwYddddS#1swxYwYdS)	Ns
ab
cdef
g
rsb
rrhrI
s
1b
2def
3
)r1rrNrrrr)r<rr3s   rtest_interleaved_readline_writez2BufferedRandomTest.test_interleaved_readline_writef	s
\\*
+
+		Cs
C


  v666


  x888


  u555			  1ABBB
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C		C		C		C		C		C		C		C		C		C		C		C		C		C		C		C		C		C		Cs5EC4D, E,D0	0E3D0	4EEEN)r#r$r%rSrrrrIrMrPrTr[rardrYrirnrrrurzrrr^rrrrer&r rr?r?saIJ222444	9	9	9333.666$JJJ---	)	)	)
5
5
5...	!	!	!!!!"""!!!LLL(JJJ4...4449992
C
C
CO"&r r?cVeZdZejZeddddZdZdZ	dS)CBufferedRandomTestTrjrkc"t|tjdkrd|}||}|tttf|j
|tjdSdSrp)r?rrQrrqrrrrqrrIrs   rrz$CBufferedRandomTest.test_constructor}	rrr cnt|t|dSrK)rirrr;s rrz+CBufferedRandomTest.test_garbage_collection	s033D99933D99999r c|td5|tjdddddddS#1swxYwYdS)Nr0rrzr;s rr{z#CBufferedRandomTest.test_args_error	r|r}N)
r#r$r%rr0rrrrr{r&r rrrz	sw		BdD;GHHH44HH4:::44444r rceZdZejZdS)PyBufferedRandomTestN)r#r$r%rr0rr&r rrr	rr rcDeZdZdZddZdZdZdZdZd
d	Z	d
Z
dZdS)StatefulIncrementalDecodera
    For testing seek/tell behavior with a stateful, buffering decoder.

    Input is a sequence of words.  Words may be fixed-length (length set
    by input) or variable-length (period-terminated).  In variable-length
    mode, extra periods are ignored.  Possible words are:
      - 'i' followed by a number sets the input length, I (maximum 99).
        When I is set to 0, words are space-terminated.
      - 'o' followed by a number sets the output length, O (maximum 99).
      - Any other word is converted into a word followed by a period on
        the output.  The output word consists of the input word truncated
        or padded out with hyphens to make its length equal to O.  If O
        is 0, the word is output verbatim without truncating or padding.
    I and O are initially set to 1.  When I changes, any buffered input is
    re-scanned according to the new I.  EOF also terminates the last word.
    strictcntj|||dSrK)codecsIncrementalDecoderrIreset)r<rEs  rrIz#StatefulIncrementalDecoder.__init__	s,!**4888

r c&dt|zS)Nz<SID %x>)idr;s r__repr__z#StatefulIncrementalDecoder.__repr__	sBtHH$$r cHd|_d|_t|_dSr)rorrr;s rrz StatefulIncrementalDecoder.reset	skkr cb|jdz|jdz}}t|j|dz|zfS)Nr:r )rrrr)r<rrs   rgetstatez#StatefulIncrementalDecoder.getstate	s4vz46A:1T[!!1S519,,r c|\}}t||_t|d\}}|dz|dzc|_|_dS)Nr r:)rrdivmodrr)r<staterrrrs      rsetstatez#StatefulIncrementalDecoder.setstate	sF
''b#1QAr Fcd}|D]}|jdkrM|tdkr|jr||z
}?|j|Z|j|t|j|jkr||z
}|r|jr||z
}|S)Nrr.)rordrprocess_wordrLr)r<inputfinaloutputr(s     rdecodez!StatefulIncrementalDecoder.decode	s
	2
	2Av{{C=={6$"3"3"5"55K&&q))))""1%%%t{##tv--d//111F	*T[	*d'')))F
r c$d}|jdtdkr2tdt|jddpd|_n|jdtdkr2tdt|jddpd|_nZ|jd}t||jkr
|d|jzz
}|jr|d|j}|d	z
}t|_|S)
Nrrrcr:rr;-r)	rrrgintrrrrr)r<rs  rrz'StatefulIncrementalDecoder.process_word	s;q>SXX%%SQRR!5A6677DFF
[^s3xx
'
'SQRR!5A6677DFF[''00F6{{TV###df*$v
)cMFkk
r N)rr})r#r$r%rjrIrrrrrrcodecEnabledr&r rrr	s"%%%"""
---&&&" LLLr rc	tjr?|dkr;tjd}tjd|jddddtSdSdS)Ntest_decoderr-)r,encoderincrementalencoderstreamreaderstreamwriterincrementaldecoder)rrrlookup	CodecInfor)r,latin1s  rlookupTestDecoderr	sd!.;4>3I3Iy))
d#D9	;;;	;;;3I3Ir c eZdZdZgdZdZdS)StatefulIncrementalDecoderTestzB
    Make sure the StatefulIncrementalDecoder actually works.
    ))r5Fza.b.c.d.)oiabcdTabcd.)soi...abcd...Tr)si.o6.x.xyz.toolongtofit.Fzx-----.xyz---.toolon.)s
i.i2.o6xyzTzxy----.z-----.)si.o3.i6.abcdefghijklmnopTzabc.ghi.mno.)s;i.o29.a.b.cde.o15.abcdefghijabcdefghij.i3.a.b.c.d.ei00k.l.mTza----------------------------.b----------------------------.cde--------------------------.abcdefghijabcde.a.b------------..c.------------.d.e------------.k--------------.l--------------.m--------------.cT|jD]>\}}}t}|||||?t}||dd||ddddS)Nrrr r:r)
test_casesrrr)r<reofrds     rrz+StatefulIncrementalDecoderTest.test_decoder
s"&/	;	;E3*,,AQXXeS116::::
'((),,b111#q))733333r N)r#r$r%rjrrr&r rrr	s>J6	4	4	4	4	4r rcPeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Ze
jejjddZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%d Z&d!Z'd"Z(d#Z)d$Z*d%Z+d&Z,d'Z-d(Z.d)Z/d*Z0d+Z1d,Z2d-Z3d.Z4d/Z5e6j7e8j9d0Z:d1Z;d2Z<d3Z=d4Z>d5Z?d6Z@d7ZAd8ZBd9ZCd:ZDd;ZEd<ZFd=ZGd>ZHd?ZId@ZJdAZKdBZLdCZMdDZNdEZOdFZPdGZQdHZRdIZSdJZTdKZUdLS)MTextIOWrapperTestcd|_dd|_tjtjt
jt|	tj
tdS)NsAAA
BBB
CCC
DDD
EEE
sAAA
BBB
CCC
DDD
EEE
r;)testdatar
normalizedrrrrregisterrr#
unregisterr;s rrzTextIOWrapperTest.setUp'
sa:
6==gFF)***)***)+<=====r cBtjtjdSrKrr;s rrzTextIOWrapperTest.tearDown.
rr c||d}||d}||d}||dd||jd||jd||dd	
||jd||jd	|d||jrtnt}||5||ddddn#1swxYwY|t5||d
dddn#1swxYwY|t5||ddddn#1swxYwY||5||dddddn#1swxYwYtjstjjs|jrJ|t5||dd
dddn#1swxYwYtjstjjs|jrJ|t5||dddddn#1swxYwY|t5||dddddn#1swxYwY|t5||dd
dddn#1swxYwY|t5||dddddn#1swxYwY|t5||ddddddS#1swxYwYdS)Né

r?r
r.r-
r>FT)r/line_bufferingé
rUzutf-8r/rEzreplace
r)r1r)r=rIrr/rris_CrrrUnicodeEncodeErrorrPy_DEBUGrQrdev_mode)r<r,r(rinvalid_types     rrz"TextIOWrapperTest.test_constructor1
s}LL))4((q733	

1y&
999Y///)5111	

1wt
<<<W---)40001::<<000$(I=yy:


|
,
,	'	'
JJq2J&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'


1
2
2	-	-
JJq8J,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-


z
*
*	.	.
JJq9J---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.


|
,
,	7	7
JJq72J666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	Asy1	ATY	A""#566
A
A

1wx
@@@
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A	Dsy1	DTY	D"":..
D
D

1w{
CCC
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D


y
)
)	8	8
JJq7BJ777	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8


z
*
*	>	>
JJq7HJ===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>


z
*
*	<	<
JJq7FJ;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<


z
*
*	=	=
JJq7GJ<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=s1EEE:FF"%F"G''G+.G+H,,H03H05JJ!J#LLL-MMM7NN #N O&&O*-O*P11P58P5c|j|j}~|j|j}|tt||ttfd|jd|	|
d||dddS)Nr	rr
r.r)r=r
rrCrrUrrrurIrqrr<rs  rrz$TextIOWrapperTest.test_uninitializedT
s&&t'9::
&&t'9::)T1---
N;? vq	*	*	*	


4>>##g
666B'''''r c|}||}|td5||dddddS#1swxYwYdS)Nzis not a text encodinghexr.)r1r-rULookupErrorr=)r<r,r(s   r*test_non_text_encoding_codecs_are_rejectedz<TextIOWrapperTest.test_non_text_encoding_codecs_are_rejected_
s
LLNN""

#
#K1I
J
J	2	2q5111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2sA**A.1A.c&|}||}||d}|||||d}|d|||||d|	t|jt|||jd||j
d||j||jdS)Nr;r.howdyshowdyr)r1r-r=rrrNrrrrrrr/rEr
write_throughr<r,r(rs    rrzTextIOWrapperTest.test_detachh
sOLLNN""q733

ahhjj!$$$q733	&&&	


x000*ah///	
QW---8,,,)***)))))r cp|dd}||}||d}|jj}|t
|d|zd|_|t
|d|zd|_|t
|d|zd	|_|t
|d
|z|j	
t
|dS)Nhellor
r.z'<(%s\.)?TextIOWrapper encoding='utf-8'>rz4<(%s\.)?TextIOWrapper name='dummy' encoding='utf-8'>r,z=<(%s\.)?TextIOWrapper name='dummy' mode='r' encoding='utf-8'>rz><(%s\.)?TextIOWrapper name=b'dummy' mode='r' encoding='utf-8'>)r1rr)r=r$rrr,moderr)r<rr(rmodnames     rrzTextIOWrapperTest.test_repr|
s<ll7>>'2233$$q733$/aCgM	O	O	OaPSZZ	\	\	\aY\cc	e	e	eaZ]dd	f	f	f	
Qr c|}||d}tj|d|5	t	|n#t
$rYnwxYwddddS#1swxYwYdS)Nr
r.r,)r1r=rrrrr<rrs   rrz%TextIOWrapperTest.test_recursive_repr
sllnnsW55

sFA
.
.		
Q



																		s6A1AA1
A!A1 A!!A11A58A5c|}||d}||ddd}|d||d|d||d	|d
||ddS)Nr?r

Tr/r?rXr zY
ZsXY
ZzA
BsXY
ZA
B)r1r-r=rNrrrs    rtest_line_bufferingz%TextIOWrapperTest.test_line_buffering
sLLNN4((q7DQUVV	s+++	x000	|44444r c|}||d}||ddd}|d||d|d	||d
|d||d|d
||d|d	||d|d||d||d	||jd|d	||d	||jddS)Nr?r
rFrzAB
Cr TrsAB
CzDEF
Gs	AB
CDEF
GHs
AB
CDEF
GHIJ)r1r-r=rNrrreconfigurerrs    rtest_reconfigure_line_bufferingz1TextIOWrapperTest.test_reconfigure_line_buffering
sLLNN4((q7DQVWW	s+++	

T
***x000	~666	~666	

U
+++777	


777	


	

T
***)5111	

T
***	

	

T
***)400000r zutf-8 mode is enabledcttj}	dD]}|tjvr
tj|=tj}|}t
j5t
jdt|
|}dddn#1swxYwY||j|tj
tj|dS#tj
tj|wxYw)N)LC_ALLLANGLC_CTYPErY)dictrenvironlocalegetencodingr1rZr[r\EncodingWarningr=rr/clearupdate)r<old_environkeycurrent_locale_encodingr(rs      rtest_default_encodingz'TextIOWrapperTest.test_default_encoding
sb2:&&	+6
(
("*$$
3&,&8&:&:#A(**
*
*%h@@@&&q))
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
QZ)@AAAJJk*****
JJk****s0AD50B1%D1B55D8B59D?Ec|}||d}||jdt	j5t	jdt||}dddn#1swxYwY||jtj
|jdS)Nr
r.rY)r1r=rr/rZr[r\rassertIsNotNonerrr<r(rs   r
test_encodingzTextIOWrapperTest.test_encoding
sLLNNq733W---

$
&
&	&	&!(O<<<""1%%A	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	
QZ(((
aj!!!!!s0BBBc|d}||d}|t|j|d}||dd}|t|j|d}||dd}||d|d}||dd}||d	dS)
Nsabc

r;r.rrrYzabc

replaceuabc
�
)r1r=rUnicodeErrorrurrs   rtest_encoding_errors_readingz.TextIOWrapperTest.test_encoding_errors_reading
sLL((q733,///LL((q78DD,///LL((q78DD9---LL((q79EE?33333r c0|}||d}|t|jd|}||dd}|t|jd|}||ddd}|d	|||d
|}||ddd}|d	|||ddS)
Nr;r.ÿrrrYr)r/rEr?u	abcÿdef
sabcdef
rsabc?def
)r1r=rrrNrrrrs   rtest_encoding_errors_writingz.TextIOWrapperTest.test_encoding_errors_writing
sbLLNNq733,888LLNNq78DD,888LLNNq78%)

+
+					{333LLNNq79%)

+
+					|44444r c
@gd}dgdgd|gdgdgdddggd	gd
gg}d}|D]z}td||}dD]>}td
dD])}|D]"\}}	||||}
||
||}|rng}	|d}
|
dkrnN|t|
d|
|
|zjnt|}t||	D]\}}||||t|t|	$+@|dS)N)unix
	windows
zos9
last
nonl)rzwindows
zos9
rrrr)rrz	os9
last
rrzunix
windows
z
os9
last
nonl
)z
unix
windows
z
os9
z	last
nonl)r
r-utf-16	utf-16-le	utf-16-beutf-32	utf-32-le	utf-32-be)FTr:rr?r/Tr)rrrrr)r1r=rurrrLrrCzip)r<input_linesrT	encodingsr/rdo_readsrr?	exp_linesrtextio	got_linesc2got_lineexp_lines                r
test_newlineszTextIOWrapperTest.test_newlines
s LLLHHHJ+FFFH+->@BBBBD

	"	I	IH--44X>>??D)
I
I$Q||IIG.3II* $ 3 3DLL4F4F P P!%!3!3E7;C"4"E"E#	5(*II%+[[^^#%88$) $ 0 0R! < < < ) 0 0foo6G6G1G H H HI%*)-VI25i2K2KAA.Hh ,,Xx@@@@((YYHHHH#II
I	I	Ir c~d}|dddd}d|ddfd|ddfd	gd
fdgdfd
gdffD]\}}||}||d|}||||d||d	|dS)NsAAA
BBB
CCC
DDD
EEE
FFF
GGGs
r
r;T)keependsrr)zAAA
zBBB
z
CCC
DDD
EEE
FFF
GGGr)zAAA
BBB
CCC
DDD
EEE
r/r0r)z
AAA
BBB
CCC
zDDD
zEEE
z
FFF
z
GGGr>r)
rr
splitlinesr1r=rr}r^rur)r<rrr?rrdtxts       rtest_newlines_inputz%TextIOWrapperTest.test_newlines_input4sL?%%gu55==eUKK

:$$W--88$8GGH
))44d4CCD
PPPQ
JJJK
QQQR"	<	<GX,,x((C$$S7G$LLCS]]__h777HHQKKKSXXZZ):):;;;;	<	<r cddddd}d|tjfgt|z}|D]\}}|}||d|}|d|d|d	|||j	d
||
|dS)NsAAA
BBB
CCC
X
Y
ZsAAA
BBB
CCC
X
Y

ZsAAA
BBB
CCC
X
Y

Z)rrrrr;r>zAAA
BzBB
CCC
zX
Y
ZF)rlinesepsorteditemsr1r=rNrrrr)r<testdictrTr?rrdr2s       rtest_newlines_outputz&TextIOWrapperTest.test_newlines_outputDs+--7	,-.8H8H1I1II!&	7	7GX,,..C$$S7G$LLCIIhIIk"""IIk"""IIKKKSZ///S\\^^X6666	7	7r cg|jGfdd}|}||d}|d~tj|dgdS)NceZdZfdZdS)4TextIOWrapperTest.test_destructor.<locals>.MyBytesIOc||dSrK)rLrr)r<rrVs rrz:TextIOWrapperTest.test_destructor.<locals>.MyBytesIO.closeZs5)))

4     r Nr)rrVsr	MyBytesIOr<Ys3
!
!
!
!
!
!
!
!r r>r;r.rr)r1r=rNrrr)r<r>r(rrrVs    @@rrz!TextIOWrapperTest.test_destructorVs|	!	!	!	!	!	!	!	!	!	!	!
IKKq733	
&1%%%%%r cgGfdd|j}|}||d}~tj|gddS)Nc:eZdZfdZfdZfdZxZS)<TextIOWrapperTest.test_override_destructor.<locals>.MyTextIOcd	tj}|dS#t$rYdSwxYwrrrs  rrzDTextIOWrapperTest.test_override_destructor.<locals>.MyTextIO.__del__grrcrdtdSr~rrs rrzBTextIOWrapperTest.test_override_destructor.<locals>.MyTextIO.closeorr crdtdSrrrs rrzBTextIOWrapperTest.test_override_destructor.<locals>.MyTextIO.flushrrr rrs@rMyTextIOrAfrr rEr;r.r)r=r1rrr)r<rEr(rrs    @rrz*TextIOWrapperTest.test_override_destructords	 	 	 	 	 	 	 t)	 	 	 
LLNNHQ)))
+++++r c|}tj5}|t5||djdddn#1swxYwYts||j	n,|j	%|
|j	jtddddS#1swxYwYdS)Nr
r.)
rrrrrr=rrrrrrrrs   rrz/TextIOWrapperTest.test_error_through_destructor{su##%%

/
1
1	BR"">22
B
B""57";;AA
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B+
B!!"-0000*  !7AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs6CA, C,A0	0C3A0	4ACCCcdD];}dD]4}|tjd|}||_||dd||tjd|}||_||d||d|}||	dd||dd|	d||d	d
||dd||dd
||d
|||||	dd||	dd	|||dd||	||||d|
dr||||6=dS)N)r:rrrjrrr !?@A)r;r-r
w+r.rrr+rrrr:rXrdefutf)r0rrr2rrNrrarur^rSmulti_line_test)r<	chunksizeencr3cookies     r
test_basic_iozTextIOWrapperTest.test_basic_iosL		I2

IIi.sICC )
  333			IIi.sICC )
  1---  5111  A...  u555q			  D111  C000  B///  2...  6222  A...  1v666  333  888  5111>>%((1((C000				3
		r c	v|d|d}g}dD]}g}t|D]-}|||t	|z.d|dz}|||f|||dg}		|}
|}|sn|	|
|fC|	|	|dS)Nru	sÿ࿿￿)rr:rrrjrrIrJrK>rLrMrNr?rr)
r^rirrLrrrarNrr)r<r3rUsamplewlinesrGcharsrlinerlinesrs           rrSz!TextIOWrapperTest.multi_line_tests0	q				

$L		DE4[[
6
6VAFO45555775>>D(DMM16688T*+++
GGDMMMM	q				'&&((C::<<D
MM3+&&&	'	
(((((r c|tjdd}|}|d|}|d|}|d|||||d|||||d||||d|D]8}||d|t|j9||||
dS)NrOr
r.uÿ
r)r0rrrarNr^rrrrr)r<r3p0p1p2r^s      rtest_tellingzTextIOWrapperTest.test_tellingsIIi&wI??
VVXX	
VVXX	
VVXX	q			2&&&x0002&&&x0002&&&	q				/	/DT8,,,gqv....2&&&						r cTt}|dz
}d|z}t|d}|t	|t	|d}t|d}||z}|tjd5}||dzdddn#1swxYwY|tjdd5}|	|}	||	t|d||||||ddddS#1swxYwYdS)	Nrrr
袈
rr,r.r;)
r4rrrrr0rrrNrurrar)
r<
chunk_sizeprefix_sizeu_prefixprefixu_suffixsuffixr^r3rs
          rtest_seekingzTextIOWrapperTest.test_seekings(**
 1n$xw//00XF444xw//00
YYy'
.
.	!
GGDFOOO															
YYy'wY
?
?	51{##AQFG 4 4555QVVXX{333QZZ\\8444		5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5s%4CC CB
FF!$F!cd}|tjd5}||dddn#1swxYwY|tjdd5}|jd|_||ddddS#1swxYwYdS)Ns࿿
rr,r
r.r)r0rrrNr2rra)r<rr3s   rtest_seeking_tooz"TextIOWrapperTest.test_seeking_toos# 
YYy'
.
.	!
GGDMMM															
YYy'wY
?
?	1
MMAM
JJLLL
FFHHH																			s#AA	A	27B66B:=B:c0ddfd	}dt_	tjD]\}}}||tjD]4\}}}t	|dzz
}d|z}|dz}|||z|5	dt_dS#dt_wxYw)Nrc	tjd}|||tjd}|_|}|t|t|dzD]}ddt||z
fD]}tjd}	|||d||
}	||||||z||	|||d|dS)zTell/seek to various points within a data stream and ensure
            that the decoded data returned by read() is consistent.rrr.r:rN)r0rrrNrr2rurrrrar^)	rmin_posr3decodedrrrV
CHUNK_SIZEr<s	       rtest_seek_and_tell_with_datazJTextIOWrapperTest.test_seek_and_tell.<locals>.test_seek_and_tell_with_datas		)*D11A
GGDMMM
GGIII		)*^	DDA&AMffhhG
GGIII7CLL1$455

QGq 01A		)"2^	LLA$$QVVAYY<<<VVXXF$$QVVAYY!a%0@AAAFF6NNN$$QVVXXwqrr{;;;GGIIII

r r:r.r)rrrrr)r<rvr_offsetrjrsrus`      @rrMz$TextIOWrapperTest.test_seek_and_tells
							,34"/	8=H
4
4q!,,U3333 >H
F
Fq!#c%jj!m3f (,,Ve^WEEEE
F78&333a&37777sABBc|tjdd}|d||tjdd}||d|}||d|}||||d||||dS)Nr	euc_jpr.u
AB
うえ
r,zAB
uうえ
)	r0rrrNrrrrar^)r<r3rarbs    rtest_multibyte_seek_and_tellz.TextIOWrapperTest.test_multibyte_seek_and_tells
IIi&hI??	$%%%				IIi&hI??v...
VVXX'7888
VVXX	r


'78882&&&						r c|tjdd}|d|}|d|||d||tjdd}||d|dS)	Nr	euc_jis_2004r.uæ̀æùr,uæ̀̀)	r0rrrNrar^rrr)r<r3ras   rtest_seek_with_encoder_statez.TextIOWrapperTest.test_seek_with_encoder_state+sIIi&nIEE	
VVXX		r


					IIi&nIEE';<<<						r cBd}d}|D]}|}|||}|||||d|||dz|d|||dz|||dz|dS)N
1234567890)rrrrrrr.rr)r1r=rNr^rrurr)r<rrTr/rdr3s      rtest_encoded_writesz%TextIOWrapperTest.test_encoded_writes8s
	J
	JH,,..C""3"::A
GGDMMM
GGDMMM
FF1IIIQVVXXtax000
FF1IIIQVVXXtax000S\\^^dQh->->x-H-HIIII
	J
	Jr cGdd|j}||d}|t|jdS)NceZdZdZdS)5TextIOWrapperTest.test_unreadable.<locals>.UnReadablecdSrr&r;s rrXz>TextIOWrapperTest.test_unreadable.<locals>.UnReadable.readableNrr Nrr&r r
UnReadablerMrr rr
r.)r1r=rrru)r<rr2s   rtest_unreadablez!TextIOWrapperTest.test_unreadableLsl								   @@'38,,,,,r c||dd}d}	|d}|sn||z
}||ddS)NsAA
BBr
r.rTr:zAA
BBr=r1rurr<r2readsrXs    rtest_read_one_by_onez&TextIOWrapperTest.test_read_one_by_oneSsv  k!:!:W MM	A
QJE		
	
)))))r c||dd}||gd|d||dgd|d||dddgdS)	NsAA
BB
CCr
r.)AA
BB
CCrrrr)r=r1rr}r^r<r2s  rr+z TextIOWrapperTest.test_readlines]s  m!<!<w OO*@*@*@AAAt,,.D.D.DEEEq))FF+;<<<<<r c||dd}d}	|d}|sn||z
}||ddS)NsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Br
r.rTrqzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Brrs    rtest_read_by_chunkz$TextIOWrapperTest.test_read_by_chunkfsw  .C!D!Dw WW	

A
QJE		
	

.....r cgd}|}||d}|||||ddSN)rcdefr
r.r)r1r=rrrrr<rVrdr2s    rrz!TextIOWrapperTest.test_writelinesqsullnn  w 77q		33333r c tgd}|}||d}|||||ddSr)rr1r=rrrrrs    rrz*TextIOWrapperTest.test_writelines_userlistys~'''((llnn  w 77q		33333r c"||d}|t|jgd|t|jd|t|jddS)Nr
r.rr)r=r1rrrrs  rrz'TextIOWrapperTest.test_writelines_errorsz  ' BB)S^YYY???)S^T:::)S^V<<<<<r c|||jd}d}	|d}|sn||z
}|||jdS)Nr;r.rTr:)r=r1rrurrrs    rtest_issue1395_1z"TextIOWrapperTest.test_issue1395_1s|  dm!<!<w OO	A
QJE		
	
00000r c|||jd}d|_d}	|d}|sn||z
}|||jdS)Nr;r.rjrr=r1rr2rurrrs    rtest_issue1395_2z"TextIOWrapperTest.test_issue1395_2s  dm!<!<w OO	A
QJE		
	
00000r c|||jd}d|_|d}||dz
}||z
}||z
}||z
}|||jdSNr;r.rj)r=r1rr2rurrrr<r2rs   rtest_issue1395_3z"TextIOWrapperTest.test_issue1395_3s  dm!<!<w OO
!


00000r c|||jd}d|_|d}||z
}|||jdSrrrs   rtest_issue1395_4z"TextIOWrapperTest.test_issue1395_4sn  dm!<!<w OO
00000r cj|||jd}d|_|d}|}|d||||dddS)Nr;r.rjrzBBB
)r=r1rr2rurar^r)r<r2rrs    rtest_issue1395_5z"TextIOWrapperTest.test_issue1395_5s  dm!<!<w OOhhjj


!g.....r c||j}||d}|||dSNr;r.)r1rr=rrZ)r<rr2s   rtest_issue2282z TextIOWrapperTest.test_issue2282s[dm,,  ' ::**CLLNN;;;;;r ctj}dD]s}||d|5}|d|}dddn#1swxYwY||d5}||d|dddn#1swxYwY||d|5}|ddddn#1swxYwY||d5}||d|dddn#1swxYwYudS)	N	utf-8-sigrrr	r.aaarrxxxaaaxxx)rrr0rNrarrurr<filenamecharsetr3rs     rtest_append_bomz!TextIOWrapperTest.test_append_bomsk#8
	E
	EG8S7;;
qffhh














8T**
Ba  5<<+@+@AAA
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B8S7;;
q














8T**
Ea  8??7+C+CDDD
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
	E
	EsG*A  A$	'A$	<C		C
	C
	,DD	D	/<E77E;	>E;	ctj}dD]I}||d|5}|d|}dddn#1swxYwY||d|5}|||d|d|ddddn#1swxYwY||d	5}||d
|dddn#1swxYwYKdS)Nrr	r.rrPzzzrbbbrbbbzzz)	rrr0rNrar^rrurrs     r
test_seek_bomzTextIOWrapperTest.test_seek_boms#8
	E
	EG8S7;;
qffhh














8TG<<
sq				















8T**
Ea  8??7+C+CDDD
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E
	E
	Es6*A  A$	'A$	AC$$C(	+C(	<E

E	E	crtj}dD]&}||d|5}|ddddn#1swxYwY||d|5}|d|d|j|ddddn#1swxYwY||d5}||d	|dddn#1swxYwY(dS)
Nrr	r.rrrrrr)	rrr0rNr^rrrur)r<rrr3s    rtest_seek_append_bomz&TextIOWrapperTest.test_seek_append_boms#8	E	EG8S7;;
q














8S7;;
qq			q$-(((














8T**
Ea  8??7+C+CDDD
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E	E	Es6AA	A	/ACC	C	"<D**D.	1D.	c^|tjdd5}||jddddn#1swxYwY|tjddd5}||jdddddS#1swxYwYdS)Nr	r
r.rrr)r0rrrrErs  rtest_errors_propertyz&TextIOWrapperTest.test_errors_propertys
YYy'wY
?
?	11QXx000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
YYy'wyY
Q
Q	2UVQXy111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s#AAA9B""B&)B&ctj|tjddd5fdfdtdD}t
j|j5tj
ddddn#1swxYwYdddn#1swxYwY|tjd	5}tdD].}||
d
|zd/	ddddS#1swxYwYdS)Nr	r
r:r7cdd|z}|dS)NThread%03d
)rrN)rftexteventr3s  rrunz1TextIOWrapperTest.test_threads_write.<locals>.runs-%)






r c>g|]}tj|fS)r!rJ)rLrrs  rrMz8TextIOWrapperTest.test_threads_write.<locals>.<listcomp>s;+++!'s!>>>+++r rrOr.r)rrr0rrrr
rTrrrrurr)r<rWcontentrfrr3rs    @@@rtest_threads_writez$TextIOWrapperTest.test_threads_writes-!!
YYy'w!Y
L
L	!PQ





++++ %b		+++G!/CC
!
!
4   
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!YYy''Y
:
:	GaffhhG2YY
G
G  ~/A!B!BAFFFF
G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	GsH<B.6BB.B	B.B	B..B25B2AD;;D?D?c|||jdgfd}|_|t
j|j|j	j||
d|
dd_dS)Nr;r.cPjjjgdd<trK)rrr)rr2srrz>TextIOWrapperTest.test_flush_error_on_close.<locals>.bad_flush
s%SZ%67F111I))Or rr:cdSrKr&r&r rrz=TextIOWrapperTest.test_flush_error_on_close.<locals>.<lambda>
rr )r=r1rrrrrrrrr)r<rrr2s  @@rrz+TextIOWrapperTest.test_flush_error_on_close
s  dm!<!<w OO							'39---
###
)***###### L			r cD||j}d}d}||_||d}||_|t5}|dddn#1swxYwY||jj	d|
|jjt||jjj	d||j
d|_d|_dS)	Nc tdrryr&r rrz>TextIOWrapperTest.test_close_error_on_close.<locals>.bad_flush
rr c tdrryr&r rrz>TextIOWrapperTest.test_close_error_on_close.<locals>.bad_close
rr r;r.rrcdSrKr&r&r rrz=TextIOWrapperTest.test_close_error_on_close.<locals>.<lambda>(
r{r cdSrKr&r&r rrz=TextIOWrapperTest.test_close_error_on_close.<locals>.<lambda>)
rr )r1rrr=rrrrrrrrrrr<rrrr2rs      rrz+TextIOWrapperTest.test_close_error_on_close
sNdm,,	#	#	#	#	#	#   ' ::	


w
'
'	3IIKKK															+Z888cm7AAA27DDD$$$$| L			 BBBcd||j}d}d}||_||d}||_|t5}|dddn#1swxYwY|dt|j	|
|j	jt|dt|j	j||j
d|_d|_dS)	NctrKrr&r rrzLTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.bad_flush.
rr ctrKrr&r rrzLTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.bad_close0
rr r;r.rrcdSrKr&r&r rrzKTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.<lambda>=
r{r cdSrKr&r&r rrzKTextIOWrapperTest.test_nonnormalized_close_error_on_close.<locals>.<lambda>>
rr )r1rrr=rrrrrrrrrrrs      rrz9TextIOWrapperTest.test_nonnormalized_close_error_on_close+
sVdm,,	%	%	%	%	%	%   ' ::	


y
)
)	SIIKKK															

*C
,>,>???cm7CCC

*C
0I,J,JKKK$$$$| L			rc|||jd}||||t
|jdSr)r=r1rrrrrrs  rrz"TextIOWrapperTest.test_multi_close@
sm  dm!<!<w OO						*ci00000r c|||jd}||j|j||j|jddS)Nr
r.r)r=rrrrrar^rs  rrz!TextIOWrapperTest.test_unseekableG
si  !6!6t}!E!EPW XX$3SX>>>$3SXqAAAAAr c|||jd}||j}|t5||_ddddS#1swxYwYdSr)r=r1rrrr)r<r2rds   rrz*TextIOWrapperTest.test_readonly_attributesL
s  dm!<!<w OOll4=))


~
.
.		CJ																		s$A99A=A=cP|gd}||dd}||dd||d|t|dd	gdS)
Nrrsghi
jkl
opq
r;rr>rjabcdzefghi
zjkl
zopq
)rqr=rrurrCr<rr2s   r
test_rawiozTextIOWrapperTest.test_rawioR
snnAAABB  w EE!f---333cWg$677777r c@|gd}||ddd}|d|d|d|d	|jd
dS)Nrr;rT)r/r?r1z23
45r s123
45)rqr=rNrrrErs   rtest_rawio_write_throughz*TextIOWrapperTest.test_rawio_write_through]
snnAAABB  w/3!55		#		'		##"233Z@@@@@r cggcGfdd|j}|}d}||t|dz}||dd}|d}||||||	dg||d	z|||	|d
zdS)Nc.eZdZfdZfdZxZS)BTextIOWrapperTest.test_bufio_write_through.<locals>.BufferedWriterc`dtj|i|SrPr)r<rrrflush_calleds   rrzHTextIOWrapperTest.test_bufio_write_through.<locals>.BufferedWriter.flushl
2##D)))$uww}d5f555r c`dtj|i|SrP)rLrrN)r<rrrwrite_calleds   rrNzHTextIOWrapperTest.test_bufio_write_through.<locals>.BufferedWriter.writeo
rr )r#r$r%rrNr)rrrs@rr-rk
s\
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6r r-rrr;T)r/rr rrL)
r-r1rr=rrNrrrr)	r<r-rrrr&rrrs	       @@rtest_bufio_write_throughz*TextIOWrapperTest.test_bufio_write_throughg
sb&("l	6	6	6	6	6	6	6	6T0	6	6	6uc$iik22##EG26$88{{7##T	
&&&%%%))3///TBY%%%))4"955555r c|g}||dd}|d|d||jd|d|jd|d	|d|jd
|d||jd|d||d|jd
||d||jd|d||d||jddS)Nr;rr>rTrr r23rcF45rE)	rqr=rNrrrrrErrs   rtest_reconfigure_write_throughz0TextIOWrapperTest.test_reconfigure_write_through
snnR  sWdCC		

D
)))$///#"233T:::	


#"233V<<<	

E
***%000	


				#"233X>>>	

	

D
)))%000	

D
)))	

	

D
)))$/////r c||dd}|t|jd||dd}|t|j||dd}|t|jdS)Nrr
r.r:)r=rKrrrurrs  rtest_read_nonbytesz$TextIOWrapperTest.test_read_nonbytes
s
t}}S11GDD)QVQ///t}}S11GDD)QZ000t}}S11GDD)QV,,,,,r ctjd}tj|dd5t	jt	jdd}dddn#1swxYwY|t|j	ddS)Nrot13_is_text_encodingTfoor.bar)
rrrrrr=r1rrrN)r<rrs   rtest_illegal_encoderz&TextIOWrapperTest.test_illegal_encoder
s
g&&

u&94
@
@	G	G F!3!3gFFFA	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G)QWe44444s)A  A$'A$c$fd}t|jd}t|j}t|jfd}|d}t|jd|d}t|jd|d}t|jddS)Nctjd}d|_	ddd}d|_n#d|_wxYw|S)NquopriTsaaaaaarr F)rrrr=r1)rrr<s  r_make_illegal_wrapperzETextIOWrapperTest.test_illegal_decoder.<locals>._make_illegal_wrapper
st]8,,F'+F$
1&&t||I'>'>/3h'HH,1((5(0000Hs+A	Ar:cGfddfd}tjd}tj|d|5cdddS#1swxYwYdS)NceZdZfdZdS)^TextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper.<locals>.BadDecodercSrKr&)r<getstate_ret_vals rrzgTextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper.<locals>.BadDecoder.getstate
s	++r N)r#r$r%r)rsr
BadDecoderr
s.,,,,,,,r rcSrKr&)rrs r_get_bad_decoderzdTextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper.<locals>._get_bad_decoder
s!z||#r rr)rrrr)rrrrrs`  @r_make_very_illegal_wrapperzJTextIOWrapperTest.test_illegal_decoder.<locals>._make_very_illegal_wrapper
s
,
,
,
,
,
,
,
,
,
,
$
$
$
$
$]8,,F"6+?#355
/
/,,..
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/s
AA ArUr&)r:r)rrrur)r<rrrs`  @rtest_illegal_decoderz&TextIOWrapperTest.test_illegal_decoder
s2					
"!##)QVQ///!!##)QZ000!!##)QV,,,
		/		/		/		/		/
'&r**)QVR000&&r**)QVR000&&v..)QVR00000r ch|jj}d||}td|S)Naif 1:
            import codecs
            import {iomod} as io

            # Avoid looking up codecs at shutdown
            codecs.lookup('utf-8')

            class C:
                def __init__(self):
                    self.buf = io.BytesIO()
                def __del__(self):
                    io.TextIOWrapper(self.buf, **{kwargs})
                    print("ok")
            c = C()
            )iomodr-c)rr#rr)r<rr	codes    r_check_create_at_shutdownz+TextIOWrapperTest._check_create_at_shutdown
s= U622	
 d+++r c|\}}}|r/||j|dS|d|dS)Nok)rrshutdown_errorrrstripr<rcoutrs    r(test_create_at_shutdown_without_encodingz:TextIOWrapperTest.test_create_at_shutdown_without_encoding
sx5577C	9
MM$-szz||<<<<<T3::<<#5#5#7#788888r c|dd\}}}|||d|dS)Nr
rrr)rrrrrrs    r%test_create_at_shutdown_with_encodingz7TextIOWrapperTest.test_create_at_shutdown_with_encoding
sm55w=E6GGCszz||113344444r c.td}||d}t|}||d|ddS)NsJust some random string
r
r)MemviewBytesIOr=_to_memoryviewrrrrur)r<r,r	bytes_vals    rtest_read_byteslikez%TextIOWrapperTest.test_read_byteslike
s|788q'**
$AJJLL1199;;	i&6&6w&?&?@@@@@r cGddt}tdD]2}	||d##t$rY/wxYwd|_||d}dS)Nc eZdZdZdZdZdS),TextIOWrapperTest.test_issue22849.<locals>.FcdSrPr&r;s rrXz5TextIOWrapperTest.test_issue22849.<locals>.F.readable	ttr cdSrPr&r;s rrQz5TextIOWrapperTest.test_issue22849.<locals>.F.writable
r r cdSrPr&r;s rrZz5TextIOWrapperTest.test_issue22849.<locals>.F.seekabler r N)r#r$r%rXrQrZr&r rFrs++++++++++++r r#rr
r.cdSrBr&rs rrz3TextIOWrapperTest.test_issue22849.<locals>.<lambda>s1r )objectrr=rCra)r<r#rrs    rtest_issue22849z!TextIOWrapperTest.test_issue22849s	,	,	,	,	,	,	,	,
r		A
""1133"9999



qqssW55sA
AAc~tjtjd}|ddS)Ntestrr.)rr=r1r)r<wrappers  rtest_reconfigure_localez)TextIOWrapperTest.test_reconfigure_locales9"2:g#6#677X.....r c(ddddz}||}||dd}||d||j5|ddddn#1swxYwY||j5|d	ddddS#1swxYwYdS)
Nabcé
rdéf
utf8rr>r
r.r?)rr1r=rrrrr)r<rrr2s    rtest_reconfigure_encoding_readz0TextIOWrapperTest.test_reconfigure_encoding_reads!!(++j.?.?.G.GGll4    x FF555


t8
9
9	.	.OOWO---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.


t8
9
9	*	*OODO)))	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*s$B>>CC#DDDcV|}||dd}|d|d|d|||ddS)	Nr;rr>zfoo
rr.rsfoo
é
)r1r=rNrrrrrs   r test_reconfigure_write_fromasciiz2TextIOWrapperTest.test_reconfigure_write_fromascii&sllnn  w EE		'---		(		);<<<<<r c|}||dd}|d|d||d|d|||d	|}||d
d}|d|d|d|||d
dS)Nrrr>r-r
r.sabc
r.s
abc
déf
r;abc
rs	abc
déf
)r1r=rNrrrrrs   rtest_reconfigure_writez(TextIOWrapperTest.test_reconfigure_write2s>llnn  x FF		+)))666		*		)ABBBllnn  w EE		'---		*		)=>>>>>r ct|}d|_d|_||dd}|d|d|d|||d	dS)
NcdSrr&r&r rrzGTextIOWrapperTest.test_reconfigure_write_non_seekable.<locals>.<lambda>Isur r;rr>r5rr.r.sabc
déf
)	r1rZr^r=rNrrrrrs   r#test_reconfigure_write_non_seekablez5TextIOWrapperTest.test_reconfigure_write_non_seekableGsllnn$}  w EE		'---		*			
*JKKKKKr c||ddd}|d||jd||jd|d|d||jd||jd|d	||jd||jd|d
|dd||jd
|d||d||	
ddS)Nr;rrr.LF
rr0rYrECRLF
r
r>rrzLF
CRLF
s	LF
CRLF
)r=r1rrr/rErNr^rurrrs  rtest_reconfigure_defaultsz+TextIOWrapperTest.test_reconfigure_defaultsTs  )TJJ&&&w///Y///		&'''w///Y///x(((w///X...		($777X...\222..00/BBBBBr c
||ddd}|t5|ddddn#1swxYwY|jr|t5|ddddn#1swxYwY|t5|ddddn#1swxYwY|t5|ddddn#1swxYwY|jrH|t5|ddddn#1swxYwY|t5|d	dddn#1swxYwY|t5|d	dddn#1swxYwY|t5|d
	dddn#1swxYwY|jsH|t5|d	dddn#1swxYwY|jr|t5|tdddn#1swxYwY|t5|d
dzdddn#1swxYwY|t5|tdddn#1swxYwY|t5|d
dzdddn#1swxYwY|t5|ttdddn#1swxYwY||j
d||jd||jd||jd|ddddd||j
d||jd||jd||jddS)Nr;rrrUr.rzlocaler<r0xyzrrrr?r)rrFrrYrT)r/rEr?rr)r=r1rrrrrrrrr7rrr/rErrrrs  rtest_reconfigure_errorsz)TextIOWrapperTest.test_reconfigure_errorsks;  )TJJ


y
)
)	)	)OORO(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)9	5""#566
3
3222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3"";//
5
5444
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5

y
)
)	'	'OO2O&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'9	1""#566
1
1x000
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

y
)
)	(	(OOBO'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(


z
*
*	.	.OOHO---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.


z
*
*	+	+OOEO***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+y	0"":..
0
0///
0
0
0
0
0
0
0
0
0
0
0
0
0
0
09	:""#455
;
;xzz:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;""=11
8
8q$w777
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8""#455
:
:hjj999
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:""=11
7
7ag666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7""#455
:
:xzz.6jj :::
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:	
w///Y///

c(%000

c'///(F'+4		A	A	Ax000X...

c($///

c'.....sA((A,/A,B77B;>B;C??DD$EEE3FFF;GG"%G"H&&H*-H*I..I25I2J==KK*#LL L>M$$M(+M(	#N88N<?N<PP
P(0Q$$Q(+Q(c|d}||dd}|d||d|d}||dd}|d||d|d}||dd	}|d||d
|d}||dd}|d	||d|d
}||dd	}|d||d||dd	}|d|d|d|d|d|d|d	|d|d|ddtjzdz}||	
d|dS)NsCR
EOFr;rr0zCR
rzCR
s	CR
LF
EOFrzCR
LF
s	LF
CR
EOFzLF
CR
sCR
CRLF
EOFrz	CR
CRLF
zlinesep
r;r=r5zLF
LF
CR
CRLF
)r1r=rrrrNrr5rrr)r<rr2rs    rtest_reconfigure_newlinez*TextIOWrapperTest.test_reconfigure_newlinesll:&&  gt <<%%%000ll:&&  gt <<###000ll>**  gt <<%%%444ll>**  gt <<%%%444ll-..  gt <<'''888  $ GG%%%		+###		&%%%		&%%%		&'''		(rz),BB..0077@@(KKKKKr c||dd}|d||||dd}|d|d|dS)Nr)r;r.r:r)r=r1rurarNrs  rtest_issue25862z!TextIOWrapperTest.test_issue25862st||G44wGG	q					t||G44wGG	q					r N)Vr#r$r%rrrrrrrrrrr~rrQr	utf8_moderrrrr+r3r9rrrrWrSrdrmrorMr|rrrrr+rrrrrrrrrrrrrrr
no_tracingr
rfrrrrrrrrrrrrrrrrrrr'r+r1r3r6r9r>rArCrEr&r rrr%
s>>>+++!=!=!=F	(	(	(222***((	5	5	51116X_SY(*ABB++CB+(	"	"	"444$5550(I(I(IT<<< 777$&&&,,,.BBB:))),(555"			-8-8-8^


JJJ(---***===	/	/	/444444===
1
1
1
1
1
1	1	1	1111///<<<
E
E
E
E
E
EEEE222
0022GG32G"!!!"!!!(!!!*111BBB
	8	8	8AAA666@000.---555&1&1&1P,,,*999555	A	A	A
6
6
6///
*
*
*
=
=
=???*LLLCCC.3/3/3/j"L"L"LH					r rc,eZdZdZfdZfdZxZS)rzOA BytesIO object whose read method returns memoryviews
       rather than bytesc`tt|SrK)rrrHr<len_rs  rrHzMemviewBytesIO.read1s!eggmmD11222r c`tt|SrK)rrrurJs  rruzMemviewBytesIO.reads!eggll400111r )r#r$r%rjrHrurrs@rrrs[33333222222222r rctjd}t|t||jzz
}||d|t	|S)z6Convert bytes-object *buf* to a non-trivial memoryviewrN)r)ritemsize	frombytesr)rdarridxs   rrrsV+c

C

c((SXX,
,CMM#dsd)c??r c4eZdZeZdZdZdZdZdZdZ	dS)CTextIOWrapperTest$LookupError: unknown encoding: asciic|d}||d}||d}|t|j|dd|t|j|j|j}|tt|dS)Nrr?r
r.rr>)
r1r)r=rrrIrur
rCrrs    rrtz&CTextIOWrapperTest.test_initializationsLL))4((q733*aj!gwWWW*af---&&t'9::)T1-----r ctjdtf5tjt
jd}||}||d}|	d||_
tj|}~tjdddn#1swxYwY||||t
jd5}||dddddS#1swxYwYdS)Nrrr;r.456defrs456def)rrrrrrrr-r=rNrrrrrrr0rru)r<rr(rrr3s      rrz*CTextIOWrapperTest.test_garbage_collections
+R,A
B
B	!	!Ii.55E##E**A""1w"77A
GGHACQB   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	
""$$###
YYy'
.
.	2!QVVXXy111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s$BB88B<?B<)D77D;>D;ctdD]}|||}||d}|||}||d}||_||_tjdS)Nr?r;r.)rr4rqr=buddyrr)r<rb1t1b2t2s      r!test_rwpair_cleared_before_textioz4CTextIOWrapperTest.test_rwpair_cleared_before_textiost		A$$T^^%5%5t~~7G7GHHB##B#99B$$T^^%5%5t~~7G7GHHB##B#99BBHBHHr c||d}|t5|`ddddS#1swxYwYdSr)r=r1rrr2rs  r test_del__CHUNK_SIZE_SystemErrorz3CTextIOWrapperTest.test_del__CHUNK_SIZE_SystemErrorst||~~@@


~
.
.		
																		sAAAc~dGfdd|j}|}||d}|j|d|d|g|j|t5|dd	zzdddn#1swxYwY|d
g|j|d|dz|d
dd
zg|jdS)Nrc"eZdZfdZxZS)<CTextIOWrapperTest.test_internal_buffer_size.<locals>.MockIOczt|krtt|SrK)rrrrN)r<rrrgs  rrNzBCTextIOWrapperTest.test_internal_buffer_size.<locals>.MockIO.writes0t99z))&&ww}}T***r )r#r$r%rNr)rrgs@rMockIOrcs>
+
+
+
+
+
+
+
+
+
+r rer;r.rrQrr:rghirr)rqr=r2rNrrErr)r<rerdrrgs    @rtest_internal_buffer_sizez,CTextIOWrapperTest.test_internal_buffer_sizes
	+	+	+	+	+	+	+T^	+	+	+fhhsW55]
		S-...


|
,
,	(	(
GGCA&'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	
)c&6777		J)VT*_=s?OPPPPPs CCCN)
r#r$r%rrrtrr^r`rgr&r rrSrSsn	B;N...222"
QQQQQr rSceZdZeZdZdS)PyTextIOWrapperTestrTN)r#r$r%rrrr&r rriri1s	
B;NNNr ric,eZdZdZdZdZdZdZdS)IncrementalNewlineDecoderTestcfd}|dd|dd|dd|dd|dd|dd|dd|ddtjdd	
|dd|d
d|ddd	
|d
dd	
|d
d|dd|dd|d
d|d
d|dd|dd|dd|dd|dd|dddS)Nc}j|fi|||j|fi||dSrK)rrrr)r(rrrdecoderr<s    r
_check_decodezPIncrementalNewlineDecoderTest.check_newline_decoding_utf8.<locals>._check_decode:s$$&&E^W^A8888!<<<U###^W^A8888!<<<<<r s袈u袈rr T)rrrr-rz
a

z

s
as袈
rfs袈
)rUnicodeDecodeErrorrr)r<rnros`` rcheck_newline_decoding_utf8z9IncrementalNewlineDecoderTest.check_newline_decoding_utf88s	=	=	=	=	=	=	
ox000
gr"""
gr"""
gx(((
gr"""
gr"""
gx(((
gr""",gncNNN


eT"""
eR   
c4t,,,,
eT....
eR   
dE"""
i(((
eR   
eT"""
fe$$$
):666
ox000
eT"""
'222
eT"""""r cDg|$tj|fd}ndfd}|jd|d|jd|d|jd|d|jd|d|jd	|d|d
dd})|}||d|jddS)Nc|D]8}t|g9dSrK)rrLrr)rr(rnencoderres  r_decode_bytewisezNIncrementalNewlineDecoderTest.check_newline_decoding.<locals>._decode_bytewisefsQ **>>AMM'..s"<"<====>>r cb|D]*}|+dSrK)rLr)rrXrnres  rryzNIncrementalNewlineDecoderTest.check_newline_decoding.<locals>._decode_bytewisels=55AMM'.."3"3444455r zabc

rz
abc)rrzabc
r)rrrrzabc

abcabc
abcabc)rgetincrementalencoderrnewlinesrrrr)r<rnr/ryrrxres `   @@rcheck_newline_decodingz4IncrementalNewlineDecoderTest.check_newline_decodingbs<f28<<>>G
>
>
>
>
>
>
>
>
G
5
5
5
5
5
5	
)4000###)4000!!!)>:::!!!)>:::)+?@@@!!!*ABBB

MMOOONN5))E..666)400000r c|d}|D]M}|otj|}||d}|||Ntjd}||d}|||t|jddS)N)	Nr
r-rrrrrrT	translater
rU)rgetincrementaldecoderIncrementalNewlineDecoderr}rurrr)r<r#rUrns    rtest_newline_decoderz2IncrementalNewlineDecoderTest.test_newline_decoders
		6	6CA?f:3??AAG44W4MMG''55557&.w779900D0II((111)W%5r:::::r cfd}dd}||dd}||dS)NcN|jd|dd|jd|dd|jddS)Nuഀu਀)rr|r)decr<s r_checkz@IncrementalNewlineDecoderTest.test_newline_bytes.<locals>._checksS\4000SZZ118<<<S\4000SZZ118<<<S\400000r FrT)r)r<rrs`  rtest_newline_bytesz0IncrementalNewlineDecoderTest.test_newline_bytessl	1	1	1	1	1,,TU,CCs,,TT,BBsr cVdD]I}tjd}|||}||Jtjd}||d}||dddS)N)r'rr:rr
rrrsz

)rrrrurr)r<rrns   rtest_translatez,IncrementalNewlineDecoderTest.test_translates'	6	6I;f27;;==G44WiHHG,,W55557&.w779900A0FF	22H=====r N)r#r$r%rur}rrrr&r rrkrk6sa(#(#(#T111B;;;">>>>>r rkc.eZdZejdZdS)CIncrementalNewlineDecoderTestcH|j|j}|t|jd|t|j|t|jd|t|jdS)Nbar)rr)rr
rrrrrr)r<
uninitializeds  rrz1CIncrementalNewlineDecoderTest.test_uninitializeds6>>*,,
*m&:FCCC*m&<===*m&<kJJJ*m&9:::::r N)r#r$r%rrrr&r rrrs1;;;;;r rceZdZdS)PyIncrementalNewlineDecoderTestNr"r&r rrrrmr rceZdZdZdZdZdZdZdZdZ	e
jej
de
jeedd	d
ZdZdZd
ZdZdZdZdZdZdZe
jeedd	dZdZe
jej
ddZe
jej
ddZe
jeedde
jeedd	dZdZ dZ!dZ"dZ#dZ$d Z%ej&e'j(e)!d"Z*dS)#
MiscIOTestNr&cBtjtjdSrKrr;s rrzMiscIOTest.tearDownrr c`tj||j|j|j|jdS)N)extranot_exported)rcheck__all__rname_of_moduleextra_exportedrr;s rtest___all__zMiscIOTest.test___all__s=T47D,?#'#6*.*;	=	=	=	=	=	=r c|tjdd}||jd||tjdd}||jd||jjd||jjjd||dd	}||jd||jjd||j	|||jj	|||dS)
NrrrrOr
r.r@Fr)
r0rrrrrrrrVr,)r<r3gs   rtest_attributeszMiscIOTest.test_attributess[IIi&I::&&&				IIi&wI??D111E222*E222IIahhjj$I66T***T***QXXZZ000QXXZZ000										r cdD]|}|t5}|tj|dddn#1swxYwY|dt
|j}dS)N)UrUzr+Uzinvalid mode)rrr0rrrrr)r<rr!s   rtest_removed_u_modezMiscIOTest.test_removed_u_modes&	=	=D"":..
2"		)*D111
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2MM.#bl*;*;<<<<	=	=s!AA	A	rrrcHtj\}}|tj|||dd}||jt
jdkr)||dSdS)Nrr
r.win32)	rrr#rr0rQrRrrZ)r<r,r	r3s    rtest_open_pipe_with_appendz%MiscIOTest.test_open_pipe_with_appendswyy1!$$$IIawI//   <7""QZZ\\*****#"r cddiddidddddddddddidd	iddddddd	dddd
iddid
ddd
dddddfD]=}d|dvrd
|d<|jtjfi|}||t
|j|t
|j|t
|j|t
|j	t|dr!|t
|jd|t
|jt|drA|t
|j
d|t
|j
t|dr |t
|jt|dr.|t
|jt!dt|dr.|t
|jt!d|t
|j|t
|j|t
|jd|t
|jd|t
|j|t
|j|t
|jd|dvrdnd|t
|jg|t
t2|?dS)Nrr	rr:rr
rrr,rrOrr(r
r/rrHrr\rgrr r)r0rrrrrrrVr3__iter__rrrurHr\rgrrrr}r^rarirNrru)r<rr3s   rtest_io_after_closezMiscIOTest.test_io_after_closesf
1--1--A..
1--1--A..A..A..Q//.	3.	3F"&.((%,z"	)*55f55A
GGIIIj!'222j!(333j!(333j!*555q&!!
9!!*afa888j!&111q'""
7!!*agt<<<!!*ag666q)$$
9!!*ai888q*%%
K!!*aj)D//JJJq+&&
L!!*ak9T??KKKj!*555j!+666j!+q999j!&!444j!&111j!*555j!'%(F6N%:%:cc
D
D
Dj!,;;;j$2222].	3.	3r cGddt}|d}|d|}||_||_t	j|}~~t
j|||dS)NceZdZdS)*MiscIOTest.test_blockingioerror.<locals>.CNr"r&r rCr&sDr rrr:)	rrr(rXrrrrr)r<rrXr(rs     rtest_blockingioerrorzMiscIOTest.test_blockingioerror$s								
AbEE  A&&
[^^
q""$$#####r c.||jtj||jtj||jtj||jtjdSrK)rrsrABCMetarOr9rNr;s r	test_abcszMiscIOTest.test_abcs1sqdk3;777dnck:::d13;???dos{;;;;;r c|tjdd5}|||j|||j|||j|||jdddn#1swxYwY|tjd5}|||j|||j|||j|||jdddn#1swxYwY|tjdd5}|||j|||j|||j|||jddddS#1swxYwYdSNrrrr	r
r.)	r0rrrrsrOassertNotIsInstancer9rN)r<	abcmoduler3s   r_check_abc_inheritancez!MiscIOTest._check_abc_inheritance8s
YYy'Y
;
;	>q!!!Y%5666!!!Y%8999$$Q	(@AAA$$Q	(<===		>	>	>	>	>	>	>	>	>	>	>	>	>	>	>
YYy'
.
.	>!!!!Y%5666$$Q	(;<<<!!!Y%=>>>$$Q	(<===		>	>	>	>	>	>	>	>	>	>	>	>	>	>	>
YYy'wY
?
?	;1!!!Y%5666$$Q	(;<<<$$Q	(@AAA!!!Y%9:::		;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;s8A-BB #B A-EEE-A-G''G+.G+c0||dSrK)rr;s rtest_abc_inheritancezMiscIOTest.test_abc_inheritanceIs##D)))))r c:|tdSrK)rrr;s rtest_abc_inheritance_officialz(MiscIOTest.test_abc_inheritance_officialMs	
##B'''''r c0t|i|}t|}|t5}d}t	jdddn#1swxYwY||t|jj	ddSrB)
r0rassertWarnsrrrrrwarningr)r<rrr3r,r!s      r_check_warn_on_deallocz!MiscIOTest._check_warn_on_deallocRs$!&!!GG


o
.
.	!"A   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	


aRZ_Q/0011111sAAAc|tjdd|tjd|tjdddSr)rrrr;s rtest_warn_on_dealloczMiscIOTest.test_warn_on_deallocZs]##I$4da#HHH##I$4d;;;##I$4cG#LLLLLr cTgfd}||tj\}}||fz
|j|g|Ri|tj\}}||fz
t	j|5t
|g|Rddi|ddddS#1swxYwYdS)NcD]D}	tj|#t$r }|jtjkrYd}~=d}~wwxYwdSrK)rrrr.r/)rrDfdss  rcleanup_fdsz9MiscIOTest._check_warn_on_dealloc_fd.<locals>.cleanup_fdsasr

HRLLLLw%+--.----

s
AAArF)r#rrrrr9r0)r<rrrr,r	rs      @r_check_warn_on_dealloc_fdz$MiscIOTest._check_warn_on_dealloc_fd_s(						
$$$wyy1q!t##A7777777wyy1q!t

6t
<
<	4	43T33353F333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4s=BB!$B!c|dd|d|dddS)Nrrrr,r
r.)rr;s rtest_warn_on_dealloc_fdz"MiscIOTest.test_warn_on_dealloc_fdrsN&&tq&999&&t,,,&&sW&=====r cVddiddidddddiddidddddidd	id	ddf	D]}d
|dvrd|d<ttjd
zD]Y}|jtjfi|5}|ttj||dddn#1swxYwYZdS)Nrr	rrrr,rrOrr(r
r/r:)	rpickleHIGHEST_PROTOCOLr0rrrrdumps)r<rprotocolr3s    r
test_picklingzMiscIOTest.test_picklingysL
A..
A..Q//
	L	LF&.((%,z"!&"9A"=>>
L
LTYy/::6::La%%iq(KKKLLLLLLLLLLLLLLL
L	L	Ls((BB #B c0|ddS)Ni@_test_nonblock_pipe_writer;s rtest_nonblock_pipe_write_bigbufz*MiscIOTest.test_nonblock_pipe_write_bigbufs	
&&w/////r c0|ddS)Nrrr;s r!test_nonblock_pipe_write_smallbufz,MiscIOTest.test_nonblock_pipe_write_smallbufs	
&&t,,,,,r set_blockingz(os.set_blocking() required for this testcBg}g}tj\}}tj|dtj|d||dd|}||dd|}|5|5dD]"}	d}		t	|	dzd	zg|z}
||
||
|	d
z
}	I#|j$r}||j	dtj||j	d|j|dd|j|d<||
d
}
||
||
Yd}~d}~wwxYw		|n#|j$r}||j	dtj||j	d|j||jd||
Yd}~nd}~wwxYw|t|j
dz
}dddn#1swxYwYdddn#1swxYwYd|d|}}|||||j||jdS)NFrT)rrr
r)rWIirar:rrsBLOCKEDr )rrrr0rrLrNrrrr.EAGAINrruriterrrr)r<rsentreceivedr,r	rfwfrUrrrDs            rrz$MiscIOTest._test_nonblock_pipe_writeswyy1
5!!!
5!!!YYqtTWY
E
E
YYqtTWY
E
E
	,	,	,	,#
%
%%A#QVb[M22Q6C(((


Q	+%%%$$QVAY===$$QVAY0DEEE#Bx(=)=(=>DHOOBGGII...$CHHSMMMKK$$$$$$$$%
//HHJJJ+///$$QVAY===$$QVAY0DEEE$$Q%91===OOBGGII........	/	
/
RWd+++H;	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,>$(););hx(((	"""	"""""s9J <J	AC
F 	B<F	J	F 	 J	%F:9J	:
I!BIJ	I!!J	=J 	J
	
J J
	J  J$'J$c|tjdd5	dddn#1swxYwY|t|jtjdddS)Nr	r
r.r)r0rrrFileExistsErrorr;s rtest_create_failzMiscIOTest.test_create_fails
YYy'wY
?
?																	/49i6FV]^^^^^s155cb|tjd5}|ddddn#1swxYwY|tjd5}|d|ddddS#1swxYwYdS)Nxbrrrrs  rtest_create_writeszMiscIOTest.test_create_writess
YYy'
.
.	!
GGG															
YYy'
.
.	0!Waffhh///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0rcb|t|jtjdddS)Nzrwax+r
r.rr;s rtest_open_allargszMiscIOTest.test_open_allargss-*di1A7U\]]]]]r c|jj}t}d}tjd|d|d|d|d|d|d|d	|d
}tddd
|}||jd|dS)NzBoom, Shaka Laka, Boom!z)
            import sys
            from zC import open, TextIOWrapper

            try:
                open(z, encoding=z)
            except LookupError:
                pass
            else:
                sys.exit(21)

            try:
                open(z	, errors=z})
            except LookupError:
                pass
            else:
                sys.exit(22)

            fp = open(za, "rb")
            with fp:
                try:
                    TextIOWrapper(fp, encoding=z)
                except LookupError:
                    pass
                else:
                    sys.exit(23)

                try:
                    TextIOWrapper(fp, errors=z)
                except LookupError:
                    pass
                else:
                    sys.exit(24)

            sys.exit(10)
        -Xdevr
r)rr#r1textwrapdedentr	rr)r<modrr=rprocs      rtest_check_encoding_errorsz%MiscIOTest.test_check_encoding_errorssg+# # # 
# # 
.5# # # # ,3# # $ %# # *18+# # 8/69# # # #
#
H%T5$=="d+++++r c	|jj}t}tjd|d|d|d}tddd|}|j}|t|d|
|d	d
|
|dddS)
Nz(            import sys
            from zN import open, TextIOWrapper
            import pathlib

            with open(zJ) as f:           # line 5
                pass

            pathlib.Path(z ).read_text()  # line 8
        rwarn_default_encodingr
rrs<string>:5: EncodingWarning: r:s<string>:8: EncodingWarning: )rr#r1rrrrr1rrrrS)r<rrrrrZs      rtest_check_encoding_warningz&MiscIOTest.test_check_encoding_warningsg	 	 	 
 	 	 #	 	 	 	
	
 &=tTJJ8&&((X***QK""#CDD	F	F	FQK""#CDD	F	F	F	F	Fr cd}tddd|}|d|jtddd|}|d|jdS)Nz(import io; print(io.text_encoding(None))rzutf8=0r
slocalezutf8=1sutf-8)rrrr)r<rrs   rtest_text_encodingzMiscIOTest.test_text_encoding"sy:hd;;DHNN$4$4555hd;;48>>#3#344444r )categorycZ||jj|jjdSrK)rrOpenWrapperr0r;s rtest_openwrapperzMiscIOTest.test_openwrapper-s'	


dg)47<88888r )+r#r$r%rrrrrrrr~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrignore_warningsr]rr&r rrrs
NNL+++===
$===X_FXV,,.BCC	+	+DC	+/3/3/3b$$$<<<;;;"***(((
222MMM
444&XV,,.BCC>>DC>LLL&X_F000X_F---X^44CEEXV,,.BCC0#0#DCEE0#d___000^^^+,+,+,ZFFF.	5	5	5
%_$.@AAA99BA	
999r rceZdZeZdZdZdZdZej	e
jddZej	e
jddZ
dS)	CMiscIOTest)r_io)rcGdd|jj}|}td}|t|j|dS)NceZdZddZdS)<CMiscIOTest.test_readinto_buffer_overflow.<locals>.BadReaderrcddzS)Nri@Br&rts  rruzACMiscIOTest.test_readinto_buffer_overflow.<locals>.BadReader.read>se|#r NrZrvr&r r	BadReaderr=s(
$
$
$
$
$
$r rr)rr9rrrrg)r<rrr(s    rtest_readinto_buffer_overflowz)CMiscIOTest.test_readinto_buffer_overflow;si	$	$	$	$	$.	$	$	$	aLL*ena88888r cxdt}td|\}}|j}|jdkr9dt}|||dS||ddS)Naif 1:
            import sys
            import time
            import threading
            from test.support import SuppressCrashReport

            file = sys.{stream_name}

            def run():
                while True:
                    file.write('.')
                    file.flush()

            crash = SuppressCrashReport()
            crash.__enter__()
            # don't call __exit__(): the crash occurs at Python shutdown

            thread = threading.Thread(target=run)
            thread.daemon = True
            thread.start()

            time.sleep(0.5)
            file.write('!')
            file.flush()
            r
rzFatal Python error: _enter_buffered_busy: could not acquire lock for <(_io\.)?BufferedWriter name='<{stream_name}>'> at interpreter shutdown, possibly due to daemon threadsz.!)	
format_maplocalsr
rrrrrr)r<stream_namerrrxrpatterns       r&check_daemon_threads_shutdown_deadlockz2CMiscIOTest.check_daemon_threads_shutdown_deadlockDs0
688$$1	
2&dD11Qgnn6Q;;)*4FHH)=)=	


S'*****SYYt__-----r walltimec0|ddS)Nstdoutrr;s r,test_daemon_threads_shutdown_stdout_deadlockz8CMiscIOTest.test_daemon_threads_shutdown_stdout_deadlockm	
33H=====r c0|ddS)Nstderrrr;s r,test_daemon_threads_shutdown_stderr_deadlockz8CMiscIOTest.test_daemon_threads_shutdown_stderr_deadlockrr
r N)r#r$r%rrrrrr
rfrrgrrr&r rrr6s	B N'N999'.'.'.R1022Wz**>>+*32>1022Wz**>>+*32>>>r rceZdZeZdZdZdZdS)PyMiscIOTest)_pyior)r	open_code)valid_seek_flagsN)r#r$r%rrrrrr&r rrrxs"	
B"N4N&LLLr rntz%POSIX signals required for this test.ceZdZdZdZdZdZeej	e
edddZeej	e
edddZ
eej	e
eddd	Zejd
ZedZedZd
ZeejddZeejddZdZeejddZeejddZdS)SignalsTestcXtjtj|j|_dSrK)signalSIGALRMalarm_interruptoldalrmr;s rrzSignalsTest.setUps}V^T5IJJr cNtjtj|jdSrK)rrrr;s rrzSignalsTest.tearDowns
fndl33333r cddzdSr9r&)r<sigframes   rrzSignalsTest.alarm_interruptr>r c
tjg
fd}tj|}d|_tj\
}d|d<|tjt|zdzz}	|j	j
|fi|}ttdritj
tjtjg|tj
tjtjgn|tjd	|t(|j|tjd|n-#tjd|wxYwtj
d||dd|dd	gtj|tj
	|d
S#t6$r!}	|	jt8jkrYd
}	~	d
Sd
}	~	wwxYw#tj|tj
	|w#t6$r }	|	jt8jkrYd
}	~	wd
}	~	wwxYwxYw)zCheck that a partial write, when it gets interrupted, properly
        invokes the signal handler, and bubbles up the exception raised
        in the latter.c\tjd}|dSr)rrurL)rr,read_resultss rrlz2SignalsTest.check_interrupted_write.<locals>._reads,1

A"""""r rITFrr:pthread_sigmaskrrN)rrrr$daemonrr
PIPE_MAX_SIZErrr0rrr%	SIG_BLOCKrr%SIG_UNBLOCKr5rrrNrrLrurrrr.r/)r<itemr
fdopen_kwargsrlrr	
large_datawiorDr,r$s          @@rcheck_interrupted_writez#SignalsTest.check_interrupted_writes6		#	#	#	#	#	#
E***wyy1#(
i W2c$ii?!CD
$	$',q22M22Cv011
&v'7&.9IJJJ			&v'9FN;KLLLL			
LOOO
!!"3SY
KKKQQ
1

...\E!A#Jac
+CDDDHQKKKHQKKK
		


7ek))*)))))

HQKKKHQKKK
		


7ek))*))))
sh8B9I&2!E<)I&<*F&&AI&"H88
I#II#&)KJ%$K%
K/K
K
KKrrc8|dddddS)Nrirrrr.r;s r!test_interrupted_write_unbufferedz-SignalsTest.test_interrupted_write_unbuffereds'	
$$UE$JJJJJr c6|ddddSNrirrr0r;s rtest_interrupted_write_bufferedz+SignalsTest.test_interrupted_write_buffereds%	
$$UE$=====r c8|dddddS)Nxyrir	r;rr/r0r;s rtest_interrupted_write_textz'SignalsTest.test_interrupted_write_texts'	
$$T5sW$MMMMMr c		fd}tjtj|tj\}}|jj|fi|		tjd|ttf5}	tdD]+}		,tj
|tdza#1swxYwY|j}t!|trC|t%|dt%|tjd	tj|dS#tjd	tj|wxYw)Nc<ddzdSr9)rN)rrr-s ron_alarmz3SignalsTest.check_reentrant_write.<locals>.on_alarmsIIdOOO
aCCCCr r:r zreentrant callr)rrrrrr0r5rrrrrNrrurrrMrrrSr)
r<rr+r<r,r	r!rrr-s
 `       @rcheck_reentrant_writez!SignalsTest.check_reentrant_writes							
fnh///wyy1dgl1..
..	LOOO""$5|#DEE
00"3ZZ$$		$		GAs4yy3///0
0
0
0
0
0
0
0
0,C#|,,
QC 3 34D E Es3xxPPPLOOOIIKKKHQKKKKK
LOOOIIKKKHQKKKKs,5FA#C**C..F1C.2A"F>Gc4|dddSr3r=r;s rtest_reentrant_write_bufferedz)SignalsTest.test_reentrant_write_buffereds!""5t"44444r c6|ddddS)Nr7r	r;r8r?r;s rtest_reentrant_write_textz%SignalsTest.test_reentrant_write_texts#""4cG"DDDDDr ctj\}d|d<fd}tjtj|	|jj|fi|}tjdtjd|||	ddtjd|
tj
tj
|d	S#tjd|
tj
tj
|wxYw)
zCheck that a buffered read, when it gets interrupted (either
        returning a partial result or EINTR), properly invokes the signal
        handler and retries if the latter returned successfully.Frc2tjddS)Nr)rrN)r r!r	s  r
alarm_handlerz?SignalsTest.check_interrupted_read_retry.<locals>.alarm_handlersHQr rr:rfoobarrN)rrrrrr0rNr5rrur)r<rr+r,rErior	s      @rcheck_interrupted_read_retryz(SignalsTest.check_interrupted_read_retrys*wyy1#(
i 	 	 	 	 	 
fnm444
	$',q22M22CHQLOOO

VVCHHQKK00(;;;LOOOIIKKKHQKKKHQKKKKK
LOOOIIKKKHQKKKHQKKKKsA.DAErc6|dddS)Nc,|dS)Nr)rr%s rrzBSignalsTest.test_interrupted_read_retry_buffered.<locals>.<lambda>&sAHHX4F4Fr rr4rHr;s r$test_interrupted_read_retry_bufferedz0SignalsTest.test_interrupted_read_retry_buffered#s4	
))*F*F/3	*	5	5	5	5	5r c8|ddddS)Nc|SrKr&r%s rrz>SignalsTest.test_interrupted_read_retry_text.<locals>.<lambda>,sAr r,rr8rKr;s r test_interrupted_read_retry_textz,SignalsTest.test_interrupted_read_retry_text)s9	
))++/2X	*	G	G	G	G	Gr c
tjdtj}t	j\
}d|d<gdd
fd}t
j|d_fd}fd	||z}tj	tj
|	|jj|fi|}tj
d
||}	|||	|d|||t'dDtj
ddt	j|t	j
	|dS#t*$r!}
|
jt,jkrYd}
~
dSd}
~
wwxYw#tj
ddt	j|t	j
	|w#t*$r }
|
jt,jkrYd}
~
wd}
~
wwxYwxYw)
zCheck that a buffered write, when it gets interrupted (either
        returning a partial result or EINTR), properly invokes the signal
        handler and retries if the latter returned successfully.selectFrNc"	spgggddvrKtjd}|gggddvKndSdS#t$r
}|Yd}~dSd}~wwxYw)Ng?rr)rQrrurL
BaseException)rrerrorr,r$rQwrite_finisheds  rrlz8SignalsTest.check_interrupted_write_retry.<locals>._readAs
(/v}}aS"b#>>qAAAGAt,,$++A...v}}aS"b#>>qAAA)/////!



sA0A77
BB		BrITcntjtjtjddSr)rrr5)r r!alarm2s  ralarm1z9SignalsTest.check_interrupted_write_retry.<locals>.alarm1Ls(M&.&111LOOOOOr c0dSrK)r%)r r!rs  rrWz9SignalsTest.check_interrupted_write_retry.<locals>.alarm2Os
GGIIIIIr r:c34K|]}t|VdSrK)r)rLrs  r	<genexpr>z<SignalsTest.check_interrupted_write_retry.<locals>.<genexpr>ds(#A#AqCFF#A#A#A#A#A#Ar r)r
import_modulerr'rrrr$r&rrrr0r5rNrrrrsumrrr.r/)r<r*r+rUr	rlrXr,r-rrDrWrTr,r$rQrrUs           @@@@@@@rcheck_interrupted_write_retryz)SignalsTest.check_interrupted_write_retry/s,X66
!wyy1#(
i 
									
E***										AX

fnf---	$',q22M22CLOOOii
++GQ(((IIKKK!N
FFHHHe$$$Q#A#AL#A#A#A A ABBBLOOO!NHQKKKHQKKK
		


7ek))*)))))

LOOO!NHQKKKHQKKK
		


7ek))*))))
sOB>GF00
G:GG?I H32I 3
I=II II c4|dddS)Nrrr4r^r;s r%test_interrupted_write_retry_bufferedz1SignalsTest.test_interrupted_write_retry_bufferedss#	
**4d*;;;;;r c6|ddddS)Nrr	rr8r`r;s r!test_interrupted_write_retry_textz-SignalsTest.test_interrupted_write_retry_textxs%	
**3S8*LLLLLr N)r#r$r%rrrr.requires_alarmr~rrrr1r5r9rrGr=r@rBrHrgrLrOr^rarcr&r rrrstKKK444KKKZXV,,.BCCKKDC^KXV,,.BCC>>DC^>XV,,.BCCNNDC^N
655^5EE^E0Wz**55+*^5Wz**GG+*^GBBBHWz**<<+*^<Wz**MM+*^MMMr rceZdZeZdS)CSignalsTestN)r#r$r%rr&r rrfrf~s	BBBr rfceZdZeZdZdZdS)
PySignalsTestN)r#r$r%rrr@rBr&r rrhrhs#	
B%)! $r rhctttttt
ttttttttttt t"t$t&f}t(t*t,t.t0t2t4t6f}t8j}d|D}d|D}t=|fd|D|fd|D|D]}|j !dr3|"D]\}}	tG|||	d|_$O|j !dr2|"D]\}}	tG|||	d|_$|%}
|D]*}|
&|'|+|
S)	Nc:i|]}|tt|Sr&)rKrrLr,s  r
<dictcomp>zload_tests.<locals>.<dictcomp>s$@@@Dtgb$''@@@r c:i|]}|tt|Sr&)rKrrks  rrlzload_tests.<locals>.<dictcomp>s$CCCtwtT**CCCr c3FK|]}|jd|jzfVdS)rNr#rLrglobss  rr[zload_tests.<locals>.<genexpr>s6HHQAJcAJ&6 78HHHHHHr c3FK|]}|jd|jzfVdS)PyNrorps  rr[zload_tests.<locals>.<genexpr>s6JJqQZtaj'8!9:JJJJJJr rTrsF)(rrrrirrrr;r=rrrrrrSrirrrfrhrqr|rrrrr@rr__all__globalsrr#rSr7setattrr
suiteClassaddTestloadTestsFromTestCase)loaderrTrmocksall_membersc_io_nspy_io_nsrUr,rsuiterqs           @r
load_testsrs
h
 "6
 "6
 "6
 "6
+
+-L
!4
,
=

E^
!#35I

E*K@@K@@@GCC{CCCHIIENNHHHH%HHHHHHOOJJJJEJJJJJJ=##C((	$]]__
)
)	cdC((((DII
]
%
%d
+
+	%^^--
)
)	cdC((((DIE::


f224889999Lr __main__)zrjrr)r.rrrrQrrQrrrr~rZrcollectionsrr	itertoolsrrrUrtest.support.script_helperrr	r
test.supportrrr
rrtest.support.os_helperrrrrrrr	StructurerImportErrorrrrrr4rrdr7r@rOrlrorqrxrzr|rrrrrrrrrr1rrrrrrrrTestCaserrrrrrrrrirrrrrr;r=r?rrrrrrrrrrSrirkrrrrrrr,rrfrhrr#mainr&r r<module>rs
##*






				















''''''''""""""""CCCCCCCCCC&&&&&&""""""))))))((((((******++++++



				
MMM





f&



333333333 #73(:;;Qsy?Q
%$GFG<
66666666p					0",								14>			$					BL								)T^			i"																Y					nbl								~t~			Y					nbl								~t~			 					*bj								:t|			8888888833333("*33355555)4<555........`)))))0",)))+++++14>+++A$A$A$A$A$X
A$A$A$H$$$$$f$$$(					v				hhhhhh'hhhjjjjjjjjZ55555555,fHfHfHfHfH*,?fHfHfHR	@A@A@A@A@A,j@A@A@AF-ddddd*,?dddP	-4-4-4-4-4,j-4-4-4`-NNNNN*NNN`,-f&f&f&f&f&+-?f&f&f&R44444,j4442-IIIII!:III\;;;)4)4)4)4)4X%6)4)4)4Vhhhhh)hhhV%22222RZ222KQKQKQKQKQ*KQKQKQ\<<<<<+<<<
s>s>s>s>s>H$5s>s>s>j;;;;;%B;;;					&C			w9w9w9w9w9"w9w9w9t?>?>?>?>?>*?>?>?>D''''':'''D"IJJ{M{M{M{M{M(#{M{MKJ{M|;%%%%%K%%%%%%NzHMOOOOOsB++B65B6