
    <e%                         d dl Z d dlmZ  G d de j                  Z G d de j                  Zej         G d de j                              Zed	k    r e j	                     dS dS )
    N)supportc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestMROEntryc                    g  G d d          } G fdd                       }|                      g             G d d||          }|                      d         ||ff           |                      d         i            d S )	Nc                       e Zd ZdS )0TestMROEntry.test_mro_entry_signature.<locals>.BN__name__
__module____qualname__     -/usr/lib/python3.11/test/test_genericclass.pyBr                r   r   c                       e Zd Z fdZdS )0TestMROEntry.test_mro_entry_signature.<locals>.Cc                 8                         ||g           fS Nextend)selfargskwargsCtesteds      r   __mro_entries__z@TestMROEntry.test_mro_entry_signature.<locals>.C.__mro_entries__
   s     tVn---tr   Nr
   r   r   r   r   r   s   r   r   r   	   3               r   r   c                       e Zd ZdS )0TestMROEntry.test_mro_entry_signature.<locals>.DNr	   r   r   r   Dr"      r   r   r#   r      )assertEqual)r   r   cr#   r   r   s       @@r   test_mro_entry_signaturez%TestMROEntry.test_mro_entry_signature   s    	 	 	 	 	 	 	 	 	 	 	 ACC$$$1aVI...B'''''r   c                 `   g  G d d          } G d d          } G fdd          } |            }|                      g             G d d|||          }|                      d	         |||f           |                      |j        |||f           |                      |j        |||f           |                      |j        ||||t          f            |            } G d
 d|          }|                      d	         |f           |                      |j        |f           d S )Nc                       e Zd ZdS )&TestMROEntry.test_mro_entry.<locals>.ANr	   r   r   r   Ar*      r   r   r+   c                       e Zd ZdS )&TestMROEntry.test_mro_entry.<locals>.BNr	   r   r   r   r   r-      r   r   r   c                       e Zd Z fdZdS )&TestMROEntry.test_mro_entry.<locals>.Cc                 >                         |           | j        fS r   )append	__class__r   basesr   s     r   r   z6TestMROEntry.test_mro_entry.<locals>.C.__mro_entries__   s     e$$$((r   Nr   r   s   r   r   r/      s.        ) ) ) ) ) ) )r   r   c                       e Zd ZdS )&TestMROEntry.test_mro_entry.<locals>.DNr	   r   r   r   r#   r7      r   r   r#   c                       e Zd ZdS )&TestMROEntry.test_mro_entry.<locals>.ENr	   r   r   r   Er:   #   r   r   r;   r%   	__bases____orig_bases____mro__object)	r   r+   r   r   r&   r#   dr;   r   s	           @r   test_mro_entryzTestMROEntry.test_mro_entry   sw   	) 	) 	) 	) 	) 	) 	) 	) 	) 	) ACC$$$1aaAY///q!Qi000)Aq!9555Q1a$8999ACCaT***qd+++++r   c                    g  G d d          } G d d          } G fdd          } |            }|                      g             G d d|||          }|                      d	         |||f           |                      |j        ||f           |                      |j        |||f           |                      |j        |||t          f            G d
 d|          }|                      d	         |f           |                      |j        t          f           |                      |j        |f           |                      |j        |t          f           d S )Nc                       e Zd ZdS )+TestMROEntry.test_mro_entry_none.<locals>.ANr	   r   r   r   r+   rE   )   r   r   r+   c                       e Zd ZdS )+TestMROEntry.test_mro_entry_none.<locals>.BNr	   r   r   r   r   rG   *   r   r   r   c                       e Zd Z fdZdS )+TestMROEntry.test_mro_entry_none.<locals>.Cc                 2                         |           dS Nr   r1   r3   s     r   r   z;TestMROEntry.test_mro_entry_none.<locals>.C.__mro_entries__,   s    e$$$rr   Nr   r5   s   r   r   rI   +   s.              r   r   c                       e Zd ZdS )+TestMROEntry.test_mro_entry_none.<locals>.DNr	   r   r   r   r#   rN   1   r   r   r#   r8   c                       e Zd ZdS )+TestMROEntry.test_mro_entry_none.<locals>.ENr	   r   r   r   r;   rP   6   r   r   r;   r<   )r   r+   r   r   r&   r#   r;   r   s          @r   test_mro_entry_nonez TestMROEntry.test_mro_entry_none'   s   	 	 	 	 	 	 	 	 	 	 ACC$$$1aaAY///q!f---)Aq!9555Q1f$5666aT***vi000)A4000QK00000r   c                    g  G d d          } G fdd          } |            }|                      g             G d d||          }|                      d         ||f           |                      |j        |t          f           |                      |j        ||f           |                      |j        ||t          t
          f           d S )Nc                       e Zd ZdS )4TestMROEntry.test_mro_entry_with_builtins.<locals>.ANr	   r   r   r   r+   rT   >   r   r   r+   c                       e Zd Z fdZdS )4TestMROEntry.test_mro_entry_with_builtins.<locals>.Cc                 >                         |           t          fS r   )r1   dictr3   s     r   r   zDTestMROEntry.test_mro_entry_with_builtins.<locals>.C.__mro_entries__@   s    e$$$wr   Nr   r5   s   r   r   rV   ?   s.              r   r   c                       e Zd ZdS )4TestMROEntry.test_mro_entry_with_builtins.<locals>.DNr	   r   r   r   r#   rZ   E   r   r   r#   r8   )r%   r=   rX   r>   r?   r@   )r   r+   r   r&   r#   r   s        @r   test_mro_entry_with_builtinsz)TestMROEntry.test_mro_entry_with_builtins<   s   	 	 	 	 	 	 	 	 	 	 ACC$$$1aV,,,q$i000)Aq6222Q4$899999r   c                    g  G fdd                       }|                      g             G d d|t                    }|                      d         |t          f           |                      |j        t          f           |                      |j        |t          f           |                      |j        |t          t
          f           d S )Nc                       e Zd Z fdZdS )6TestMROEntry.test_mro_entry_with_builtins_2.<locals>.Cc                 4                         |           fS r   rL   )r   r4   r   r   s     r   r   zFTestMROEntry.test_mro_entry_with_builtins_2.<locals>.C.__mro_entries__N   s    e$$$tr   Nr   r   s   r   r   r^   M   r    r   r   c                       e Zd ZdS )6TestMROEntry.test_mro_entry_with_builtins_2.<locals>.DNr	   r   r   r   r#   ra   S   r   r   r#   r8   )r%   rX   r=   r>   r?   r@   )r   r&   r#   r   r   s      @@r   test_mro_entry_with_builtins_2z+TestMROEntry.test_mro_entry_with_builtins_2K   s    	 	 	 	 	 	 	 	 	 	 	 ACC$$$4aY///q$i000)At9555Q4$899999r   c                 d    G d d          } |            }|                      t                    5   G d d|          }d d d            n# 1 swxY w Y    G d d          } |            }|                      t                    5   G d d|          }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )6TestMROEntry.test_mro_entry_errors.<locals>.C_too_manyc                     dS rK   r   )r   r4   	somethingothers       r   r   zFTestMROEntry.test_mro_entry_errors.<locals>.C_too_many.__mro_entries__[       rr   Nr   r   r   r   
C_too_manyre   Z   #            r   rj   c                       e Zd ZdS -TestMROEntry.test_mro_entry_errors.<locals>.DNr	   r   r   r   r#   rn   _   r   r   r#   c                       e Zd Zd ZdS )5TestMROEntry.test_mro_entry_errors.<locals>.C_too_fewc                     dS rK   r   r   s    r   r   zETestMROEntry.test_mro_entry_errors.<locals>.C_too_few.__mro_entries__a   ri   r   Nr   r   r   r   	C_too_fewrp   `   rk   r   rs   c                       e Zd ZdS rm   r	   r   r   r   r#   z-TestMROEntry.test_mro_entry_errors.<locals>.De   r   r   assertRaises	TypeError)r   rj   r&   r#   rs   rA   s         r   test_mro_entry_errorsz"TestMROEntry.test_mro_entry_errorsY   ss   	 	 	 	 	 	 	 	 JLLy)) 	 	OOOOAOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 IKKy)) 	 	OOOOAOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#   AAA	B%%B),B)c                 d    G d d          } |            }|                      t                    5   G d d|          }d d d            n# 1 swxY w Y    G d d          } |            }|                      t                    5   G d d|          }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZdS )<TestMROEntry.test_mro_entry_errors_2.<locals>.C_not_callable	Surprise!Nr   r   r   r   C_not_callabler|   h   s        )OOOr   r~   c                       e Zd ZdS /TestMROEntry.test_mro_entry_errors_2.<locals>.DNr	   r   r   r   r#   r   l   r   r   r#   c                       e Zd Zd ZdS )9TestMROEntry.test_mro_entry_errors_2.<locals>.C_not_tuplec                     t           S r   )r@   rr   s    r   r   zITestMROEntry.test_mro_entry_errors_2.<locals>.C_not_tuple.__mro_entries__n   s    r   Nr   r   r   r   C_not_tupler   m   s#            r   r   c                       e Zd ZdS r   r	   r   r   r   r#   z/TestMROEntry.test_mro_entry_errors_2.<locals>.Dr   r   r   ru   )r   r~   r&   r#   r   s        r   test_mro_entry_errors_2z$TestMROEntry.test_mro_entry_errors_2g   ss   	* 	* 	* 	* 	* 	* 	* 	*Ny)) 	 	OOOOAOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 KMMy)) 	 	OOOOAOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	ry   c                 ~   g  G fddt                     } G d d           G fdd          } |            } G d d||	          }|                     d
         |           |                     d         d           |                     d         f           |                     d         d         d           |                     |j        f           |                     |j        |f           |                     |j        |t
          f           |                     |j        |           d S )Nc                   "     e Zd Z fdZ xZS )3TestMROEntry.test_mro_entry_metaclass.<locals>.Metac                 ~                         | |||g           t                                          | |||          S r   )r   super__new__)mclsnamer4   nsr2   	meta_argss       r   r   z;TestMROEntry.test_mro_entry_metaclass.<locals>.Meta.__new__w   s<      $eR!8999wwtT5"===r   )r
   r   r   r   __classcell__)r2   r   s   @r   Metar   v   s>        > > > > > > > > > >r   r   c                       e Zd ZdS )0TestMROEntry.test_mro_entry_metaclass.<locals>.ANr	   r   r   r   r+   r   z   r   r   r+   c                       e Zd Z fdZdS )0TestMROEntry.test_mro_entry_metaclass.<locals>.Cc                 
    fS r   r   )r   r4   r+   s     r   r   z@TestMROEntry.test_mro_entry_metaclass.<locals>.C.__mro_entries__|   s
    tr   Nr   )r+   s   r   r   r   {   s.              r   r   c                       e Zd ZdZdS )0TestMROEntry.test_mro_entry_metaclass.<locals>.Dr$   N)r
   r   r   xr   r   r   r#   r      s        AAAr   r#   	metaclassr   r$         r   )typer%   r=   r>   r?   r@   r2   )r   r   r   r&   r#   r+   r   s        @@r   test_mro_entry_metaclassz%TestMROEntry.test_mro_entry_metaclasst   s   		> 	> 	> 	> 	> 	> 	>4 	> 	> 	> 		 	 	 	 	 	 	 	 	 	 ACC	 	 	 	 	T 	 	 	 	1t,,,1s+++1t,,,1c*A...qd+++)A4000Q6N333d+++++r   c                      G d d          } |            }|                      t          d          5  t          d|fi            d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )0TestMROEntry.test_mro_entry_type_call.<locals>.Cc                     dS rK   r   )r   r4   s     r   r   z@TestMROEntry.test_mro_entry_type_call.<locals>.C.__mro_entries__   ri   r   Nr   r   r   r   r   r      rk   r   r   z+MRO entry resolution; use types.new_class()Bad)assertRaisesRegexrw   r   )r   r   r&   s      r   test_mro_entry_type_callz%TestMROEntry.test_mro_entry_type_call   s    	 	 	 	 	 	 	 	 ACC##I%<= = 	" 	" b!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   AAAN)r
   r   r   r'   rB   rQ   r[   rb   rx   r   r   r   r   r   r   r   r      s        ( ( (, , ,(1 1 1*: : :: : :    , , ,,	" 	" 	" 	" 	"r   r   c                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZdS )TestClassGetitemc                     g  G fdd          }|t           t          f          |                     d         |t           t          ff           |                     d         i            d S )Nc                       e Zd Z fdZdS ).TestClassGetitem.test_class_getitem.<locals>.Cc                  6                         | |g           d S r   r   )r   r   getitem_argss     r   __class_getitem__z@TestClassGetitem.test_class_getitem.<locals>.C.__class_getitem__   s     ##T6N333tr   Nr
   r   r   r   )r   s   r   r   r      s.              r   r   r   r$   )intstrr%   )r   r   r   s     @r   test_class_getitemz#TestClassGetitem.test_class_getitem   s    	 	 	 	 	 	 	 	 	 	 	
#s(a1sCj/:::a"-----r   c                      G d d          }|                      |t                   d           |                      ||         d           d S )Nc                       e Zd Zd ZdS )5TestClassGetitem.test_class_getitem_format.<locals>.Cc                     d|j          dS )NzC[]r
   clsitems     r   r   zGTestClassGetitem.test_class_getitem_format.<locals>.C.__class_getitem__   s    ,DM,,,,r   Nr   r   r   r   r   r      #        - - - - -r   r   C[int]zC[C]r%   r   )r   r   s     r   test_class_getitem_formatz*TestClassGetitem.test_class_getitem_format   sf    	- 	- 	- 	- 	- 	- 	- 	- 	3***1v&&&&&r   c                      G d d          } G d d|          }|                      |t                   d           |                      ||         d           d S )Nc                       e Zd Zd ZdS ):TestClassGetitem.test_class_getitem_inheritance.<locals>.Cc                 &    | j          d|j          dS N[r   r   r   s     r   r   zLTestClassGetitem.test_class_getitem_inheritance.<locals>.C.__class_getitem__       ,999999r   Nr   r   r   r   r   r      #        : : : : :r   r   c                       e Zd ZdS ):TestClassGetitem.test_class_getitem_inheritance.<locals>.DNr	   r   r   r   r#   r      r   r   r#   D[int]D[D]r   r   r   r#   s      r   test_class_getitem_inheritancez/TestClassGetitem.test_class_getitem_inheritance   sy    	: 	: 	: 	: 	: 	: 	: 	: 	3***1v&&&&&r   c                      G d d          } G d d|          }|                      |t                   d           |                      ||         d           d S )Nc                       e Zd Zd ZdS )<TestClassGetitem.test_class_getitem_inheritance_2.<locals>.Cc                     dS )NzShould not see thisr   r   s     r   r   zNTestClassGetitem.test_class_getitem_inheritance_2.<locals>.C.__class_getitem__   s    ,,r   Nr   r   r   r   r   r      r   r   r   c                       e Zd Zd ZdS )<TestClassGetitem.test_class_getitem_inheritance_2.<locals>.Dc                 &    | j          d|j          dS r   r   r   s     r   r   zNTestClassGetitem.test_class_getitem_inheritance_2.<locals>.D.__class_getitem__   r   r   Nr   r   r   r   r#   r      r   r   r#   r   r   r   r   s      r    test_class_getitem_inheritance_2z1TestClassGetitem.test_class_getitem_inheritance_2   s    	- 	- 	- 	- 	- 	- 	- 	-	: 	: 	: 	: 	: 	: 	: 	: 	3***1v&&&&&r   c                      G d d          } G d d|          }|                      |t                   d           |                      ||         d           d S )Nc                   $    e Zd Zed             ZdS ):TestClassGetitem.test_class_getitem_classmethod.<locals>.Cc                 &    | j          d|j          dS r   r   r   s     r   r   zLTestClassGetitem.test_class_getitem_classmethod.<locals>.C.__class_getitem__   s    ,999999r   N)r
   r   r   classmethodr   r   r   r   r   r      s-        : : [: : :r   r   c                       e Zd ZdS ):TestClassGetitem.test_class_getitem_classmethod.<locals>.DNr	   r   r   r   r#   r      r   r   r#   r   r   r   r   s      r   test_class_getitem_classmethodz/TestClassGetitem.test_class_getitem_classmethod   sy    	: 	: 	: 	: 	: 	: 	: 	: 	3***1v&&&&&r   c                      G d d          } G d d|          }|                      |t                   d           |                      ||         d           d S )Nc                       e Zd Zd ZdS )6TestClassGetitem.test_class_getitem_patched.<locals>.Cc                 4    d }t          |          | _        d S )Nc                 &    | j          d|j          dS r   r   r   s     r   r   zcTestClassGetitem.test_class_getitem_patched.<locals>.C.__init_subclass__.<locals>.__class_getitem__   s    !l==T]====r   )r   r   )r   r   s     r   __init_subclass__zHTestClassGetitem.test_class_getitem_patched.<locals>.C.__init_subclass__   s(    > > >(34E(F(F%%%r   N)r
   r   r   r   r   r   r   r   r      s(        G G G G Gr   r   c                       e Zd ZdS )6TestClassGetitem.test_class_getitem_patched.<locals>.DNr	   r   r   r   r#   r      r   r   r#   r   r   r   r   s      r   test_class_getitem_patchedz+TestClassGetitem.test_class_getitem_patched   s    	G 	G 	G 	G 	G 	G 	G 	G
 	3***1v&&&&&r   c                      G d dt                     } G d d|          }|                     |j        d            |t                    |                     |j        t                     d S )Nc                       e Zd ZdZd ZdS )<TestClassGetitem.test_class_getitem_with_builtins.<locals>.ANc                     || _         d S r   )called_withr   s     r   r   zNTestClassGetitem.test_class_getitem_with_builtins.<locals>.A.__class_getitem__   s    "&r   )r
   r   r   r   r   r   r   r   r+   r      s(        K' ' ' ' 'r   r+   c                       e Zd ZdS )<TestClassGetitem.test_class_getitem_with_builtins.<locals>.BNr	   r   r   r   r   r              Dr   r   )rX   assertIsr   r   )r   r+   r   s      r    test_class_getitem_with_builtinsz1TestClassGetitem.test_class_getitem_with_builtins   s    	' 	' 	' 	' 	' 	' 	' 	'
	 	 	 	 	 	 	 	amT***	#amS)))))r   c                 8    G d d          }|                      t                    5  |t                    d d d            n# 1 swxY w Y    G d d          }|                      t                    5  |t                    d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )=TestClassGetitem.test_class_getitem_errors.<locals>.C_too_fewc                     d S r   r   )r   s    r   r   zOTestClassGetitem.test_class_getitem_errors.<locals>.C_too_few.__class_getitem__       tr   Nr   r   r   r   rs   r      #            r   rs   c                       e Zd Zd ZdS )>TestClassGetitem.test_class_getitem_errors.<locals>.C_too_manyc                     d S r   r   )r   onetwos      r   r   zPTestClassGetitem.test_class_getitem_errors.<locals>.C_too_many.__class_getitem__   r   r   Nr   r   r   r   rj   r      r   r   rj   )rv   rw   r   )r   rs   rj   s      r   test_class_getitem_errorsz*TestClassGetitem.test_class_getitem_errors   sI   	 	 	 	 	 	 	 	 y)) 	 	cNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 y)) 	 	sOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AA	A4BBBc                     G d d          }|                      t                    5   |            t                    d d d            n# 1 swxY w Y    G d d          } |            }d |_        |                      t                    5  |t                    d d d            n# 1 swxY w Y    G d d          }|                      t                    5  |t                    d d d            n# 1 swxY w Y    G d d	t                    }|                     t          d	          5  |t                    d d d            d S # 1 swxY w Y   d S )
Nc                       e Zd Zd ZdS )7TestClassGetitem.test_class_getitem_errors_2.<locals>.Cc                     d S r   r   r   s     r   r   zITestClassGetitem.test_class_getitem_errors_2.<locals>.C.__class_getitem__   r   r   Nr   r   r   r   r   r     r   r   r   c                       e Zd ZdS )7TestClassGetitem.test_class_getitem_errors_2.<locals>.ENr	   r   r   r   r;   r     r   r   r;   c                     dS )NzThis will not workr   r   s     r   <lambda>z>TestClassGetitem.test_class_getitem_errors_2.<locals>.<lambda>   s    0D r   c                       e Zd ZdZdS )DTestClassGetitem.test_class_getitem_errors_2.<locals>.C_not_callabler}   Nr   r   r   r   r~   r     s         +r   r~   c                       e Zd ZdZdS )?TestClassGetitem.test_class_getitem_errors_2.<locals>.C_is_noneNr   r   r   r   	C_is_noner
     s         $r   r  )rv   rw   r   r   tupler   )r   r   r;   er~   r  s         r   test_class_getitem_errors_2z,TestClassGetitem.test_class_getitem_errors_2   s   	 	 	 	 	 	 	 	 y)) 	 	ACCHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	ACCDDy)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 		, 	, 	, 	, 	, 	, 	, 	,y)) 	  	 3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 	% 	% 	% 	% 	% 	% 	% 	%##I{;; 	 	cNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sG   A

AAB((B,/B,C44C8;C8-EEEc                 n     G d dt                     }|                     |t                   d           d S )Nc                       e Zd Zd ZdS );TestClassGetitem.test_class_getitem_metaclass.<locals>.Metac                 &    | j          d|j          dS r   r   r   s     r   r   zMTestClassGetitem.test_class_getitem_metaclass.<locals>.Meta.__class_getitem__   r   r   Nr   r   r   r   r   r     r   r   r   z	Meta[int]r   r%   r   )r   r   s     r   test_class_getitem_metaclassz-TestClassGetitem.test_class_getitem_metaclass   sN    	: 	: 	: 	: 	:4 	: 	: 	: 	cK00000r   c                      G d dt                     } G d d|          }|                     |t                   d           d S )Nc                       e Zd ZdS )@TestClassGetitem.test_class_getitem_with_metaclass.<locals>.MetaNr	   r   r   r   r   r    r   r   r   c                       e Zd Zd ZdS )=TestClassGetitem.test_class_getitem_with_metaclass.<locals>.Cc                 &    | j          d|j          dS r   r   r   s     r   r   zOTestClassGetitem.test_class_getitem_with_metaclass.<locals>.C.__class_getitem__  r   r   Nr   r   r   r   r   r    r   r   r   r   r   r  r   r   r   s      r   !test_class_getitem_with_metaclassz2TestClassGetitem.test_class_getitem_with_metaclass  sm    4	: 	: 	: 	: 	:$ 	: 	: 	: 	: 	3*****r   c                      G d dt                     } G d d|          }|                     |t                   d           d S )Nc                       e Zd Zd ZdS )ATestClassGetitem.test_class_getitem_metaclass_first.<locals>.Metac                     dS )Nfrom metaclassr   r   s     r   __getitem__zMTestClassGetitem.test_class_getitem_metaclass_first.<locals>.Meta.__getitem__  s    ''r   N)r
   r   r   r"  r   r   r   r   r    s#        ( ( ( ( (r   r   c                       e Zd Zd ZdS )>TestClassGetitem.test_class_getitem_metaclass_first.<locals>.Cc                     dS )Nzfrom __class_getitem__r   r   s     r   r   zPTestClassGetitem.test_class_getitem_metaclass_first.<locals>.C.__class_getitem__  s    //r   Nr   r   r   r   r   r$    s#        0 0 0 0 0r   r   r   r!  r  r  s      r   "test_class_getitem_metaclass_firstz3TestClassGetitem.test_class_getitem_metaclass_first
  s~    	( 	( 	( 	( 	(4 	( 	( 	(	0 	0 	0 	0 	0$ 	0 	0 	0 	0 	3!122222r   N)r
   r   r   r   r   r   r   r   r   r   r   r  r  r  r&  r   r   r   r   r      s        . . .' ' '' ' '' ' '' ' '' ' '
* 
* 
*    .1 1 1+ + +3 3 3 3 3r   r   c                       e Zd Zd ZdS )CAPITestc                    ddl m}m} |                     |                    t
                    |           |t
                   }|                     t          |          |           |                     |	                    d          t
          f            G d d|          }|                     |j
        t
          f           |                     |j        |f           |                     |j        |t
          t          f           d S )Nr   )GenericGenericAliasr   c                       e Zd ZdS ) CAPITest.test_c_class.<locals>.CNr	   r   r   r   r   r-    r   r   r   )	_testcapir*  r+  assertIsInstancer   r   r   r   r%   r   r=   r>   r?   r@   )r   r*  r+  
IntGenericr   s        r   test_c_classzCAPITest.test_c_class  s   33333333g77<<lKKKS\
d:&&55533B77#@@@	 	 	 	 	
 	 	 	sf---)J=999QV$455555r   N)r
   r   r   r1  r   r   r   r(  r(    s#        6 6 6 6 6r   r(  __main__)
unittesttestr   TestCaser   r   cpython_onlyr(  r
   mainr   r   r   <module>r8     s          N" N" N" N" N"8$ N" N" N"b{3 {3 {3 {3 {3x( {3 {3 {3| 	6 6 6 6 6x  6 6 6  zHMOOOOO r   