
    0hhv                     "   S SK r S SKrS SKrS SKrS SKrS SKrS SKJrJrJ	r	  S SK
Jr  \" SS9(       a  \R                  " S5      e\" S5      rS r " S	 S
\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\5      r\R*                  " 5       \	 " S S\5      5       5       r " S S5      r\	 " S S\R                  5      5       r\S:X  a  \R4                  " 5         gg)    N)threading_helpercheck_impl_detailrequires_specialization)import_moduleF)cpythonz)implementation detail specific to cpython_testinternalcapic                    ^  U 4S jnU$ )Nc                     > [        [        S5      (       d  T" U 0 UD6$ [        R                  5       n[        R                  S 5         T" U 0 UD6[        R                  U5        $ ! [        R                  U5        f = f)Nget_optimizer)hasattrr   r   set_optimizer)argskwargsold_optfuncs      :/opt/python-3.13.8/usr/lib/python3.13/test/test_opcache.pywrapper$disabling_optimizer.<locals>.wrapper   sm    (/::(((#113''-	5((++G4++G4s   	A& &A= )r   r   s   ` r   disabling_optimizerr      s    5 N    c                       \ rS rSrS rSrg)TestBase   c                     [         R                  " USS9nU Vs1 s H  oDR                  iM     nnU R                  X%5        g s  snf )NT)adaptive)disget_instructionsopnameassertIn)selffr   instructionsinstructionopnamess         r   assert_specializedTestBase.assert_specialized    s>    ++A=9EF+%%Ff& Gs   Ar   N)__name__
__module____qualname____firstlineno__r&   __static_attributes__r   r   r   r   r      s    'r   r   c                       \ rS rSrS rSrg)TestLoadSuperAttrCache&   c                 ,  ^^ / m " U4S jS5      m " U4S jS5      n " S SU5      nU" 5       nU R                  UR                  5       S5        TR                  5         U R                  UR                  5       S5        U R                  TX24/5        g )Nc                   "   > \ rS rSrU 4S jrSrg)[TestLoadSuperAttrCache.test_descriptor_not_double_executed_on_spec_fail.<locals>.Descriptor)   c                 .   > TR                  X45        S $ )Nc                      gN   r   r   r   r   <lambda>uTestLoadSuperAttrCache.test_descriptor_not_double_executed_on_spec_fail.<locals>.Descriptor.__get__.<locals>.<lambda>,   s    qr   )append)r!   instanceownercallss      r   __get__cTestLoadSuperAttrCache.test_descriptor_not_double_executed_on_spec_fail.<locals>.Descriptor.__get__*   s    h./  r   r   N)r(   r)   r*   r+   r>   r,   )r=   s   r   
Descriptorr2   )   s    ! !r   r@   c                   &   > \ rS rSr Y " 5       rSrg)RTestLoadSuperAttrCache.test_descriptor_not_double_executed_on_spec_fail.<locals>.C.   r   N)r(   r)   r*   r+   dr,   r@   s   r   CrB   .   s
    Ar   rF   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )RTestLoadSuperAttrCache.test_descriptor_not_double_executed_on_spec_fail.<locals>.D1   c                     > [         TU ]  5       $ N)superrD   )r!   	__class__s    r   r"   TTestLoadSuperAttrCache.test_descriptor_not_double_executed_on_spec_fail.<locals>.D.f2   s    wy{"r   r   )r(   r)   r*   r+   r"   r,   __classcell__)rM   s   @r   DrH   1   s    # #r   rP   r7   )assertEqualr"   clear)r!   rF   rP   rD   r@   r=   s       @@r   0test_descriptor_not_double_executed_on_spec_failGTestLoadSuperAttrCache.test_descriptor_not_double_executed_on_spec_fail'   sz    	! 	!
	 		# 	# C""!)r   r   N)r(   r)   r*   r+   rS   r,   r   r   r   r.   r.   &   s    *r   r.   c                   h    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)TestLoadAttrCache=   c                    ^  " S S5      m " U4S jS5      nS nU" 5       n[        S5       H  nU" U5      S:X  a  M   e   S Tl        S	 Tl        U R                  U" U5      S
5        g )Nc                       \ rS rSrSrg)NTestLoadAttrCache.test_descriptor_added_after_optimization.<locals>.Descriptor?   r   Nr(   r)   r*   r+   r,   r   r   r   r@   rZ   ?       r   r@   c                   ,   > \ rS rSrS r Y " 5       rSrg)ETestLoadAttrCache.test_descriptor_added_after_optimization.<locals>.CB   c                     SU l         g r6   xr!   s    r   __init__NTestLoadAttrCache.test_descriptor_added_after_optimization.<locals>.C.__init__C   s	    r   rb   N)r(   r)   r*   r+   re   rc   r,   rE   s   r   rF   r_   B   s    Ar   rF   c                     U R                   $ rK   rb   os    r   r"   ETestLoadAttrCache.test_descriptor_added_after_optimization.<locals>.fG   s    33Jr     r7   c                     g)N   r   r!   r;   values      r   r8   LTestLoadAttrCache.test_descriptor_added_after_optimization.<locals>.<lambda>N   s    1r   c                      g rK   r   )r   s    r   r8   rp   O   s    4r   rm   )ranger>   __set__rQ   )r!   rF   r"   ri   ir@   s        @r   (test_descriptor_added_after_optimization:TestLoadAttrCache.test_descriptor_added_after_optimization>   si    	 		 	
	 CtAQ4199  =
/
1q!r   c                 &  ^^  " S S5      m " U4S jS[         5      n " S SUS9mS nS	 nU4S
 jn[        S5       H  nU R                  U" 5       5        M     UTl        UTl        [        S5       H  nU R                  U" 5       5        M     g )Nc                       \ rS rSrSrg)XTestLoadAttrCache.test_metaclass_descriptor_added_after_optimization.<locals>.DescriptorT   r   Nr\   r   r   r   r@   ry   T   r]   r   r@   c                   &   > \ rS rSr Y " 5       rSrg)WTestLoadAttrCache.test_metaclass_descriptor_added_after_optimization.<locals>.MetaclassW   r   Nr(   r)   r*   r+   	attributer,   rE   s   r   	Metaclassr|   W   
    "Ir   r   c                       \ rS rSrSrSrg)STestLoadAttrCache.test_metaclass_descriptor_added_after_optimization.<locals>.ClassZ   Tr   Nr~   r   r   r   Classr   Z       Ir   r   	metaclassc                     gNFr   r!   r;   r<   s      r   r>   UTestLoadAttrCache.test_metaclass_descriptor_added_after_optimization.<locals>.__get__]   s    r   c                     g rK   r   rn   s      r   rs   UTestLoadAttrCache.test_metaclass_descriptor_added_after_optimization.<locals>.__set__`       r   c                     > T R                   $ rK   r   r   s   r   r"   OTestLoadAttrCache.test_metaclass_descriptor_added_after_optimization.<locals>.fc       ??"r   rk   typerr   
assertTruer>   rs   assertFalser!   r   r>   rs   r"   _r   r@   s         @@r   2test_metaclass_descriptor_added_after_optimizationDTestLoadAttrCache.test_metaclass_descriptor_added_after_optimizationS   s    	 		% 	%	i 				# tAOOAC   %
$
tAQS! r   c                    ^  " S S[         5      n " S SUS9mU4S jn[        S5       H  nU R                  U" 5       5        M     g )Nc                   $    \ rS rSr\S 5       rSrg)VTestLoadAttrCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.Metaclassp   c                     gNTr   rd   s    r   r   `TestLoadAttrCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.Metaclass.attributeq       r   r   Nr(   r)   r*   r+   propertyr   r,   r   r   r   r   r   p        r   r   c                       \ rS rSrSrSrg)RTestLoadAttrCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.Classu   Fr   Nr~   r   r   r   r   r   u       Ir   r   r   c                     > T R                   $ rK   r   r   s   r   r"   NTestLoadAttrCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.fx   r   r   rk   r   rr   r   r!   r   r"   r   r   s       @r   1test_metaclass_descriptor_shadows_class_attributeCTestLoadAttrCache.test_metaclass_descriptor_shadows_class_attributeo   s>    	 	
	i 		# tAOOAC  r   c                   ^  " S S[         5      n " S SUS9m[        S 5       nU4S jn[        S5       H  nU R                  U" 5       5        M     X!l        [        S5       H  nU R                  U" 5       5        M     g )	Nc                       \ rS rSrSrg)UTestLoadAttrCache.test_metaclass_set_descriptor_after_optimization.<locals>.Metaclass   r   Nr\   r   r   r   r   r      r]   r   r   c                       \ rS rSrSrSrg)QTestLoadAttrCache.test_metaclass_set_descriptor_after_optimization.<locals>.Class   Tr   Nr~   r   r   r   r   r      r   r   r   r   c                     gr   r   rd   s    r   r   UTestLoadAttrCache.test_metaclass_set_descriptor_after_optimization.<locals>.attribute   s    r   c                     > T R                   $ rK   r   r   s   r   r"   MTestLoadAttrCache.test_metaclass_set_descriptor_after_optimization.<locals>.f   r   r   rk   r   r   rr   r   r   r   r!   r   r   r"   r   r   s        @r   0test_metaclass_set_descriptor_after_optimizationBTestLoadAttrCache.test_metaclass_set_descriptor_after_optimization~   sx    	 		i 	 
	 
		# tAOOAC   (tAQS! r   c                    ^  " S S[         5      n " S SUS9mU4S jn[        S5       H  nU R                  U" 5       5        M     U?[        S5       H  nU R	                  U" 5       5        M     g )Nc                   $    \ rS rSr\S 5       rSrg)UTestLoadAttrCache.test_metaclass_del_descriptor_after_optimization.<locals>.Metaclass   c                     gr   r   rd   s    r   r   _TestLoadAttrCache.test_metaclass_del_descriptor_after_optimization.<locals>.Metaclass.attribute   r   r   r   Nr   r   r   r   r   r      r   r   r   c                       \ rS rSrSrSrg)QTestLoadAttrCache.test_metaclass_del_descriptor_after_optimization.<locals>.Class   Fr   Nr~   r   r   r   r   r      r   r   r   r   c                     > T R                   $ rK   r   r   s   r   r"   MTestLoadAttrCache.test_metaclass_del_descriptor_after_optimization.<locals>.f   r   r   rk   r   rr   r   r   r   r   s       @r   0test_metaclass_del_descriptor_after_optimizationBTestLoadAttrCache.test_metaclass_del_descriptor_after_optimization   sd    	 	
	i 		# tAOOAC   tAQS! r   c                 v   ^  " S S5      mU4S jn[        S5       H  nU R                  U" 5       5        M     g )Nc                       \ rS rSrSrSrg)NTestLoadAttrCache.test_type_descriptor_shadows_attribute_method.<locals>.Class   Nr   r(   r)   r*   r+   mror,   r   r   r   r   r      s    Cr   r   c                     > T R                   $ rK   r   r   s   r   r"   JTestLoadAttrCache.test_type_descriptor_shadows_attribute_method.<locals>.f   s    99r   rk   )rr   assertIsNoner!   r"   r   r   s      @r   -test_type_descriptor_shadows_attribute_method?TestLoadAttrCache.test_type_descriptor_shadows_attribute_method   s2    	 		 tAac" r   c                    ^  " S S5      mU4S jn[        S5       H  nU R                  U" 5       [        5        M      g )Nc                       \ rS rSrSrSrg)NTestLoadAttrCache.test_type_descriptor_shadows_attribute_member.<locals>.Class   Nr   r(   r)   r*   r+   __base__r,   r   r   r   r   r      s    Hr   r   c                     > T R                   $ rK   r   r   s   r   r"   JTestLoadAttrCache.test_type_descriptor_shadows_attribute_member.<locals>.f       >>!r   rk   )rr   assertIsobjectr   s      @r   -test_type_descriptor_shadows_attribute_member?TestLoadAttrCache.test_type_descriptor_shadows_attribute_member   s2    	 		" tAMM!#v& r   c                 x   ^  " S S5      mU4S jn[        S5       H  nU R                  U" 5       S5        M     g )Nc                       \ rS rSrSr Srg)NTestLoadAttrCache.test_type_descriptor_shadows_attribute_getset.<locals>.Class   Spamr   Nr\   r   r   r   r   r      s    Hr   r   c                     > T R                   $ rK   )r(   r   s   r   r"   JTestLoadAttrCache.test_type_descriptor_shadows_attribute_getset.<locals>.f   r   r   rk   rr   rQ   r   s      @r   -test_type_descriptor_shadows_attribute_getset?TestLoadAttrCache.test_type_descriptor_shadows_attribute_getset   s4    	 		" tAQS'* r   c                    ^  " S S[         5      n " S SUS9mU4S jn[        S5       H  nU R                  U" 5       5        M     g )Nc                       \ rS rSrS rSrg)@TestLoadAttrCache.test_metaclass_getattribute.<locals>.Metaclass   c                     gr   r   r!   names     r   __getattribute__QTestLoadAttrCache.test_metaclass_getattribute.<locals>.Metaclass.__getattribute__       r   r   Nr(   r)   r*   r+   r   r,   r   r   r   r   r          r   r   c                       \ rS rSrSrSrg)<TestLoadAttrCache.test_metaclass_getattribute.<locals>.Class   Fr   Nr~   r   r   r   r   r     r   r   r   r   c                     > T R                   $ rK   r   r   s   r   r"   8TestLoadAttrCache.test_metaclass_getattribute.<locals>.f   r   r   rk   r   r   s       @r   test_metaclass_getattribute-TestLoadAttrCache.test_metaclass_getattribute   s>    	 		i 		# tAOOAC  r   c                   ^  " S S[         5      n " S S[         5      n " S SUS9mU4S jn[        S	5       H  nU R                  U" 5       5        M     UTl        [        S	5       H  nU R	                  U" 5       5        M     g )
Nc                   $    \ rS rSr\S 5       rSrg);TestLoadAttrCache.test_metaclass_swap.<locals>.OldMetaclass   c                     gr   r   rd   s    r   r   ETestLoadAttrCache.test_metaclass_swap.<locals>.OldMetaclass.attribute   r   r   r   Nr   r   r   r   OldMetaclassr	     r   r   r  c                   $    \ rS rSr\S 5       rSrg);TestLoadAttrCache.test_metaclass_swap.<locals>.NewMetaclass   c                     gr   r   rd   s    r   r   ETestLoadAttrCache.test_metaclass_swap.<locals>.NewMetaclass.attribute   s    r   r   Nr   r   r   r   NewMetaclassr     s     r   r  c                       \ rS rSrSrg)4TestLoadAttrCache.test_metaclass_swap.<locals>.Class   r   Nr\   r   r   r   r   r     r]   r   r   r   c                     > T R                   $ rK   r   r   s   r   r"   0TestLoadAttrCache.test_metaclass_swap.<locals>.f   r   r   rk   r   rr   r   rM   r   r!   r  r  r"   r   r   s        @r   test_metaclass_swap%TestLoadAttrCache.test_metaclass_swap   sq    	4 	
	4 	
	l 		# tAOOAC   'tAQS! r   c                    ^  " S S5      m " U4S jS5      nS nU" 5       nSUl         [        S5       H)  nU R                  [        5         U" U5        S S S 5        M+     g ! , (       d  f       M=  = f)Nc                       \ rS rSrSrSrg)QTestLoadAttrCache.test_load_shadowing_slot_should_raise_type_error.<locals>.Class   slotr   Nr(   r)   r*   r+   	__slots__r,   r   r   r   r   r         !Ir   r   c                   4   > \ rS rSrSr Y R
                  rSrg)RTestLoadAttrCache.test_load_shadowing_slot_should_raise_type_error.<locals>.Sneaky   shadowedr   Nr(   r)   r*   r+   r$  r"  	shadowingr,   r   s   r   Sneakyr'         %I

Ir   r-  c                     U R                     g rK   r,  rh   s    r   r"   MTestLoadAttrCache.test_load_shadowing_slot_should_raise_type_error.<locals>.f   s	    KKr   *   rk   )r*  rr   assertRaises	TypeErrorr!   r-  r"   ri   r   r   s        @r   0test_load_shadowing_slot_should_raise_type_errorBTestLoadAttrCache.test_load_shadowing_slot_should_raise_type_error   s^    	" 	"	# 	#	 H
tA""9-! .- --s   	A##
A2	c                    ^  " S S5      m " U4S jS5      nS nU" 5       n[        S5       H)  nU R                  [        5         U" U5        S S S 5        M+     g ! , (       d  f       M=  = f)Nc                       \ rS rSrSrSrg)RTestLoadAttrCache.test_store_shadowing_slot_should_raise_type_error.<locals>.Class   r!  r   Nr#  r   r   r   r   r:     r%  r   r   c                   4   > \ rS rSrSr Y R
                  rSrg)STestLoadAttrCache.test_store_shadowing_slot_should_raise_type_error.<locals>.Sneakyi  r)  r   Nr+  r   s   r   r-  r=    r.  r   r-  c                     SU l         g Nr2  r0  rh   s    r   r"   NTestLoadAttrCache.test_store_shadowing_slot_should_raise_type_error.<locals>.f  s	    AKr   rk   rr   r3  r4  r5  s        @r   1test_store_shadowing_slot_should_raise_type_errorCTestLoadAttrCache.test_store_shadowing_slot_should_raise_type_error   sW    	" 	"	# 	#	 HtA""9-! .- --   	A
A+	c                    ^  " S S5      m " U4S jS5      nS nU" 5       n[        S5       H)  nU R                  [        5         U" U5        S S S 5        M+     g ! , (       d  f       M=  = f)Nc                       \ rS rSrSrSrg)ITestLoadAttrCache.test_load_borrowed_slot_should_not_crash.<locals>.Classi  r!  r   Nr#  r   r   r   r   rG    r%  r   r   c                   0   > \ rS rSr Y R                  rSrg)JTestLoadAttrCache.test_load_borrowed_slot_should_not_crash.<locals>.Sneakyi  r   Nr(   r)   r*   r+   r"  borrowedr,   r   s   r   r-  rI        zzHr   r-  c                     U R                     g rK   rK  rh   s    r   r"   ETestLoadAttrCache.test_load_borrowed_slot_should_not_crash.<locals>.f  s	    JJr   rk   rA  r5  s        @r   (test_load_borrowed_slot_should_not_crash:TestLoadAttrCache.test_load_borrowed_slot_should_not_crash  sW    	" 	"	" 	"	 HtA""9-! .- --rD  c                    ^  " S S5      m " U4S jS5      nS nU" 5       n[        S5       H)  nU R                  [        5         U" U5        S S S 5        M+     g ! , (       d  f       M=  = f)Nc                       \ rS rSrSrSrg)JTestLoadAttrCache.test_store_borrowed_slot_should_not_crash.<locals>.Classi!  r!  r   Nr#  r   r   r   r   rT  !  r%  r   r   c                   0   > \ rS rSr Y R                  rSrg)KTestLoadAttrCache.test_store_borrowed_slot_should_not_crash.<locals>.Sneakyi$  r   NrJ  r   s   r   r-  rV  $  rL  r   r-  c                     SU l         g r?  rN  rh   s    r   r"   FTestLoadAttrCache.test_store_borrowed_slot_should_not_crash.<locals>.f'  s	    AJr   rk   rA  r5  s        @r   )test_store_borrowed_slot_should_not_crash;TestLoadAttrCache.test_store_borrowed_slot_should_not_crash   sW    	" 	"	" 	"	 HtA""9-! .- --rD  r   N)r(   r)   r*   r+   ru   r   r   r   r   r   r   r   r  r  r6  rB  rP  rY  r,   r   r   r   rV   rV   =   sH    "*"8!","(#'+!"2$" r   rV   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestLoadMethodCachei1  c                 ,  ^^  " S S5      m " U4S jS5      nS nS nS nU" 5       mUTl         U4S jn[        S	5       H  nU R                  U" 5       5        M     UTl        UTl        [        S	5       H  nU R                  U" 5       5        M     g )
Nc                       \ rS rSrSrg)PTestLoadMethodCache.test_descriptor_added_after_optimization.<locals>.Descriptori3  r   Nr\   r   r   r   r@   r_  3  r]   r   r@   c                   &   > \ rS rSr Y " 5       rSrg)KTestLoadMethodCache.test_descriptor_added_after_optimization.<locals>.Classi6  r   Nr~   rE   s   r   r   ra  6  r   r   r   c                     S $ )Nc                      gr   r   r   r   r   r8   _TestLoadMethodCache.test_descriptor_added_after_optimization.<locals>.__get__.<locals>.<lambda>:      5r   r   r   s      r   r>   MTestLoadMethodCache.test_descriptor_added_after_optimization.<locals>.__get__9        r   c                     g rK   r   rn   s      r   rs   MTestLoadMethodCache.test_descriptor_added_after_optimization.<locals>.__set__<  r   r   c                      gr   r   r   r   r   r   OTestLoadMethodCache.test_descriptor_added_after_optimization.<locals>.attribute?  r   r   c                  $   > T R                  5       $ rK   r   )r;   s   r   r"   GTestLoadMethodCache.test_descriptor_added_after_optimization.<locals>.fE  s    %%''r   rk   )r   rr   r   r>   rs   r   )	r!   r   r>   rs   r   r"   r   r@   r;   s	          @@r   ru   <TestLoadMethodCache.test_descriptor_added_after_optimization2  s    	 		% 	%	!		 7&	( tAOOAC   %
$
tAQS! r   c                 &  ^^  " S S5      m " U4S jS[         5      n " S SUS9mS nS	 nU4S
 jn[        S5       H  nU R                  U" 5       5        M     UTl        UTl        [        S5       H  nU R                  U" 5       5        M     g )Nc                       \ rS rSrSrg)ZTestLoadMethodCache.test_metaclass_descriptor_added_after_optimization.<locals>.DescriptoriR  r   Nr\   r   r   r   r@   rq  R  r]   r   r@   c                   &   > \ rS rSr Y " 5       rSrg)YTestLoadMethodCache.test_metaclass_descriptor_added_after_optimization.<locals>.MetaclassiU  r   Nr~   rE   s   r   r   rs  U  r   r   r   c                       \ rS rSrS rSrg)UTestLoadMethodCache.test_metaclass_descriptor_added_after_optimization.<locals>.ClassiX  c                      gr   r   r   r   r   r   _TestLoadMethodCache.test_metaclass_descriptor_added_after_optimization.<locals>.Class.attributeY  r   r   r   Nr~   r   r   r   r   ru  X  r   r   r   r   c                     S $ )Nc                      gr   r   r   r   r   r8   iTestLoadMethodCache.test_metaclass_descriptor_added_after_optimization.<locals>.__get__.<locals>.<lambda>]  re  r   r   r   s      r   r>   WTestLoadMethodCache.test_metaclass_descriptor_added_after_optimization.<locals>.__get__\  rg  r   c                     g rK   r   rn   s      r   rs   WTestLoadMethodCache.test_metaclass_descriptor_added_after_optimization.<locals>.__set___  r   r   c                  $   > T R                  5       $ rK   r   r   s   r   r"   QTestLoadMethodCache.test_metaclass_descriptor_added_after_optimization.<locals>.fb      ??$$r   rk   r   r   s         @@r   r   FTestLoadMethodCache.test_metaclass_descriptor_added_after_optimizationQ  s    	 		% 	%	i 		!		% tAOOAC   %
$
tAQS! r   c                    ^  " S S[         5      n " S SUS9mU4S jn[        S5       H  nU R                  U" 5       5        M     g )Nc                   $    \ rS rSr\S 5       rSrg)XTestLoadMethodCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.Metaclassio  c                     S $ )Nc                      gr   r   r   r   r   r8   tTestLoadMethodCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.Metaclass.attribute.<locals>.<lambda>r      tr   r   rd   s    r   r   bTestLoadMethodCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.Metaclass.attributep      ##r   r   Nr   r   r   r   r   r  o      $ $r   r   c                       \ rS rSrS rSrg)TTestLoadMethodCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.Classit  c                      gr   r   r   r   r   r   ^TestLoadMethodCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.Class.attributeu      r   r   Nr~   r   r   r   r   r  t      r   r   r   c                  $   > T R                  5       $ rK   r   r   s   r   r"   PTestLoadMethodCache.test_metaclass_descriptor_shadows_class_attribute.<locals>.fx  r  r   rk   r   r   s       @r   r   ETestLoadMethodCache.test_metaclass_descriptor_shadows_class_attributen  s>    	$ 	$
	i 		% tAOOAC  r   c                   ^  " S S[         5      n " S SUS9m[        S 5       nU4S jn[        S5       H  nU R                  U" 5       5        M     X!l        [        S5       H  nU R                  U" 5       5        M     g )	Nc                       \ rS rSrSrg)WTestLoadMethodCache.test_metaclass_set_descriptor_after_optimization.<locals>.Metaclassi  r   Nr\   r   r   r   r   r    r]   r   r   c                       \ rS rSrS rSrg)STestLoadMethodCache.test_metaclass_set_descriptor_after_optimization.<locals>.Classi  c                      gr   r   r   r   r   r   ]TestLoadMethodCache.test_metaclass_set_descriptor_after_optimization.<locals>.Class.attribute  r   r   r   Nr~   r   r   r   r   r    r   r   r   r   c                     S $ )Nc                      gr   r   r   r   r   r8   iTestLoadMethodCache.test_metaclass_set_descriptor_after_optimization.<locals>.attribute.<locals>.<lambda>  re  r   r   rd   s    r   r   WTestLoadMethodCache.test_metaclass_set_descriptor_after_optimization.<locals>.attribute  s      r   c                  $   > T R                  5       $ rK   r   r   s   r   r"   OTestLoadMethodCache.test_metaclass_set_descriptor_after_optimization.<locals>.f  r  r   rk   r   r   s        @r   r   DTestLoadMethodCache.test_metaclass_set_descriptor_after_optimization~  sx    	 		i 	 
	! 
	!	% tAOOAC   (tAQS! r   c                    ^  " S S[         5      n " S SUS9mU4S jn[        S5       H  nU R                  U" 5       5        M     U?[        S5       H  nU R	                  U" 5       5        M     g )Nc                   $    \ rS rSr\S 5       rSrg)WTestLoadMethodCache.test_metaclass_del_descriptor_after_optimization.<locals>.Metaclassi  c                     S $ )Nc                      gr   r   r   r   r   r8   sTestLoadMethodCache.test_metaclass_del_descriptor_after_optimization.<locals>.Metaclass.attribute.<locals>.<lambda>  r  r   r   rd   s    r   r   aTestLoadMethodCache.test_metaclass_del_descriptor_after_optimization.<locals>.Metaclass.attribute  r  r   r   Nr   r   r   r   r   r    r  r   r   c                       \ rS rSrS rSrg)STestLoadMethodCache.test_metaclass_del_descriptor_after_optimization.<locals>.Classi  c                      gr   r   r   r   r   r   ]TestLoadMethodCache.test_metaclass_del_descriptor_after_optimization.<locals>.Class.attribute  r  r   r   Nr~   r   r   r   r   r    r  r   r   r   c                  $   > T R                  5       $ rK   r   r   s   r   r"   OTestLoadMethodCache.test_metaclass_del_descriptor_after_optimization.<locals>.f  r  r   rk   r   r   s       @r   r   DTestLoadMethodCache.test_metaclass_del_descriptor_after_optimization  sd    	$ 	$
	i 		% tAOOAC   tAQS! r   c                 |   ^  " S S5      mU4S jn[        S5       H  nU R                  U" 5       SS/5        M     g )Nc                       \ rS rSrS rSrg)PTestLoadMethodCache.test_type_descriptor_shadows_attribute_method.<locals>.Classi  c                  
    SS/$ )Nr   eggsr   r   r   r   r   TTestLoadMethodCache.test_type_descriptor_shadows_attribute_method.<locals>.Class.mro  s    ''r   r   Nr   r   r   r   r   r    s    (r   r   c                  $   > T R                  5       $ rK   r   r   s   r   r"   LTestLoadMethodCache.test_type_descriptor_shadows_attribute_method.<locals>.f  s    99;r   rk   r   r  r   r   s      @r   r   ATestLoadMethodCache.test_type_descriptor_shadows_attribute_method  s9    	( 	(	 tAQS66"23 r   c                 x   ^  " S S5      mU4S jn[        S5       H  nU R                  U" 5       S5        M     g )Nc                       \ rS rSrS rSrg)PTestLoadMethodCache.test_type_descriptor_shadows_attribute_member.<locals>.Classi  c                      g)Nr   r   r   r   r   r   YTestLoadMethodCache.test_type_descriptor_shadows_attribute_member.<locals>.Class.__base__  s    r   r   Nr   r   r   r   r   r    s    r   r   c                  $   > T R                  5       $ rK   r   r   s   r   r"   LTestLoadMethodCache.test_type_descriptor_shadows_attribute_member.<locals>.f  s    >>##r   rk   r   )rr   assertNotEqualr   s      @r   r   ATestLoadMethodCache.test_type_descriptor_shadows_attribute_member  s4    	 		$ tAV, r   c                    ^  " S S[         5      n " S SUS9mU4S jn[        S5       H  nU R                  U" 5       5        M     g )Nc                       \ rS rSrS rSrg)BTestLoadMethodCache.test_metaclass_getattribute.<locals>.Metaclassi  c                     S $ )Nc                      gr   r   r   r   r   r8   eTestLoadMethodCache.test_metaclass_getattribute.<locals>.Metaclass.__getattribute__.<locals>.<lambda>  r  r   r   r   s     r   r   STestLoadMethodCache.test_metaclass_getattribute.<locals>.Metaclass.__getattribute__  s    ##r   r   Nr   r   r   r   r   r    s    $r   r   c                       \ rS rSrS rSrg)>TestLoadMethodCache.test_metaclass_getattribute.<locals>.Classi  c                      gr   r   r   r   r   r   HTestLoadMethodCache.test_metaclass_getattribute.<locals>.Class.attribute  r  r   r   Nr~   r   r   r   r   r    r  r   r   r   c                  $   > T R                  5       $ rK   r   r   s   r   r"   :TestLoadMethodCache.test_metaclass_getattribute.<locals>.f  r  r   rk   r   r   s       @r   r  /TestLoadMethodCache.test_metaclass_getattribute  s>    	$ 	$	i 		% tAOOAC  r   c                   ^  " S S[         5      n " S S[         5      n " S SUS9mU4S jn[        S	5       H  nU R                  U" 5       5        M     UTl        [        S	5       H  nU R	                  U" 5       5        M     g )
Nc                   $    \ rS rSr\S 5       rSrg)=TestLoadMethodCache.test_metaclass_swap.<locals>.OldMetaclassi  c                     S $ )Nc                      gr   r   r   r   r   r8   YTestLoadMethodCache.test_metaclass_swap.<locals>.OldMetaclass.attribute.<locals>.<lambda>  r  r   r   rd   s    r   r   GTestLoadMethodCache.test_metaclass_swap.<locals>.OldMetaclass.attribute  r  r   r   Nr   r   r   r   r  r    r  r   r  c                   $    \ rS rSr\S 5       rSrg)=TestLoadMethodCache.test_metaclass_swap.<locals>.NewMetaclassi  c                     S $ )Nc                      gr   r   r   r   r   r8   YTestLoadMethodCache.test_metaclass_swap.<locals>.NewMetaclass.attribute.<locals>.<lambda>  s    ur   r   rd   s    r   r   GTestLoadMethodCache.test_metaclass_swap.<locals>.NewMetaclass.attribute  s    $$r   r   Nr   r   r   r   r  r    s    % %r   r  c                       \ rS rSrSrg)6TestLoadMethodCache.test_metaclass_swap.<locals>.Classi  r   Nr\   r   r   r   r   r    r]   r   r   r   c                  $   > T R                  5       $ rK   r   r   s   r   r"   2TestLoadMethodCache.test_metaclass_swap.<locals>.f  r  r   rk   r  r  s        @r   r  'TestLoadMethodCache.test_metaclass_swap  sq    	$4 	$
	%4 	%
	l 		% tAOOAC   'tAQS! r   r   N)r(   r)   r*   r+   ru   r   r   r   r   r   r   r  r  r,   r   r   r   r\  r\  1  s/    ">":! "."*	4	-!"r   r\  c                   F    \ rS rSrS rS rS r\\S 5       5       r	S r
Srg)	TestCallCachei  c                 J    S nSUl         [        S5       H
  nU" 5         M     g )Nc                      g rK   r   r   r   r   r"   1TestCallCache.test_too_many_defaults_0.<locals>.f      r   rK   rk   __defaults__rr   r!   r"   r   s      r   test_too_many_defaults_0&TestCallCache.test_too_many_defaults_0  s#    	 !tAC r   c                 Z    S nSUl         [        S5       H  nU" S 5        U" 5         M     g )Nc                     g rK   r   rb   s    r   r"   1TestCallCache.test_too_many_defaults_1.<locals>.f  r  r   )NNrk   r  r  s      r   test_too_many_defaults_1&TestCallCache.test_too_many_defaults_1  s*    	 &tAdGC r   c                 l    S nSUl         [        S5       H  nU" S S 5        U" S 5        U" 5         M     g )Nc                     g rK   r   )rc   ys     r   r"   1TestCallCache.test_too_many_defaults_2.<locals>.f  r  r   )NNNrk   r  r  s      r   test_too_many_defaults_2&TestCallCache.test_too_many_defaults_2  s3    	 ,tAdDMdGC r   c                    ^  " S S5      mU4S jn[        S5       H
  nU" 5         M     U R                  US5        S nUR                  TR                  l        U" 5         g )Nc                       \ rS rSrS rSrg)4TestCallCache.test_assign_init_code.<locals>.MyClassi  c                     g rK   r   rd   s    r   re   =TestCallCache.test_assign_init_code.<locals>.MyClass.__init__	  s    r   r   N)r(   r)   r*   r+   re   r,   r   r   r   MyClassr    s    r   r  c                     > T " 5       $ rK   r   )r  s   r   instantiate8TestCallCache.test_assign_init_code.<locals>.instantiate  s    9r   rk   CALL_ALLOC_AND_ENTER_INITc                 $    [        U5      U l        g rK   )lennum_args)r!   r   s     r   
count_args7TestCallCache.test_assign_init_code.<locals>.count_args  s    IDMr   )rr   r&   __code__re   )r!   r   r   r  r  s       @r   test_assign_init_code#TestCallCache.test_assign_init_code  sX    	 		 tAM -HI	&
 %/$7$7!r   c                    ^ SU4S jjmU R                  [        5         T" 5         S S S 5        g ! , (       d  f       g = f)Nc                    > T" 5       $ rK   r   )defaulttests    r   r  BTestCallCache.test_recursion_check_for_general_calls.<locals>.test  s
    6Mr   rK   )r3  RecursionError)r!   r  s    @r   &test_recursion_check_for_general_calls4TestCallCache.test_recursion_check_for_general_calls  s)    	 ~.F /..s   0
>)r  N)r(   r)   r*   r+   r  r  r  r   r   r	  r  r,   r   r   r   r  r    s2       *r   r  c                       \ rS rSrSrSrSrSr\SS.S j5       r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestRacesDoNotCrashi$  i     rm   Fcheck_itemsc                   [        U R                  5       GH/  nU" 5       nU(       a)  U H"  nUR                  R                  5       Ul        M$     OUR                  R                  5       Ul        [        U R                  5       H  nU" U5        M     U(       a  U H  nU R                  X5        M     OU R                  X15        / n	[        U R                  5       H)  n[        R                  " XG/S9n
U	R                  U
5        M+     U	 H  n
U
R                  5         M     U" U5        U	 H  n
U
R                  5         M     GM2     g )N)targetr   )rr   LOOPSr  replaceWARMUPSr&   WRITERS	threadingThreadr:   startjoin)r!   r   	get_itemsreadwriter  r   itemsitemwriterswriters              r   assert_races_do_not_crash-TestRacesDoNotCrash.assert_races_do_not_crash.  s    
 tzz"AKE!D$(MM$9$9$;DM " !% 5 5 74<<(U )!D++D9 " ''5G4<<("))WEv& ) " "K! "3 #r   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S5      n / n[        TR                  5       H  nU " 5       nUR                  U5        M     U$ )Nc                       \ rS rSrS rSrg)LTestRacesDoNotCrash.test_binary_subscr_getitem.<locals>.get_items.<locals>.CiQ  c                     g rK   r   r!   r&  s     r   r8   UTestRacesDoNotCrash.test_binary_subscr_getitem.<locals>.get_items.<locals>.C.<lambda>R  s    r   r   N)r(   r)   r*   r+   __getitem__r,   r   r   r   rF   r.  Q  s    5r   rF   rr   ITEMSr:   rF   r%  r   r&  r!   s       r   r"  ATestRacesDoNotCrash.test_binary_subscr_getitem.<locals>.get_itemsP  sA    6 6 E4::&sT" ' Lr   c                 D    U  H	  n US      M     g ! [          a     M  f = frK   )r4  r%  r&  s     r   r#  <TestRacesDoNotCrash.test_binary_subscr_getitem.<locals>.readZ  s,    J  !    
c                 ^    U  H  n U? S [        U5      l         M     g ! [         a     N"f = f)Nc                     g rK   r   r0  s     r   r8   OTestRacesDoNotCrash.test_binary_subscr_getitem.<locals>.write.<locals>.<lambda>g  s    Dr   )r2  AttributeErrorr   r8  s     r   r$  =TestRacesDoNotCrash.test_binary_subscr_getitem.<locals>.writea  s:    ( *AT
&  &    
,,BINARY_SUBSCR_GETITEMr)  r!   r"  r#  r$  r   s   `    r   test_binary_subscr_getitem.TestRacesDoNotCrash.test_binary_subscr_getitemO  s*    			A )&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                  l   > / n [        TR                  5       H  nS /nU R                  U5        M     U $ rK   r3  r%  r   r&  r!   s      r   r"  BTestRacesDoNotCrash.test_binary_subscr_list_int.<locals>.get_itemsm  5    E4::&vT" ' Lr   c                 D    U  H	  n US     M     g ! [          a     M  f = fNr   
IndexErrorr8  s     r   r#  =TestRacesDoNotCrash.test_binary_subscr_list_int.<locals>.readt  s,    G  " r:  c                 X    U  H$  nUR                  5         UR                  S 5        M&     g rK   rR   r:   r8  s     r   r$  >TestRacesDoNotCrash.test_binary_subscr_list_int.<locals>.write{  !    

D! r   BINARY_SUBSCR_LIST_INTrB  rC  s   `    r   test_binary_subscr_list_int/TestRacesDoNotCrash.test_binary_subscr_list_intl  s)    			"
 *&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                  z   > S n / n[        TR                  5       H  nU " 5       nUR                  U5        M     U$ )Nc               3      #    S v   S v   g 7frK   r   r   r   r   gCTestRacesDoNotCrash.test_for_iter_gen.<locals>.get_items.<locals>.g  s     s   
r3  )rZ  r%  r   r&  r!   s       r   r"  8TestRacesDoNotCrash.test_for_iter_gen.<locals>.get_items  s<     E4::&sT" ' Lr   c                 N    U  H  n U H  n  M     M     g ! [          a     M   f = frK   
ValueErrorr%  r&  r   s      r   r#  3TestRacesDoNotCrash.test_for_iter_gen.<locals>.read  2    ! "  "    
$$c                 N    U  H  n U H  n  M     M     g ! [          a     M   f = frK   r^  r`  s      r   r$  4TestRacesDoNotCrash.test_for_iter_gen.<locals>.write  rb  rc  FOR_ITER_GENrB  rC  s   `    r   test_for_iter_gen%TestRacesDoNotCrash.test_for_iter_gen  s)    				  &&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                  l   > / n [        TR                  5       H  nS /nU R                  U5        M     U $ rK   r3  rH  s      r   r"  9TestRacesDoNotCrash.test_for_iter_list.<locals>.get_items  rJ  r   c                 *    U  H  nU H  n  M     M     g rK   r   r8  s     r   r#  4TestRacesDoNotCrash.test_for_iter_list.<locals>.read  s     D ! r   c                 X    U  H$  nUR                  5         UR                  S 5        M&     g rK   rQ  r8  s     r   r$  5TestRacesDoNotCrash.test_for_iter_list.<locals>.write  rS  r   FOR_ITER_LISTrB  rC  s   `    r   test_for_iter_list&TestRacesDoNotCrash.test_for_iter_list  s)    		
	"
 !&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                  ~   >  " S S5      n / n[        TR                  5       H  nU nUR                  U5        M     U$ )Nc                   "    \ rS rSr\" 5       rSrg)FTestRacesDoNotCrash.test_load_attr_class.<locals>.get_items.<locals>.Ci  r   N)r(   r)   r*   r+   r   ar,   r   r   r   rF   rv    s	    Hr   rF   r3  r5  s       r   r"  ;TestRacesDoNotCrash.test_load_attr_class.<locals>.get_items  s?      E4::&T" ' Lr   c                 R    U  H  n UR                     M     g ! [         a     M"  f = frK   rw  r>  r8  s     r   r#  6TestRacesDoNotCrash.test_load_attr_class.<locals>.read  ,    FF  &    
&&c                 Z    U  H  n U? [        5       Ul         M     g ! [         a     N f = frK   )rw  r>  r   r8  s     r   r$  7TestRacesDoNotCrash.test_load_attr_class.<locals>.write  s5        & s   
**LOAD_ATTR_CLASSrB  rC  s   `    r   test_load_attr_class(TestRacesDoNotCrash.test_load_attr_class  s)    			" #&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S5      n / n[        TR                  5       H  nU " 5       nUR                  U5        M     U$ )Nc                       \ rS rSrS rSrg)XTestRacesDoNotCrash.test_load_attr_getattribute_overridden.<locals>.get_items.<locals>.Ci  c                     g rK   r   r   s     r   r8   aTestRacesDoNotCrash.test_load_attr_getattribute_overridden.<locals>.get_items.<locals>.C.<lambda>  s    dr   r   Nr   r   r   r   rF   r    s    #: r   rF   r3  r5  s       r   r"  MTestRacesDoNotCrash.test_load_attr_getattribute_overridden.<locals>.get_items  sA    ; ; E4::&sT" ' Lr   c                 R    U  H  n UR                     M     g ! [         a     M"  f = frK   rz  r8  s     r   r#  HTestRacesDoNotCrash.test_load_attr_getattribute_overridden.<locals>.read  r|  r}  c                 ^    U  H  n U? S [        U5      l         M     g ! [         a     N"f = f)Nc                     g rK   r   r   s     r   r8   [TestRacesDoNotCrash.test_load_attr_getattribute_overridden.<locals>.write.<locals>.<lambda>  s    r   )r   r>  r   r8  s     r   r$  ITestRacesDoNotCrash.test_load_attr_getattribute_overridden.<locals>.write  s:    - /FT
+  & r@  !LOAD_ATTR_GETATTRIBUTE_OVERRIDDENrB  rC  s   `    r   &test_load_attr_getattribute_overridden:TestRacesDoNotCrash.test_load_attr_getattribute_overridden  s*    			F 5&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S5      n / n[        TR                  5       H"  nU " 5       nS Ul        UR                  U5        M$     U$ )Nc                       \ rS rSrSrg)OTestRacesDoNotCrash.test_load_attr_instance_value.<locals>.get_items.<locals>.Ci  r   Nr\   r   r   r   rF   r        r   rF   )rr   r4  rw  r:   r5  s       r   r"  DTestRacesDoNotCrash.test_load_attr_instance_value.<locals>.get_items  sH      E4::&sT" ' Lr   c                 .    U  H  nUR                     M     g rK   rw  r8  s     r   r#  ?TestRacesDoNotCrash.test_load_attr_instance_value.<locals>.read       r   c                 4    U  H  nS UR                   S '   M     g rK   __dict__r8  s     r   r$  @TestRacesDoNotCrash.test_load_attr_instance_value.<locals>.write      &*d# r   LOAD_ATTR_INSTANCE_VALUErB  rC  s   `    r   test_load_attr_instance_value1TestRacesDoNotCrash.test_load_attr_instance_value  s)    				+ ,&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S[         5      n / n[        TR                  5       H  nU " 5       nUR                  U5        M     U$ )Nc                       \ rS rSrS rSrg)QTestRacesDoNotCrash.test_load_attr_method_lazy_dict.<locals>.get_items.<locals>.Ci
  c                     g rK   r   rd   s    r   r8   ZTestRacesDoNotCrash.test_load_attr_method_lazy_dict.<locals>.get_items.<locals>.C.<lambda>      r   r   Nr(   r)   r*   r+   mr,   r   r   r   rF   r  
      %r   rF   )	Exceptionrr   r4  r:   r5  s       r   r"  FTestRacesDoNotCrash.test_load_attr_method_lazy_dict.<locals>.get_items	  sC    &I & E4::&sT" ' Lr   c                 Z    U  H  n UR                  5         M     g ! [         a     M&  f = frK   r  r>  r8  s     r   r#  ATestRacesDoNotCrash.test_load_attr_method_lazy_dict.<locals>.read  .    FFH  &    
**c                 ^    U  H  n U? S [        U5      l         M     g ! [         a     N"f = f)Nc                     g rK   r   rd   s    r   r8   TTestRacesDoNotCrash.test_load_attr_method_lazy_dict.<locals>.write.<locals>.<lambda>       Dr   r  r>  r   r8  s     r   r$  BTestRacesDoNotCrash.test_load_attr_method_lazy_dict.<locals>.write  7      1T
  & r@  LOAD_ATTR_METHOD_LAZY_DICTrB  rC  s   `    r   test_load_attr_method_lazy_dict3TestRacesDoNotCrash.test_load_attr_method_lazy_dict  s)    			1 .&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S5      n / n[        TR                  5       H  nU " 5       nUR                  U5        M     U$ )Nc                       \ rS rSrSrS rSrg)OTestRacesDoNotCrash.test_load_attr_method_no_dict.<locals>.get_items.<locals>.Ci'  r   c                     g rK   r   rd   s    r   r8   XTestRacesDoNotCrash.test_load_attr_method_no_dict.<locals>.get_items.<locals>.C.<lambda>)  r  r   N)r(   r)   r*   r+   r$  r  r,   r   r   r   rF   r  '  s    	%r   rF   r3  r5  s       r   r"  DTestRacesDoNotCrash.test_load_attr_method_no_dict.<locals>.get_items&  sA    & & E4::&sT" ' Lr   c                 Z    U  H  n UR                  5         M     g ! [         a     M&  f = frK   r  r8  s     r   r#  ?TestRacesDoNotCrash.test_load_attr_method_no_dict.<locals>.read1  r  r  c                 ^    U  H  n U? S [        U5      l         M     g ! [         a     N"f = f)Nc                     g rK   r   rd   s    r   r8   RTestRacesDoNotCrash.test_load_attr_method_no_dict.<locals>.write.<locals>.<lambda>>  r  r   r  r8  s     r   r$  @TestRacesDoNotCrash.test_load_attr_method_no_dict.<locals>.write8  r  r@  LOAD_ATTR_METHOD_NO_DICTrB  rC  s   `    r   test_load_attr_method_no_dict1TestRacesDoNotCrash.test_load_attr_method_no_dict%  s)    				1 ,&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S5      n / n[        TR                  5       H  nU " 5       nUR                  U5        M     U$ )Nc                       \ rS rSrS rSrg)STestRacesDoNotCrash.test_load_attr_method_with_values.<locals>.get_items.<locals>.CiE  c                     g rK   r   rd   s    r   r8   \TestRacesDoNotCrash.test_load_attr_method_with_values.<locals>.get_items.<locals>.C.<lambda>F  r  r   r   Nr  r   r   r   rF   r  E  r  r   rF   r3  r5  s       r   r"  HTestRacesDoNotCrash.test_load_attr_method_with_values.<locals>.get_itemsD  sA    & & E4::&sT" ' Lr   c                 Z    U  H  n UR                  5         M     g ! [         a     M&  f = frK   r  r8  s     r   r#  CTestRacesDoNotCrash.test_load_attr_method_with_values.<locals>.readN  r  r  c                 ^    U  H  n U? S [        U5      l         M     g ! [         a     N"f = f)Nc                     g rK   r   rd   s    r   r8   VTestRacesDoNotCrash.test_load_attr_method_with_values.<locals>.write.<locals>.<lambda>[  r  r   r  r8  s     r   r$  DTestRacesDoNotCrash.test_load_attr_method_with_values.<locals>.writeU  r  r@  LOAD_ATTR_METHOD_WITH_VALUESrB  rC  s   `    r   !test_load_attr_method_with_values5TestRacesDoNotCrash.test_load_attr_method_with_valuesC  s)    			1 0&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     > / n [        TR                  5       H*  n[        R                  " S5      nU R	                  U5        M,     U $ )Nz<item>)rr   r4  types
ModuleTyper:   rH  s      r   r"  <TestRacesDoNotCrash.test_load_attr_module.<locals>.get_itemsa  s>    E4::&''1T" ' Lr   c                 R    U  H  n UR                     M     g ! [         a     M"  f = frK   )r(   r>  r8  s     r   r#  7TestRacesDoNotCrash.test_load_attr_module.<locals>.readh  s,    MM  & r}  c                     U  HR  nUR                   R                  5       nUR                   R                  5         UR                   R                  U5        MT     g rK   )r  copyrR   update)r%  r&  rD   s      r   r$  8TestRacesDoNotCrash.test_load_attr_module.<locals>.writeo  s@    MM&&(##%$$Q' r   LOAD_ATTR_MODULErB  rC  s   `    r   test_load_attr_module)TestRacesDoNotCrash.test_load_attr_module`  s)    			( $&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S5      n / n[        TR                  5       H  nU " 5       nUR                  U5        M     U$ )Nc                   &    \ rS rSr\" S 5      rSrg)ITestRacesDoNotCrash.test_load_attr_property.<locals>.get_items.<locals>.Ciz  c                     g rK   r   rd   s    r   r8   RTestRacesDoNotCrash.test_load_attr_property.<locals>.get_items.<locals>.C.<lambda>{  s    $r   r   N)r(   r)   r*   r+   r   rw  r,   r   r   r   rF   r  z  s    ./r   rF   r3  r5  s       r   r"  >TestRacesDoNotCrash.test_load_attr_property.<locals>.get_itemsy  sA    0 0 E4::&sT" ' Lr   c                 R    U  H  n UR                     M     g ! [         a     M"  f = frK   rz  r8  s     r   r#  9TestRacesDoNotCrash.test_load_attr_property.<locals>.read  r|  r}  c                     U  H)  n [        U5      ?[        S 5      [        U5      l        M+     g ! [         a     N+f = f)Nc                     g rK   r   rd   s    r   r8   LTestRacesDoNotCrash.test_load_attr_property.<locals>.write.<locals>.<lambda>  s    Tr   )r   rw  r>  r   r8  s     r   r$  :TestRacesDoNotCrash.test_load_attr_property.<locals>.write  sA    T
  ((9:T
  & s   1
>>LOAD_ATTR_PROPERTYrB  rC  s   `    r   test_load_attr_property+TestRacesDoNotCrash.test_load_attr_propertyx  s)    			; &&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S5      n / n[        TR                  5       HD  nU " 5       nS Ul        [        S5       H  n[        USU 3S 5        M     UR	                  U5        MF     U$ )Nc                       \ rS rSrSrg)JTestRacesDoNotCrash.test_load_attr_with_hint.<locals>.get_items.<locals>.Ci  r   Nr\   r   r   r   rF   r    r  r   rF      r   )rr   r4  rw  setattrr:   rF   r%  r   r&  rt   r!   s        r   r"  ?TestRacesDoNotCrash.test_load_attr_with_hint.<locals>.get_items  sh      E4::&srADAaS'40 #T" ' Lr   c                 .    U  H  nUR                     M     g rK   r  r8  s     r   r#  :TestRacesDoNotCrash.test_load_attr_with_hint.<locals>.read  r  r   c                 4    U  H  nS UR                   S '   M     g rK   r  r8  s     r   r$  ;TestRacesDoNotCrash.test_load_attr_with_hint.<locals>.write  r  r   LOAD_ATTR_WITH_HINTrB  rC  s   `    r   test_load_attr_with_hint,TestRacesDoNotCrash.test_load_attr_with_hint  s)    			+ '&&v$Fr   c                 D   ^  U 4S jnS nS nSnT R                  XAX#SS9  g )Nc                     > / n [        TR                  5       H"  n[        SSS 05      nU R                  U5        M$     U $ )Nz	lambda: xrc   )rr   r4  evalr:   rH  s      r   r"  >TestRacesDoNotCrash.test_load_global_module.<locals>.get_items  s>    E4::&K#t5T" ' Lr   c                 $    U  H
  nU" 5         M     g rK   r   r8  s     r   r#  9TestRacesDoNotCrash.test_load_global_module.<locals>.read  s     r   c                 4    U  H  nS UR                   S '   M     g rK   )__globals__r8  s     r   r$  :TestRacesDoNotCrash.test_load_global_module.<locals>.write  s    )-  & r   LOAD_GLOBAL_MODULETr  rB  rC  s   `    r   test_load_global_module+TestRacesDoNotCrash.test_load_global_module  s3    			. &&&t 	' 	
r   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S5      n / n[        TR                  5       H  nU " 5       nUR                  U5        M     U$ )Nc                       \ rS rSrSrg)PTestRacesDoNotCrash.test_store_attr_instance_value.<locals>.get_items.<locals>.Ci  r   Nr\   r   r   r   rF   r    r  r   rF   r3  r5  s       r   r"  ETestRacesDoNotCrash.test_store_attr_instance_value.<locals>.get_items  sA      E4::&sT" ' Lr   c                 $    U  H
  nS Ul         M     g rK   r  r8  s     r   r#  @TestRacesDoNotCrash.test_store_attr_instance_value.<locals>.read       r   c                 4    U  H  nS UR                   S '   M     g rK   r  r8  s     r   r$  ATestRacesDoNotCrash.test_store_attr_instance_value.<locals>.write  r  r   STORE_ATTR_INSTANCE_VALUErB  rC  s   `    r   test_store_attr_instance_value2TestRacesDoNotCrash.test_store_attr_instance_value  s)    			+ -&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                     >  " S S5      n / n[        TR                  5       H=  nU " 5       n[        S5       H  n[        USU 3S 5        M     UR                  U5        M?     U$ )Nc                       \ rS rSrSrg)KTestRacesDoNotCrash.test_store_attr_with_hint.<locals>.get_items.<locals>.Ci  r   Nr\   r   r   r   rF   r)    r  r   rF   r  r   )rr   r4  r  r:   r  s        r   r"  @TestRacesDoNotCrash.test_store_attr_with_hint.<locals>.get_items  sa      E4::&srADAaS'40 #T" ' Lr   c                 $    U  H
  nS Ul         M     g rK   r  r8  s     r   r#  ;TestRacesDoNotCrash.test_store_attr_with_hint.<locals>.read  r   r   c                 4    U  H  nS UR                   S '   M     g rK   r  r8  s     r   r$  <TestRacesDoNotCrash.test_store_attr_with_hint.<locals>.write  r  r   STORE_ATTR_WITH_HINTrB  rC  s   `    r   test_store_attr_with_hint-TestRacesDoNotCrash.test_store_attr_with_hint  s)    			+ (&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                  l   > / n [        TR                  5       H  nS /nU R                  U5        M     U $ rK   r3  rH  s      r   r"  ATestRacesDoNotCrash.test_store_subscr_list_int.<locals>.get_items  rJ  r   c                 D    U  H	  n S US'   M     g ! [          a     M  f = frL  rM  r8  s     r   r#  <TestRacesDoNotCrash.test_store_subscr_list_int.<locals>.read  s.    "DG  " r:  c                 X    U  H$  nUR                  5         UR                  S 5        M&     g rK   rQ  r8  s     r   r$  =TestRacesDoNotCrash.test_store_subscr_list_int.<locals>.write  rS  r   STORE_SUBSCR_LIST_INTrB  rC  s   `    r   test_store_subscr_list_int.TestRacesDoNotCrash.test_store_subscr_list_int  s)    			"
 )&&v$Fr   c                 F   ^  U 4S jnS nS nSnT R                  XAX#5        g )Nc                  l   > / n [        TR                  5       H  nS /nU R                  U5        M     U $ rK   r3  rH  s      r   r"  @TestRacesDoNotCrash.test_unpack_sequence_list.<locals>.get_items  rJ  r   c                 B    U  H  n Uu  nM
     g ! [          a     M  f = frK   r^  r`  s      r   r#  ;TestRacesDoNotCrash.test_unpack_sequence_list.<locals>.read  s,    CQ  " s   
c                 X    U  H$  nUR                  5         UR                  S 5        M&     g rK   rQ  r8  s     r   r$  <TestRacesDoNotCrash.test_unpack_sequence_list.<locals>.write  rS  r   UNPACK_SEQUENCE_LISTrB  rC  s   `    r   test_unpack_sequence_list-TestRacesDoNotCrash.test_unpack_sequence_list
  s)    			"
 (&&v$Fr   r   N)r(   r)   r*   r+   r4  r  r  r  r   r)  rD  rU  rg  rq  r  r  r  r  r  r  r  r  r  r  r$  r0  r:  rD  r,   r   r   r   r  r  $  s    
 EEGG=B @G:G.G>G*G:G:G.G:G<G:G0G:G4
*G,G2G.Gr   r  c                       \ rS rSrSrg)rF   i!  r   Nr\   r   r   r   rF   rF   !  s    r   rF   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestInstanceDicti$  c                 B    [        5       nSu  Ul        Ul        Ul        g )N)r   r   r   )rF   rw  bcr!   rK  s     r   setUpTestInstanceDict.setUp'  s    CQS!#r   c                     [        5       nSUl        S[        5       l        SUl        U R	                  [
        R                  U5      S5        g )Nr7   rm      )r7   <NULL>rP  )rF   rw  rJ  rK  rQ   r   get_object_dict_valuesrL  s     r   test_values_on_instance(TestInstanceDict.test_values_on_instance+  s?    C44Q7	
r   c                     [        5       nSUl        SUl        UR                    U R	                  UR                  SSS.5        g )Nr7   rm   rw  rJ  )rF   rw  rJ  r  rQ   rL  s     r   test_dict_materialization*TestInstanceDict.test_dict_materialization5  s6    C	

!!_5r   c                     [        5       nSUl        SUl        UR                    [	        S5       H  nUR                    M     U R                  [        R                  U5      S5        g Nr7   rm   d   )r7   rm   rQ  )rF   rw  rJ  r  rr   rQ   r   rR  )r!   rK  r   s      r   test_dict_dematerialization,TestInstanceDict.test_dict_dematerialization<  sR    C	

sACC 44Q7	
r   c                     [        5       nSUl        SUl        UR                  n[	        S5       H  nUR                    M     U R                  UR                  U5        g )Nr7   rm   r[  )rF   rw  rJ  r  rr   r   )r!   rK  rD   r   s       r   )test_dict_dematerialization_multiple_refs:TestInstanceDict.test_dict_dematerialization_multiple_refsH  sG    CJJsACC ajj!$r   c                    [        5       nSUl        SUl        [        R                  " U5      n[	        S5       H  nUR                    UR                    M     U R                  [        R                  U5      S5        U R                  [        R                  U5      S5        [        R                  " U5      n[	        S5       H  nUR                    UR                    M     U R                  [        R                  U5      S5        g rZ  )	rF   rw  rJ  r  rr   rQ   r   rR  deepcopy)r!   rK  c2r   c3s        r    test_dict_dematerialization_copy1TestInstanceDict.test_dict_dematerialization_copyQ  s    CYYq\sACCDD  	44Q7	
 	44R8	
 ]]1sACCDD  	44Q7	
r   c                 p   [        5       nSUl        SUl        [        R                  " [        R
                  " U5      5      n[        S5       H  nUR                    UR                    M     U R                  [        R                  U5      S5        U R                  [        R                  U5      S5        g rZ  )
rF   rw  rJ  pickleloadsdumpsrr   rQ   r   rR  )r!   rK  rc  r   s       r   "test_dict_dematerialization_pickle3TestInstanceDict.test_dict_dematerialization_picklek  s    C\\&,,q/*sACCDD  	44Q7	
 	44R8	
r   c                 D    " S S[         5      n[        5       nSUl        SUl        U" UR                  5      Ul        [        S5       H  nUR                    M     U R                  [        R                  U5      S 5        U R                  UR                  SSS.5        g )Nc                       \ rS rSrSrg)@TestInstanceDict.test_dict_dematerialization_subclass.<locals>.Di}  r   Nr\   r   r   r   rP   ro  }  s    tr   rP   r7   rm   r[  rV  )
dictrF   rw  rJ  r  rr   r   r   rR  rQ   )r!   rP   rK  r   s       r   $test_dict_dematerialization_subclass5TestInstanceDict.test_dict_dematerialization_subclass|  s~    Cqzz]
sACC 44Q7	
 	JJN	
r   c                      " S S5      n " S S[         5      nU" 5       nUR                  S0 05        UR                  S0 05        UR                  U" S0 05      5        g )Nc                        \ rS rSrS rS rSrg)8TestInstanceDict.test_store_attr_with_hint.<locals>.Nodei  c                     0 U l         g rK   )parentsrd   s    r   re   ATestInstanceDict.test_store_attr_with_hint.<locals>.Node.__init__  s	    !r   c                     Xl         0 U l        g rK   r  rw  )r!   	data_dicts     r   __setstate__ETestInstanceDict.test_store_attr_with_hint.<locals>.Node.__setstate__  s     )!r   rz  N)r(   r)   r*   r+   re   r|  r,   r   r   r   Noderu    s    ""r   r~  c                       \ rS rSrSrg)8TestInstanceDict.test_store_attr_with_hint.<locals>.Dicti  r   Nr\   r   r   r   Dictr    r]   r   r  rw  )rp  r|  )r!   r~  r  objs       r   r0  *TestInstanceDict.test_store_attr_with_hint  s\    	" 	"	4 	 f)R))R)y"o./r   r   N)r(   r)   r*   r+   rM  rS  rW  r\  r_  re  rk  rq  r0  r,   r   r   r   rH  rH  $  s/    
6

%
4
"
"0r   rH  __main__)r  rh  r   r  r  unittesttest.supportr   r   r   test.support.import_helperr   SkipTestr   r   TestCaser   r.   rV   r\  r  requires_working_threadingr  rF   rH  r(   mainr   r   r   <module>r     s"     
    U U 4 U#


G
HH!"56 'x   '*X.. *.q)) qhu"(++ u"p8H 8v ,,.yG( yG  /yGv	 	 x0x(( x0 x0v zMMO r   