zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
U
Z±d61ã@s ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl    m
Z
m Z ddl m Z ddlmZddlZddlZddlZddlZddlZddlmZmZmZmZmZmZmZddlmZdd    lm Z m!Z!d
d l"m#Z#dd l$m%Z%dd l&m'Z'm(Z(ddl)m*Z*m+Z+m,Z,ej-dkr,ddl.m/Z/dd„Z0dd„Z1dd„Z2dd„Z3dd„Z4dd„Z5dd„Z6dd „Z7d!d"„Z8d#d$„Z9d%d&„Z:d'd(„Z;d)d*„Z<d+d,„Z=d-d.„Z>d/d0„Z?d1d2„Z@d3d4„ZAd5d6„ZBd7d8„ZCd9d:„ZDd;d<„ZEd=d>„ZFd?d@„ZGdAdB„ZHdCdD„ZIdEdF„ZJdGdH„ZKdIdJ„ZLdKdL„ZMdMdN„ZNdOdP„ZOdQdR„ZPedSdT„ƒZQdUdV„ZReƒdWdX„ƒZSeƒdYdZ„ƒZTd[d\„ZUd]d^„ZVd_d`„ZWdadb„ZXdcdd„ZYdedf„ZZdgdh„Z[didj„Z\dkdl„Z]dmdn„Z^dodp„Z_dqdr„Z`dsdt„Zadudv„Zbdwdx„Zcdydz„Zdd{d|„Zed}d~„Zfdd€„Zgdd‚„Zhdƒd„„Ziejjjked…d†d‡dˆ„ƒZld‰dŠ„Zmd‹dŒ„ZnddŽ„Zodd„Zpd‘d’„Zqd“d”„Zrd•d–„Zsd—d˜„Ztd™dš„Zud›dœ„Zvddž„ZwdŸd „Zxd¡d¢„Zyd£d¤„Zzd¥d¦„Z{d§d¨„Z|d©dª„Z}d«d¬„Z~d­d®„Zd¯d°„Z€d±d²„Zd³d´„Z‚dµd¶„Zƒd·d¸„Z„d¹dº„Z…d»d¼„Z†d½d¾„Z‡d¿dÀ„ZˆdÁd„Z‰dÃdĄZŠej‹dÅdƄƒZŒdÇdȄZdÉdʄZŽdËd̄ZeƒdÍd΄ƒZdÏdЄZ‘dÑd҄Z’ejjjkej“j”dÓkdÔd†dÕdքƒZ•ejjjkej“j”dÓkdÔd†d×d؄ƒZ–ejjjkej“j”dÓkdÔd†dÙdڄƒZ—ejjjkej“j”dÓkdÔd†dÛd܄ƒZ˜dÝdބZ™dßdà„Zšdádâ„Z›dãdä„Zœdådæ„Zdçdè„ZždS)ééN)ÚcontextmanagerÚ    ExitStack)Úinf)Údedenté)ÚslowÚcheck_sequence_matchesÚgc_collect_harderÚ'ignore_coroutine_never_awaited_warningsÚbuggy_pypy_asyncgensÚrestore_unraisablehookÚ!create_asyncio_future_in_new_loopé)Ú_core)Ú
MultiErrorÚNonBaseMultiErroré)Ú!DEADLINE_HEAP_MIN_PRUNE_THRESHOLD)Úto_thread_run_sync)ÚsleepÚ
fail_after)Úwait_all_tasks_blockedÚ    SequencerÚassert_checkpoints)ré )ÚExceptionGroupcÃst dd„¡IdHS)NcSstjjS©N)rÚAbortZ    SUCCEEDED©Ú_©r úPd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\trio/_core/tests/test_run.pyÚ<lambda>1ózsleep_forever.<locals>.<lambda>)rÚwait_task_rescheduledr r r r!Ú sleep_forever0sr%c    Cs€dd„}t |d¡dkst‚t t¡t |¡W5QRXt t¡t dd„¡W5QRXdd„}t |d¡dks|t‚dS)    NcÓs|Srr ©Úxr r r!Útrivial5sztest_basic.<locals>.trivialécSsdSrr r r r r!r"@r#ztest_basic.<locals>.<lambda>cÓst ¡IdH|Sr)rÚ
checkpointr&r r r!Útrivial2Bsztest_basic.<locals>.trivial2r)rÚrunÚAssertionErrorÚpytestÚraisesÚ    TypeError)r(r+r r r!Ú
test_basic4s  r1c    Cs>dd„}t t¡}t |d¡W5QRX|jjdks:t‚dS)NcÓs t|ƒ‚dSr©Ú
ValueErrorr&r r r!ÚmainJsz%test_initial_task_error.<locals>.mainé)r5)r.r/r3rr,ÚvalueÚargsr-©r4Úexcinfor r r!Útest_initial_task_errorIs r:c    Cs>dd„}t t¡}t |¡W5QRXdt|jƒks:t‚dS)NcÓsdd„}t |¡S)NcÓsdSrr r r r r!r4Tsz1test_run_nesting.<locals>.inception.<locals>.main©rr,©r4r r r!Ú    inceptionSsz#test_run_nesting.<locals>.inceptionz from inside)r.r/Ú RuntimeErrorrr,Ústrr6r-)r=r9r r r!Útest_run_nestingRs r@c
ÃsZt t¡}t ¡}|W5QRXW5QRX| d¡|4IdHšW5QIdHRXdS)NzDuse 'async with open_nursery\(...\)', not 'with open_nursery\(...\)')r.r/r>rÚ open_nurseryÚmatch)r9Úonr r r!Ú test_nursery_warn_use_async_with^s ÿrDc ÃsVtdƒ}t t¡,}t ¡4IdHš
|‚W5QIdHRXW5QRX|j|ksRt‚dS)NZwhoops)r3r.r/rrAr6r-)Úexcr9r r r!Ú#test_nursery_main_block_error_basicls
 rFc
ƒsxtdƒ‰‡fdd„}z0t ¡4IdHš}| |¡W5QIdHRXWn.tk
rr}z|ˆksbt‚W5d}~XYnXdS)Núuh ohc“sˆ‚dSrr r ©rEr r!Úerroringxsz(test_child_crash_basic.<locals>.erroring)r3rrAÚ
start_soonr-)rIÚnurseryÚer rHr!Útest_child_crash_basicus rMc
Ãsjdd„}g}t ¡4IdHš"}| |d|¡| |d|¡W5QIdHRXt|ddhddhd    d
hgƒdS) NcÓs.tdƒD] }| ||f¡t ¡IdHqdS)Nr)ÚrangeÚappendrr*)ZwhoamiÚrecordÚir r r!Úlooper„s z%test_basic_interleave.<locals>.looperÚaÚb)rSr)rTr)rSr)rTr)rSr)rTr)rrArJr)rRrPrKr r r!Útest_basic_interleaveƒsÿrUc    shg‰‡fdd„‰dd„‰‡‡fdd„}t t¡}t |¡W5QRXˆdgksTt‚|jjdksdt‚dS)    Nc“sBzt ¡IdHqWn(tjk
r<tdƒˆ d¡YnXdS)Nzlooper cancelledÚ    cancelled)rr*Ú    CancelledÚprintrOr )Ú looper_recordr r!rR–s
z+test_task_crash_propagation.<locals>.loopercÓs tdƒ‚dS)NÚarghr2r r r r!Úcrasheržsz,test_task_crash_propagation.<locals>.crasherc
“s:t ¡4IdHš}| ˆ¡| ˆ¡W5QIdHRXdSr©rrArJ©rK)r[rRr r!r4¡s
z)test_task_crash_propagation.<locals>.mainrV)rZ)r.r/r3rr,r-r6r7r8r )r[rRrYr!Útest_task_crash_propagation“s  r^c    s`dd„‰‡fdd„}t t¡}t |¡W5QRXt|jƒdd„|jjDƒtt    hks\t
‚dS)NcÓst‚dSrr2r r r r!r[°sz.test_main_and_task_both_crash.<locals>.crasherc
“s4t ¡4IdHš}| ˆ¡t‚W5QIdHRXdSr)rrArJÚKeyErrorr]©r[r r!r4³s
z+test_main_and_task_both_crash.<locals>.maincSsh|] }t|ƒ’qSr ©Útype©Ú.0rEr r r!Ú    <setcomp>»sz0test_main_and_task_both_crash.<locals>.<setcomp>) r.r/rrr,rXr6Ú
exceptionsr3r_r-r8r r`r!Útest_main_and_task_both_crash­s  
þrgc    sVdd„‰‡fdd„}t t¡}t |¡W5QRXdd„|jjDƒtthksRt    ‚dS)NcÓs|‚dSrr )Úetyper r r!r[Âsz'test_two_child_crashes.<locals>.crasherc
“s>t ¡4IdHš}| ˆt¡| ˆt¡W5QIdHRXdSr)rrArJr_r3r]r`r r!r4Ås z$test_two_child_crashes.<locals>.maincSsh|] }t|ƒ’qSr rarcr r r!reÌsz)test_two_child_crashes.<locals>.<setcomp>)
r.r/rrr,r6rfr3r_r-r8r r`r!Útest_two_child_crashesÁs  þric ÃsZdd„}t t¡>t ¡4IdHš}| |¡tƒIdHW5QIdHRXW5QRXdS)NcÓst‚dSrr2r r r r!r[Ósz.test_child_crash_wakes_parent.<locals>.crasher)r.r/r3rrArJr%)r[rKr r r!Útest_child_crash_wakes_parentÒs
 
rjc
ƒsld‰d‰‡‡fdd„}‡‡fdd„}t ¡4IdHš(}| |¡t ¡IdH| |¡W5QIdHRXdS)Nc“sXt ¡‰tdƒtƒIdH}tdƒ|dks0t‚tdƒt ˆt tƒ¡¡tdƒdS)Nz child1 startz child1 wokerzchild1 rescheduling t2z child1 exit)    rÚ current_taskrXr%r-Ú
rescheduleÚoutcomeÚErrorr3r&©Út1Út2r r!Úchild1às  ztest_reschedule.<locals>.child1c    “sXtdƒt ¡‰t ˆt d¡¡tdƒt t¡t    ƒIdHW5QRXtdƒdS)Nz child2 startrz child2 sleepzchild2 successful exit)
rXrrkrlrmÚValuer.r/r3r%r ror r!Úchild2ës ztest_reschedule.<locals>.child2)rrArJr*©rrrtrKr ror!Útest_rescheduleÜs 
 
rvcÃs2t ¡}t t d¡j¡t ¡}||ks.t‚dS)NÚ perf_counter)rÚ current_timeÚtimerÚget_clock_infoÚ
resolutionr-ror r r!Útest_current_timeüsr|cÃsd| ¡}| ¡t ¡kst‚| ¡t ¡ks0t‚| d¡|d| ¡krZt ¡ks`nt‚dS)Ng…ëQ¸    @)rxrr-Újump)Ú
mock_clockÚstartr r r!Ú!test_current_time_with_mock_clocks
 
r€cÃs|t ¡kst‚dSr)rZ current_clockr-©r~r r r!Útest_current_clock sr‚c
ƒsDt ¡‰‡fdd„}t ¡4IdHš}| |¡W5QIdHRXdS)Nc“st ¡jjˆkst‚dSr)rrkÚparent_nurseryÚ parent_taskr-r ©r„r r!Úchildsz test_current_task.<locals>.child)rrkrArJ©r†rKr r…r!Útest_current_tasks rˆcÃs*t ¡}|j|jkr dks&nt‚dSr)rZcurrent_root_taskrƒÚeventual_parent_nurseryr-)Úrootr r r!Útest_root_tasksr‹c    Cs@t t¡t ¡W5QRXt t¡t ¡W5QRXdSr)r.r/r>rrkrxr r r r!Útest_out_of_context s  rŒc
Ãs‚tƒIdHdd„}t ¡}t|ƒ|jdks2t‚|jdks@t‚t ¡4IdHš¦}| |¡tƒIdHt     ¡}| 
dd„¡|j
dd„dd    t ¡}t|ƒ|jd
ks®t‚|j dks¼t‚|jd ksÊt‚|j   ¡t ¡}t|ƒ|j d ksòt‚W5QIdHRXt ¡IdHt ¡IdHtjt ¡d d&t ¡}t|ƒ|jd ksTt‚W5QRXt ¡}t|ƒ|jtks~t‚dS)NcÓs,ztƒIdHWntjk
r&YnXdSr)r%rrWr r r r!r†,sz&test_current_statistics.<locals>.childrrcSsdSrr r r r r!r"<r#z)test_current_statistics.<locals>.<lambda>cSsdSrr r r r r!r"=r#T©Z
idempotentérré©Údeadline)rrZcurrent_statisticsrXZ tasks_livingr-Zrun_sync_soon_queue_sizerArJÚcurrent_trio_tokenÚ run_sync_soonZtasks_runnableÚ cancel_scopeÚcancelr*Ú CancelScoperxZseconds_to_next_deadliner)r~r†ÚstatsrKÚtokenr r r!Útest_current_statistics's< 
 
r™c    Ãs¸t ¡}dt|ƒkst‚|‚dt|ƒks.t‚t ¡d|_dt|ƒksLt‚t ¡d|_dt|ƒksjt‚dtt|ƒIdHks‚t‚| ¡dt|ƒksšt‚W5QRXd    t|ƒks´t‚dS)
NÚunboundÚactiverzdeadline is 1.00 seconds agoé
z"deadline is 10.00 seconds from nowr‘rVZexited)rr–Úreprr-rxr‘rr•)r~Úscoper r r!Útest_cancel_scope_repr[srŸcCsLdd„}t |¡dd„}t |¡dd„}t |¡dd„}t |¡dS)    Nc
ÓsTt ¡B}t ¡IdH| ¡t tj¡t ¡IdHW5QRXW5QRXdSr)rr–Úcheckpoint_if_cancelledr•r.r/rW©ržr r r!Úmain1ls
 
z!test_cancel_points.<locals>.main1c
ÓsTt ¡B}t ¡IdH| ¡t tj¡t ¡IdHW5QRXW5QRXdSr)rr–r*r•r.r/rWr¡r r r!Úmain2us
 
z!test_cancel_points.<locals>.main2c
ÓsDt ¡2}| ¡t tj¡tƒIdHW5QRXW5QRXdSr)rr–r•r.r/rWr%r¡r r r!Úmain3~s
z!test_cancel_points.<locals>.main3c
Ósbt ¡P}| ¡t ¡IdHt ¡IdHt tj¡t ¡IdHW5QRXW5QRXdSr)rr–r•Úcancel_shielded_checkpointr.r/rWr*r¡r r r!Úmain4†s 
z!test_cancel_points.<locals>.main4r;)r¢r£r¤r¦r r r!Útest_cancel_pointsks
 
 
r§c
Ãs®t ¡$}| ¡| ¡t ¡IdHW5QRX|js<t‚|jsFt‚t ¡V}| ¡t tj    ¡t
ƒIdHW5QRXt tj    ¡t
ƒIdHW5QRXW5QRXdSr) rr–r•r*Ú cancel_calledr-Úcancelled_caughtr.r/rWr%r¡r r r!Útest_cancel_edge_cases‘s
 
 
 
rªc ÃsŠdd„}z$t ¡}z„t ¡4IdHšd}| t¡| t¡|j ¡tjddtƒIdHW5QRX| t¡| ¡| |¡W5QIdHRXWn„tk
r }zdt    |j
ƒdksÂt ‚i}|j
D](}|  t |ƒd¡|t |ƒd7<qÌ|tjdtdikst ‚‚W5d}~XYnXW5QRXWnLt k
rF‚Yn@tk
rz}zt |ƒtksjt ‚W5d}~XYn Xd    s†t ‚dS)
NcÓst‚dSr©r_r r r r!r[¤sz7test_cancel_scope_multierror_filtering.<locals>.crasherT©ÚshieldrrrrŽF)rr–rArJr%r”r•rrÚlenrfr-Ú
setdefaultrbrWr_Ú BaseException)r[ÚouterrKZ    multi_excÚsummaryrEr r r!Ú&test_cancel_scope_multierror_filtering£s4 
 
 
 
 
"$r³c
ƒsXg‰‡fdd„}t ¡4IdHš}|j ¡| |¡W5QIdHRXˆdgksTt‚dS)Nc“sˆ d¡tƒIdHdS)NÚstarted)rOr%r ©rPr r!ÚblockerÔs
z'test_precancelled_task.<locals>.blockerr´)rrAr”r•rJr-)r¶rKr rµr!Útest_precancelled_taskÎs  
r·c Ãsxt ¡d}t ¡B}t ¡IdH| ¡t tj¡t ¡IdHW5QRX|jdksbt‚t t    ¡ d|_W5QRX|jdksŒt‚d|_|jdks t‚t ¡IdHt ¡4}| ¡t tj¡t ¡IdHW5QRXW5QRXt ¡IdHd|_t tj¡t ¡IdHW5QRXd|_t ¡IdH| ¡t ¡IdHW5QRX|j
sjt‚W5QRXdS)NFZhelloT) rr–r*r•r.r/rWr­r-r0r©)r±ÚinnerZinnerestr r r!Útest_cancel_shieldingÞs4   
"r¹c
ƒsztƒ‰‡fdd„‰‡fdd„}t ¡4IdHš(}| |d¡| |d¡|j ¡W5QIdHRXˆddd    d
hksvt‚dS) Nc“s6ztƒIdHWn tjk
r0ˆ |¡YnXdSr)r%rrWÚadd)Úidentrµr r!Úleaf
sz%test_cancel_inheritance.<locals>.leafc
“sFt ¡4IdHš&}| ˆ|d¡| ˆ|d¡W5QIdHRXdS)Nz-l1z-l2r\)r»rK)r¼r r!Úworkersz'test_cancel_inheritance.<locals>.workerZw1Zw2zw1-l1zw1-l2zw2-l1zw2-l2)ÚsetrrArJr”r•r-)r½rKr )r¼rPr!Útest_cancel_inheritances    r¿c ƒsºt ¡¨}t ¡4IdHš†}| ¡d|j_g‰‡fdd„}| |¡tƒIdHˆdgks`t‚d|j_tjdd"tƒIdHˆddgks’t‚W5QRXW5QIdHRXW5QRXdS)NTc“s@ˆ d¡ztƒIdHWn tjk
r:ˆ d¡YnXdS)NÚsleepingrV)rOr%rrWr rµr r!Úsleeper&s
 
z)test_cancel_shield_abort.<locals>.sleeperrÀFr¬rV)    rr–rAr•r”r­rJrr-)r±rKrÁr rµr!Útest_cancel_shield_aborts
 
  rÂc
Ãst ¡}t ¡0}|jtks t‚|d|_|j|dks<t‚W5QRX|jrPt‚| d¡t ¡IdHt ¡IdHt ¡IdH|jrŽt‚t ¡}tj|dd}| d¡t    ƒIdHW5QRX|jsÒt‚|j
sÜt‚t ¡}t ¡š}t ¡IdH|d|_t ¡IdH| d¡t ¡IdH|d|_t   tj ¡t ¡IdHW5QRXt   tj ¡t ¡IdHW5QRXW5QRXdS)Nrrrrœr)rrxr–r‘rr-r¨r}r*r%r©r.r/rW)r~rržr r r!Útest_basic_timeout<s:
 
 
 
 
 
 
 
 
 
 
 
rÃc Ãsšt ¡J}t ¡6}t ¡"}| ¡| ¡tƒIdHW5QRXW5QRXW5QRX|jsbt‚|jrlt‚|jsvt‚|js€t‚|jrŠt‚|jr”t‚t ¡°}t ¡œ}| ¡t tj    ¡t 
¡IdHW5QRXt tj    ¡t 
¡IdHW5QRXd|_ t 
¡IdH| ¡t tj    ¡t 
¡IdHW5QRXW5QRXW5QRXt ¡}| ¡t  ¡IdHW5QRXt 
¡IdH|jr–t‚dS©NT) rr–r•r%r¨r-r©r.r/rWr*r­r¥)Úscope1Úscope2Zscope3ržr r r!Útest_cancel_scope_nestingas:
 
 
*
 
 
 
 
 
 
 
,
rÇc
Ãs`t ¡>}t ¡*}| ¡zt ¡IdHW5d|_XW5QRXW5QRX|jrX|jr\t‚dSrÄ)rr–r•r­r*r©r-)r±r¸r r r!Ú&test_unshield_while_cancel_propagatingˆs
 
rÈc ƒsÈdd„}t ¡‰ˆ ¡t ¡4IdHš}| |ˆ¡W5QIdHRXt ¡‰t ¡4IdHš&}| |ˆ¡tƒIdHˆ ¡W5QIdHRXt ¡‰dˆ_t ¡X}ˆH| ¡t ¡IdHdˆ_t     tj
¡t ¡IdHW5QRXW5QRXW5QRXt ¡‰t ¡IdHW5QRXˆ ¡t ¡IdHˆj sHt ‚ˆj rTt ‚t     t¡}ˆW5QRXW5QRXdt|jƒksŽt ‚t ¡@‰t     t¡}ˆW5QRXW5QRXdt|jƒksÒt ‚W5QRXt ¡‰‡fdd„}t ¡4IdHšd}|j|dd    tƒIdHt     t¡}ˆW5QRXW5QRXdt|jƒksVt ‚|j ¡W5QIdHRXtjt ¡d
d ‰ˆj rt ‚ˆjd
8_ˆj sªt ‚ˆjd
7_ˆj sÄt ‚dS) Nc
Ós4|&tdƒtƒIdHW5QRXW5QRXdS©Nr)rr%r¡r r r!Úsleep_until_cancelled”sz2test_cancel_unbound.<locals>.sleep_until_cancelledTFzsingle 'with' blockc    “s ˆtƒIdHW5QRXdSr©r%r r¡r r!Ú enter_scopeÅsz(test_cancel_unbound.<locals>.enter_scopezthis one©Únamerr)rr–r•rArJrr­r*r.r/rWr¨r-r©r>r?r6r”rxr‘)rÊrKr±Úexc_inforÌr r¡r!Útest_cancel_unbound“sb  ,
 
      rÐc Ãsxt ¡}t ¡}tƒB}| |¡|(tjtdd| ¡W5QRXW5QRXW5QRXdd„}dd„}tƒx}| t ¡¡t ¡4IdHšH}|     |¡|     |¡t
ƒIdHtjtdd| ¡W5QRXW5QIdHRXW5QRXt ¡}|  ¡IdH}z>|     |¡|     |¡|     t¡t
ƒIdH|j ddd¡W5t t¡}|j t  ¡ŽIdHW5QRXdt|jƒks†t‚t|jjƒtksœt‚t|jjjƒdks´t‚d    }|jjjD]:}    t|    tƒsÖt‚d
t|    ƒksèt‚|t|    jtjƒO}qÂ|st‚Xd d „}
t ¡4IdHšF}| |
¡IdH} tjtd d|  ddd¡W5QRX|  ¡W5QIdHRXdS)Nzstill within its child©rBc    Ós(t tj¡tƒIdHW5QRXdSr)r.r/rrWr%r r r r!Útask1ész+test_cancel_scope_misnesting.<locals>.task1c
Ós<t ¡*t tj¡tƒIdHW5QRXW5QRXdSr)rr–r.r/rWr%r r r r!Útask2îs
z+test_cancel_scope_misnesting.<locals>.task2zwhich had already been exitedrFzclosed before the task exitedc    Ós.t ¡}| |¡tƒIdHW5QRXdSr)rr–r´r%)Ú task_statusržr r r!Útask3s
 
z+test_cancel_scope_misnesting.<locals>.task3zfrom unrelated)rr–rÚ enter_contextr.r/r>ÚcloserArJrÚ
__aenter__Ú    __aexit__ÚsysrÏr?r6r-rbÚ __context__rr®rfÚ
isinstancerWr%r”Ú__exit__rr•) r±r¸ÚstackrÒrÓrKZ nursery_mgrrÏZcancelled_in_contextrErÕržr r r!Útest_cancel_scope_misnestingÝsT
&
 
 ,
 
 
   rßc
ÃsŒd}tdƒD]r}t ¡}t ¡ }t ¡||_tƒIdHW5QRXt ¡|}||}t|ƒd|krvdkr nq qˆq dsˆt    ‚dS)Ngð?rŽrF)
rNryrwrr–rxr‘r%rXr-)ZTARGETrZ
real_startržZ real_durationZaccuracyr r r!Útest_timekeeping!s 
 ràc
ƒs¸dg‰dg‰g‰‡‡‡fdd„}t ¡4IdHšf}| |¡tƒIdHˆdgksVt‚ˆd ¡tƒIdHˆdgks|t‚t ˆdt d¡¡W5QIdHRXˆdddgks´t‚dS)Nc    “s”t ¡ˆd<t ¡v}|ˆd<ˆ d¡t dd„¡IdH}|dksHt‚ˆ d¡zt ¡IdHWn tjk
r„ˆ d¡YnXW5QRXdS)NrrcSstjjSr©rrÚFAILEDrr r r!r"@r#z=test_failed_abort.<locals>.stubborn_sleeper.<locals>.<lambda>rÚwokerV)rrkr–rOr$r-r rW)ržr'©rPZstubborn_scopeZ stubborn_taskr r!Ústubborn_sleeper;s 
 
 
z+test_failed_abort.<locals>.stubborn_sleeperrrrrãrV)    rrArJrr-r•rlrmrs)rårKr rär!Útest_failed_abort6s 
   &ræc    Cs4dd„}t tj¡t |¡W5QRXtƒdS)Nc    ÓsPt ¡IdHt ¡IdHt ¡"}| ¡t dd„¡IdHW5QRXdS)NcSsdSrr rr r r!r"er#z1test_broken_abort.<locals>.main.<locals>.<lambda>)rr*r–r•r$r¡r r r!r4Ws
    
ztest_broken_abort.<locals>.main)r.r/rÚTrioInternalErrorr,r    r<r r r!Útest_broken_abortUsrèc
Cs@dd„}tƒ(t tj¡t |¡W5QRXW5QRXdS)NcÓs t ¡}d|_t ¡IdHdS)Nzhello!)rrkZ_schedule_pointsr*©Útaskr r r!r4ssz$test_error_in_run_loop.<locals>.main)r
r.r/rrçr,r<r r r!Útest_error_in_run_looppsrëcƒs<g‰‡fdd„}t |d¡tƒIdHˆddgks8t‚dS)Nc“s2ˆ d|f¡ˆ dt ¡f¡t ¡IdHdS)Nr'Úki)rOrÚcurrently_ki_protectedr*r&rµr r!Ú system_task€sz+test_spawn_system_task.<locals>.system_taskr)r'r)rìT)rÚspawn_system_taskrr-©rîr rµr!Útest_spawn_system_task}s
   rñc    s:dd„‰‡fdd„}t tj¡t |¡W5QRXdS)NcÓst‚dSrr«r r r r!r[Œsz'test_system_task_crash.<locals>.crasherc“st ˆ¡tƒIdHdSr©rrïr%r r`r r!r4s
z$test_system_task_crash.<locals>.main)r.r/rrçr,r<r r`r!Útest_system_task_crash‹s róc    s–dd„‰dd„‰‡‡fdd„‰‡fdd„}t tj¡}t |¡W5QRX|jj}t|tƒsbt    ‚t
|j ƒd    kstt    ‚|j D]}t|t t fƒszt    ‚qzdS)
NcÓst‚dSrr«r r r r!Úcrasher1˜sz3test_system_task_crash_MultiError.<locals>.crasher1cÓst‚dSrr2r r r r!Úcrasher2›sz3test_system_task_crash_MultiError.<locals>.crasher2c
“s:t ¡4IdHš}| ˆ¡| ˆ¡W5QIdHRXdSrr\r])rôrõr r!rîžs
z6test_system_task_crash_MultiError.<locals>.system_taskc“st ˆ¡tƒIdHdSrròr rðr r!r4£s
z/test_system_task_crash_MultiError.<locals>.mainr)r.r/rrçr,r6Ú    __cause__rÜrr-r®rfr_r3)r4r9ÚmerEr )rôrõrîr!Ú!test_system_task_crash_MultiError—s 
røc    sddd„‰dd„‰‡‡fdd„‰‡fdd„}t tj¡}t |¡W5QRXt|jjƒtks`t    ‚dS)    NcÓs0ztƒIdHWntjk
r*t‚YnXdSr)r%rrWr3r r r r!r[´sz6test_system_task_crash_plus_Cancelled.<locals>.crashercÓstƒIdHdSrrËr r r r!Úcancelmeºsz7test_system_task_crash_plus_Cancelled.<locals>.cancelmec
“s:t ¡4IdHš}| ˆ¡| ˆ¡W5QIdHRXdSrr\r])rùr[r r!rî½s
z:test_system_task_crash_plus_Cancelled.<locals>.system_taskc“st ˆ¡dSr)rrïr rðr r!r4Âsz3test_system_task_crash_plus_Cancelled.<locals>.main)
r.r/rrçr,rbr6rör3r-r8r )rùr[rîr!Ú%test_system_task_crash_plus_Cancelled±s rúc    sLdd„‰‡fdd„}t tj¡}t |¡W5QRXt|jjtƒsHt    ‚dS)NcÓst‚dSr)ÚKeyboardInterruptr r r r!rìÌsz4test_system_task_crash_KeyboardInterrupt.<locals>.kic“st ˆ¡tƒIdHdSrròr ©rìr r!r4Ïs
z6test_system_task_crash_KeyboardInterrupt.<locals>.main)
r.r/rrçr,rÜr6rörûr-r8r rür!Ú(test_system_task_crash_KeyboardInterruptËs
 rýc
Ãsbtjt ¡ddDt ¡IdHt tj¡| d¡t ¡IdHW5QRXW5QRXdS)Nrrrœ)rr–rxr*r.r/rWr}rr r r!Ú%test_yield_briefly_checks_for_timeoutás
 
rþc
ƒs|g‰tƒ‰‡‡fdd„}‡‡fdd„}t ¡4IdHš}| |¡| |¡W5QIdHRXˆddddd    d
d d gksxt‚dS) Nc“sÆt t¡˜}z8ˆdƒ4IdHšW5QIdHRXˆ d¡tdƒ‚WnXtk
rœˆ d¡ˆdƒ4IdHšW5QIdHRXdˆksŒt‚ˆ d¡‚YnXW5QRX|jjdks¸t‚ˆ d¡dS)    Nrú child1 raiserrú child1 sleeprú child2 wakeúchild1 re-raiseúchild1 success)r.r/r3rOr-r6rÛ©r9©rPÚseqr r!rrós 
 
 
ztest_exc_info.<locals>.child1c“sât t¡´}ˆdƒ4IdHšW5QIdHRXdˆks:t‚ˆ d¡t ¡dksTt‚z tdƒ‚WnXtk
r¸ˆ d¡ˆdƒ4IdHšW5QIdHRXdˆks¨t‚ˆ d    ¡‚YnXW5QRX|jjdksÔt‚ˆ d
¡dS) Nrrr)NNNrtúchild2 sleep againrrúchild2 re-raiseúchild2 success)    r.r/r_r-rOrÚrÏr6rÛrrr r!rts"  
 
 
ztest_exc_info.<locals>.child2rÿrrrrrrr    )rrrArJr-rur rr!Ú test_exc_infoïs"
ør
c ƒsvd‰‡fdd„}t t¡Rt ¡4IdHš0}| |¡tƒIdHt ˆt     t
ƒ¡¡W5QIdHRXW5QRXdS)Nc “sRt ¡‰zt‚Wn<tk
rLztƒIdHWntk
rDYnX‚YnXdSr©rrkr_Ú    Exceptionr%r ©Z
child_taskr r!r†/sz.test_exc_info_after_yield_error.<locals>.child) r.r/r_rrArJrrlrmrnr3r‡r r r!Útest_exc_info_after_yield_error,s 
 rc ƒsˆd‰‡fdd„}t t¡R}t ¡4IdHš0}| |¡tƒIdHt ˆt     tƒ¡¡W5QIdHRXW5QRXt
|j j t ƒs„t‚dS)Nc“s6t ¡‰zt‚Wn tk
r0tƒIdHYnXdSrr r r r r!r†Hs
z8test_exception_chaining_after_yield_error.<locals>.child)r.r/r3rrArJrrlrmrnrÜr6rÛr_r-)r†r9rKr r r!Ú)test_exception_chaining_after_yield_errorEs      
 .rc Ãsbdd„}t t¡6}t ¡4IdHš}| |¡t‚W5QIdHRXW5QRX|jjdks^t    ‚dS)NcÓst‚dSrr«r r r r!r[[szJtest_nursery_exception_chaining_doesnt_make_context_loops.<locals>.crasher)
r.r/rrrArJr3r6rÛr-)r[r9rKr r r!Ú9test_nursery_exception_chaining_doesnt_make_context_loopsZs  
rcCsLdd„}t |¡}t |¡}||k    s(t‚||ks4t‚t|ƒt|ƒksHt‚dS)NcÓst ¡}|t ¡kst‚|Sr)rr’r-©r˜r r r!Úget_and_check_tokengsz4test_TrioToken_identity.<locals>.get_and_check_token)rr,r-Úhash)rrprqr r r!Útest_TrioToken_identityfs 
 
  rcƒsJg‰‡fdd„}t ¡}| |d¡ˆr,t‚tƒIdHˆdgksFt‚dS)Ncsˆ d|f¡dS)NÚcb©rOr&rµr r!rwsz.test_TrioToken_run_sync_soon_basic.<locals>.cbr)rr)rr’r“r-r)rr˜r rµr!Ú"test_TrioToken_run_sync_soon_basicts   rc    sPd‰‡fdd„}t |¡ˆdk    s&t‚t tj¡ˆ dd„¡W5QRXdS)Nc“s t ¡‰dSr)rr’r rr r!r4„sz3test_TrioToken_run_sync_soon_too_late.<locals>.maincSsdSrr r r r r!r"‹r#z7test_TrioToken_run_sync_soon_too_late.<locals>.<lambda>)rr,r-r.r/ÚRunFinishedErrorr“r<r rr!Ú%test_TrioToken_run_sync_soon_too_lates  
 rcƒsúg‰‡fdd„}t ¡}| |d¡|j|ddd|j|ddd|j|ddd|j|ddd|j|dddtƒIdHtˆƒdkst‚tˆƒdddgks¦t‚g‰tdƒD]"}tdƒD]}|j||ddq¾q²tƒIdHˆttdƒƒksöt‚dS)    Ncsˆ |¡dSrrr&rµr r!r‘sz3test_TrioToken_run_sync_soon_idempotent.<locals>.cbrTrrréd)    rr’r“rr®r-ÚsortedrNÚlist)rr˜rrQr rµr!Ú'test_TrioToken_run_sync_soon_idempotentŽs$      rcs<g‰‡‡fdd„‰‡fdd„}t |¡tˆƒdks8t‚dS)Ncs:ˆ d¡z|jˆ|ddWntjk
r4YnXdS©NTr)rOr“rrr©rPÚredor r!r °s
 
z=test_TrioToken_run_sync_soon_idempotent_requeue.<locals>.redoc“sFt ¡}|jˆ|ddt ¡IdHt ¡IdHt ¡IdHdSr)rr’r“r*r)r r r!r4·s
z=test_TrioToken_run_sync_soon_idempotent_requeue.<locals>.mainr©rr,r®r-r<r rr!Ú/test_TrioToken_run_sync_soon_idempotent_requeue©s
 
r"c    sBg‰‡fdd„}t t¡t |¡W5QRXˆdgks>t‚dS)Nc“s"t ¡}| ‡fdd„¡t‚dS)Ncs
ˆ d¡S)Núsync-cbrr rµr r!r"Êr#zMtest_TrioToken_run_sync_soon_after_main_crash.<locals>.main.<locals>.<lambda>)rr’r“r3rrµr r!r4Æsz;test_TrioToken_run_sync_soon_after_main_crash.<locals>.mainr#)r.r/r3rr,r-r<r rµr!Ú-test_TrioToken_run_sync_soon_after_main_crashÃs
  r$c    s\tƒ‰‡fdd„}t tj¡}t |¡W5QRXt|jjƒt    ksHt
‚ˆddhksXt
‚dS)Nc“s^t ¡}| dd„¡| ‡fdd„¡ztƒIdHWn tjk
rXˆ d¡YnXdS)NcSs
tƒdS©NZnope)Údictr r r r!r"Ør#zDtest_TrioToken_run_sync_soon_crashes.<locals>.main.<locals>.<lambda>cs
ˆ d¡S)Nú2nd run_sync_soon ran)rºr rµr r!r"Ûr#ú
cancelled!)rr’r“r%rWrºrrµr r!r4Ösz2test_TrioToken_run_sync_soon_crashes.<locals>.mainr'r() r¾r.r/rrçr,rbr6rör_r-r8r rµr!Ú$test_TrioToken_run_sync_soon_crashesÓs  r)cƒsVd}g‰t ¡}t|ƒD]}| ‡fdd„|¡qtƒIdHˆtt|ƒƒksRt‚dS)Nrcs
ˆ |¡Srr)Újrµr r!r"ír#z3test_TrioToken_run_sync_soon_FIFO.<locals>.<lambda>)rr’rNr“rrr-)ÚNr˜rQr rµr!Ú!test_TrioToken_run_sync_soon_FIFOès  r,cs~d‰g‰‡‡‡fdd„‰‡‡‡fdd„}t |¡tˆƒdksBt‚ˆddksRt‚ˆddd    ksft‚ˆddd
kszt‚dS) Ncs>zˆ ˆ|d¡Wn$tjk
r8ˆ d|f¡YnXdS)Nrú run finished)r“rrrO©rQ©Ú
naughty_cbrPr˜r r!r0ùszFtest_TrioToken_run_sync_soon_starvation_resistance.<locals>.naughty_cbc“s>t ¡‰ˆ ˆd¡ˆ d¡tdƒD]}t ¡IdHq&dS)NrÚstartingé)rr’r“rOrNr*rr/r r!r4s
 
 z@test_TrioToken_run_sync_soon_starvation_resistance.<locals>.mainrrr1rr-ér!r<r r/r!Ú2test_TrioToken_run_sync_soon_starvation_resistanceòs
r4cs@d‰‡fdd„‰‡fdd„‰‡‡fdd„}t |¡tˆƒdS)Nrcs ˆd7‰dSrÉr r )Ú
cb_counterr r!rsz=test_TrioToken_run_sync_soon_threaded_stress_test.<locals>.cbcs6z| ˆ¡t d¡qWntjk
r0YnXdS©Nr)r“ryrrrr)rr r!Ú stress_threads
 
zHtest_TrioToken_run_sync_soon_threaded_stress_test.<locals>.stress_threadc“sNt ¡}tjˆ|fd}| ¡tdƒD] }ˆ}ˆ|kr(tdƒIdHq0q(dS)N)Útargetr7rœç{®Gáz„?)rr’Ú    threadingÚThreadrrNr)r˜ÚthreadrZ start_value)r5r7r r!r4s z?test_TrioToken_run_sync_soon_threaded_stress_test.<locals>.main)rr,rXr<r )rr5r7r!Ú1test_TrioToken_run_sync_soon_threaded_stress_tests       
r=cƒsXd}t ¡}dg‰‡fdd„}t|ƒD]}| ||¡q&tƒIdHˆd|ksTt‚dS)Nièrcs$ˆd|kst‚ˆdd7<dS©Nrr)r-r.©Úcounterr r!r6sz6test_TrioToken_run_sync_soon_massive_queue.<locals>.cb)rr’rNr“rr-)ZCOUNTr˜rrQr r?r!Ú*test_TrioToken_run_sync_soon_massive_queue+s   rAzPyPy 7.2 is buggy)Úreasonc    sng‰g‰‡fdd„‰‡‡‡fdd„}t tj¡}t |¡W5QRXt|jjƒtksZt    ‚ˆddgksjt    ‚dS)Nc s:t ¡}z
dVW5| dd„¡| ‡fdd„¡XdS)NcSsidSr%r r r r r!r"Mr#zGtest_TrioToken_run_sync_soon_late_crash.<locals>.agen.<locals>.<lambda>cs
ˆ d¡S)Nú2nd ranrr rµr r!r"Nr#r)rr’r“rrµr r!ÚagenHs
 
z5test_TrioToken_run_sync_soon_late_crash.<locals>.agenc“s.ˆ ˆƒ¡ˆd d¡IdHˆ d¡dS)Néÿÿÿÿú main exiting)rOÚasendr ©rDrPZsavedr r!r4Ps z5test_TrioToken_run_sync_soon_late_crash.<locals>.mainrFrC)
r.r/rrçr,rbr6rör_r-r8r rHr!Ú'test_TrioToken_run_sync_soon_late_crashAs rIc
ƒsft ¡T}| ¡t tj¡4t ¡‰t ¡‰‡‡fdd„}t |¡IdHW5QRXW5QRXdS)Ncs"t |¡}ˆ tjˆ|¡tjjSr)rmÚcapturer“rrlrrâ©Z raise_cancelÚresult©rêr˜r r!Ú
slow_abortcs
z)test_slow_abort_basic.<locals>.slow_abort)    rr–r•r.r/rWrkr’r$)ržrNr rMr!Útest_slow_abort_basic\s
rOc ƒsÎg‰‡fdd„}t ¡¬}t ¡˜}t ¡4IdHšb}| |¡tƒIdHˆdgksZt‚| ¡ˆddgksrt‚| ¡ˆddgksŠt‚d|j_W5QIdHRXˆddddgks¶t‚W5QRXW5QRXdS)Nc    “sxt ¡‰t ¡‰‡‡‡fdd„}t tj¡ ˆ d¡t |¡IdHW5QRXˆ d¡t ¡IdHˆ d¡dS)Ncs,ˆ d¡t |¡}ˆ tjˆ|¡tjjS)Nú abort-called)rOrmrJr“rrlrrârK)rPrêr˜r r!rNrs
 
zDtest_slow_abort_edge_cases.<locals>.slow_aborter.<locals>.slow_abortrÀrVÚdone)    rrkr’r.r/rWrOr$r*)rNrµrMr!Ú slow_aborterns
 
z0test_slow_abort_edge_cases.<locals>.slow_aborterrÀrPTrVrQ)    rr–rArJrr-r•r”r­)rRZouter1Zouter2rKr rµr!Útest_slow_abort_edge_casesks 
 
 
 rSc
ƒsŽi‰i‰tjf‡‡‡fdd„    }‡‡fdd„‰tjf‡‡‡fdd„    ‰t ¡4IdHš}| |¡W5QIdHRXˆ ¡D]}|jdksvt‚qvdS)Nc “sHt ¡ˆd<ˆdjgkst‚t ¡4IdHš>}t ¡4IdHš}ˆdj||gksXt‚W5QIdHRXW5QIdHRXˆdjgksŠt‚t ¡4IdHš}|ˆd<| ˆ¡IdHW5QIdHRXˆdjˆdksÚt‚ˆdjˆdksðt‚ˆdjˆdkst‚ˆdjˆdks t‚t ¡j}|dk    rD|j}|j}q*dS)NÚparentrrrt)rrkÚchild_nurseriesr-rArr„rƒ)rÔÚnursery1Únursery2rKÚt)rrÚ    nurseriesÚtasksr r!rTšs" 6 
 
z,test_task_tree_introspection.<locals>.parentc“sŠt ¡ˆd<ˆdjˆdgks$t‚ˆdjtˆdhƒks@t‚ˆdjˆdgksXt‚ˆdjtˆdhƒkstt‚ˆdjgks†t‚dS)NrtrTrr)rrkrUr-Ú child_tasksÚ    frozensetr )rYrZr r!rt¶s  z,test_task_tree_introspection.<locals>.child2c
“s¶t ¡}ˆd<|jjˆdks$t‚|jˆdk    s6t‚|jˆdksHt‚| ¡|jˆdksbt‚|jdkspt‚t ¡IdHt ¡4IdHš}|ˆd<|     ˆ¡W5QIdHRXdS)NrrrT)
rrkrƒr„r-r‰r´rrArJ)rÔr÷rK)rtrYrZr r!rr¾sz,test_task_tree_introspection.<locals>.child1)rÚTASK_STATUS_IGNOREDrArJÚvaluesr‰r-)rTrKrêr )rrrtrYrZr!Útest_task_tree_introspection–s r_c
ƒsf‡fdd„}dd„‰t ¡4IdHš}| ||¡W5QIdHRXt t¡| ˆ¡W5QRXdS)Nc“s| ˆ¡dSr)rJr]©rtr r!rrÙsz$test_nursery_closure.<locals>.child1cÓsdSrr r r r r!rtÞsz$test_nursery_closure.<locals>.child2)rrArJr.r/r>)rrrKr r`r!Útest_nursery_closureØs   rac
ÃsŽdd„}dd„}t ¡4IdHš^}|jtjfD]J}||dƒ||d|d||ddd|t |d¡ƒ||d    tƒdq.W5QIdHRXdS)
NcÓst ¡}||jkst‚dSr)rrkrÎr-)Úexpectedrêr r r!Úfunc1êsztest_spawn_name.<locals>.func1cÓsdSrr r r r r!Úfunc2îsztest_spawn_name.<locals>.func2rcrdrÍZfunc3Úobject)rrArJrïÚ    functoolsÚpartialre)rcrdrKZspawn_fnr r r!Útest_spawn_nameés
rhc
Ãsþt ¡tkst‚tjddÈ}tjddž}t ¡dks<t‚d|_t ¡dksRt‚d|_t ¡dksht‚d|_t ¡dks~t‚d|_t ¡dks”t‚| ¡t ¡t ks®t‚d|_t ¡dksÄt‚W5QRXt ¡t ksàt‚W5QRXt ¡tksút‚dS)NrrrœrTF)rZcurrent_effective_deadlinerr-r–r‘r­r•)r~rÅrÆr r r!Útest_current_effective_deadlineús$ric
Cszdd„}dd„}||fD]\}dd„}tjtdd||ƒƒW5QRXd    d
„}tjtd d||d ƒW5QRXqdS) NcWstj|ŽdSrr;©r7r r r!Ú bad_call_runszBtest_nice_error_on_bad_calls_to_run_or_spawn.<locals>.bad_call_runcs‡fdd„}t |¡dS)Nc
“s0t ¡4IdHš}|jˆŽW5QIdHRXdSrr\r]rjr r!r4szRtest_nice_error_on_bad_calls_to_run_or_spawn.<locals>.bad_call_spawn.<locals>.mainr;)r7r4r rjr!Úbad_call_spawns zDtest_nice_error_on_bad_calls_to_run_or_spawn.<locals>.bad_call_spawncÓsdSrr r r r r!Úfsz7test_nice_error_on_bad_calls_to_run_or_spawn.<locals>.fzexpecting an async functionrÑcSs
|VdSrr )Úargr r r!Ú    async_gen#sz?test_nice_error_on_bad_calls_to_run_or_spawn.<locals>.async_genz5expected an async function but got an async generatorr)r.r/r0)rkrlZbad_callrmror r r!Ú,test_nice_error_on_bad_calls_to_run_or_spawns ÿrpc    sbdd„‰‡fdd„}t t¡}t |¡W5QRXdt|jƒksFt‚tdd„|j    Dƒƒs^t‚dS)NcÓstƒIdHdSr)r r r r r!Ú child_xyzzy-szCtest_calling_asyncio_function_gives_nice_error.<locals>.child_xyzzyc“sˆƒIdHdSrr r ©rqr r!Ú    misguided0szAtest_calling_asyncio_function_gives_nice_error.<locals>.misguidedÚasynciocss|]}|jdkVqdS)rqNrÍ)rdÚentryr r r!Ú    <genexpr>8szAtest_calling_asyncio_function_gives_nice_error.<locals>.<genexpr>)
r.r/r0rr,r?r6r-ÚanyÚ    traceback)rsr9r rrr!Ú.test_calling_asyncio_function_gives_nice_error,s  ÿryc Ãslt t¡F}t ¡4IdHš$}ddl}| t¡tƒIdHW5QIdHRXW5QRXdt    |j
ƒksht ‚dS)Nrrt) r.r/r0rrArtrJr%r r?r6r-)r9rKrtr r r!Ú5test_asyncio_function_inside_nursery_does_not_explode=s  
&rzc Ãstƒt ¡IdHW5QRXtƒ"t ¡IdHt ¡IdHW5QRXtƒ(t ¡4IdHšW5QIdHRXW5QRXt ¡€}| ¡t     t
¡,}t ¡4IdHš
t ‚W5QIdHRXW5QRXt |j jƒdksät‚dd„|j jDƒt tjhkst‚W5QRXdS)NrcSsh|] }t|ƒ’qSr ra©rdrLr r r!reZsz&test_trivial_yields.<locals>.<setcomp>)rrr*r r¥rAr–r•r.r/rr_r®r6rfr-rW)r”r9r r r!Útest_trivial_yieldsHs$
 þr|c Ãsšdd„}t ¡4IdHš,}t t¡| |¡IdHW5QRXW5QIdHRXtjdœdd„}dD]˜}t ¡4IdHš`}t|jƒdksŒt    ‚t 
¡}| ||¡IdH|ks®t    ‚t 
¡||ksÂt    ‚t|jƒdksÔt    ‚W5QIdHRXt 
¡|d    |ksdt    ‚qdt 
¡}|d
ƒIdHt 
¡|d ks*t    ‚tjfd d „}t ¡4IdHš}| |¡IdHW5QIdHRXtjfdd„}t ¡4IdHš,}t t ¡| |¡IdHW5QRXW5QIdHRXtjfdd„}t ¡4IdHš@}t t ¡}    | |¡IdHW5QRXdt |    jƒkst    ‚W5QIdHRXtjfdd„}
t ¡4IdHšJ}t ¡6} |  ¡t tj¡| |
¡IdHW5QRXW5QRXW5QIdHRXtjfdd„} t ¡4IdHšH}t ¡4} |  ¡t t¡}    | | ¡IdHW5QRXW5QRXW5QIdHRXdd„|    jjDƒtjt hks2t    ‚t ¡4IdHš} W5QIdHRXt 
¡}t t ¡|  |d¡IdHW5QRXt 
¡|ks–t    ‚dS)NcÓsdSrr r r r r!Úno_argsasz#test_nursery_start.<locals>.no_args©rÔcÓs2t|ƒt|ƒIdH| |¡t|ƒIdHdSr)rrr´)ÚsecondsrÔr r r!Úsleep_then_startis
z,test_nursery_start.<locals>.sleep_then_start)rrrrrréc    Ós*| ¡t t¡| ¡W5QRXdSr)r´r.r/r>r~r r r!Údouble_started‚s z*test_nursery_start.<locals>.double_startedcÓs tdƒ‚dS)NZoopsr«r~r r r!Úraise_keyerror‹sz*test_nursery_start.<locals>.raise_keyerrorcÓsdSrr r~r r r!Únothing“sz#test_nursery_start.<locals>.nothingzexited without callingcÓs| d¡dS)NÚhi)r´r~r r r!Ú just_startedžsz(test_nursery_start.<locals>.just_startedcÓs| ¡tdƒ‚dS)NZ whoopsiedaisy)r´r_r~r r r!Úraise_keyerror_after_started©sz8test_nursery_start.<locals>.raise_keyerror_after_startedcSsh|] }t|ƒ’qSr rar{r r r!re²sz%test_nursery_start.<locals>.<setcomp>é)rrAr.r/r0rr]r®r[r-rxr_r>r?r6r–r•rWrrf)Úautojump_clockr}rKr€rÚt0r‚rƒr„r9r†Úcsr‡Zclosed_nurseryr r r!Útest_nursery_start`sd *    "  * $
4
 4þ  rŒc Ãs¸t ¡}|jgkst‚t ¡4IdHšt}|j|gks8t‚t t¡>t ¡4IdHš}|j||gksht‚t‚W5QIdHRXW5QRX|j|gks–t‚W5QIdHRX|jgks´t‚dSr)rrkZ_child_nurseriesr-rAr.r/r_)rêrVrWr r r!Útest_task_nursery_stackÀs  rc
Ãs¼tjfdd„}tjdœdd„}t ¡4IdHš,}| |¡IdH}| ||jj¡IdHW5QIdHRXt ¡4IdHš6}| |¡IdH}| |dd„¡IdH|j ¡W5QIdHRXdS)Nc
Ós<t ¡4IdHš}| |¡tƒIdHW5QIdHRXdSr)rrAr´r%)rÔrKr r r!Ú setup_nurseryÐs
z@test_nursery_start_with_cancelled_nursery.<locals>.setup_nurseryr~c
ÓsTt ¡4IdHš4}| t¡| t¡tƒIdH|ƒ| ¡W5QIdHRXdSr)rrArJr%rr´)ÚfnrÔrKr r r!Úsleeping_childrenØs 
 
 zDtest_nursery_start_with_cancelled_nursery.<locals>.sleeping_childrencSsdSrr r r r r!r"êr#z;test_nursery_start_with_cancelled_nursery.<locals>.<lambda>)rr]rArr”r•)rŽrrKZtarget_nurseryr r r!Ú)test_nursery_start_with_cancelled_nurseryÍs    ÿr‘c ƒs0tjfdd„}t ¡4IdHšn}t ¡}t ¡4IdHš0}| |j|¡tdƒIdH| |j|¡W5QIdHRXt ¡|dksˆt‚W5QIdHRXtjfdd„‰‡fdd„}t ¡4IdHš^}t ¡}t ¡4IdHš}| ||¡tƒIdHW5QIdHRXt ¡|d    kst‚W5QIdHRXdS)
NcÓs(tdƒIdH| ¡tdƒIdHdS)Nrr)rr´r~r r r!Ú sleep_a_bitïsz:test_nursery_start_keeps_nursery_open.<locals>.sleep_a_bitrrcÓstdƒIdHt‚dS)Nrˆ)rr_r~r r r!Úsleep_then_crashsz?test_nursery_start_keeps_nursery_open.<locals>.sleep_then_crashc    “s*t t¡| ˆ¡IdHW5QRXdSr)r.r/r_rr]©r“r r!Ústart_sleep_then_crash    s zEtest_nursery_start_keeps_nursery_open.<locals>.start_sleep_then_crashrˆ)    rr]rArxrJrrr-r)r‰r’rVrŠrWr•r r”r!Ú%test_nursery_start_keeps_nursery_openîs $  r–c ÃsBt t¡.t ¡4IdHš tƒ‚W5QIdHRXW5QRXdSr)r.r/r_rrAr r r r!Útest_nursery_explicit_exceptions r—c
Ãs€dd„}z4t ¡4IdHš}| |¡t‚W5QIdHRXWn>tk
rz}z ttt|jƒƒtt    fksjt
‚W5d}~XYnXdS)NcÓst‚dSrr2r r r r!Úfailsz)test_nursery_stop_iteration.<locals>.fail) rrArJÚ StopIterationrÚtupleÚmaprbrfr3r-)r˜rKrLr r r!Útest_nursery_stop_iterations
rœcÃshGdd„dƒ}Gdd„dƒ}g}||dƒ|dƒƒ2z3dHW}| |¡q26|ddgddggksdt‚dS)    Nc@seZdZdd„Zdd„ZdS)z-test_nursery_stop_async_iteration.<locals>.itcSs||_d|_dSr6)ÚcountÚval)Úselfrr r r!Ú__init__)sz6test_nursery_stop_async_iteration.<locals>.it.__init__cÓs4tdƒIdH|j}||jkr"t‚|jd7_|Sr>)rržrÚStopAsyncIteration)rŸržr r r!Ú    __anext__-s 
z7test_nursery_stop_async_iteration.<locals>.it.__anext__N)Ú__name__Ú
__module__Ú __qualname__r r¢r r r r!Úit(sr¦c@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
z4test_nursery_stop_async_iteration.<locals>.async_zipcWsdd„|Dƒ|_dS)NcSsg|]
}|j‘qSr )r¢)rdÚobjr r r!Ú
<listcomp>7szQtest_nursery_stop_async_iteration.<locals>.async_zip.__init__.<locals>.<listcomp>)Únexts)rŸÚlargsr r r!r 6sz=test_nursery_stop_async_iteration.<locals>.async_zip.__init__cÓs|ƒIdH||<dSrr )rŸrmÚitemsrQr r r!Ú _accumulate9sz@test_nursery_stop_async_iteration.<locals>.async_zip._accumulatecSs|Srr )rŸr r r!Ú    __aiter__<sz>test_nursery_stop_async_iteration.<locals>.async_zip.__aiter__c
Ós^|j}dgt|ƒ}t ¡4IdHš*}t|ƒD]\}}| |j|||¡q.W5QIdHRX|Sr)r©r®rrAÚ    enumeraterJr¬)rŸr©r«rKrQrmr r r!r¢?s $z>test_nursery_stop_async_iteration.<locals>.async_zip.__anext__N)r£r¤r¥r r¬r­r¢r r r r!Ú    async_zip5sr¯rŽrrr)rOr-)r¦r¯rLÚvalsr r r!Ú!test_nursery_stop_async_iteration's  r±c
Ãsšdd„}z:t ¡4IdHš}| |¡| |¡W5QIdHRXWnRtk
r”}z4|jd}t|tƒslt‚|jj    }|j
|j ks„t‚W5d}~XYnXdS)NcÓs
tƒ‚dSrr«r r r r!Ú my_child_taskPsz3test_traceback_frame_removal.<locals>.my_child_taskr) rrArJrrfrÜr_r-Ú __traceback__Útb_frameÚf_codeÚ__code__)r²rKrEZ    first_excÚframer r r!Útest_traceback_frame_removalOs
 
r¸csNt d¡‰ˆ d¡ˆ ¡dks$t‚‡fdd„}t |¡ˆ ¡dksJt‚dS)NÚtestÚbeforec“slt ¡}|j ˆ¡dkst‚ˆ ¡dks,t‚ˆ d¡ˆ ¡dksFt‚ˆ|jksTt‚|j ˆ¡dksht‚dS)NrºÚafter)rrkÚcontextÚgetr-r¾ré©Úvarr r!r¸ms
z&test_contextvar_support.<locals>.inner)Ú contextvarsÚ
ContextVarr¾r½r-rr,©r¸r r¾r!Útest_contextvar_supportgs 
 
     
rÃc
ƒs’tjddd‰‡fdd„}‡fdd„}t ¡4IdHšL}| |¡tƒIdHˆ ¡dks^t‚ˆ d¡| |¡tƒIdHW5QIdHRXdS)    Nr¹Úhmmm)Údefaultc“s.ˆ ¡dkst‚ˆ d¡ˆ ¡dks*t‚dS)NrÄÚhmmmm)r½r-r¾r r¾r r!rp}s
z%test_contextvar_multitask.<locals>.t1c“sˆ ¡dkst‚dS)NrÆ©r½r-r r¾r r!rq‚sz%test_contextvar_multitask.<locals>.t2rÆ)    rÀrÁrrArJrr½r-r¾)rprqÚnr r¾r!Útest_contextvar_multitaskzs  
 
 
rÉcsJt d¡‰ˆ d¡‡fdd„‰‡fdd„‰‡‡‡fdd„}t |¡dS)    NZqwilfishÚwaterc“sˆ ¡dkst‚dS)NrÊrÇr ©Úcvarr r!rî’sz.test_system_task_contexts.<locals>.system_taskc“sˆ ¡dkst‚dS©NZpoisonrÇr rËr r!Ú regular_task•sz/test_system_task_contexts.<locals>.regular_taskc
“sPt ¡4IdHš0}ˆ d¡| ˆ¡t ˆ¡tƒIdHW5QIdHRXdSrÍ)rrAr¾rJrïrr]©rÌrÎrîr r!r¸˜s
 
 
 
z(test_system_task_contexts.<locals>.inner)rÀrÁr¾rr,rÂr rÏr!Útest_system_task_contextsŽs 
 
  rÐc    Cs(t t¡tj dd¡W5QRXdSr©r.r/r0rÚ_runZNurseryr r r r!Útest_Nursery_init¢s rÓc
Ãs4t ¡4IdHš}d|jks t‚W5QIdHRXdS)NF)rrAÚ_closedr-r]r r r!Útest_Nursery_private_init§srÕc    Cs.t t¡Gdd„dtjjƒ}W5QRXdS)Nc@s eZdZdS)z'test_Nursery_subclass.<locals>.SubclassN©r£r¤r¥r r r r!ÚSubclass°sr×rÑ©r×r r r!Útest_Nursery_subclass­s rÙc    CsHt t¡ tj‚W5QRXt t¡t ¡W5QRXtj ¡dSr)r.r/r0rrWÚ_creater r r r!Útest_Cancelled_init´s
  rÛcCstj ¡}t|ƒdkst‚dS)NrW)rrWrÚr?r-)rVr r r!Útest_Cancelled_str¿s
rÜc    Cs,t t¡Gdd„dtjƒ}W5QRXdS)Nc@s eZdZdS)z)test_Cancelled_subclass.<locals>.SubclassNrÖr r r r!r×Çsr×)r.r/r0rrWrØr r r!Útest_Cancelled_subclassÄs rÝc    Cs,t t¡Gdd„dtjƒ}W5QRXdS)Nc@s eZdZdS)z+test_CancelScope_subclass.<locals>.SubclassNrÖr r r r!r×Îsr×)r.r/r0rr–rØr r r!Útest_CancelScope_subclassËs rÞc    CsVt tj¡t ¡W5QRXdd„}t |¡t tj¡t ¡W5QRXdS)NcÓst ¡dkst‚dS)NZtrio)ÚsniffioÚcurrent_async_libraryr-r r r r!Úcheck_inside_trioÖsz3test_sniffio_integration.<locals>.check_inside_trio)r.r/rßZAsyncLibraryNotFoundErrorràrr,)rár r r!Útest_sniffio_integrationÒs 
râcÃsJt ¡}|jdkst‚d|_|jdks*t‚t ¡IdH|jdksFt‚dSrÉ)rrkZcustom_sleep_datar-r*rér r r!Útest_Task_custom_sleep_dataßs rãccs
|VdSrr )r6r r r!Ú async_yieldèsräc ƒs€d‰d‰‡‡fdd„}t ¡4IdHš}| |t d¡d¡W5QIdHRXˆdksXt‚ˆj d¡dkslt‚ˆt d¡ks~t‚t     t
¡ˆj d¡W5QRXd‰d‰t     t ¡>t ¡4IdHš}| |t  t ƒ¡d¡W5QIdHRXW5QRXt ƒ}ˆj |¡dkst‚ˆt  |¡ks&t‚t     t
¡ˆj d¡W5QRXdd„}t ¡4IdHš}| |¡W5QIdHRXdS)Nc“s<tdƒIdHt ¡‰t tj|¡IdH‰t|ƒIdHdSr6)rrrkrmZacaptureÚ#permanently_detach_coroutine_objecträ)Z task_outcomeZ yield_value©Z pdco_outcomerêr r!Údetachable_coroutineñsÿ
zFtest_permanently_detach_coroutine_object.<locals>.detachable_coroutinez    I'm free!zbe free!rGc
Ósdt ¡4IdHšDt t¡}t t d¡¡IdHW5QRXdt|j    ƒksPt
‚W5QIdHRXdS)Nz open nurser) rrAr.r/r>rårmrsr?r6r-rr r r!Ú
bad_detachs  z<test_permanently_detach_coroutine_object.<locals>.bad_detach)rrArJrmrsr-ÚcoroÚsendr.r/r™r_rnr3Úthrow)rçrKZthrow_inrèr rær!Ú(test_permanently_detach_coroutine_objectís.    $   0 rìc
ƒs¼d‰d‰‡fdd„}‡‡fdd„}t ¡4IdHšz}| |¡| |¡tƒIdHˆdk    s`t‚ˆdk    slt‚ˆj d¡dks€t‚ˆj d¡dks”t‚ˆj d¡dks¨t‚W5QIdHRXdS)    Nc“s t ¡‰dSr)rrkr )Úunrelated_taskr r!Úunrelated_coroutineszFtest_detach_and_reattach_coroutine_object.<locals>.unrelated_coroutinec    “s´tdƒIdHt ¡‰dd„}t |¡IdH}|dks:t‚tdƒIdHtdƒIdHt t¡}t     ˆd¡IdHW5QRXdt
|j ƒkst‚t     ˆd¡IdHtdƒIdHdS)    NrcSstjjSrrárr r r!Úabort_fn)sz[test_detach_and_reattach_coroutine_object.<locals>.reattachable_coroutine.<locals>.abort_fnú    not trio!rrzdoes not matchÚbyebye) rrrkÚ#temporarily_detach_coroutine_objectr-rär.r/r>Ú"reattach_detached_coroutine_objectr?r6)rïÚgotr9©rêrír r!Úreattachable_coroutine#s  zItest_detach_and_reattach_coroutine_object.<locals>.reattachable_coroutinerðrrrñ)rrArJrr-rérê)rîrörKr rõr!Ú)test_detach_and_reattach_coroutine_objects 
 
   r÷c
ƒs|d‰d‰‡‡fdd„}t ¡4IdHš>}| |¡tƒIdHˆdk    sJt‚|j ¡ˆj d¡W5QIdHRXˆsxt‚dS)NFc    “sntdƒIdHt ¡‰‡fdd„}t |¡IdHt ˆd¡IdHt tj¡tdƒIdHW5QRXdS)Nrcs d‰tjjSrÄrár)Úabort_fn_calledr r!rïSszVtest_detached_coroutine_cancellation.<locals>.reattachable_coroutine.<locals>.abort_fn)rrrkròrór.r/rW)rï©rørêr r!röMs zDtest_detached_coroutine_cancellation.<locals>.reattachable_coroutine)    rrArJrr-r”r•rérê)rörKr rùr!Ú$test_detached_coroutine_cancellationIs
 
rúcsHdd„‰g}ˆ|ƒ}t |j¡|dgks.t‚‡fdd„}t |¡dS)NcSs t ¡r t‚| d¡dVdS©Núthe generator ran)rrír-rOrµr r r!Úagen_fnls 
z5test_async_function_implemented_in_C.<locals>.agen_fnrüc
“sLg}ˆ|ƒ}t ¡4IdHš}| |j¡W5QIdHRX|dgksHt‚dSrû)rrArJr¢r-)Zstart_soon_recordrDrK©rýr r!r4vs
z2test_async_function_implemented_in_C.<locals>.main)rr,r¢r-)Z
run_recordrDr4r rþr!Ú$test_async_function_implemented_in_Cgs  rÿc    ÃsLtƒ<}t ¡}| |¡tdƒD]}| t ¡¡q"| ¡W5QRXdS)Niˆ)rrr–rÖrNr•)Z
exit_stackZoutermost_scoperr r r!Ú#test_very_deep_cancel_scope_nesting€s 
 rc    ÃsTt ¡}t ¡:}ttdƒD]}|d|_|d|_qtdƒIdHW5QRXdS)Nri'i'r9)rrxr–rNrr‘r)ÚnowÚcscoperr r r!Ú%test_cancel_scope_deadline_duplicatesŠs 
 
 rÚcpythonz$Only makes sense with refcounting GCc ÃsÀt ¡dd„}dd„}t ¡}z„t ¡t tj¡|ƒIdH|ƒIdHt t    ¡2t
  ¡4IdHš}|  |¡W5QIdHRXW5QRXt ¡tjr¢t ‚W5t |¡tj ¡XdS)Nc    Ós,t ¡}| ¡tƒIdHW5QRXdSr)rr–r•r%)rr r r!Ú do_a_cancelœs
zPtest_simple_cancel_scope_usage_doesnt_create_cyclic_garbage.<locals>.do_a_cancelcÓst‚dSrr2r r r r!r[¡szLtest_simple_cancel_scope_usage_doesnt_create_cyclic_garbage.<locals>.crasher)ÚgcÚcollectÚ    get_debugÚ    set_debugÚgarbageÚclearÚ DEBUG_SAVEALLr.r/r3rrArJr-)rr[Ú    old_flagsrKr r r!Ú;test_simple_cancel_scope_usage_doesnt_create_cyclic_garbage•s     $
rc ÃsÆt ¡dd„}t ¡}z’t t¡lt     
¡X}t      ¡4IdHš6}t ¡t tj ¡|  t¡| ¡|  |¡W5QIdHRXW5QRXW5QRXt ¡tjr¨t‚W5t |¡tj ¡XdS)NcÓst‚dSrr2r r r r!r[ÃszDtest_cancel_scope_exit_doesnt_create_cyclic_garbage.<locals>.crasher)rrrr    r
r r.r/r3rr–rAr rJr%r•r-)r[r r±rKr r r!Ú3test_cancel_scope_exit_doesnt_create_cyclic_garbage¼s 
.
rc
ƒsÀ‡fdd„}d‰t ¡t ¡}z„t d¡t ¡t tj¡t ¡4IdHš}|j     
¡W5QIdHRXt   ||¡~t  ¡IdHˆst‚t ¡tjr¢t‚W5t |¡tj ¡XdS)Ncsd‰dSrÄr r ©Z    collectedr r!Útoggle_collectedâszJtest_nursery_cancel_doesnt_create_cyclic_garbage.<locals>.toggle_collectedFr)rrrr    r
r r rrAr”r•ÚweakrefÚfinalizer*r-)rr rKr rr!Ú0test_nursery_cancel_doesnt_create_cyclic_garbageÝs$ 
 
rc
ƒsnd‰‡fdd„‰Gdd„dƒ‰‡‡fdd„}t ¡4IdHš}| |¡|j ¡W5QIdHRXˆsjt‚dS)NFcsd‰dSrÄr r )Ú    destroyedr r!Ú    finalizer    sz;test_locals_destroyed_promptly_on_cancel.<locals>.finalizerc@s eZdZdS)z3test_locals_destroyed_promptly_on_cancel.<locals>.ANrÖr r r r!ÚA
    src“s$ˆƒ}t |ˆ¡t ¡IdHdSr)rrrr*)rS)rrr r!rê     s z6test_locals_destroyed_promptly_on_cancel.<locals>.task)rrArJr”r•r-)rêrKr )rrrr!Ú(test_locals_destroyed_promptly_on_cancel    s 
rc    Csrdd„}t t¡}tj|ddW5QRXt|jjƒdks@t‚t    |jjdƒt
ksXt‚|jjdj dksnt‚dS)    z\
    Test that nurseries respect the global context setting of strict_exception_groups.
    c
Ós.t ¡4IdHštdƒ‚W5QIdHRXdS)NÚfoo©rrAr r r r r!r4    sz.test_run_strict_exception_groups.<locals>.mainT©Zstrict_exception_groupsrr©rN) r.r/rrr,r®r6rfr-rbr r7)r4rEr r r!Ú test_run_strict_exception_groups    s  rc    Cs4dd„}tjtddtj|ddW5QRXdS)ze
    Test that a nursery can override the global context setting of
    strict_exception_groups.
    c
Ós2tjdd4IdHštdƒ‚W5QIdHRXdS)NFrrrr r r r!r4/    sz?test_run_strict_exception_groups_nursery_override.<locals>.mainrrÑTrN)r.r/r rr,r<r r r!Ú1test_run_strict_exception_groups_nursery_override)    src ÃsŠt t¡4}tjdd4IdHštdƒ‚W5QIdHRXW5QRXt|jjƒdksXt    ‚t
|jjdƒtkspt    ‚|jjdj dks†t    ‚dS)zHTest that strict exception groups can be enabled on a per-nursery basis.TrNrrrr) r.r/rrrAr r®r6rfr-rbr7rHr r r!Ú$test_nursery_strict_exception_groups7    s  "rc Ãsdd„}t t¡€}t ¡4IdHš^}| t¡| |¡tjdd4IdHš$}| t¡| |¡|j ¡W5QIdHRXW5QIdHRXW5QRX|j    j
}t |ƒdks°t ‚t |dtƒsÂt ‚t |dtƒsÔt ‚t |dj
ƒdksêt ‚t |dj
dtƒst ‚dS)    z—
    Test that a single exception from a nested nursery with strict semantics doesn't get
    collapsed when CancelledErrors are stripped from it.
    cÓs tdƒ‚dS©Nz
test error©r>r r r r!Ú raise_errorH    sz1test_nursery_collapse_strict.<locals>.raise_errorNTrrrr©r.r/rrrArJr%r”r•r6rfr®r-rÜr>©r"rErKrWrfr r r!Útest_nursery_collapse_strictB    s 
 
 
 
4r%c ÃsÔdd„}t t¡|}t ¡4IdHšZ}| t¡| |¡t ¡4IdHš$}| t¡| |¡|j ¡W5QIdHRXW5QIdHRXW5QRX|j    j
}t |ƒdks¬t ‚t |dtƒs¾t ‚t |dtƒsÐt ‚dS)z
    Test that a single exception from a nested nursery with loose semantics gets
    collapsed when CancelledErrors are stripped from it.
    cÓs tdƒ‚dSr r!r r r r!r"b    sz0test_nursery_collapse_loose.<locals>.raise_errorNrrrr#r$r r r!Útest_nursery_collapse_loose\    s 
 
 
 
4r&c
ÃsRt t¡4t ¡ }| ¡tdtƒtƒgƒ‚W5QRXW5QRX|jrNt‚dS)z¥
    Test that when a cancel scope encounters an exception group that does NOT contain
    a Cancelled exception, it will NOT set the ``cancelled_caught`` flag.
    r¹N)    r.r/rrr–r•r>r©r-r¡r r r!Ú#test_cancel_scope_no_cancellederrort    s
 
&r')ŸrÀrfÚplatformrÚr:ryÚtypesÚwarningsrÚ
contextlibrrÚmathrÚtextwraprrÚattrrmrßr.Ztutilrrr    r
r r r ÚrZ_core._multierrorrrrÒrÚ_threadsrZ    _timeoutsrrZtestingrrrÚ version_infoZexceptiongrouprr%r1r:r@rDrFrMrUr^rgrirjrvr|r€r‚rˆr‹rŒr™rŸr§rªr³r·r¹r¿rÂrÃrÇrÈrÐrßràrærèrërñrórørúrýrþr
rrrrrrrr"r$r)r,r4r=rAÚmarkZskipifrIrOrSr_rarhrirpryrzr|rŒrr‘r–r—rœr±r¸rÃrÉrÐrÓrÕrÙrÛrÜrÝrÞrârãÚ    coroutinerärìr÷rúrÿrrÚimplementationrÎrrrrrrrr%r&r'r r r r!Ú<module>s2  $
             
     
4&+)%' JD
 
 
 =   
 
+B ` !' (      
..
 
 
ÿ
$
ÿ
 
ÿ
 
ÿ