
    0hh,                      n    S SK r S SKr " S S\R                  5      r\S:X  a  \R
                  " 5         gg)    Nc                   z    \ 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Srg)Test   c                      " S S5      n " S SU5      nU R                  UR                  5        U R                  UR                  5        g )Nc                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )"Test.test_init_subclass.<locals>.A   Fc                 0   > [         TU ]  5         SU l        g NTsuper__init_subclass__initializedcls	__class__s    ?/opt/python-3.13.8/usr/lib/python3.13/test/test_subclassinit.pyr   4Test.test_init_subclass.<locals>.A.__init_subclass__
       )+"&     __name__
__module____qualname____firstlineno__r   r   __static_attributes____classcell__r   s   @r   Ar          K' 'r   r    c                       \ rS rSrSrg)"Test.test_init_subclass.<locals>.B   r   Nr   r   r   r   r   r   r   r   Br#          r   r&   )assertFalser   
assertTrueselfr    r&   s      r   test_init_subclassTest.test_init_subclass   s<    	' 	'	 	 	'&r   c                      " S S[         5      n " S SU5      nU R                  UR                  5        U R                  UR                  5        g )Nc                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )'Test.test_init_subclass_dict.<locals>.A   Fc                 0   > [         TU ]  5         SU l        g r   r   r   s    r   r   9Test.test_init_subclass_dict.<locals>.A.__init_subclass__   r   r   r   r   r   s   @r   r    r0      r!   r   r    c                       \ rS rSrSrg)'Test.test_init_subclass_dict.<locals>.B   r   Nr%   r   r   r   r&   r5      r'   r   r&   )dictr(   r   r)   r*   s      r   test_init_subclass_dictTest.test_init_subclass_dict   s>    	' 	'	 	 	'&r   c                 r     " S S5      n " S SUSS9nU R                  UR                  [        SS95        g )Nc                       \ rS rSrS rSrg))Test.test_init_subclass_kwargs.<locals>.A#   c                     Xl         g N)kwargs)r   r@   s     r   r   ;Test.test_init_subclass_kwargs.<locals>.A.__init_subclass__$   s    #
r   r   Nr   r   r   r   r   r   r   r   r   r    r<   #   s    $r   r    c                       \ rS rSrSrg))Test.test_init_subclass_kwargs.<locals>.B'   r   Nr%   r   r   r   r&   rD   '   r'   r   r&      )x)assertEqualr@   r7   r*   s      r   test_init_subclass_kwargsTest.test_init_subclass_kwargs"   s4    	$ 	$	Q 	 	4!9-r   c                      " S S5      nU R                  [        5          " S SU5      nS S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)(Test.test_init_subclass_error.<locals>.A-   c                     [         er?   )RuntimeErrorr   s    r   r   :Test.test_init_subclass_error.<locals>.A.__init_subclass__.   s    ""r   r   NrB   r   r   r   r    rM   -   s    #r   r    c                       \ rS rSrSrg)(Test.test_init_subclass_error.<locals>.B2   r   Nr%   r   r   r   r&   rT   2       r   r&   )assertRaisesrP   r*   s      r   test_init_subclass_errorTest.test_init_subclass_error,   s4    	# 	# |,A  -,,	   5
Ac                      " S S5      nU R                  [        5          " S SU5      nS S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)(Test.test_init_subclass_wrong.<locals>.A6   c                     g r?   r   )r   whatevers     r   r   :Test.test_init_subclass_wrong.<locals>.A.__init_subclass__7       r   r   NrB   r   r   r   r    r]   6       r   r    c                       \ rS rSrSrg)(Test.test_init_subclass_wrong.<locals>.B;   r   Nr%   r   r   r   r&   re   ;   rV   r   r&   )rW   	TypeErrorr*   s      r   test_init_subclass_wrongTest.test_init_subclass_wrong5   s4    	 	 y)A  *))rZ   c                      " S S5      n " S SU5      n " S SU5      nU R                  UR                  U5        U R                  UR                  U5        g )Nc                   (   ^  \ rS rSrU 4S jrSrU =r$ )5Test.test_init_subclass_skipped.<locals>.BaseWithInit?   c                 2   > [         TU ]  " S0 UD6  X l        g Nr   r   r   r@   r   s     r   r   GTest.test_init_subclass_skipped.<locals>.BaseWithInit.__init_subclass__@   s    )3F3"%r   r   r   r   r   r   r   r   r   r   s   @r   BaseWithInitrl   ?       & &r   rs   c                       \ rS rSrSrg)8Test.test_init_subclass_skipped.<locals>.BaseWithoutInitD   r   Nr%   r   r   r   BaseWithoutInitrv   D   r'   r   rx   c                       \ rS rSrSrg)*Test.test_init_subclass_skipped.<locals>.AG   r   Nr%   r   r   r   r    rz   G   r'   r   r    )assertIsr   )r+   rs   rx   r    s       r   test_init_subclass_skippedTest.test_init_subclass_skipped>   sL    	& 	&
	l 		 	 	ammQ'o11?Cr   c           	          " S S5      n " S SU5      n " S S5      n " S SU5      n " S	 S
X#USS9nU R                  UR                  SS/5        U R                  UR                  / 5        U R                  UR                  / 5        g )Nc                   (   ^  \ rS rSrU 4S jrSrU =r$ )-Test.test_init_subclass_diamond.<locals>.BaseN   c                 4   > [         TU ]  " S0 UD6  / U l        g ro   r   r   callsrp   s     r   r   ?Test.test_init_subclass_diamond.<locals>.Base.__init_subclass__O   s    )3F3	r   r   rr   r   s   @r   Baser   N   s     r   r   c                       \ rS rSrSrg)-Test.test_init_subclass_diamond.<locals>.LeftS   r   Nr%   r   r   r   Leftr   S   r'   r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )/Test.test_init_subclass_diamond.<locals>.MiddleV   c                 R   > [         TU ]  " S0 UD6  U =R                  U/-  sl        g ro   r   )r   middler@   r   s      r   r   ATest.test_init_subclass_diamond.<locals>.Middle.__init_subclass__W   s#    )3F3		fX%	r   r   rr   r   s   @r   Middler   V   rt   r   r   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ ).Test.test_init_subclass_diamond.<locals>.Right[   c                 R   > [         TU ]  " S0 UD6  U =R                  U/-  sl        g ro   r   )r   rightr@   r   s      r   r   @Test.test_init_subclass_diamond.<locals>.Right.__init_subclass__\   s#    )3F3		eW$	r   r   )r   rr   r   s   @r   Rightr   [   s    % %r   r   c                       \ rS rSrSrg)*Test.test_init_subclass_diamond.<locals>.A`   r   Nr%   r   r   r   r    r   `   r'   r   r    r   )r   r   )rH   r   )r+   r   r   r   r   r    s         r   test_init_subclass_diamondTest.test_init_subclass_diamondM   s    	 	
	4 		& 	&
	%D 	%
	eH 	 	7H"56R(b)r   c                    ^  " S S5      m " U4S jS5      nU R                  UR                  R                  S5        U R                  UR                  R                  U5        g )Nc                       \ rS rSrS rSrg)&Test.test_set_name.<locals>.Descriptorh   c                     Xl         X l        g r?   ownernamer+   r   r   s      r   __set_name__3Test.test_set_name.<locals>.Descriptor.__set_name__i       "
 	r   r   r   Nr   r   r   r   r   r   r   r   r   
Descriptorr   h       !r   r   c                   &   > \ rS rSr Y " 5       rSrg)Test.test_set_name.<locals>.Am   r   Nr   r   r   r   dr   r   s   r   r    r   m   
    Ar   r    r   )rH   r   r   r|   r   )r+   r    r   s     @r   test_set_nameTest.test_set_nameg   sG    	! 	!
	 	 	3'accii#r   c                 |   ^ ^  " U 4S jS[         5      n " S S5      m " U4S jSUS9nT R                  US5        g )	Nc                   ,   >^  \ rS rSrU U4S jrSrU =r$ )*Test.test_set_name_metaclass.<locals>.Metat   c                    > [         TU ]  XX#5      nTR                  UR                  R                  S5        TR                  UR                  R                  U5        g)Nr   r   )r   __new__rH   r   r   r|   r   )r   r   basesnsretr   r+   s        r   r   2Test.test_set_name_metaclass.<locals>.Meta.__new__u   sD    goc;  S1ceekk3/r   r   r   r   r   r   r   r   r   )r   r+   s   @r   Metar   t   s     r   r   c                       \ rS rSrS rSrg)0Test.test_set_name_metaclass.<locals>.Descriptor{   c                     Xl         X l        g r?   r   r   s      r   r   =Test.test_set_name_metaclass.<locals>.Descriptor.__set_name__|   r   r   r   Nr   r   r   r   r   r   {   r   r   r   c                   &   > \ rS rSr Y " 5       rSrg)'Test.test_set_name_metaclass.<locals>.A   r   Nr   r   s   r   r    r      r   r   r    	metaclassr   )typerH   )r+   r   r    r   s   `  @r   test_set_name_metaclassTest.test_set_name_metaclasss   s5    	4 		! 	!
	$ 	Ar   c                 `  ^  " S S5      mU R                  [        5       n " U4S jS5      nS S S 5        WR                  R                  nU R	                  [        U5      S5        U R	                  [        U5      S5        U R	                  [        U5      S5        g ! , (       d  f       Nv= f)Nc                       \ rS rSrS rSrg),Test.test_set_name_error.<locals>.Descriptor   c                     SS-    g )N   r   r   r   s      r   r   9Test.test_set_name_error.<locals>.Descriptor.__set_name__   s	    !r   r   Nr   r   r   r   r   r      s    r   r   c                   &   > \ rS rSr Y " 5       rSrg)0Test.test_set_name_error.<locals>.NotGoingToWork   r   Nr   r   r   r   attrr   r   s   r   NotGoingToWorkr      
    !|r   r   \bNotGoingToWork\b\battr\b\bDescriptor\b)rW   ZeroDivisionError	exception	__notes__assertRegexstrr+   cmr   notesr   s       @r   test_set_name_errorTest.test_set_name_error   s    	 	 01R$ $ 2 &&U%:;U[1U%67 21   B
B-c                 `  ^  " S S5      mU R                  [        5       n " U4S jS5      nS S S 5        WR                  R                  nU R	                  [        U5      S5        U R	                  [        U5      S5        U R	                  [        U5      S5        g ! , (       d  f       Nv= f)Nc                       \ rS rSrS rSrg),Test.test_set_name_wrong.<locals>.Descriptor   c                     g r?   r   )r+   s    r   r   9Test.test_set_name_wrong.<locals>.Descriptor.__set_name__   rb   r   r   Nr   r   r   r   r   r      rc   r   r   c                   &   > \ rS rSr Y " 5       rSrg)0Test.test_set_name_wrong.<locals>.NotGoingToWork   r   Nr   r   s   r   r   r      r   r   r   r   r   r   )rW   rg   r   r   r   r   r   s       @r   test_set_name_wrongTest.test_set_name_wrong   s    	 	 y)R$ $ * &&U%:;U[1U%67 *)r   c                 f   ^^ / m " U4S jS5      m " U4S jS5      nU R                  STS5        g )Nc                   "   > \ rS rSrU 4S jrSrg)0Test.test_set_name_lookup.<locals>.NonDescriptor   c                 (   > TR                  U5        g r?   )append)r+   r   resolveds     r   __getattr__<Test.test_set_name_lookup.<locals>.NonDescriptor.__getattr__   s    %r   r   N)r   r   r   r   r   r   )r   s   r   NonDescriptorr      s    & &r   r  c                   &   > \ rS rSr Y " 5       rSrg)$Test.test_set_name_lookup.<locals>.A   r   Nr   )r  s   r   r    r     s
    Ar   r    r   z*__set_name__ is looked up in instance dict)assertNotIn)r+   r    r  r   s     @@r   test_set_name_lookupTest.test_set_name_lookup   s4    	& 	&	  	  	E	Gr   c                 D  ^  " S S5      m " S S[         5      n " S S5      n " U4S jSX!S	9nU R                  UR                  U5        U R                  UR                  S
5        U R                  UR
                  U5        U R                  UR                  S
5        g )Nc                       \ rS rSrS rSrg)4Test.test_set_name_init_subclass.<locals>.Descriptor   c                     Xl         X l        g r?   r   r   s      r   r   ATest.test_set_name_init_subclass.<locals>.Descriptor.__set_name__   r   r   r   Nr   r   r   r   r   r
     r   r   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ ).Test.test_set_name_init_subclass.<locals>.Meta   c                 l   > [         TU ]  XX#5      nUR                  Ul        UR                  Ul        U$ r?   )r   r   r   
meta_ownerr   	meta_name)r   r   r   r   r+   r   s        r   r   6Test.test_set_name_init_subclass.<locals>.Meta.__new__   s.    ws%<"&**!%r   )r  r  r   r   s   @r   r   r     s     r   r   c                       \ rS rSrS rSrg)+Test.test_set_name_init_subclass.<locals>.A   c                 p    U R                   R                  U l        U R                   R                  U l        g r?   )r   r   r   rQ   s    r   r   =Test.test_set_name_init_subclass.<locals>.A.__init_subclass__   s     EEKK	55::r   r   NrB   r   r   r   r    r     s    &r   r    c                   &   > \ rS rSr Y " 5       rSrg)+Test.test_set_name_init_subclass.<locals>.B   r   Nr   r   s   r   r&   r     r   r   r&   r   r   )r   r|   r   rH   r   r  )r+   r   r    r&   r   s       @r   test_set_name_init_subclass Test.test_set_name_init_subclass   s}    	! 	!
	4 		& 	&
	 	 	aggq!%allA&%r   c                 h   ^^ / m " U4S jS5      m " U4S jS5      nU R                  T/ SQ5        g )Nc                   "   > \ rS rSrU 4S jrSrg)5Test.test_set_name_modifying_dict.<locals>.Descriptor   c                 F   > [        XS-   S 5        TR                  U5        g )NrG   )setattrr   )r+   r   r   notifieds      r   r   BTest.test_set_name_modifying_dict.<locals>.Descriptor.__set_name__   s    cz40%r   r   Nr   )r%  s   r   r   r!     s    & &r   r   c                   f   > \ rS rSr Y " 5       r Y " 5       r Y " 5       r Y " 5       r Y " 5       rSr	g),Test.test_set_name_modifying_dict.<locals>.A   r   N)
r   r   r   r   abcr   er   r   s   r   r    r(     s&    AAAAAr   r    )r*  r+  r,  r   r-  )assertCountEqual)r+   r    r   r%  s     @@r   test_set_name_modifying_dict!Test.test_set_name_modifying_dict   s/    	& 	&
	 	 	h(ABr   c           
          " S S[         5      nU R                  [        5          " S SUSS9nS S S 5        U R                  [        5         [        R                  " S[
        4[        USS95        S S S 5        [        R                  " S[
        4[        USS95         " S S[         5      nU R                  [        5          " S S	USS9nS S S 5         " S
 S[         5      n " S SUSS9nU R                  UR                  S5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f)Nc                       \ rS rSrSrg) Test.test_errors.<locals>.MyMeta   r   Nr%   r   r   r   MyMetar3     r'   r   r5  c                       \ rS rSrSrg)!Test.test_errors.<locals>.MyClass   r   Nr%   r   r   r   MyClassr7     rV   r   r9  r   r   otherargc                   (   ^  \ rS rSrU 4S jrSrU =r$ )r3     c                 &   > [         TU ]  XU5        g r?   )r   __init__r+   r   r   	namespacer;  r   s        r   r?  )Test.test_errors.<locals>.MyMeta.__init__   s     i8r   r   )r   r   r   r   r?  r   r   r   s   @r   r5  r3     s    9 9r   c                       \ rS rSrSrg)"Test.test_errors.<locals>.MyClass2   r   Nr%   r   r   r   MyClass2rD     rV   r   rF  c                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )r3     c                 $   > [         TU ]  XX#5      $ r?   r   r   )r   r   r   rA  r;  r   s        r   r   (Test.test_errors.<locals>.MyMeta.__new__   s    ws%CCr   c                 2   > [         TU ]  XU5        X@l        g r?   )r   r?  r;  r@  s        r   r?  rB     s     i8 (r   r;  )r   r   r   r   r   r?  r   r   r   s   @r   r5  r3     s    D) )r   c                       \ rS rSrSrg)"Test.test_errors.<locals>.MyClass3   r   Nr%   r   r   r   MyClass3rO     r'   r   rQ  )
r   rW   rg   types	new_classobjectr7   prepare_classrH   r;  )r+   r5  r9  rF  rQ  s        r   test_errorsTest.test_errors   s    	T 	 y)FQ  * y)OOIy 6A>@ * 	Iy 6A>	@	9T 	9 y)Va  *	)T 	)	! 	 	**A.; *) *) *)s#   D&DD/
D
D,/
D=c                      " S S[         5      nU R                  [        5          " S SUS9nS S S 5         " S S[         5      n " S SUS	S
9nU R                  UR                  S	5        g ! , (       d  f       ND= f)Nc                   (   ^  \ rS rSrU 4S jrSrU =r$ )/Test.test_errors_changed_pep487.<locals>.MyMeta   c                 "   > [         TU ]  XUUS9$ )Nr   r   r7   rJ  )r   r   r   rA  r   s       r   r   7Test.test_errors_changed_pep487.<locals>.MyMeta.__new__   s     wsU,5 ' 7 7r   r   r   r   s   @r   r5  rZ     s    7 7r   r5  c                       \ rS rSrSrg)0Test.test_errors_changed_pep487.<locals>.MyClassi  r   Nr%   r   r   r   r9  r`    rV   r   r9  r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )rZ  i  c                 4   > [         TU ]  XX#5      nXEl        U$ r?   )r   r   r;  )r   r   r   rA  r;  r+   r   s         r   r   r^    s    ws%C (r   rM  r   r   s   @r   r5  rZ    s     r   c                       \ rS rSrSrg)1Test.test_errors_changed_pep487.<locals>.MyClass2i
  r   Nr%   r   r   r   rF  rd  
  r'   r   rF  r   r:  )r   rW   rg   rH   r;  )r+   r5  r9  rF  s       r   test_errors_changed_pep487Test.test_errors_changed_pep487   sj    	7T 	7
 y)F  *	T 		! 	 	**A. *)s   
A--
A;c                 
   [        S[        40 5      nU R                  U[         5        U R                  UR                  S5        U R                  [        5         [        S[        40 S9  S S S 5        g ! , (       d  f       g = f)NNewClassr]  )r   rT  assertIsInstancerH   r   rW   rg   )r+   ts     r   	test_typeTest.test_type  s^    fY+a&Z0y)j	; *))s   A44
Br   N)r   r   r   r   r,   r8   rI   rX   rh   r}   r   r   r   r   r   r  r  r/  rV  re  rk  r   r   r   r   r   r      s[    ''.D*4
$"88
G&4C !/F/,<r   r   __main__)rR  unittestTestCaser   r   mainr   r   r   <module>rq     s8     P<8 P<f zMMO r   