+
    Bi\                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt ^ RIt^ RI
Ht ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt  ! R R]P(                  4      t ! R	 R
]P(                  4      t ! R R]P(                  4      t ! R R]P(                  4      t ! R R]P2                  4      t ! R R]P(                  4      t ! R R]P(                  4      t]R8X  d   ]P<                  ! 4        R# R#   ]	 d    Rt Li ; i)    N)Mapping)support)import_helperthreading_helper)assert_python_ok)mapping_testsc                      a  ] tR t^t o RR ltR tR tR tR tR t	R t
R tR	 tR
 t]P                  R 4       tRtV tR# )	ClearTestc                    ^^ ,           R#    N )selfxkwargss   &&,&/usr/lib/python3.14/test/test_frame.pyinnerClearTest.inner   s    	!    c                b     V P                   ! R/ VB  X#   \         d   pTp R p?T# R p?ii ; i)Nr   )r   ZeroDivisionError)r   r   eexcs   &,  r   outerClearTest.outer   s9    	JJ   
 ! 	C
	s    .).c                ^    Ve)   VP                   P                  4        VP                  pK,  R # N)tb_framecleartb_next)r   tbs   &&r   clear_traceback_frames ClearTest.clear_traceback_frames$   s'     nKKB r   c                `    ! R  R4      pV! 4       p\         P                  ! V4      pV P                  VR7      p?\        P                  ! 4        V P                  RV! 4       4       V P                  VP                  4       \        P                  ! 4        V P                  RV! 4       4       R# )c                       ] tR t^-tRtR# )&ClearTest.test_clear_locals.<locals>.Cr   N__name__
__module____qualname____firstlineno____static_attributes__r   r   r   Cr&   -       r   r-   cN)	weakrefrefr   r   
gc_collectassertIsNotr"   __traceback__assertIsr   r-   r0   wrr   s   &    r   test_clear_localsClearTest.test_clear_locals,   s    	 	C[[^jj1jort$##C$5$56dBD!r   c                z  aa  ! R  R4      oRoVV3R lp V! 4        R#   \          d   p\        P                  ! 4        T P                  S! 4       4       TP                  P
                  P                  P                  4        \        P                  ! 4        T P                  S! 4       4        Rp?R# Rp?ii ; i)c                       ] tR t^=tRtR# )<ClearTest.test_clear_locals_after_f_locals_access.<locals>.Cr   Nr'   r   r   r   r-   r=   =   r.   r   r-   Nc                  T   < S! 4       p \         P                  ! V 4      o^^ ,           R# r   )r1   r2   )r0   r-   r8   s    r   r   @ClearTest.test_clear_locals_after_f_locals_access.<locals>.innerA   s     AQBaCCr   )	r   r   r3   assertIsNotNoner5   r    r   r   assertIsNone)r   r   r   r-   r8   s   &  @@r   'test_clear_locals_after_f_locals_access1ClearTest.test_clear_locals_after_f_locals_access;   s    	 	 		$G  	$   &%%..446 bd##	$s     B:BB55B:c                z    ! R  R4      pV! 4       pV P                  VR7      p?VP                  P                  pVP                  4        V P	                  VP
                  R4       V P	                  VP                  R4       V P	                  VP                  R4       V P	                  VP                  R4       R# )c                       ] tR t^QtRtR# )7ClearTest.test_clear_does_not_clear_specials.<locals>.Cr   Nr'   r   r   r   r-   rF   Q   r.   r   r-   r/   N)	r   r5   r   r   r4   f_codef_locals
f_builtins	f_globals)r   r-   r0   r   fs   &    r   "test_clear_does_not_clear_specials,ClearTest.test_clear_does_not_clear_specialsP   s    	 	Cjj1jo&&		4(T*t,d+r   c                ,  a a R oVV 3R lpV! 4       p\        V4       S P                  S4       S P                  \        R4      ;_uu_ 4        VP                  P                  4        RRR4       S P                  S4       R#   + '       g   i     L#; i)Fc               3   L   <"    R x  SP                  4        Ro R #   Ro i ; i5i)NT)r   )endlyr   s   r   g)ClearTest.test_clear_generator.<locals>.g_   s!     

s   $ $!$suspended frameN)nextassertFalseassertRaisesRegexRuntimeErrorgi_framer   )r   rQ   genrP   s   f  @r   test_clear_generatorClearTest.test_clear_generator]   so    	 cS	 ##L2DEELL  F FEs   BB	c                    ^^ ,           V P                  \        4      ;_uu_ 4        XP                  4        RRR4       V P                  \        4      ;_uu_ 4        XP                  P                  4        RRR4       R#   \          d!   pTP                  P                  p Rp?LRp?ii ; i  + '       g   i     L; i  + '       g   i     R# ; ir   r   r5   r   assertRaisesrW   r   f_back)r   r   rK   s   &  r   test_clear_executingClearTest.test_clear_executingo   s    	)aC |,,GGI -|,,HHNN -,	 ! 	)((A	),,,,,s.   	B B1CB.B))B.1C	C	c                  a a R oVV 3R lpV! 4       p\        V4      pS P                  S4       S P                  \        R4      ;_uu_ 4        VP	                  4        RRR4       S P                  S4       R#   + '       g   i     L#; i)Fc               3     <"    ^^ ,           RoR#   \          d   p T P                  P                  pSP                  \        4      ;_uu_ 4        TP                  4        RRR4       M  + '       g   i     M; iSP                  \        4      ;_uu_ 4        TP                  P                  4        RRR4       M  + '       g   i     M; iTx   Rp ? LRp ? ii ; i  Roi ; i5i)r   NTr]   )r   rK   rP   r   s     r   rQ   3ClearTest.test_clear_executing_generator.<locals>.g}   s     
!  % OO,,&&|44GGI 5444&&|44HHNN$ 5444 sf   C)	 C)C3CA*!	C*A:5%CB>5	C>C	CC" CC" "C&&C)rS   N)rT   rU   rV   rW   r   )r   rQ   rY   rK   rP   s   f   @r   test_clear_executing_generator(ClearTest.test_clear_executing_generatorz   sh    	 cI##L2CDDGGI E EDs   A99B		c                   aa V3R  loV3R lp. ROp. oV! R4       V P                  SV4       . oV! R4       V P                  SV4       R# )c                     < \         P                  ! ^4      p SP                  V P                  V P                  P
                  ,
          4       R# r   )sys	_getframeappendf_linenorG   co_firstlineno)rK   liness    r   record_line7ClearTest.test_lineno_with_tracing.<locals>.record_line   s0    a ALLAHH$;$;;<r   c                 x   < S! 4        V '       d   R \         P                  ! ^ 4      n        S! 4        S! 4        R# )TN)ri   rj   f_trace)tracero   s   &r   test0ClearTest.test_lineno_with_tracing.<locals>.test   s&    M+/a (MMr   FTN)r         assertEqual)r   rt   expected_linesrn   ro   s   &  @@r   test_lineno_with_tracing"ClearTest.test_lineno_with_tracing   sL    	=	 #U/T
/r   c                   \         P                  ! 4       ;_uu_ 4         ! R  R4      pV! 4       p\        P                  ! V4      pV P	                  VR7      p?V P                  RV! 4       4       V P                  VP                  4       V P                  RV! 4       4       RRR4       R#   + '       g   i     R# ; i)c                       ] tR t^tRtR# ))ClearTest.test_clear_refcycles.<locals>.Cr   Nr'   r   r   r   r-   r      s    r   r-   r/   N)	r   
disable_gcr1   r2   r   r4   r"   r5   r6   r7   s   &    r   test_clear_refcyclesClearTest.test_clear_refcycles   s     !! AQB**q*/CT24(''(9(9:MM$% "!!!s   BB,,B=	r   N)rw   )r(   r)   r*   r+   r   r   r"   r9   rB   rL   rZ   r`   re   r{   r   cpython_onlyr   r,   __classdictcell____classdict__s   @r   r
   r
      sQ     
"$*, $	 00( & &r   r
   c                   >   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )FrameAttrsTestc                    R  p V! 4        X#   \          dK   pTP                  p. pT'       d*   TP                  TP                  4       TP                  pK1   Rp?T# Rp?ii ; i)c                  &   a ^o^p V3R lpV! 4       # )rw   c                  0   < S^,           p ^^ ,           ^	pR#    Nr   ztr   s     r   r   8FrameAttrsTest.make_frames.<locals>.outer.<locals>.inner       E!r   r   yr   r   s     @r   r   )FrameAttrsTest.make_frames.<locals>.outer       AA 7Nr   N)r   r5   rk   r   r    )r   r   r   r!   framess   &    r   make_framesFrameAttrsTest.make_frames   s`    		 G  ! 	 BFbkk*ZZ  	 s    A#A)AA#c                    V P                  4       w  rpVP                  4        VP                  4        V P                  VP                  / 4       V P                  VP                  / 4       R # r   )r   r   ry   rH   r   rK   r   r   s   &   r   r9    FrameAttrsTest.test_clear_locals   sN    **,%,,r   c                L   V P                  4       w  rpV P                  VP                  / 4       V P                  VP                  / 4       VP                  4        VP                  4        V P	                  VP                  / 4       V P	                  VP                  / 4       R # r   )r   assertNotEqualrH   r   ry   r   s   &   r   test_locals_clear_locals'FrameAttrsTest.test_locals_clear_locals   sv    **,%ENNB/ENNB/,,r   c                    V P                  4       w  p pV P                  \        4      ;_uu_ 4        V=R R R 4       R #   + '       g   i     R # ; ir   )r   r^   AttributeErrorrl   )r   rK   _s   &  r   test_f_lineno_del_segfault)FrameAttrsTest.test_f_lineno_del_segfault   s;    ""$1a~..
 /...s	   ?A	c                   R  pR pR pR pV P                  V! 4       4       V P                  V! 4       4       V! 4       p \        V4      pV P                  WV4       VP                  4        V! 4       p VP	                  R4       \        R4      h  TP                  4        i ; i  \         d(   pT P                  TP                  T4        Rp?R# Rp?ii ; i)c                     a R  oV3R lp V ! 4       p \        V4      VP                  4        #   TP                  4        i ; i)c                  D    \         P                  ! 4       p V P                  # r   ri   rj   f_generatorframes    r   nested;FrameAttrsTest.test_f_generator.<locals>.t0.<locals>.nested   s    (((r   c               3   "   <"   S ! 4       x  R # 5ir   r   )r   s   r   rY   8FrameAttrsTest.test_f_generator.<locals>.t0.<locals>.gen   s     hs   )rT   close)rY   rQ   r   s     @r   t0+FrameAttrsTest.test_f_generator.<locals>.t0   s5    ) AAw		s	   
. A c                  D    \         P                  ! 4       p V P                  # r   r   r   s    r   t1+FrameAttrsTest.test_f_generator.<locals>.t1   s    MMOE$$$r   c               3   T   "   \         P                  ! 4       p V P                  x  R # 5ir   r   r   s    r   t2+FrameAttrsTest.test_f_generator.<locals>.t2   s     MMOE###s   &(c                  L   "   \         P                  ! 4       p V P                  # 5ir   r   r   s    r   t3+FrameAttrsTest.test_f_generator.<locals>.t3   s     MMOE$$$s   "$Nzcoroutine did not exit)rA   rT   r6   r   sendAssertionErrorStopIterationvalue)	r   r   r   r   r   rQ   frame_gr0   exs	   &        r   test_f_generatorFrameAttrsTest.test_f_generator   s    		%	$	%
 	"$"$ D	1gGMM!%GGI D	;FF4L !!9:: GGI  	'MM"((A&&	's$   B 5B& B#&C1CCr   N)r(   r)   r*   r+   r   r9   r   r   r   r,   r   r   s   @r   r   r      s#     &--
0; 0;r   r   c                   &   a  ] tR tRt o R tRtV tR# )ReprTesti  c                d   R  pVP                   P                  p V! 4        V P                  R4       Xw  rgp\        P                  ! \        \        4      4      p	V P                  \        V4      RW^,           3,          4       V P                  \        V4      RW^,           3,          4       V P                  \        V4      RW^,           3,          4       R#   \         dJ   pTP                  p. pT'       d*   TP                  TP                  4       TP                  pK1   Rp?LRp?ii ; i)c                  &   a ^o^p V3R lpV! 4       # )rw   c                  0   < S^,           p ^^ ,           ^	pR# r   r   r   s     r   r   0ReprTest.test_repr.<locals>.outer.<locals>.inner  r   r   r   r   s     @r   r   !ReprTest.test_repr.<locals>.outer  r   r   zshould have raisedNz=^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code test_repr>$z9^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code outer>$z9^<frame at 0x[0-9a-fA-F]+, file %s, line %d, code inner>$)__code__rm   failr   r5   rk   r   r    reescaperepr__file__assertRegex)
r   r   offsetr   r!   r   f_thisf_outerf_inner	file_reprs
   &         r   	test_reprReprTest.test_repr  s   	 ..		,G II*+#) IId8n-	fY%{34	5 	gU%z23	4 	gU%z23	4# ! 	 BFbkk*ZZ 	 s   C D/&D*<)D**D/r   N)r(   r)   r*   r+   r   r,   r   r   s   @r   r   r     s     
 4  4r   r   c                      a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR t]P"                  R 4       tR tR tR tR tR tR tR tR tRtV tR# )TestFrameLocalsi;  c                   a   ! R  R4      pS P                  VP                  ^4       S P                  VP                  ^4       V 3R lpV! 4        R# )c                       ] tR tRt^t^]P                  ! 4       P                  R&   ^]P                  ! 4       P                  R&   RtR# )%TestFrameLocals.test_scope.<locals>.Ai=  r   r   r   N)	r(   r)   r*   r+   r   ri   rj   rH   r,   r   r   r   Ar   =  s3    A,-CMMO$$S),-CMMO$$S)r   r   c                     < ^p ^\         P                  ! 4       P                  R&   ^\         P                  ! 4       P                  R&   SP                  V ^4       SP                  \	        4       R,          ^4       R# )r   r   r   N)ri   rj   rH   ry   locals)r   r   s    r   rK   %TestFrameLocals.test_scope.<locals>.fE  sZ    A,-CMMO$$S),-CMMO$$S)Q"VXc]A.r   N)ry   r   r   )r   r   rK   s   f  r   
test_scopeTestFrameLocals.test_scope<  sC    	. 	.
 	a a 	/ 	
r   c                z   a aa ^o^oV VV3R lpV! 4        S P                  S^4       S P                  S^4       R# )r   c                     < SS,           p \         P                  ! 4       P                  pSP                  VR ,          ^4       SP                  VR,          ^4       ^VR &   ^VR&   R# )r   r   Nri   rj   rH   ry   )r   dr   r   r   s     r   rK   'TestFrameLocals.test_closure.<locals>.fQ  sW    AA((AQsVQ'QsVQ'AcFAcFr   Nrx   )r   rK   r   r   s   f @@r   test_closureTestFrameLocals.test_closureM  s9    	 	
AAr   c                   a V3R  l ^oR Uu. uF  p\        4       NK  	  ppV P                  V^ ,          R,          ^ 4       R# u upi )c                     < S # r   r   )ks   r   <lambda>HTestFrameLocals.test_closure_with_inline_comprehension.<locals>.<lambda>^  s    r   r   Nr   )r   ry   )r   r   lsts   &` r   &test_closure_with_inline_comprehension6TestFrameLocals.test_closure_with_inline_comprehension]  s>    !$%Avx%Qa( &s   Ac           	     R   ^p^p\         P                  ! 4       P                  pV P                  \	        V4      ^4       V P                  VR,          V4       V P                  \        VP                  4       4      \        . RO4      4       V P                  \	        VP                  4       4      ^4       V P                  ^VP                  4       4       V P                  \	        VP                  4       4      ^4       V P                  RVP                  4       4       V P                  VP                  R4      ^4       VP                  R^4       V P                  VR,          ^4       V P                  VP                  R4      ^4       V P                  VP                  RR4      R4       V P                  VP                  4       ^4       T P                  \        V Uu. uF  qDNK  	  up4      \        . RO4      4       V P                  RV4       V P                  VP!                  R4      4       V P                  \#        V4      \%        \#        VP                  4       4      4      4       VP'                  R^R^/4       V P                  VR,          ^4       V P                  VR,          ^4       V P)                  \*        4      ;_uu_ 4        VP'                  ^^.4       RRR4       V P                  VP-                  R^4      ^4       V P                  VP-                  R^4      ^4       V P                  VR,          ^4       V P)                  \.        4      ;_uu_ 4        VR,           RRR4       R# u upi   + '       g   i     L; i  + '       g   i     R# ; i)	r   r   r   	non_existNr   new)r   r   r   r   )r   r   )ri   rj   rH   ry   lenr6   setkeysvaluesassertInitems__getitem____setitem__get__len__
assertTrue__contains__reversedlistupdater^   	TypeError
setdefaultKeyError)r   r   r   r   keys   &    r   test_as_dictTestFrameLocals.test_as_dictc  s   MMO$$Q#afa QVVX,C(DEQXXZ!,a$QWWY+h	*s+Q/	c13#sQ'aeeK.5a(Q/QccQ/0#6M2NOc1s+,!d8AFFH+=&>?	#q#q!"3#3#y))HHaV * 	c1-q1eQ/351%x((kN )(# 0 *) )((s   !
M=N)
NN	N&	c                   ^p^p\         P                  ! 4       P                  pV P                  RVR^/,          4       VR^/,          pV P	                  VR,          ^4       VR^/,          pV P	                  VR,          ^4       V P                  \        4      ;_uu_ 4        V^,          pRRR4       V P                  \        4      ;_uu_ 4        V^.,          pRRR4       R#   + '       g   i     LB; i  + '       g   i     R# ; i)r   r   r   N)ri   rj   rH   r   ry   r^   r  )r   r   r   r   r   s   &    r   test_as_numberTestFrameLocals.test_as_number  s    MMO$$c1Qx<(	c1X3#	c1X3#y))FA *y))QCA *) *))))s   $
C(C;(C8	;D	c                    \         P                  ! 4       P                  p^V^&   V P                  V^,          ^4       R# r   r   r   r   s   & r   test_non_string_key#TestFrameLocals.test_non_string_key  s0    MMO$$!1q!r   c                "   a  V 3R  lpV! 4        R# )c                     < R U u. uF"  p \         P                  ! 4       P                  NK$  	  up ^ ,          p^VR&   ^VR&   SP                  X ^4       SP                  X^4       ^ p ^ pR# u up i )r   br0   Nr   r   )r  rH   r0   r   s      r   rK   1TestFrameLocals.test_write_with_hidden.<locals>.f  si    :=>#Q00#>qAHHSMHSMQ"Q"AA ?s   (A,Nr   r   rK   s   f r   test_write_with_hidden&TestFrameLocals.test_write_with_hidden  s    	 	
r   c                    \        4       pR P                  . RO4      p\        P                  ! 4       P                  pVR,          VR&   V P                  VR4       R# ).r   oza.b.cN)ar  r0   )objectjoinri   rj   rH   ry   )r   r  r   rH   s   &   r   test_local_objects"TestFrameLocals.test_local_objects  sE    HHH_%==?++ G$r   c                    ^ p\         P                  ! 4       P                  pVP                  4       pV P	                  V\
        4       V P                  VR,          ^ 4       ^VR&   V P                  V^ 4       R# )r   r   N)ri   rj   rH   copyassertIsInstancedictry   )r   r   r   d_copys   &   r   	test_copyTestFrameLocals.test_copy  s`    MMO$$fd+a(sAr   c                    R  pV! 4        R# )c                      \         P                  ! 4       P                  p V P                  V 4       V P                  V 4       V P                  V 4       R # r   )ri   rj   rH   r  )rH   s    r   rK   0TestFrameLocals.test_update_with_self.<locals>.f  s7    }}//HOOH%OOH%OOH%r   Nr   r  s   & r   test_update_with_self%TestFrameLocals.test_update_with_self  s    	&
 	
r   c                    ^p\         P                  ! 4       pV P                  \        VP                  4      \        \        VP                  4      4      4       R# r   )ri   rj   ry   r   rH   r&  )r   r   r   s   &  r   r   TestFrameLocals.test_repr  s9    enn-tD4H/IJr   c                   ^p\         P                  ! 4       P                  pV P                  \        R4      ;_uu_ 4        VR RRR4       V P                  \        4      ;_uu_ 4        VP                  R4       RRR4       V P                  \        R4      ;_uu_ 4        VR RRR4       V P                  \        4      ;_uu_ 4        VP                  4        RRR4       V P                  \        4      ;_uu_ 4        VP                  R4       RRR4       V P                  \        4      ;_uu_ 4        VP                  RR4       RRR4       ^VR&   ^VR&   V P                  \        4      ;_uu_ 4        VP                  R4       RRR4       VR V P                  VP                  R4      ^4       V P                  RV4       V P                  RV4       V P                  VP                  R^4      ^4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELi; i  + '       g   i     ELF; i  + '       g   i     EL"; i  + '       g   i     L; i)r   r   Nzlocal variablesr   mn)ri   rj   rH   rV   r	  r^   pop
ValueErrorr   r   ry   assertNotInr   r   r   s   &  r   test_deleteTestFrameLocals.test_delete  s   MMO$$ ##Hk::+ ; x((EE+ ) ##J0ABB# C ~..GGI / z**EE#J + z**EE#t + ##x((EE+ ) cFsQ'a a sA*? ;:: )(( CBB /.. +** +** )(sT    G?)H!H'
H; I7I#9I7?H	H$	'H8	;I	I 	#I4	7J	c                    \         P                  ! 4       P                  p\        P                  ! W\        P
                  ! R 4      4       R# )PN)ri   rj   rH   r   check_sizeofcalcobjsize)r   proxys   & r   test_sizeofTestFrameLocals.test_sizeof  s.    ((T'*=*=c*BCr   c                   ^p\         P                  ! 4       P                  pV P                  \        4      ;_uu_ 4        \
        P
                  ! V4       RRR4       V P                  \        4      ;_uu_ 4        \
        P                  ! V4       RRR4       R#   + '       g   i     LN; i  + '       g   i     R# ; ir   )ri   rj   rH   r^   r  r$  deepcopyr7  s   &  r   test_unsupportTestFrameLocals.test_unsupport  su    MMO$$y))IIaL * y))MM! *) *) *))s   B;B/B,	/C 	c                    ^p\         P                  ! 4       P                  pV P                  V\        4       T d*    ^8  d#   R ;e   w  p  V P                  V^4       RpM    RpV P                  VR4       R# )r   Nmappingotherr   )ri   rj   rH   r%  r   ry   )r   r   r   r   kinds   &    r   test_is_mappingTestFrameLocals.test_is_mapping  sf    MMO$$a)  *   y)r   c                T     ! R  R\         4      p ! R R4      pV! R4      V! 4       R3# )c                       ] tR tRtRtR# )6TestFrameLocals._x_stringlikes.<locals>.StringSubclassi  r   Nr'   r   r   r   StringSubclassrN    r.   r   rO  c                   ,   a  ] tR tRt o R tR tRtV tR# )1TestFrameLocals._x_stringlikes.<locals>.ImpostorXi	  c                    \        R 4      # rH  )hashr   s   &r   __hash__:TestFrameLocals._x_stringlikes.<locals>.ImpostorX.__hash__
  s    Cy r   c                    VR 8H  # rH  r   )r   rG  s   &&r   __eq__8TestFrameLocals._x_stringlikes.<locals>.ImpostorX.__eq__  s    |#r   r   N)r(   r)   r*   r+   rU  rX  r,   r   r   s   @r   	ImpostorXrQ  	  s     !$ $r   rZ  r   )str)r   rO  rZ  s   &  r   _x_stringlikesTestFrameLocals._x_stringlikes  s.    	S 		$ 	$ c"IK44r   c           	        R  pV P                  4        F  pV P                  \        V4      P                  R7      ;_uu_ 4        V! V4      w  r4p. ROpRRR^RV/pV P	                  VP                  4       V4       V P	                  WW4       V P	                  W64       V P	                  WG4       RRR4       K  	  R#   + '       g   i     K  ; i)c                     ^p\         P                  ! 4       P                  p^W &   \        VP	                  4       4      \        V4      V3# r   )ri   rj   rH   r  r   r&  objr   r>  s   &  r   rK   ?TestFrameLocals.test_proxy_key_stringlikes_overwrite.<locals>.f  sA    AMMO,,EEJUZZ\"U r   clsrb  r   r>  Nra  )r\  subTesttyper(   ry   r   )r   rK   rb  keys_snapshotproxy_snapshotr>  expected_keysexpected_dicts   &       r   $test_proxy_key_stringlikes_overwrite4TestFrameLocals.test_proxy_key_stringlikes_overwrite  s    	 &&(C$s)"4"45578v4u 5!&S!We D  >  6  ?  ? 65 )555s   A+B==Cc                   a  V 3R  lpS P                  4        FA  pS P                  \        V4      P                  R7      ;_uu_ 4        V! V4       RRR4       KC  	  R#   + '       g   i     KX  ; i)c                 v   < \         P                  ! 4       P                  p^W&   SP                  X^4       ^pR# r   r   )rb  r>  r   r   s   &  r   rK   ATestFrameLocals.test_proxy_key_stringlikes_ftrst_write.<locals>.f)  s0    MMO,,EEJQ"Ar   rd  N)r\  rf  rg  r(   )r   rK   rb  s   f  r   &test_proxy_key_stringlikes_ftrst_write6TestFrameLocals.test_proxy_key_stringlikes_ftrst_write(  sQ    	 &&(C$s)"4"455# 65 )555s   	AA0c           
     2    ! R  R\         4      p ! R R4      p\        P                  ! 4       P                  pV! R4      V! 4       3 F  pV P	                  \        V4      P                  R7      ;_uu_ 4        V P                  \        4      ;_uu_ 4        W4,           RRR4       V P                  \        4      ;_uu_ 4        ^ W4&   RRR4       RRR4       K  	  R#   + '       g   i     LH; i  + '       g   i     L1; i  + '       g   i     K  ; i)c                       ] tR tRtRtRtR# )BTestFrameLocals.test_proxy_key_unhashables.<locals>.StringSubclassi4  Nr   r(   r)   r*   r+   rU  r,   r   r   r   rO  ru  4      Hr   rO  c                       ] tR tRtRtRtR# )BTestFrameLocals.test_proxy_key_unhashables.<locals>.ObjectSubclassi7  Nr   rv  r   r   r   ObjectSubclassry  7  rw  r   rz  r   rd  N)	r[  ri   rj   rH   rf  rg  r(   r^   r  )r   rO  rz  r>  rb  s   &    r   test_proxy_key_unhashables*TestFrameLocals.test_proxy_key_unhashables3  s    	S 		 	 ((!#&(88C$s)"4"455&&y11J 2&&y11!"EJ 2 65 91111 655s<   8D	C%DC2	DC/*D2D=DDc                   \        \        ^4       Uu. uF"  p\        P                  ! 4       P                  NK$  	  up^ ,          4      pV P                  VP                  R4       R pV! V! 4       4      pV P                  VR^R^/4       V P                  \        4      ;_uu_ 4        V! 4        RRR4       V P                  \        4      ;_uu_ 4        V! ^{4       RRR4       V P                  \        4      ;_uu_ 4        V! \        P                  ! 4       R7       RRR4       R# u upi   + '       g   i     L; i  + '       g   i     Ll; i  + '       g   i     R# ; i)r   FrameLocalsProxyc                  4    ^p ^p\         P                  ! 4       # r`  ri   rj   )r   r   s     r   
make_frame4TestFrameLocals.test_constructor.<locals>.make_frameH  s    AA==?"r   r   r   Nr   )	rg  rangeri   rj   rH   ry   r(   r^   r  )r   r   r~  r  r>  s   &    r   test_constructor TestFrameLocals.test_constructorC  s   */(!4*2Q "%!9!9*2!445!7 8)224FG	#
 !.aa 01 y)) *y))S! *y))3==?3 *)#!4 *))))))s)   (D*(D/	EE/D?	E	E&	c                H   a V3R  lpR oV P                  V! 4       ^4       R# )c                  $   < . ROp . ROpS! V 4      # )r   )r   r      )rv   rw      r   )xsysrQ   s     r   rK   0TestFrameLocals.test_overwrite_locals.<locals>.f[  s    BBR5Lr   c                     \         P                  ! 4       pR VP                  P                  R&   R VP                  P                  R&   V ^,          # )Nr  r  )ri   rj   r_   rH   )r  rK   s   & r   rQ   0TestFrameLocals.test_overwrite_locals.<locals>.g`  s>    A&*AHHd#&*AHHd#a5Lr   Nrx   )r   rK   rQ   s   & @r   test_overwrite_locals%TestFrameLocals.test_overwrite_localsX  s!    	
	 	a r   r   N)r(   r)   r*   r+   r   r   r   r  r  r  r  r!  r(  r-  r   r8  r   r   r?  rC  rJ  r\  rl  rq  r{  r  r  r,   r   r   s   @r   r   r   ;  s     " )$L"
	%K$+L D D
*5@,	# 4*! !r   r   c                     a  ] tR tRt o R t]t]P                  ! RR4      R 4       t]P                  ! RR4      R 4       t	]P                  ! RR4      R	 4       t
]P                  ! RR
4      R 4       t]P                  ! RR4      R 4       t]P                  ! RR4      R 4       tR t]P                  ! RR4      R 4       tR t]P                  ! RR4      R 4       tRtV tR# )FrameLocalsProxyMappingTestsii  c                     R  pV! 4       # )c                  @    \         P                  ! 4       P                  # r   )ri   rj   rH   r   r   r   _f+FrameLocalsProxyMappingTests._f.<locals>._fm  s    ==?+++r   r   )argsr   r  s   *, r   r  FrameLocalsProxyMappingTests._fl  s    	,tr   Tz:Locals proxies for different frames never compare as equalc                    R # r   r   rT  s   &r   r  -FrameLocalsProxyMappingTests.test_constructorr      r   z&Unlike a mapping: del proxy[key] failsc                    R # r   r   rT  s   &r   
test_write'FrameLocalsProxyMappingTests.test_writev  r  r   z"Unlike a mapping: no proxy.popitemc                    R # r   r   rT  s   &r   test_popitem)FrameLocalsProxyMappingTests.test_popitemz  r  r   zUnlike a mapping: no proxy.popc                    R # r   r   rT  s   &r   test_pop%FrameLocalsProxyMappingTests.test_pop~  r  r   z Unlike a mapping: no proxy.clearc                    R # r   r   rT  s   &r   
test_clear'FrameLocalsProxyMappingTests.test_clear  r  r   z#Unlike a mapping: no proxy.fromkeysc                    R # r   r   rT  s   &r   test_fromkeys*FrameLocalsProxyMappingTests.test_fromkeys  r  r   c                J   \         P                  P                  V 4       V P                  R ^R^/4      pV P	                  VR ,          ^4       V P	                  VR,          ^4       ^VR&   ^VR &   V P	                  VR,          ^4       V P	                  VR ,          ^4       R# )r  r  r0   N)r   BasicTestMappingProtocoltest_getitem_full_mappingry   r  s   & r   r  )FrameLocalsProxyMappingTests.test_getitem  s    ..;;DAQQ/03#3###3#3#r   z!Unlike a mapping: no proxy.updatec                    R # r   r   rT  s   &r   test_update(FrameLocalsProxyMappingTests.test_update  r  r   c           	     j   V P                  ^^^^^^/4      pV P                  VP                  4       ^^^^^^/4       V P                  4       pV P                  VP                  4       V4       V P	                  \
        VP                  R4       V P                  VP                  4       \        4       R# r   )r  ry   r$  _empty_mappingr^   r  r%  r&  r  s   & r   r(  &FrameLocalsProxyMappingTests.test_copy  s    !Qq!A/Aa1a?3!1%)QVVT2affh-r   c                    R # r   r   rT  s   &r   test_eq$FrameLocalsProxyMappingTests.test_eq  r  r   r   N)r(   r)   r*   r+   r  	type2testunittestskipIfr  r  r  r  r  r  r  r  r(  r  r,   r   r   s   @r   r  r  i  s     I__TWX Y __TCD E __T?@ A __T;< = __T=> ? __T@A B$ __T>? @. __TWX Yr   r  c                   &   a  ] tR tRt o R tRtV tR# )TestFrameCApii  c                   ^p\         P                  ! R4      pVP                  P                  pVP                  Vn        V! 4       pV P                  \        V4      \        4       V P                  VR,          ^4       ^VR&   V P                  V^4       VP                  P                  pVP                  Vn        V! 4       pV P                  \        V4      \        4       V P                  V\        4       4       VP                  P                  pVP                  Vn        V! 4       pV P                  V\        4       VP                  P                  p	VP                  .V	n        VP                  V	n        \"        P$                  ! 4       p
V	! V
4      pV P                  VR,          ^4       ^VR&   V P                  V^4       R# )r   ctypesr   N)r   import_module	pythonapiPyEval_GetFrameLocals	py_objectrestyper  rg  r&  ry   PyEval_GetFrameGlobalsr6   globalsPyEval_GetFrameBuiltins__builtins__PyFrame_GetLocalsargtypesri   rj   )r   r   r  r  frame_localsr  frame_globalsr  frame_builtinsr  r   rH   s   &           r   
test_basicTestFrameCApi.test_basic  sz   ,,X6 & 0 0 F F(.(8(8%,.\*D1c*A.SA!'!1!1!H!H)/)9)9&.0]+T2mWY/"("2"2"J"J*0*:*:'026",,>>&,&6&6%7"$*$4$4!$U+q)Ar   r   N)r(   r)   r*   r+   r  r,   r   r   s   @r   r  r    s      r   r  c                   x   a  ] tR tRt o R t]P                  ]P                  ! 4       R 4       4       t	R t
RtV tR# )TestIncompleteFrameAreInvisiblei  c                \    \         P                  ! R \        : R24      p\        RV4       R# )z
            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-cN)textwrapdedentr   r   )r   codes   & r   test_issue95818/TestIncompleteFrameAreInvisible.test_issue95818  s2     $  l #	  $ 	t$r   c                T  aa  ! V3R  lR4      o ! V3R lR\         P                  4      pRoV! 4       pVP                  4        VP                  4        V P	                  S4       Se?   V P                  SP                  VP                  P                  4       SP                  oKB  R# )c                   .   <a  ] tR tRt o V3R ltRtV tR# )TTestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardown.<locals>.SneakyDeli  c                2   < \         P                  ! 4       oR # r   r  )r   sneaky_frame_objects   &r   __del__\TestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardown.<locals>.SneakyDel.__del__  s     '*mmo#r   r   N)r(   r)   r*   r+   r  r,   r   )r   r  s   @r   	SneakyDelr    s     	6 	6r   r  c                   .   <a  ] tR tRt o V3R ltRtV tR# )WTestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardown.<locals>.SneakyThreadi  c                   < S! 4       pR # r   r   )r   r2   r  s   & r   run[TestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardown.<locals>.SneakyThread.run  s
    kr   r   N)r(   r)   r*   r+   r  r,   r   )r   r  s   @r   SneakyThreadr    s     " "r   r  N)
	threadingThreadstartr   r@   r4   rG   r  r   r_   )r   r  r   r  r  s   &  @@r   !test_sneaky_frame_object_teardownATestIncompleteFrameAreInvisible.test_sneaky_frame_object_teardown  s    
	6 
	6		"9++ 		" #N			 	01!-#**L,<,<,E,E #6"<"<	 .r   c                F  a  ! R  R4      oV3R lp\         P                  ! 4       ;_uu_ 4       p\        P                  ! V4      pV P	                  VP
                  P                  \        4       RRR4       V P                  X! 4       4       R#   + '       g   i     L(; i)c                       ] tR tRtRtR# )ZTestIncompleteFrameAreInvisible.test_entry_frames_are_invisible_during_teardown.<locals>.Ci  r   Nr'   r   r   r   r-   r    r.   r   r-   c                  H   < S! 4       p \         P                  ! V \        4      # r   )r1   r2   exec)r2   r-   s    r   rK   ZTestIncompleteFrameAreInvisible.test_entry_frames_are_invisible_during_teardown.<locals>.f  s    #C
 ;;sD))r   N)	r   catch_unraisable_exceptionoperatorcallr6   
unraisableexc_typer  rA   )r   rK   catcherweakr-   s   &   @r   /test_entry_frames_are_invisible_during_teardownOTestIncompleteFrameAreInvisible.test_entry_frames_are_invisible_during_teardown
  sm    	( 	(	* //11W==#DMM',,55yA	 2
 	$&! 21s   ABB 	r   N)r(   r)   r*   r+   r  r   r   r   requires_working_threadingr  r  r,   r   r   s   @r   r  r    s@     %, 002%= 3 %=N" "r   r  __main__)r$  r  r   ri   r  r  r  r1   	_testcapiImportErrorcollections.abcr   rt   r   test.supportr   r   test.support.script_helperr   r   TestCaser
   r   r   r   TestHashMappingProtocolr  r  r  r(   mainr   r   r   <module>r     s      	 
     $  8 7 ]&!! ]&@\;X&& \;~%4x   %4Nk!h'' k!\	<=#H#H <~H%% BS"h&7&7 S"l zMMO i  Is   C5 5	D D