python (3.11.7)

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

e`xdZddlZddlZddlmZmZmZddlmZGddej	Z
edkrejdSdS)z
Test suite for PEP 380 implementation

adapted from original tests written by Greg Ewing
see <http://www.cosc.canterbury.ac.nz/greg.ewing/python/yield-from/YieldFrom-Python3.1.2-rev5.zip>
N)captured_stderr
disable_gc
gc_collect)supportceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#S)$TestPEP380Operationz
    Test semantics.
    cgfd}fd|D]}d||gddS)zH
        Test delegation of initial next() call to subgenerator
        c3KdEd{VddSNStarting g1Finishing g1appendg2tracesH/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_yield_from.pyg1zOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g1sHLL'''rttOOOOOOOLL(((((c3hKddVddS)NStarting g2*Finishing g2rrsrrzOTestPEP380Operation.test_delegation_of_initial_next_to_subgenerator.<locals>.g2s:LL'''HHHLL(((((rYielded )rrz
Yielded 42rr
NrassertEqualselfrxrrs   @@r/test_delegation_of_initial_next_to_subgeneratorzCTestPEP380Operation.test_delegation_of_initial_next_to_subgenerators	)	)	)	)	)	)	)	)	)	)	)	.	.ALLL,---- 
 
 
					rc>gfd}fd	|D]}d|	|dn8#t$r+}||jddYd}~nd}~wwxYw|gddS)	z?
        Test raising exception in initial next() call
        c3K	dEd{VddS#dwxYwrrrsrrzKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g11se
-]+++244^,,,,,^,,,,s%AAc	dtd#dwxYw)Nrspanish inquisition occurredrr
ValueErrorrsrrzKTestPEP380Operation.test_raising_exception_in_initial_next_call.<locals>.g27sB
-]+++ !?@@@^,,,,s$'>r'subgenerator failed to raise ValueErrorrr%N)rrrr
rfailr'rargsrrr errs    @@r+test_raising_exception_in_initial_next_callz?TestPEP380Operation.test_raising_exception_in_initial_next_call,s	-	-	-	-	-	-	-	-	-	-	-	ARTT
2
2QQ01111
2

II?@@@@	H	H	HQVAY(FGGGGGGGG	H	
 
 
 
					%A

B!A==Bcgfd}fd|D]}d||gddS)z@
        Test delegation of next() call to subgenerator
        c3KddVEd{VdVddSNrg1 hamg1 eggsr
rrsrrzLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g1PsZLL'''NNNrttOOOOOOOOOOLL(((((rc3pKddVdVddSNrg2 spamg2 more spamrrrsrrzLTestPEP380Operation.test_delegation_of_next_call_to_subgenerator.<locals>.g2VsFLL'''OOO    LL(((((rr)rYielded g1 hamrYielded g2 spamYielded g2 more spamrYielded g1 eggsr
Nrrs   @@r,test_delegation_of_next_call_to_subgeneratorz@TestPEP380Operation.test_delegation_of_next_call_to_subgeneratorKs	)	)	)	)	)	)	)	)	)	)	)
	.	.ALLL,----	 
	 
	 
										rc>gfd}fd	|D]}d|	|dn8#t$r+}||jddYd}~nd}~wwxYw|gddS)	zA
        Test raising exception in delegated next() call
        c3K	ddVEd{VdVddS#dwxYwr2rrsrrzMTestPEP380Operation.test_raising_exception_in_delegated_next_call.<locals>.g1mw
-]+++244^,,,,,^,,,,-A		A c3K	ddVtd#dwxYw)Nrr7hovercraft is full of eelsr8rr&rsrrzMTestPEP380Operation.test_raising_exception_in_delegated_next_call.<locals>.g2usQ
-]+++ !=>>>^,,,,s	(-Arr(rrCNrr9rr:rr
r)r,s    @@r-test_raising_exception_in_delegated_next_callzATestPEP380Operation.test_raising_exception_in_delegated_next_callhs	-	-	-	-	-	-	-	-	-	-	-	ARTT
2
2QQ01111
2

II?@@@@	F	F	FQVAY(DEEEEEEEE	F	
 
 
 
					r/cgfd}fd|}t|}d}		||}d||dz
}3#t$rYnwxYw|gddS)z+
        Test delegation of send()
        c3KddV}d|Ed{VdV}d|ddSNrr3zg1 received r4r
rr rrs rrz7TestPEP380Operation.test_delegation_of_send.<locals>.g1LL'''ALLLQQ0111rttOOOOOOOALLLQQ0111LL(((((rc3KddV}d|dV}d|ddS)Nrr7g2 received r8rrr rs rrz7TestPEP380Operation.test_delegation_of_send.<locals>.g2swLL'''ALLLQQ0111$$$ALLLQQ0111LL(((((rr)r
g1 received 1rr:
g2 received 2r;z
g2 received 3rr<z
g1 received 4r
N)nextsendr
StopIterationr)rrgyr rrs     @@rtest_delegation_of_sendz+TestPEP380Operation.test_delegation_of_sends	)	)	)	)	)	)	)	)	)	)	)
BDDGG
	
FF1IIQQ0111Q
			D	 
 
 
					s4A  
A-,A-cgfdfdfd}|t||gddS)zA
        Test handling exception while delegating 'send'
        c3KddV}d|Ed{VdV}d|ddSrHrrIs rrzMTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.g1rJrc3KddV}d|td)Nrr7rLrCr&rMs rrzMTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.g2sJLL'''ALLLQQ01119:::rc}t|}d}		||}d||dz
}3#t$rdYdSwxYw)NrNrrS)rQrRrrS)rTrUr rrs   rrunzNTestPEP380Operation.test_handling_exception_while_delegating_send.<locals>.runsAQAA
.q		ALLL!4555FA!
.
.
._------
.s4AA54A5)rrOrr:rPN)assertRaisesr'rrr[rrrs  @@@r-test_handling_exception_while_delegating_sendzATestPEP380Operation.test_handling_exception_while_delegating_sends	)	)	)	)	)	)	)	)	)	)	)
	.
	.
	.
	.
	.
	.	
*S))) 
 
 
					rcgfd}fd|}tdD])}t|}d|*||gddS)z)
        Test delegating 'close'
        c3K	ddVEd{VdVddS#dwxYwr2rrsrrz5TestPEP380Operation.test_delegating_close.<locals>.g1r@rAc3K	ddVdVddS#dwxYwr6rrsrrz5TestPEP380Operation.test_delegating_close.<locals>.g2c
-]+++$$$$^,,,,,^,,,,	9ArrDN)rangerQrcloser)rrrTir rrs     @@rtest_delegating_closez)TestPEP380Operation.test_delegating_closes	-	-	-	-	-	-	-	-	-	-	-
BDDq	.	.AQALLL,----				 
 
 
					rcgfd}fd	|}tdD])}t|}d|*||dnX#t
$rK}||jdd||j	tYd}~nd}~wwxYw|gd	dS)
zB
        Test handling exception while delegating 'close'
        c3K	ddVEd{VdVddS#dwxYwr2rrsrrzMTestPEP380Operation.test_handing_exception_while_delegating_close.<locals>.g1	r@rAc3K	ddVdVdtd#dtdxYw)Nrr7r8r"nybbles have exploded with delightr&rsrrzMTestPEP380Operation.test_handing_exception_while_delegating_close.<locals>.g2s
G]+++$$$$^,,, !EFFF^,,, !EFFFFFFsA%A+rdrr(rrlNrD)rerQrrfr*r'rr+assertIsInstance__context__
GeneratorExitrrrTrgr r-rrs      @@r-test_handing_exception_while_delegating_closezATestPEP380Operation.test_handing_exception_while_delegating_closesW	-	-	-	-	-	-	G	G	G	G	G
	AA1XX
2
2GGQQ01111
GGIII

II?@@@@		@	@	@QVAY(LMMM!!!-????????	@
	
 
 
 
					sAA>>
CACCcgfd}fd	|}tdD])}t|}d|*td}|||dn8#t$r+}||jddYd}~nd}~wwxYw|gd	dS)
z)
        Test delegating 'throw'
        c3K	ddVEd{VdVddS#dwxYwr2rrsrrz5TestPEP380Operation.test_delegating_throw.<locals>.g12r@rAc3K	ddVdVddS#dwxYwr6rrsrrz5TestPEP380Operation.test_delegating_throw.<locals>.g2:rbrcrdrtomato ejectedr(rNrDrerQrr'throwr*rr+rps      @@rtest_delegating_throwz)TestPEP380Operation.test_delegating_throw-sF	-	-	-	-	-	-	-	-	-	-	-
	AA1XX
2
2GGQQ01111+,,A
GGAJJJ
II?@@@@	:	:	:QVAY(899999999	:	
 
 
 
					sA'B
C!B>>Ccgfd}t}||td}||d|_|||gddS)zC
        Test 'value' attribute of StopIteration exception
        c|jjd|d|jdS)Nz: zvalue = )r	__class____name__value)r-rs rpexzPTestPEP380Operation.test_value_attribute_of_StopIteration_exception.<locals>.pexZsHLLQ[%9%9%911=>>>LLL233333rspameggs)zStopIteration: zvalue = NoneStopIteration: spamzvalue = spamrzvalue = eggsN)rSr}r)rr~r-rs   @r/test_value_attribute_of_StopIteration_exceptionzCTestPEP380Operation.test_value_attribute_of_StopIteration_exceptionUs	4	4	4	4	4
OOA&!!AA 
 
 
					rcpfd}d|t|dgdS)Nc3,KEd{VdSN)rsrrz:TestPEP380Operation.test_exception_value_crash.<locals>.g1ps"rttOOOOOOOOOrc3KdVdgS)Nrrrrrrrz:TestPEP380Operation.test_exception_value_crash.<locals>.g2rsJJJ4Krr)rlist)rrrs  @rtest_exception_value_crashz.TestPEP380Operation.test_exception_value_crashmsW									
bbdddV,,,,,rcgfd}dfd	|D]}d||gddS)z-
        Test generator return value
        c3<KddVEd{V}d|ddtdfD]+}|Ed{V}d|,dVddS)	Nrr3zg2 returned rNrdr4r
)rrS)retvrrs  rrz;TestPEP380Operation.test_generator_return_value.<locals>.g1}sLL'''NNNRTT//////CLLLSS2333mA...
8
8!#A&&&&&&67777OOOLL(((((rNc3xKddVdVd|r|SdSr6r)rrs rrz;TestPEP380Operation.test_generator_return_value.<locals>.g2sWLL'''OOO    LL(((


rr)rr9rr:r;rzg2 returned Nonerr:r;rz
g2 returned 1rr:r;rzg2 returned (2,)rr:r;rzg2 returned StopIteration(3)r<r
rrrs   @@rtest_generator_return_valuez/TestPEP380Operation.test_generator_return_valuexs		)		)		)		)		)		)							.	.ALLL,---- 
 
 
					rcg}d}|D]}|d|||gddS)z<
        Test delegation of next() to non-generator
        c34KtdEd{VdSNrrerrrrTzGTestPEP380Operation.test_delegation_of_next_to_non_generator.<locals>.g*Qxxrr)	Yielded 0	Yielded 1	Yielded 2Nr)rrrTr s    r(test_delegation_of_next_to_non_generatorz<TestPEP380Operation.test_delegation_of_next_to_non_generators|	 	 	 	.	.ALLL,---- 
 
 
					rcg}d}|}tdD]/}|d}|d|0||gddS)z9
        Test conversion of send(None) to next()
        c34KtdEd{VdSrrrrrrTzBTestPEP380Operation.test_conversion_of_sendNone_to_next.<locals>.grrrN	Yielded: )z
Yielded: 0z
Yielded: 1z
Yielded: 2)rerRrr)rrrTgir rUs      r#test_conversion_of_sendNone_to_nextz7TestPEP380Operation.test_conversion_of_sendNone_to_nexts	 	 	 
QSSq	/	/A

ALLL!!-.... 
 
 
					rc<gfd}|}t|t5}|dddn#1swxYwY||d|ddgdS)z=
        Test delegation of close() to non-generator
        c3K	dtdEd{VdddS#dwxYwN
starting grzg should not be herefinishing grrersrrTzHTestPEP380Operation.test_delegation_of_close_to_non_generator.<locals>.g
,\*** 88#######3444]+++++]++++?AA2Nrr)rQrrfrgetvalue)rrTroutputrs    @r)test_delegation_of_close_to_non_generatorz=TestPEP380Operation.test_delegation_of_close_to_non_generators	,	,	,	,	,QSSR


	&HHJJJ															**B/// 
					sAAAcgfd}	|}tdD])}t|}d|*td}|||dn8#t$r+}||jddYd}~nd}~wwxYw|gddS)	z:
        Test delegating 'throw' to non-generator
        c3K	dtdEd{VddS#dwxYw)N
Starting g
Finishing grrsrrTzETestPEP380Operation.test_delegating_throw_to_non_generator.<locals>.gsl
,\*** 99$$$$$$$]+++++]++++s*AArrur(rN)rrrrz	Yielded 3z	Yielded 4rrv)rrTrrgr r-rs      @r&test_delegating_throw_to_non_generatorz:TestPEP380Operation.test_delegating_throw_to_non_generators'	,	,	,	,	,
	AB1XX
2
2HHQQ01111+,,AHHQKKK
II?@@@@	9	9	9QVAY'788888888	9	
 
 
 
					sA'B
B<!B77B<cgfd}	|}t|tdD]/}|d}d|0	|dn8#t
$r+}|d|jdYd}~nd}~wwxYw|d	d
gdS)z:
        Test attempting to send to non-generator
        c3K	dtdEd{VdddS#dwxYwrrrsrrTzGTestPEP380Operation.test_attempting_to_send_to_non_generator.<locals>.grrrrzShould not have yielded: z#was able to send into non-generatorrRrNrr)	rQrerRrr*AttributeErrorassertInr+r)rrTrr rUr-rs      @r(test_attempting_to_send_to_non_generatorz<TestPEP380Operation.test_attempting_to_send_to_non_generators	,	,	,	,	,		=BHHH1XX
C
CGGBKKaaABBBB
C
II;<<<<	-	-	-MM&!&),,,,,,,,	-	
 
					sAA99
B.!B))B.c*Gddfd}|t5|}|t|d|ddddn#1swxYwY|t5|}|t|d|tdddn#1swxYwYtj5}|}|t|d|	|t|j
jddddS#1swxYwYdS)zG
        Test subiterator with a broken getattr implementation
        c eZdZdZdZdZdS)@TestPEP380Operation.test_broken_getattr_handling.<locals>.Brokenc|Srrrs r__iter__zITestPEP380Operation.test_broken_getattr_handling.<locals>.Broken.__iter__"rcdS)NrNrrs r__next__zITestPEP380Operation.test_broken_getattr_handling.<locals>.Broken.__next__$sqrcddzdSNrNrr)rattrs  r__getattr__zLTestPEP380Operation.test_broken_getattr_handling.<locals>.Broken.__getattr__&s!rN)r|
__module____qualname__rrrrrrBrokenr!sA










rrc3,KEd{VdSrr)rsrrTz;TestPEP380Operation.test_broken_getattr_handling.<locals>.g)s+vxxrrNN)r\ZeroDivisionErrorrrQrRrwrrcatch_unraisable_exceptionrf
unraisableexc_type)rrTrcmrs    @rtest_broken_getattr_handlingz0TestPEP380Operation.test_broken_getattr_handlings`									 	 	 	 	 

0
1
1		BT"XXq)))GGAJJJ															


0
1
1	%	%BT"XXq)))HH^$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%

/
1
1	HRBT"XXq)))HHJJJ.
0FGGG	H	H	H	H	H	H	H	H	H	H	H	H	H	H	H	H	H	Hs8AA==BB"AC66C:=C:A'FFFcgfddfd}|t||dgdS)z7
        Test exception in initial next() call
        c3KdEd{VddS)Ng1 about to yield from g2g1 should not be hererrsrrzCTestPEP380Operation.test_exception_in_initial_next_call.<locals>.g1BsJLL4555rttOOOOOOOLL011111rc3KddzVdSrrrrrrzCTestPEP380Operation.test_exception_in_initial_next_call.<locals>.g2FsA#IIIIIrc:}t|dSr)rQ)rrs rr[zDTestPEP380Operation.test_exception_in_initial_next_call.<locals>.runHsBHHHHHrrN)r\rrr]s  @@@r#test_exception_in_initial_next_callz7TestPEP380Operation.test_exception_in_initial_next_call=s	2	2	2	2	2	2									
+C000' 
					rcFgfd}fd	|D]}d|	|dn8#t$r+}||jddYd}~nd}~wwxYw|gddS)	z0
        Test attempted yield-from loop
        c3KddVdEd{VddS)Ng1: startingy1g1: about to yield from g2rrrsrrz>TestPEP380Operation.test_attempted_yield_from_loop.<locals>.g1UseLL(((JJJLL5666rttOOOOOOOLL011111rc3KddVdEd{VddS)Ng2: startingy2g2: about to yield from g1zg2 should not be herer)rrsrrz>TestPEP380Operation.test_attempted_yield_from_loop.<locals>.g2\s_LL(((JJJLL5666MMMMMMMLL011111rrz$subgenerator didn't raise ValueErrorrzgenerator already executingN)rzYielded: y1rrzYielded: y2rr))rrrUr-rrrs    @@@rtest_attempted_yield_from_loopz2TestPEP380Operation.test_attempted_yield_from_loopPs&	2	2	2	2	2	2	2	2	2	2	2	2	>B
3
3aa12222
3

II<====	F	F	FQVAY'DEEEEEEEE	F	
 
 
 
					s'A
B!BBc~gfd}fdGddt|}tdD])}t|}d|*d}|||D]}d||gdd	S)
z=
        Test returning value from delegated 'throw'
        c3K	ddVEd{VdVddS#dwxYwr2rrsrrzITestPEP380Operation.test_returning_value_from_delegated_throw.<locals>.g1xr@rAc3K	ddVdVdS#$r!ddVdVYdSwxYw)Nrr7r8Caught LunchError in g2zg2 lunch savedzg2 yet more spamr)
LunchErrorrsrrzITestPEP380Operation.test_returning_value_from_delegated_throw.<locals>.g2s
)]+++$$$$$$
)
)
)6777&&&&(((((((
)s$"A
	A
ceZdZdS)QTestPEP380Operation.test_returning_value_from_delegated_throw.<locals>.LunchErrorNr|rrrrrrrDrrrdrru)rr9rr:rzYielded g2 yet more spamr<r
N)	ExceptionrerQrrwr)	rrrTrgr r-rrrs	      @@@r)test_returning_value_from_delegated_throwz=TestPEP380Operation.test_returning_value_from_delegated_throwss6	-	-	-	-	-	-	)	)	)	)	)	)								BDDq	.	.AQALLL,----J'((	


	.	.ALLL,----	 
	 
	 
										rcgfd}fd|d|d|d|td|gddS)z1
        Test next and return with value
        c|}t|	dt|ddS#t$r#}d|Yd}~dSd}~wwxYw)Nf resuming gf SHOULD NOT BE HERE	f caught )rQrrSrrr-rTrs   rfz>TestPEP380Operation.test_next_and_return_with_value.<locals>.fs1BHHH
3^,,,R344444 
3
3
3aa1222222222
3s9A
B"BBc3nKddVd||S)N
g startingg returning r)rrs rrTz>TestPEP380Operation.test_next_and_return_with_value.<locals>.gs@LL&&&EEELLLQQ0111HrNrNrr)rrg returning Nonef caught StopIteration()rr
g returning 1f caught StopIteration(1)rrg returning (2,)f caught StopIteration((2,))rrg returning StopIteration(3)(f caught StopIteration(StopIteration(3))rSrrrrTrs  @@rtest_next_and_return_with_valuez3TestPEP380Operation.test_next_and_return_with_values	3	3	3	3	3	3					
	
$	!	$	-

 
 
 
					rcgfd}fd|d|d|d|td|gddS)z1
        Test send and return with value
        c|}t|	d|dddS#t$r#}d|Yd}~dSd}~wwxYw)Nf sending spam to grrr)rQrrRrSrs   rrz>TestPEP380Operation.test_send_and_return_with_value.<locals>.fs1BHHH
32333344444 
3
3
3aa1222222222
3s?A
B(BBc3KddV}d|d||S)Nrzg received rr)rr rs  rrTz>TestPEP380Operation.test_send_and_return_with_value.<locals>.gsYLL&&&ALLLAA/000LLLQQ0111HrNrNrr)rrg received 'spam'rrrrrrrrrrrrrrrrrrrs  @@rtest_send_and_return_with_valuez3TestPEP380Operation.test_send_and_return_with_values	3	3	3	3	3	3						
$	!	$	-

!
!
!
					rc
tfdfd}ddtdfD]g|}t|t|t
|ddddtgd	S)
ze
        Test catching an exception thrown into a
        subgenerator and returning a value
        c3bK	dVn%#t$rdYnwxYwS)NrNinner caught ValueError)r'r)rr}srinnerzTTestPEP380Operation.test_catching_exception_from_subgen_and_returning.<locals>.innersP
8
8
8
8677777
8Ls
,,c3fKEd{V}d|d|VdS)Ninner returned 	 to outerr)rr
rs routerzTTestPEP380Operation.test_catching_exception_from_subgen_and_returning.<locals>.outersL 577""""""ALLL<===GGGGGrrdrrNr	rr
N)rSrrQreprrwr'r)rrrTr
rr}s   @@@r1test_catching_exception_from_subgen_and_returningzETestPEP380Operation.test_catching_exception_from_subgen_and_returnings
												
mA...
	
	EEALLa!!!LLaggj1122333U))057U	%




	
	rcgfdfd}	|}t||t|dn#t$rYnwxYw|ddgdS)zo
        Test throwing GeneratorExit into a subgenerator that
        catches it and returns normally.
        c3K	ddVddS#t$rYdSwxYwNEnter fExit frrorsrrzSTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_returns.<locals>.fsa
Y'''X&&&&& 



s.5
AAc3KdEd{VddSNEnter gzExit grrrsrrTzSTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_returns.<locals>.g!HLL###qssNNNNNNNLL"""""r*subgenerator failed to raise GeneratorExitrrN)rQrwror*r)rrTrrrs   @@r4test_throwing_GeneratorExit_into_subgen_that_returnszHTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_returnss
						#	#	#	#	#	#	DBHHHHH]###
IIBCCCC			D		
 
					s3A
A'&A'cXgfdfd}	|}t||t|dn8#t$r+}||jddYd}~nd}~wwxYw|ddgdS)	ze
        Test throwing GeneratorExit into a subgenerator that
        catches it and yields.
        c3K	ddVddS#t$rdVYdSwxYwrrrsrrzXTestPEP380Operation.test_throwing_GeneratorExit_into_subgenerator_that_yields.<locals>.f8si
Y'''X&&&&& 



s.5AAc3KdEd{VddSrrrsrrTzXTestPEP380Operation.test_throwing_GeneratorExit_into_subgenerator_that_yields.<locals>.g?rrrrzgenerator ignored GeneratorExitNrr)rQrwror*RuntimeErrorrr+rrTrr-rrs    @@r9test_throwing_GeneratorExit_into_subgenerator_that_yieldszMTestPEP380Operation.test_throwing_GeneratorExit_into_subgenerator_that_yields2s

						#	#	#	#	#	#	DBHHHHH]###
IIBCCCC	K	K	KQVAY(IJJJJJJJJ	K	
 
					s3A
B$!B

Bcgfdfd}	|}t||t|dnX#t$rK}||jdd||jtYd}~nd}~wwxYw|ddgdS)	z{
        Test throwing GeneratorExit into a subgenerator that
        catches it and raises a different exception.
        c3K	ddVddS#t$rtdwxYw)NrrVorpal bunny encountered)rror'rsrrzRTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_raises.<locals>.fVsi
=Y'''X&&&&& 
=
=
= !;<<<
=s	.5Ac3KdEd{VddSrrrsrrTzRTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_raises.<locals>.g]rrr(rr&Nrr)	rQrwror*r'rr+rmrnr"s    @@r3test_throwing_GeneratorExit_into_subgen_that_raiseszGTestPEP380Operation.test_throwing_GeneratorExit_into_subgen_that_raisesPs"
	=	=	=	=	=	#	#	#	#	#	#	ABHHHHH]###

II?@@@@		@	@	@QVAY(BCCC!!!-????????	@
	
 
					s3A
B/$AB**B/c^d}|tt|dS)Nc3KdEd{VdS)NrrrrrrTz4TestPEP380Operation.test_yield_from_empty.<locals>.gpsMMMMMMMMMr)r\rSrQ)rrTs  rtest_yield_from_emptyz)TestPEP380Operation.test_yield_from_emptyos5			-qqss33333rcfd}fd|tgd|tg}		|d)#t
$rYnwxYw|gdGddtfd}fd	|tg}		|)#t
$rYn|gdxYwGfd
dtfd}|t	dS)
Nc3<KdVEd{VdVdSNrrr)twosronezOTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.onevs;GGGsuuGGGGGrc3PKdV	Ed{Vn#t$rYnwxYwdVdSNrNrdr')rsrr/zOTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.twozsUGGG












GGGGGs
)rrNrdrTrceZdZdS)QTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyErrNrrrrMyErrr5rrr6c3pK	dVn#$rYnwxYwEd{V	dVdS#$rYdSwxYwr.r)r6r/srr0zOTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.ones




suu




s
,55c3K	dVn#$rYnwxYw	Ed{Vn#t$rYnwxYw	dVdS#$rYdSwxYwr2r3)r6rsrr/zOTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.twos






















s$

,,6??c(eZdZdZdZfdZdS)PTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyItc|Srrrs rrzYTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyIt.__iter__rrcdSNrrrs rrzYTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyIt.__next__rrc~jttdSr)
assertTrue
gi_runningr\r'rQ)self_rrs rrfzVTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.MyIt.closes5
...!!*dB77777rN)r|rrrrrf)rrsrMyItr:sQ






8
8
8
8
8
8
8
8rrCc3,KEd{VdSrr)rCsrr0zOTestPEP380Operation.test_delegating_generators_claim_to_be_running.<locals>.ones+tvvr)
rrrQrrRrSrrwobjectrf)rr0resr6rCrr/s`  @@@@r.test_delegating_generators_claim_to_be_runningzBTestPEP380Operation.test_delegating_generators_claim_to_be_runningtsD										SUUb<<<000
SUUBxxj	
(

2772;;'''
(			D	lll+++					I																					SUUBxxj	
,

288E??+++
,			D	S,,,///	8	8	8	8	8	8	8	86	8	8	8					
SUUR





s$*B
BB&*D
D6D6cdfd}d}d}||D]}|d|v|||D]}|d|vod|vdS)Nc<dtjDS)Ncg|]
}|dS)rr).0rs  r
<listcomp>zaTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.call_stack.<locals>.<listcomp>s222QAaD222r)inspectstackrrr
call_stackzMTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.call_stacks22'-//2222rc3TKVVVdSrr)rOsrgenzFTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.gensC*,,*,,*,,rc3K|Ed{VdSrrrTs rrzGTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.spamLLLLLLLLLrc3K|Ed{VdSrrrSs rrzGTestPEP380Operation.test_delegator_is_visible_to_debugger.<locals>.eggsrTrrr)r@)rrQrrrNrOs     @r%test_delegator_is_visible_to_debuggerz9TestPEP380Operation.test_delegator_is_visible_to_debuggers	3	3	3					
						T##%%[[	-	-EOOFeO,,,,T$$ssuu++&&	A	AEOOFeO?%@@@@	A	ArcGddfd}dt||ddS)NceZdZdZdZdS)?TestPEP380Operation.test_custom_iterator_return.<locals>.MyIterc|Srrrs rrzHTestPEP380Operation.test_custom_iterator_return.<locals>.MyIter.__iter__rrc tdr=)rSrs rrzHTestPEP380Operation.test_custom_iterator_return.<locals>.MyIter.__next__s#B'''rN)r|rrrrrrrMyIterrYs2



(
(
(
(
(rr\c3,KEd{VdSrr)r\rsrrQz<TestPEP380Operation.test_custom_iterator_return.<locals>.gens(#VXX%%%%%%CCCrr)rr)rrQr\rs  @@rtest_custom_iterator_returnz/TestPEP380Operation.test_custom_iterator_returns~	(	(	(	(	(	(	(	(
	&	&	&	&	&	&SSUUb!!!!!rc2dfd}d}t5|}|}|d||||~~tddddS#1swxYwYdS)Nc3KdVdSrrrrr	innermostzDTestPEP380Operation.test_close_with_cleared_frame.<locals>.innermostsEEEEErc34KdV}Ed{VdSrr)	outer_genras rr
z@TestPEP380Operation.test_close_with_cleared_frame.<locals>.inners4I y{{"""""""""rc3"KdV}|Ed{VdSrr)	inner_gens rrz@TestPEP380Operation.test_close_with_cleared_frame.<locals>.outers-I          r)rrRr)rr
rrercras     @rtest_close_with_cleared_framez1TestPEP380Operation.test_close_with_cleared_frames&				#	#	#	#	#	!	!	!\\				IINN4   NN9%%%NN9%%%LLL																																				sA$BBBcGfddfd}|}t|d|d|ddS)Nc&eZdZdZdZfdZdS)HTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.MyGenc|Srrrs rrzQTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.MyGen.__iter__rrcdSr=rrs rrzQTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.MyGen.__next__r>rc|dSrr)rwhatrs  rrRzMTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.MyGen.sends
trN)r|rrrrrR)rsrMyGenrisL












rrnc3,KEd{V}dSrr)rrns rrzHTestPEP380Operation.test_send_tuple_with_custom_generator.<locals>.outers( 577""""""AAAr)rNrdr)rQrRr)rrrTrnrs   @@r%test_send_tuple_with_custom_generatorz9TestPEP380Operation.test_send_tuple_with_custom_generator	s											#	#	#	#	#EGGQ	|L)))))rN)%r|rr__doc__r!r.r=rErVr^rhrqrxrrrrrrrrrrrrrrrrr#r(r+rGrVr^rfrqrrrrrs%.>:###J***X'''R   D'''R&&&P0---111f


 ",@6HHH@&!!!F)))V(((T---^:<<>444
IIIVAAA*"""%%%N*****rr__main__)
rrunittestrMtest.supportrrrtestrTestCaserr|mainrrr<module>rys@@@@@@@@@@J*J*J*J*J*(+J*J*J*Z zHMOOOOOr