?HbpSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK r SSK J r SSKJr SSKJrJrJr SSKJr SSKJr "SS\R.5r"S S \R.5r"S S \R.5r"S S\R.5r"SS\R85r"SS\R.5r"SS\R.5r\R@"\ SLS5"SS\R.55r!\"S:Xa\RF"5 gg!\ a Sr GNf=f)N)Mapping)support) import_helperthreading_helperPy_GIL_DISABLED)assert_python_ok) mapping_testsc|\rSrSrSrSSjrSrSrSrSr Sr S r S r S r S r\R S 5rSrg) ClearTestz Tests for frame.clear(). c SS- gNr)selfxkwargss 6/opt/alt/python313/lib64/python3.13/test/test_frame.pyinnerClearTest.inners  !c `UR"S0UD6 W$![a nUnSnAU$SnAff=f)Nr)rZeroDivisionError)rreexcs routerClearTest.outers9  JJ   ! C  s -(-cbUb,URR5 URnUbM+gg)z" Clear all frames in a traceback. N)tb_framecleartb_next)rtbs rclear_traceback_frames ClearTest.clear_traceback_frames&s)n KK   BnrcX"SS5nU"5n[R"U5nURUS9nA[R"5 UR SU"55 UR UR5 [R"5 URSU"55 g)Nc\rSrSrSrg)&ClearTest.test_clear_locals..C/rN__name__ __module__ __qualname____firstlineno____static_attributes__rrrCr'/ rr/c) weakrefrefrr gc_collect assertIsNotr# __traceback__assertIsrr/r2wrrs rtest_clear_localsClearTest.test_clear_locals.s   C [[^jj1jo  rt$ ##C$5$56 dBD!rct^^"SS5mSmUU4SjnU"5 g![an[R"5 URT"55 URR R R5 [R"5 URT"55 SnAgSnAff=f)Nc\rSrSrSrg).C?rNr)rrrr/r??r0rr/cJ>T"5n[R"U5mSS- gr)r3r4)r2r/r:s rr@ClearTest.test_clear_locals_after_f_locals_access..innerCsAQB aCr) rrr5assertIsNotNoner7r!rr assertIsNone)rrrr/r:s @@r'test_clear_locals_after_f_locals_access1ClearTest.test_clear_locals_after_f_locals_access=s     $ G  $      &    % % . . 4 4 6      bd # #  $s B7BB22B7cr"SS5nU"5nURUS9nAURRnUR5 UR UR S5 UR UR S5 UR URS5 UR URS5 g)Nc\rSrSrSrg)7ClearTest.test_clear_does_not_clear_specials..CSrNr)rrrr/rISr0rr/r1) rr7rr r6f_codef_locals f_builtins f_globals)rr/r2rfs r"test_clear_does_not_clear_specials,ClearTest.test_clear_does_not_clear_specialsRs   Cjj1jo    & &   4( T* t, d+rc^^SmUU4SjnU"5n[U5 TRT5 TR[S5 URR 5 SSS5 TRT5 g!,(df  N =f)NFc3J># Sv TR5 Smg!Smf=f7f)NT)r)endlyrsrg)ClearTest.test_clear_generator..gas!  s## #suspended frame)next assertFalseassertRaisesRegex RuntimeErrorgi_framer )rrUgenrTs` @rtest_clear_generatorClearTest.test_clear_generator_sl c S   # #L2D E LL   F F Es A:: BczSS- UR[5 WR 5 SSS5 UR[5 WR R 5 SSS5 g![a nURRnSnANSnAff=f!,(df  Nt=f!,(df  g=frrr7r assertRaisesr[r f_back)rrrOs rtest_clear_executingClearTest.test_clear_executingqs ) aC  | , GGI-   | , HHNN - , ! )((A ) , , , ,s.A.B B,. B8BB B), B:c^^SmUU4SjnU"5n[U5nTRT5 TR[S5 UR 5 SSS5 TRT5 g!,(df  N =f)NFc3># SS- Smg![anURRnTR[5 UR 5 SSS5 O!,(df  O=fTR[5 UR R 5 SSS5 O!,(df  O=fUv SnANSnAff=f!Smf=f7f)NrrTra)rrOrTrs rrU3ClearTest.test_clear_executing_generator..gs !% OO,,&&|4GGI544&&|4HHNN$544  sfC C C+CA C A* &CB& C& B4 0 C;CCCC  CrW)rXrYrZr[r )rrUr]rOrTs` @rtest_clear_executing_generator(ClearTest.test_clear_executing_generator|se c I   # #L2C D GGIE E Ds A00 A>c^^U4SjmU4Sjn/SQn/mU"S5 URTU5 /mU"S5 URTU5 g)Nc>[R"S5nTRURURR - 5 gNr)sys _getframeappendf_linenorKco_firstlineno)rOliness r record_line7ClearTest.test_lineno_with_tracing..record_lines0 a A LLAHH$;$;; T"5 U(aS[R"S5lT"5 T"5 g)NTr)rnrof_trace)tracerts rtest0ClearTest.test_lineno_with_tracing..tests& M+/ a ( M Mr)rFT assertEqual)rryexpected_linesrsrts @@rtest_lineno_with_tracing"ClearTest.test_lineno_with_tracingsL = # U  / T  /rcb[R"5 "SS5nU"5n[R"U5nUR US9nAUR SU"55 UR UR5 URSU"55 SSS5 g!,(df  g=f)Nc\rSrSrSrg))ClearTest.test_clear_refcycles..CrNr)rrrr/rsrr/r1) r disable_gcr3r4rr6r#r7r8r9s rtest_clear_refcyclesClearTest.test_clear_refcycless   !  AQB**q*/C   T24 (  ' '(9(9 : MM$ %" ! !s BB  B.rN)r|)r*r+r,r-__doc__rrr#r;rErPr^rdrirr cpython_onlyrr.rrrr r sS  "$* , $  00(  & &rr c,\rSrSrSrSrSrSrSrg)FrameAttrsTestcSnU"5 W$![aPnURn/nU(a0URUR5 URnU(aM0SnAU$SnAff=f)Nc&^SmSnU4SjnU"5$)Nr|c>TS-nSS- SngNrr rztrs rr8FrameAttrsTest.make_frames..outer..innerE!rryrrs @rr)FrameAttrsTest.make_frames..outerAA 7Nr)rr7rprr!)rrrr"framess r make_framesFrameAttrsTest.make_framessc  G ! BF bkk*ZZ"  s A(AA##A(cUR5upnUR5 UR5 URUR05 URUR05 gN)rr r~rLrrOrrs rr; FrameAttrsTest.test_clear_localssN**,%   , ,rcJUR5upnURUR05 URUR05 UR5 UR5 UR UR05 UR UR05 gr)rassertNotEqualrLr r~rs rtest_locals_clear_locals'FrameAttrsTest.test_locals_clear_localssv**,% ENNB/ ENNB/   , ,rcUR5un nUR[5 U?SSS5 g!,(df  g=fr)rrbAttributeErrorrq)rrO_s rtest_f_lineno_del_segfault)FrameAttrsTest.test_f_lineno_del_segfaults5""$1a   ~ . / . .s 6 ArN) r*r+r,r-rr;rrr.rrrrrs&--rrc\rSrSrSrSrSrg)ReprTestz Tests for repr(frame). c<SnURRnU"5 URS5 Wupgn[R"[[55n UR[U5SXS-4-5 UR[U5SXS-4-5 UR[U5SXS-4-5 g![aOnURn/nU(a0UR UR 5 URnU(aM0SnANSnAff=f) Nc&^SmSnU4SjnU"5$)Nr|rc>TS-nSS- Sngrrrs rr0ReprTest.test_repr..outer..innerrrrrs @rr!ReprTest.test_repr..outerrrzshould have raisedz=^$r z9^$z9^$r|) __code__rrfailrr7rprr!reescaperepr__file__ assertRegex) rroffsetrr"rf_thisf_outerf_inner file_reprs r test_reprReprTest.test_reprs .. , G II* +#) IId8n-  fY%{34 5 gU%z23 4 gU%z23 4#! BF bkk*ZZ" sC D ADDrN)r*r+r,r-rrr.rrrrrs  4rrc\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS r\R"S5rSrSrSrSrSrSrSrSrg)TestFrameLocalsi c^"SS5nTRURS5 TRURS5 U4SjnU"5 g)Nc\rSrSrSrS\R "5RS'S\R "5RS'Srg)%TestFrameLocals.test_scope..Ai rrrrrN) r*r+r,r-rrnrorLr.rrrAr s3A,-CMMO $ $S ),-CMMO $ $S )rrrc>SnS[R"5RS'S[R"5RS'TRUS5 TR[ 5SS5 g)Nrrrr)rnrorLr~locals)rrs rrO%TestFrameLocals.test_scope..fsZA,-CMMO $ $S ),-CMMO $ $S )   Q "   VXc]A .r)r~rr)rrrOs` r test_scopeTestFrameLocals.test_scope sC . . a  a  / rcx^^^SmSmUUU4SjnU"5 TRTS5 TRTS5 g)Nrrc>TT-n[R"5RnTRUSS5 TRUSS5 SUS'SUS'g)NrrrrrnrorLr~)rdrrrs rrO'TestFrameLocals.test_closure..f!sWAA ((A   QsVQ '   QsVQ 'AcFAcFrrr})rrOrrs` @@r test_closureTestFrameLocals.test_closures9     A Arc^U4Sj SmSVs/sH n[5PM nnURUSSS5 gs snf)Nc>T$rr)ksrHTestFrameLocals.test_closure_with_inline_comprehension...srrrrr)rr~)rrlsts ` r&test_closure_with_inline_comprehension6TestFrameLocals.test_closure_with_inline_comprehension-s> !$%Avx% Qa(&s=c SnSn[R"5RnUR[ U5S5 UR USU5 UR[ UR55[ /SQ55 UR[ UR55S5 URSUR55 UR[ UR55S5 URSUR55 URURS5S5 URSS5 URUSS5 URURS5S5 UR URSS5S5 URUR5S5 UR[ UVs/sHoDPM sn5[ /SQ55 URSU5 URUR!S55 UR[#U5[%[#UR5555 UR'S SS .5 URUSS 5 URUS S5 UR)[*5 UR'SS/5 SSS5 URUR-SS 5S 5 URUR-S S 5S 5 URUS S 5 UR)[.5 US SSS5 gs snf!,(df  N=f!,(df  g=f)Nrrr{r)rrrr)rrr non_existr)rrrr|new)rnrorLr~lenr8setkeysvaluesassertInitems __getitem__ __setitem__get__len__ assertTrue __contains__reversedlistupdaterb TypeError setdefaultKeyError)rrrrkeys r test_as_dictTestFrameLocals.test_as_dict3s   MMO $ $ Q# afa  QVVX,C(DE QXXZ!, a$ QWWY+ h * s+Q/ c1 3# sQ' aeeK.5 a( Q/QccQ/0#6M2NO c1 s+, !d8AFFH+=&>? qq!" 3# 3#   y ) HHaV * c1-q1 eQ/3 51%   x ( kN) (#0* )) (s M ;MM* M'* M8cSnSn[R"5RnURSUSS0-5 USS0-nUR USS5 USS0-nUR USS5 UR [ 5 US-nSSS5 UR [ 5 US/-nSSS5 g!,(df  N3=f!,(df  g=f)Nrrrrr)rnrorLrr~rbr)rrrrrs rtest_as_numberTestFrameLocals.test_as_numberYs   MMO $ $ c1Qx<( c1X  3# c1X  3#   y ) FA*   y )QCA* )* ) ) )sB;+C ; C  Ccv[R"5RnSUS'URUSS5 gNrrrrrs rtest_non_string_key#TestFrameLocals.test_non_string_keygs0 MMO $ $! 1q!rc ^U4SjnU"5 g)Nc>SVs/sH"n[R"5RPM$ snSnSUS'SUS'TRWS5 TRWS5 SnSngs snf)Nrrrbrr2r)rrLr2rs rrO1TestFrameLocals.test_write_with_hidden..fmsi:=>#Q 00#>qAHHSMHSM   Q "   Q "AA ?s)A(rrrOs` rtest_write_with_hidden&TestFrameLocals.test_write_with_hiddenls  rc[5nSR/SQ5n[R"5RnUSUS'UR US5 g)N.)arr2roza.b.c)objectjoinrnrorLr~)rr rrLs rtest_local_objects"TestFrameLocals.test_local_objectswsE H HH_ %==?++    G$rcSn[R"5RnUR5nUR U[ 5 UR USS5 SUS'UR US5 g)Nrrr)rnrorLcopyassertIsInstancedictr~)rrrd_copys r test_copyTestFrameLocals.test_copy~s`  MMO $ $ fd+ a(s  ArcSnU"5 g)Nc[R"5RnURU5 URU5 URU5 gr)rnrorLr)rLs rrO0TestFrameLocals.test_update_with_self..fs7}}//H OOH % OOH % OOH %rrrs rtest_update_with_self%TestFrameLocals.test_update_with_selfs & rcSn[R"5nUR[UR5[[ UR555 grm)rnror~rrLr)rrframes rrTestFrameLocals.test_reprs9   enn-tD4H/IJrcSn[R"5RnUR[S5 US SSS5 UR [5 UR S5 SSS5 UR[S5 US SSS5 UR [5 UR5 SSS5 UR [5 UR S5 SSS5 UR [5 UR SS5 SSS5 SUS'SUS'UR [5 UR S5 SSS5 US URUR S5S5 URSU5 URSU5 URUR SS5S5 g!,(df  GN=f!,(df  GNt=f!,(df  GNd=f!,(df  GNH=f!,(df  GN+=f!,(df  GN =f!,(df  N=f)Nrrzlocal variablesrmnr) rnrorLrZrrbpop ValueErrorrr r~ assertNotInrrrs r test_deleteTestFrameLocals.test_deletes  MMO $ $ # #Hk :+;  x ( EE+ ) # #J0A B#C  ~ . GGI/  z * EE#J+  z * EE#t +##   x ( EE+ ) cF sQ' a  a  sA*?; :) (C B/ .+ *+ *) (sSGG G**G<HH H2 G G'* G9< H  H H/2 Ic[R"5Rn[R"X[R "S55 g)NP)rnrorLr check_sizeof calcobjsize)rproxys r test_sizeofTestFrameLocals.test_sizeofs. ((T'*=*=c*BCrcZSn[R"5RnUR[5 [ R "U5 SSS5 UR[5 [ R "U5 SSS5 g!,(df  NC=f!,(df  g=frm)rnrorLrbrrdeepcopyr%s rtest_unsupportTestFrameLocals.test_unsupportsl  MMO $ $   y ) IIaL*  y ) MM! * )* )* )sB +B B B*cSn[R"5RnURU[5 Ua'S:a!S=bun UR US5 SnO SnUR US5 g)Nrmappingother)r)rnrorLrrr~)rrrvaluekinds rtest_is_mappingTestFrameLocals.test_is_mappingsf  MMO $ $ a)  *  y)rcT"SS[5n"SS5nU"S5U"5S4$)Nc\rSrSrSrg)6TestFrameLocals._x_stringlikes..StringSubclassirNr)rrrStringSubclassr<r0rr=c \rSrSrSrSrSrg)1TestFrameLocals._x_stringlikes..ImpostorXic[S5$Nr)hashrs r__hash__:TestFrameLocals._x_stringlikes..ImpostorX.__hash__s Cy rc US:H$rAr)rr5s r__eq__8TestFrameLocals._x_stringlikes..ImpostorX.__eq__s |#rrN)r*r+r,r-rDrGr.rrr ImpostorXr?s  ! $rrIr)str)rr=rIs r_x_stringlikesTestFrameLocals._x_stringlikess. S  $ $c"IK44rcSnUR5HnUR[U5RS9 U"U5up4n/SQnSSUS.nUR UR 5U5 UR XW5 UR X65 UR XG5 SSS5 M g!,(df  M=f)NcSn[R"5RnSX '[UR 55[ U5U4$Nrr)rnrorLrrrobjrr,s rrO?TestFrameLocals.test_proxy_key_stringlikes_overwrite..fsAAMMO,,EEJUZZ\"U  rclsrPrr)rKsubTesttyper*r~r)rrOrQ keys_snapshotproxy_snapshotr, expected_keys expected_dicts r$test_proxy_key_stringlikes_overwrite4TestFrameLocals.test_proxy_key_stringlikes_overwrites &&(C$s)"4"4578v4 u 5 (+!e D    >  6  ?  ?65)55s A)B// B> c^U4SjnTR5H6nTR[U5RS9 U"U5 SSS5 M8 g!,(df  MJ=f)Nct>[R"5RnSX'TRWS5 Sngrr)rQr,rrs rrOATestFrameLocals.test_proxy_key_stringlikes_ftrst_write..fs0MMO,,EEJ   Q "ArrS)rKrUrVr*)rrOrQs` r&test_proxy_key_stringlikes_ftrst_write6TestFrameLocals.test_proxy_key_stringlikes_ftrst_writesK  &&(C$s)"4"45#65)55s A A" c"SS[5n"SS5n[R"5RnU"S5U"54HrnUR [ U5R S9 UR[5 X4 SSS5 UR[5 SX4'SSS5 SSS5 Mt g!,(df  N==f!,(df  N,=f!,(df  M=f)Nc\rSrSrSrSrg)BTestFrameLocals.test_proxy_key_unhashables..StringSubclassiNrr*r+r,r-rDr.rrrr=rdHrr=c\rSrSrSrSrg)BTestFrameLocals.test_proxy_key_unhashables..ObjectSubclassiNrrerrrObjectSubclassrhrfrrirrSr) rJrnrorLrUrVr*rbr)rr=rir,rQs rtest_proxy_key_unhashables*TestFrameLocals.test_proxy_key_unhashabless S    ((!#&(88C$s)"4"45&&y1J2&&y1!"EJ2659111165s<-C!B?C!%C*C!? C C! C C!! C0 c[[S5Vs/sH"n[R"5RPM$ snS5nUR UR S5 SnU"U"55nUR USSS.5 UR[5 U"5 SSS5 UR[5 U"S5 SSS5 UR[5 U"[R"5S9 SSS5 gs snf!,(df  Nq=f!,(df  N\=f!,(df  g=f) NrrFrameLocalsProxyc4SnSn[R"5$rOrnrorrs r make_frame4TestFrameLocals.test_constructor..make_framesAA==? "rrrp{)r) rVrangernrorLr~r*rbr)rrrmrqr,s rtest_constructor TestFrameLocals.test_constructors*/(!4*2Q"%!9!9*2!445!78 )224FG # !. aa 01  y )  *   y ) S !*   y ) 3==? 3* )#!4* ) ) ) ) )s))D D D 'D1 D D.1 D?rN)r*r+r,r-rrrrrrrrrrrr&rrr-r1r8rKr[r`rjrur.rrrrr s " ) $L "  % K $+L DD * 5@, # 4rrc\rSrSrSrSr\r\R"SS5S5r \R"SS5S5r \R"SS 5S 5r \R"SS 5S 5r \R"SS 5S5r \R"SS5S5rSr\R"SS5S5rSr\R"SS5S5rSrg)FrameLocalsProxyMappingTestsi)zCTest that FrameLocalsProxy behaves like a Mapping (with exceptions)cSnU"5$)Nc@[R"5R$r)rnrorLrrr_f+FrameLocalsProxyMappingTests._f.._f-s==?++ +rr)argsrr{s rr{FrameLocalsProxyMappingTests._f,s ,t rTz:Locals proxies for different frames never compare as equalcgrrrCs rru-FrameLocalsProxyMappingTests.test_constructor2 rz&Unlike a mapping: del proxy[key] failscgrrrCs r test_write'FrameLocalsProxyMappingTests.test_write6rrz"Unlike a mapping: no proxy.popitemcgrrrCs r test_popitem)FrameLocalsProxyMappingTests.test_popitem:rrzUnlike a mapping: no proxy.popcgrrrCs rtest_pop%FrameLocalsProxyMappingTests.test_pop>rrz Unlike a mapping: no proxy.clearcgrrrCs r test_clear'FrameLocalsProxyMappingTests.test_clearBrrz#Unlike a mapping: no proxy.fromkeyscgrrrCs r test_fromkeys*FrameLocalsProxyMappingTests.test_fromkeysFrrc&[RRU5 URSSS.5nUR USS5 UR USS5 SUS'SUS'UR USS5 UR USS5 g) Nrr)r rr rrr2r{)r BasicTestMappingProtocol test_getitem _full_mappingr~rs rr)FrameLocalsProxyMappingTests.test_getitemKs..;;DA   QQ/ 0 3# 3### 3# 3#rz!Unlike a mapping: no proxy.updatecgrrrCs r test_update(FrameLocalsProxyMappingTests.test_updateUrrc`URSSSS.5nURUR5SSSS.5 UR5nURUR5U5 UR [ URS5 UR UR5[5 g)Nrrr)rrr)rr~r_empty_mappingrbrrrrs rr&FrameLocalsProxyMappingTests.test_copyZs   !qA / a1?3    ! 1% )QVVT2 affh-rcgrrrCs rtest_eq$FrameLocalsProxyMappingTests.test_eqcrrrN)r*r+r,r-rr{ type2testunittestskipIfrurrrrrrrrrr.rrrrxrx)sMI __TWX Y __TCD E __T?@ A __T;< = __T=> ? __T@A B $__T>? @ .__TWX Y rrxc\rSrSrSrSrg) TestFrameCApiihcSn[R"S5nURRnURUlU"5nUR [U5[5 URUSS5 SUS'URUS5 URRnURUlU"5nUR [U5[5 URU[55 URRnURUlU"5nURU[5 URRn UR/U lURU l["R$"5n U "U 5n UR U SS5 SU S'URUS5 g)Nrctypesrr)r import_module pythonapiPyEval_GetFrameLocals py_objectrestyperrVrr~PyEval_GetFrameGlobalsr8globalsPyEval_GetFrameBuiltins __builtins__PyFrame_GetLocalsargtypesrnro) rrrr frame_localsr frame_globalsrframe_builtinsrrrLs r test_basicTestFrameCApi.test_basicisz ,,X6 & 0 0 F F(.(8(8%,.  \*D1 c*A. S A!'!1!1!H!H)/)9)9&.0  ]+T2 mWY/"("2"2"J"J*0*:*:'02 6",,>>&,&6&6%7"$*$4$4! $U+  q)  ArrN)r*r+r,r-rr.rrrrrhsrrcl\rSrSrSr\R \R"5S55r Sr Sr g)TestIncompleteFrameAreInvisibleicZ[R"S[<S35n[SU5 g)Nz import gc gc.set_threshold(1,1,1) class GCHello: def __del__(self): print("Destroyed from gc") def gen(): yield fd = open(zy) l = [fd, GCHello()] l.append(l) del fd del l gen() z-c)textwrapdedentrr)rcodes rtest_issue95818/TestIncompleteFrameAreInvisible.test_issue95818s2 $ l#   $ t$rcX^^"U4SjS5m"U4SjS[R5nSmU"5nUR5 UR5 UR T5 TbBUR TR URR5 TRmTbMAgg)Nc">\rSrSrU4SjrSrg)TTestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardown..SneakyDelic0>[R"5mg)z Stash a reference to the entire stack for walking later. It may look crazy, but you'd be surprised how common this is when using a test runner (like pytest). The typical recipe is: ResourceWarning + -Werror + a custom sys.unraisablehook. Nro)rsneaky_frame_objects r__del__\TestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardown..SneakyDel.__del__s'*mmo#rrN)r*r+r,r-rr.)rsr SneakyDelrs  6 6rrc&>\rSrSrSrU4SjrSrg)WTestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardown..SneakyThreadiz A separate thread isn't needed to make this code crash, but it does make crashes more consistent, since it means sneaky_frame_object is backed by freed memory after the thread completes! c>T"5ng)z.Run SneakyDel.__del__ as this frame is popped.Nr)rr4rs rrun[TestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardown..SneakyThread.runs krrN)r*r+r,r-rrr.)rsr SneakyThreadrs   " "rr) threadingThreadstartr rCr6rKrrrc)rrrrrs @@r!test_sneaky_frame_object_teardownATestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardowns 6 6 "9++ "# N    01!-   #**L,<,<,E,E #6"<"<  "-rc0^"SS5mU4Sjn[R"5n[R"U5nUR UR R [5 SSS5 URW"55 g!,(df  N%=f)Nc\rSrSrSrSrg)ZTestIncompleteFrameAreInvisible.test_entry_frames_are_invisible_during_teardown..CizA weakref'able class.rN)r*r+r,r-rr.rrrr/rs 'rr/cH>T"5n[R"U[5$)z>Try to find globals and locals as this frame is being cleared.)r3r4exec)r4r/s rrOZTestIncompleteFrameAreInvisible.test_entry_frames_are_invisible_during_teardown..fs#C ;;sD) )r) rcatch_unraisable_exceptionoperatorcallr8 unraisableexc_typerrD)rrOcatcherweakr/s @r/test_entry_frames_are_invisible_during_teardownOTestIncompleteFrameAreInvisible.test_entry_frames_are_invisible_during_teardownsj ( ( * / / 1W==#D MM',,55y A 2 $&! 2 1s AB BrN) r*r+r,r-rrrrrequires_working_threadingrrr.rrrrrs8%, 002%=3%=N"rrzneed _testcapic8\rSrSrSrSrSrSrSrSr Sr g ) TestCAPIic,[R"5$rrorCs rgetframeTestCAPI.getframes}}rcUR5nURUR[R"U55 UR UR [R"U55 UR UR[R"U55 URUR[R"U55 gr) rr~rL _testcapiframe_getlocalsr8rNframe_getglobalsrMframe_getbuiltinsf_lastiframe_getlasti)rrs rtest_frame_gettersTestCAPI.test_frame_getterss  )B)B5)IJ eooy'A'A%'HI e&& (C(CE(JK  (@(@(GHrc[R"5nSnUR[R"US5S5 UR[R "US5S5 UR [5 [R"US5 SSS5 UR [5 [R "US5 SSS5 UR [5 [R"US5 SSS5 UR [5 [R"US5 SSS5 g!,(df  N=f!,(df  N=f!,(df  Nf=f!,(df  g=f)Nrrxryrs) rnror~r frame_getvarframe_getvarstringrb NameErrorr)r current_framers r test_getvarTestCAPI.test_getvars   // sCQG 55mTJAN   y )  " "=# 6*   y )  ( ( =*  y )  " "=$ 7*   y )  " "=# 6* )* ) ) )* ) ) )s0;D;0E %EE.; E  E E+. E<c#:# [R"5v g7frrorCs r getgenframeTestCAPI.getgenframesmmoscUR5n[U5nURU[R"U55 gr)rrXr8rframe_getgenerator)rr]rs rtest_frame_get_generator!TestCAPI.test_frame_get_generators2 S  c977>?rcSn[R"UR[5[ 55nUR UR 5 g)zrTest that accessing `f_back` does not cause a segmentation fault on a frame created with `PyFrame_New` (GH-99110).cgrrrrrdummy,TestCAPI.test_frame_fback_api..dummys rN)r frame_newrrrrDrc)rrrs rtest_frame_fback_apiTestCAPI.test_frame_fback_apis7 ##ENNGIvxH %,,'rrN) r*r+r,r-rrrrrrr.rrrrrs"I7 @ (rr__main__)$rgcrrrnrrtypesrr3r ImportErrorcollections.abcrryr test.supportrrrtest.support.script_helperrr TestCaser rrrTestHashMappingProtocolrxrrrrr*mainrrrrs,   $II7]&!!]&@*X&&*Z%4x  %4N[4h''[4|< =#H#H< ~H%%BS"h&7&7S"j d"$45+(x  +(6+(Z z MMOIsD))D54D5