+
    Bi                     N   ^ RI t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
t
^ RIt^ RIt^ RIt]P                  ! RR7        ! R R	]4      tR
 t ! R R4      t ! R R]P&                  ]4      t ! R R]P&                  ]4      tR t]R8X  d   ]P0                  ! 4        R# R# )    N)DocTestSuite)support)threading_helper)import_moduleT)modulec                       ] tR t^tRtR# )Weak N__name__
__module____qualname____firstlineno____static_attributes__r
       0/usr/lib/python3.14/test/test_threading_local.pyr	   r	      s    r   r	   c                 p    \        4       pW n        VP                  \        P                  ! V4      4       R # N)r	   weakappendweakrefref)localweaklistr   s   && r   targetr      s#    6DJOOGKK%&r   c                      a  ] tR t^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R t]P$                  R 4       tRtV tR# )BaseLocalTestc                l    V P                  ^4       V P                  ^24       V P                  ^d4       R# )   N)_local_refsselfs   &r   test_local_refsBaseLocalTest.test_local_refs   s,    r   c                   V P                  4       p. p\        V4       F@  p\        P                  ! \        W#3R 7      pVP                  4        VP                  4        KB  	  ?\        P                  ! 4        V P                  \        V4      V4       V Uu. uF  qf! 4       e   K  VNK  	  ppV P                  \        V4      V^,
          V34       RVn        \        P                  ! 4        V Uu. uF  qf! 4       e   K  VNK  	  ppV P                  \        V4      V^,
          V3V\        V4      34       R# u upi u upi )r   argsN)_localrange	threadingThreadr   startjoinr   
gc_collectassertEquallenassertInsomeothervar)r"   nr   r   itr   deadlists   &&      r   r    BaseLocalTest._local_refs"   s   qA  e5FGAGGIFFH  X* &.@XTDDX@c(mac1X. "%-@XTDDX@c(mac1X3x=/AB A As   
D;&D;2
E E c                   a aaa ^ RI o ! V3R lRS P                  4      pV! 4       oVV 3R lo\        P                  ! V3R l\	        ^
4       4       4      ;_uu_ 4         RRR4       R#   + '       g   i     R# ; i)r   Nc                   .   <a  ] tR t^>t o V3R ltRtV tR# ))BaseLocalTest.test_derived.<locals>.Localc                *   < SP                  R 4       R# )g{Gz?N)sleep)r"   times   &r   __init__2BaseLocalTest.test_derived.<locals>.Local.__init__?   s    

4 r   r
   Nr   r   r   r   r>   r   __classdictcell__)__classdict__r=   s   @r   Localr:   >   s     ! !r   rC   c                 N   < V Sn         SP                  SP                   V 4       R # r   )xr/   )r4   r   r"   s   &r   f%BaseLocalTest.test_derived.<locals>.fC   s    EGUWWa(r   c              3   V   <"   T F  p\         P                  ! SV3R 7      x  K   	  R# 5ir&   )r*   r+   ).0r4   rF   s   & r   	<genexpr>-BaseLocalTest.test_derived.<locals>.<genexpr>H   s+      ,@5> -6,<,<AQD,Q,Q5>s   &))r=   r(   r   start_threadsr)   )r"   rC   rF   r   r=   s   f @@@r   test_derivedBaseLocalTest.test_derived8   sl    
 		!DKK 	! 	)
 ++ ,@5:2Y,@ @ @@ @ @ @s    A,,A=	c                  aaaaa  ! R  RV P                   4      oRoRo\        P                  ! 4       o\        P                  ! 4       oVVVVV3R lp\        P                  ! VR7      pVP	                  4        SP                  4        \        ^
4       Uu. uF
  pS! 4       NK  	  upoSP                  4        VP                  4        V P                  S4       R# u upi )c                       ] tR t^NtRtR# )7BaseLocalTest.test_derived_cycle_dealloc.<locals>.Localr
   Nr   r
   r   r   rC   rQ   N       r   rC   NFc                  2  < S! 4       .p V P                  V 4       R V ^ ,          n        ? \        P                  ! 4        SP	                  4        SP                  4        \        ;QJ d     R S 4       F  '       d   K   RoR# 	  RoR# ! R S 4       4      oR# )barc              3   D   "   T F  p\        VR 4      '       * x  K  	  R# 5i)fooN)hasattr)rI   r   s   & r   rJ   FBaseLocalTest.test_derived_cycle_dealloc.<locals>.f.<locals>.<genexpr>d   s     GuWUE222s    FTN)r   rV   r   r.   setwaitall)cyclerC   e1e2localspasseds    r   rF   3BaseLocalTest.test_derived_cycle_dealloc.<locals>.fU   sp     WIELL E!HL  FFHGGI SGGSSFSFSGGGFr   r   )
r(   r*   Eventr+   r,   rZ   r)   rY   r-   
assertTrue)	r"   rF   r5   r4   rC   r]   r^   r_   r`   s	   &   @@@@@r   test_derived_cycle_dealloc(BaseLocalTest.test_derived_cycle_deallocL   s    	DKK 	____	H 	H" A&		
	
 $)9-9a%'9-
		 .s   Cc                     ! R  RV P                   4      pV! ^R7       V! ^4       V P                  \        V P                   ^R7       V P                  \        V P                   ^4       R# )c                   &   a  ] tR t^ut o R tRtV tR# )-BaseLocalTest.test_arguments.<locals>.MyLocalc                    R # r   r
   )r"   r'   kwargss   &*,r   r>   6BaseLocalTest.test_arguments.<locals>.MyLocal.__init__v   s    r   r
   Nr@   rB   s   @r   MyLocalri   u   s      r   rn   )aN)r(   assertRaises	TypeError)r"   rn   s   & r   test_argumentsBaseLocalTest.test_argumentss   sQ    	dkk 	 	!
)T[[A6)T[[!4r   c                  a aaaa R S n         S! 4       o\        P                  ! 4       o\        P                  ! 4       oVVV3R lpVVV 3R lp\        P                  ! VR7      pVP	                  4        SP                  4        \        P                  ! VR7      pVP	                  4        VP                  4        SP                  4        VP                  4        S P                  S P                   S P                   4       R# )z No error message set or cleared.c                  h   < R Sn         RSn        S=S P                  4        SP                  4        R# )rV   rT   N)rE   yrY   rZ   )r]   r^   objs   r   f1)BaseLocalTest._test_one_class.<locals>.f1   s(    CECEFFHGGIr   c                     <  SP                   p R V : RS: R2Sn        \        P                  P	                  SP                  4       R#   \
         d    RSn         R# i ; i)zIncorrectly got value z from class 
 N)rE   _failedsysstderrwriteAttributeError)rV   crw   r"   s    r   f2)BaseLocalTest._test_one_class.<locals>.f2   sO    /ee "%a!)

  . " "!"s   A
 
A A rb   N)	r}   r*   rc   r+   r,   rZ   r-   rY   assertFalse)	r"   r   rx   r   t1t2r]   r^   rw   s	   ff    @@@r   _test_one_classBaseLocalTest._test_one_class~   s    9c____			/ R(


	R(


	

	t||4r   c                <    V P                  V P                  4       R # r   )r   r(   r!   s   &r   test_threading_local"BaseLocalTest.test_threading_local   s    T[[)r   c                R     ! R  RV P                   4      pV P                  V4       R# )c                       ] tR t^tRtRtR# )BBaseLocalTest.test_threading_local_subclass.<locals>.LocalSubclass(To test that subclasses behave properly.r
   Nr   r   r   r   __doc__r   r
   r   r   LocalSubclassr          :r   r   N)r(   r   r"   r   s   & r   test_threading_local_subclass+BaseLocalTest.test_threading_local_subclass   s     	;DKK 	;]+r   c                V   V! 4       p^Vn         V P                  VP                  R^/4       V P                  \        4      ;_uu_ 4        / Vn        RRR4       V P                  \        4      ;_uu_ 4        V=RRR4       R#   + '       g   i     L:; i  + '       g   i     R# ; i)   rE   N)rE   r/   __dict__rp   r   )r"   clsrw   s   && r   _test_dict_attribute"BaseLocalTest._test_dict_attribute   sv    eQx0~..CL /~.. /. /....s   
B7BB	B(	c                <    V P                  V P                  4       R # r   )r   r(   r!   s   &r   test_dict_attribute!BaseLocalTest.test_dict_attribute   s    !!$++.r   c                R     ! R  RV P                   4      pV P                  V4       R# )c                       ] tR t^tRtRtR# )ABaseLocalTest.test_dict_attribute_subclass.<locals>.LocalSubclassr   r
   Nr   r
   r   r   r   r      r   r   r   N)r(   r   r   s   & r   test_dict_attribute_subclass*BaseLocalTest.test_dict_attribute_subclass   s     	;DKK 	;!!-0r   c                     ! R  R4      pV! 4       pV P                  4       Vn        W"P                  n        \        P                  ! V4      p?\
        P                  ! 4        V P                  V! 4       4       R# )c                       ] tR t^tRtR# ).BaseLocalTest.test_cycle_collection.<locals>.Xr
   Nr   r
   r   r   Xr      rR   r   r   N)r(   r   rE   r   r   r   r.   assertIsNone)r"   r   rE   wrs   &   r   test_cycle_collection#BaseLocalTest.test_cycle_collection   sW    	 	 C++-	[[^"$r   c                    \        R 4      pVP                  R R4       \        R4       F  p\        P                  ! 4       pK  	  VP                  4        R# )	_testcapic                      R # r   r
   r
   r   r   <lambda>?BaseLocalTest.test_threading_local_clear_race.<locals>.<lambda>   s    Tr   Fi  N)r   call_in_temporary_c_threadr)   r*   r   join_temporary_c_thread)r"   r   _s   &  r   test_threading_local_clear_race-BaseLocalTest.test_threading_local_clear_race   sF     "+.	,,\5AtA!A  	))+r   c                     ! R  RV P                   4      p ! R R4      pV! 4       pV P                  \        R4      ;_uu_ 4        VP                  V! 4       ^4       RRR4       R#   + '       g   i     R# ; i)c                       ] tR t^t^tRtR# )&BaseLocalTest.test_error.<locals>.Loopr
   N)r   r   r   r   attrr   r
   r   r   Loopr      s    Dr   r   c                   &   a  ] tR t^t o R tRtV tR# )1BaseLocalTest.test_error.<locals>.NameCompareTruec                    R # )Tr
   )r"   others   &&r   __eq__8BaseLocalTest.test_error.<locals>.NameCompareTrue.__eq__   s    r   r
   N)r   r   r   r   r   r   rA   rm   s   @r   NameCompareTruer      s      r   r   zLoop.*read-onlyN)r(   assertRaisesRegexr   __setattr__)r"   r   r   loops   &   r   
test_errorBaseLocalTest.test_error   s\    	4;; 	
	 	 v##N4EFF_.2 GFFFs   A''A8	)r}   N)r   r   r   r   r#   r    rM   re   rr   r   r   r   r   r   r   r   r   r   cpython_onlyr   r   rA   rm   s   @r   r   r      sc     
C,(% N	5"5H*,
/1

 	, 3 3r   r   c                   .    ] tR t^t]P
                  tRtR# )ThreadLocalTestr
   N)r   r   r   r   _threadr(   r   r
   r   r   r   r      s    ^^Fr   r   c                   .    ] tR t^t]P
                  tRtR# )PyThreadingLocalTestr
   N)r   r   r   r   _threading_localr   r(   r   r
   r   r   r   r      s    ##Fr   r   c                    a VP                  \        R 4      4       \        P                  oR pV3R lpVP	                  \        R W4R7      4       V# )r   c                 8    \         P                  \        n        R # r   )r   r(   r   r   )tests   &r   setUpload_tests.<locals>.setUp   s    !(r   c                    < S\         n        R # r   )r   r   )r   
local_origs   &r   tearDownload_tests.<locals>.tearDown   s    !+r   )r   r   )addTestr   r   r   addTests)loadertestspatternr   r   r   s   &&&  @r   
load_testsr      sK    	MM,123!''J0,	NN< 2&+@  Lr   __main__)r~   unittestdoctestr   r   r   test.supportr   test.support.import_helperr   r   r   r*   r   requires_working_threadingobjectr	   r   r   TestCaser   r   r   r   mainr
   r   r   <module>r      s    
     ) 4      + +4 8	6 	'E3 E3Ph'' $8,,m $ zMMO r   