
    6\h                       d dl Z d dlZd dlmZ d dlmZmZmZ d dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlmZmZmZmZ d dlmZ d dlmZmZ d dlmZmZmZmZ d dlmZmZmZ d d	lm Z m!Z!m"Z"m#Z# d d
lm$Z$m%Z%m&Z& d dlm'Z'm(Z(m)Z) d dlm*Z*m+Z+m,Z,m-Z- d dlm.Z. d dlm/Z/m0Z0m1Z1m2Z2m3Z3 d dlm4Z4m5Z5m6Z6 d dlm7Z7 d dlm8Z8m9Z9 d dlm:Z: d dlm;Z; d dlm<Z< d dlm=Z=m>Z> d dlm?Z? d dlm@Z@mAZAmBZBmCZC d dlmDZDmEZEmFZF d dlmGZGmHZH d dlmIZImJZJ d dlmKZKmLZL d dlmMZM d dlmNZNmOZOmPZPmQZQ d dlmRZR d dlSZSd dlTZTd dlZd dlUZUd dlVZVd dlWmXZXmYZYmZZZ d d l[m\Z\m]Z]  eXj^        d!d"g#          Z_ eXj^        d!d"g$          Z`d%Za G d& d'e          Zbd( Zc G d) d*          Zd G d+ d,ed          Ze G d- d.ed          Zf G d/ d0eeef          Zg G d1 d2eb          Zh G d3 d4          Zi G d5 d6eieb          Zj G d7 d8eieb          Zk G d9 d:eb          Zl G d; d<eb          Zm G d= d>eb          Zn G d? d@eb          ZodAepeq         dBereqepeq         f         dCepeseq                  fdDZt G dE dFeb          Zu G dG dHeb          Zv G dI dJeb          Zw G dK dLeb          Zx G dM dNeb          Zy G dO dPeb          Zz G dQ dReb          Z{ G dS dT          Z| G dU dVe|eb          Z} G dW dXe|eb          Z~ G dY dZeb          Z e d[eqe          Z e d\          Z G d] d^e/eef                   Z G d_ d`eeef                   Z G da dbe3          Ze6 G dc ddee3                      Z G de df          Z G dg dhe3          Z G di dje3          Ze6 G dk dleee3                      Ze6 G dm dne3                      Z G do dpe          Z G dq dr          Z G ds dte@          Ze6 G du dve3                      Z G dw dxeb          Z G dy dzeb          Z G d{ d|eb          Z G d} d~eb          Z G d deb          Z G d deb          Z G d deb          Zd dl[mZ e= G d d                      Ze= G d d                      Z G d deb          Z e            d             Z G d d          Z G d deb          Zd dl[mZmZmZmZmZ  e d          Z G d dej        e                   Z G d dej        e                   Z G d d          Z G d d          Z G d de          Z G d de          Z G d de/e$                   Z G d d          Z G d d          Z G d de@          Z G d de@          Z G d de@          Z G d de@          Z eCddeqfg          Z G d deC          Z G d de/e$         eC          Z G d de]j        d          Z G d de]j        e$         d          Z G d dee          Z G d deCd          Z G d deC          Z G d deCd          Z G d deCd          Z G dÄ de          Z G dń deC          Z G dǄ de          Z G dɄ deC          Z G d˄ deC          Z G d̈́ deC          Z G dτ de\j                  Zdej        e         fd҄Z	  e e                                          d           n%# e$ rZej        d          dk    sJ Y dZ[ndZ[ww xY we7Z G dԄ dզ          Z G dք deb          Z G d؄ de          Z G dڄ deb          Z G d܄ deb          Z G dބ deb          Z G d de          Z G d d          Z G d deeb          Z ee`d           G d deeb                      Z G d deb          Z G d deb          Z G d deb          Z G d deb          Z G d deb          Z G d deb          Z G d deb          Z G d deb          Z G d deb          Z G d deb          Z G d deb          Z ejN        d          Z ej         d eee          Z G d deb          Z G d deb          Z G d deb          Z G d deb          Z G d	 d
eb          Zd Zedk    r e             dS dS (      N)defaultdict)	lru_cachewrapsreduce)TestCasemain
skipUnlessskip)patch)copydeepcopy)AnyNoReturnNeverassert_never)overloadget_overloadsclear_overloads)TypeVarTypeVarTupleUnpackAnyStr)TKTVT)UnionOptionalLiteral)TupleListDictMutableMapping)Callable)GenericClassVarFinalfinalProtocol)assert_typecastruntime_checkable)get_type_hints)
get_originget_args)is_typeddict)reveal_type)dataclass_transform)no_type_checkno_type_check_decoratorType)
NamedTupleNotRequiredRequired	TypedDictIOTextIOBinaryIO)PatternMatch)	Annotated
ForwardRef)SelfLiteralString)	TypeAlias)	ParamSpecConcatenateParamSpecArgsParamSpecKwargs)	TypeGuard)import_helpercaptured_stderrcpython_only)mod_generics_cache_typed_dict_helpertyping_typing)blocked)freshz&Cannot subclass special typing classesc                   $    e Zd ZddZddZd ZdS )BaseTestCaseNc                 r    t          ||          s&|d|}||d|z  z  }|                     |          d S )Nz is not a subclass of  : %s
issubclassfailureExceptionselfclsclass_or_tuplemsgmessages        :/opt/python-3.11.14/usr/lib/python3.11/test/test_typing.pyassertIsSubclasszBaseTestCase.assertIsSubclass;   sU    #~.. 	169cc>>JG7S=(''000		1 	1    c                 r    t          ||          r&|d|}||d|z  z  }|                     |          d S )Nz is a subclass of rV   rW   rZ   s        r`   assertNotIsSubclassz BaseTestCase.assertNotIsSubclassB   sU    c>** 	125##~~FG7S=(''000		1 	1rb   c                 8    t           j        D ]} |             d S N)rO   	_cleanupsr[   fs     r`   clear_cacheszBaseTestCase.clear_cachesI   s+    ! 	 	AACCCC	 	rb   rf   )__name__
__module____qualname__ra   rd   rj    rb   r`   rT   rT   9   sK        1 1 1 11 1 1 1    rb   rT   c                 <     t                      fd            }|S )z:Runs `test_func` with various values for `proto` argument.c                     t          t          j        dz             D ]=}|                     |          5   | |           d d d            n# 1 swxY w Y   >d S )N   )pickle_protoproto)rangepickleHIGHEST_PROTOCOLsubTest)r[   rt   	test_funcs     r`   wrapperz%all_pickle_protocols.<locals>.wrapperQ   s    62Q677 	- 	-E511 - -	$e,,,,- - - - - - - - - - - - - - -	- 	-s   AA	A	)r   )ry   rz   s   ` r`   all_pickle_protocolsr{   N   s8     9- - - - -
 Nrb   c                       e Zd ZdS )EmployeeNrk   rl   rm   rn   rb   r`   r}   r}   Z           Drb   r}   c                       e Zd ZdS )ManagerNr~   rn   rb   r`   r   r   ^   r   rb   r   c                       e Zd ZdS )FounderNr~   rn   rb   r`   r   r   b   r   rb   r   c                       e Zd ZdS )ManagingFounderNr~   rn   rb   r`   r   r   f   r   rb   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
AnyTestsc                     |                      t                    5  t          dt                     d d d            d S # 1 swxY w Y   d S N*   )assertRaises	TypeError
isinstancer   r[   s    r`   test_any_instance_type_errorz%AnyTests.test_any_instance_type_errorl   s    y)) 	  	 r3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	    >AAc                     |                      t          t                    d            G d dt                    }|                      t          |          dt           d           d S )Nz
typing.Anyc                       e Zd ZdS )AnyTests.test_repr.<locals>.SubNr~   rn   rb   r`   Subr   s             rb   r   <class 'z".AnyTests.test_repr.<locals>.Sub'>)assertEqualreprr   rk   r[   r   s     r`   	test_reprzAnyTests.test_reprp   sq    cL111#IICxCCC	
 	
 	
 	
 	
rb   c                    |                      t                    5  t          dt                     d d d            n# 1 swxY w Y   |                      t                    5  t          t                    d d d            d S # 1 swxY w Y   d S r   )r   r   rX   r   intr   s    r`   test_errorszAnyTests.test_errorsy   s    y)) 	  	 r3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 y)) 	 	HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s!   =AA"BB	Bc                 d    G d dt                     }|                     t          |t                                |                      |            |            G d d          }|                     t          |t                                |                      |            |            G d d||          }|                     t          |t                                 |            }|                     ||           |                     ||           |                     ||           d S )Nc                       e Zd ZdS )(AnyTests.test_can_subclass.<locals>.MockNr~   rn   rb   r`   Mockr      r   rb   r   c                       e Zd ZdS )-AnyTests.test_can_subclass.<locals>.SomethingNr~   rn   rb   r`   	Somethingr      r   rb   r   c                       e Zd ZdS )1AnyTests.test_can_subclass.<locals>.MockSomethingNr~   rn   rb   r`   MockSomethingr      r   rb   r   )r   
assertTruerX   assertIsInstanceassertFalseassertNotIsInstance)r[   r   r   r   mss        r`   test_can_subclasszAnyTests.test_can_subclass   s1   3
4--...ddffd+++Is33444  d33322222It222
=#66777]__b-000b),,,b$'''''rb   c                 F     G d dt                     } |dd           d S )Nc                       e Zd Zd ZdS )>AnyTests.test_subclassing_with_custom_constructor.<locals>.Subc                     d S rf   rn   r[   argskwargss      r`   __init__zGAnyTests.test_subclassing_with_custom_constructor.<locals>.Sub.__init__         rb   Nrk   rl   rm   r   rn   rb   r`   r   r      s        55555rb   r   r    )s)r   r   s     r`   (test_subclassing_with_custom_constructorz1AnyTests.test_subclassing_with_custom_constructor   sC    	6 	6 	6 	6 	6# 	6 	6 	6 	Arb   c                      G d d          } G d dt           |          } |dd          }|                     |j        d           |                     |j        d           d S )Nc                       e Zd Zd ZdS )HAnyTests.test_multiple_inheritance_with_custom_constructors.<locals>.Fooc                     || _         d S rf   xr[   r   s     r`   r   zQAnyTests.test_multiple_inheritance_with_custom_constructors.<locals>.Foo.__init__       rb   Nr   rn   rb   r`   Foor      #            rb   r   c                        e Zd Z fdZ xZS )HAnyTests.test_multiple_inheritance_with_custom_constructors.<locals>.Barc                 X    || _         t                                          |           d S rf   )ysuperr   )r[   r   r   	__class__s      r`   r   zQAnyTests.test_multiple_inheritance_with_custom_constructors.<locals>.Bar.__init__   s(      #####rb   rk   rl   rm   r   __classcell__r   s   @r`   Barr      s8        $ $ $ $ $ $ $ $ $rb   r   rq      )r   r   r   r   )r[   r   r   bs       r`   2test_multiple_inheritance_with_custom_constructorsz;AnyTests.test_multiple_inheritance_with_custom_constructors   s    	 	 	 	 	 	 	 		$ 	$ 	$ 	$ 	$#s 	$ 	$ 	$
 C1IIa   a     rb   c                 $   |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            d S # 1 swxY w Y   d S rf   )r   r   r   typer   s    r`   test_cannot_instantiatez AnyTests.test_cannot_instantiate   s    y)) 	 	EEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DIIKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   6::BB	B	c                     t           j        t                    t           j        t                    t           j        t                    d S rf   )rO   r?   r   r>   r;   r   s    r`   test_any_works_with_aliasz"AnyTests.test_any_works_with_alias   s+    Ss	#rb   N)rk   rl   rm   r   r   r   r   r   r   r   r   rn   rb   r`   r   r   j   s             
 
 
  ( ( (   ! ! !      rb   r   c                   P    e Zd ZU ee         ed<   d Zd Zd Zd Z	d Z
d Zd Zd	S )
BottomTypeTestsMixinbottom_typec                     |                      | j        | j                   |                     | j        | j                   |                     | j        d            d S rf   )r   r   assertIsassertNotEqualr   s    r`   test_equalityz"BottomTypeTestsMixin.test_equality   sW    )4+;<<<d&(8999D,d33333rb   c                 V    |                      t          | j                  d            d S rf   )r   r-   r   r   s    r`   test_get_originz$BottomTypeTestsMixin.test_get_origin   s'    j!122D99999rb   c                     |                      t                    5  t          d| j                   d d d            d S # 1 swxY w Y   d S r   )r   r   r   r   r   s    r`   test_instance_type_errorz-BottomTypeTestsMixin.test_instance_type_error   s    y)) 	- 	-r4+,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-r   c                 8   |                      t                    5  t          t          | j                   d d d            n# 1 swxY w Y   |                      t                    5  t          t
          | j                   d d d            d S # 1 swxY w Y   d S rf   )r   r   rX   r}   r   r   r   s    r`   test_subclass_type_errorz-BottomTypeTestsMixin.test_subclass_type_error   s	   y)) 	3 	3x!1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3y)) 	3 	3x!1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3#   AA	A'BBBc                     |                      t                    5  | j        t                    d d d            d S # 1 swxY w Y   d S rf   )r   r   r   r   r   s    r`   test_not_genericz%BottomTypeTestsMixin.test_not_generic   s    y)) 	" 	"S!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"   ;??c                 6   |                      t                    5   G d d| j                  }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          | j                            }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )4BottomTypeTestsMixin.test_cannot_subclass.<locals>.ANr~   rn   rb   r`   Ar              rb   r   c                       e Zd ZdS )4BottomTypeTestsMixin.test_cannot_subclass.<locals>.BNr~   rn   rb   r`   Br      r   rb   r   r   r   r   r   r[   r   r   s      r`   test_cannot_subclassz)BottomTypeTestsMixin.test_cannot_subclass   sG   y)) 	 	    D$   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    D)**   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   ;?? !BBBc                 0   |                      t                    5  |                                  d d d            n# 1 swxY w Y   |                      t                    5   t          | j                               d d d            d S # 1 swxY w Y   d S rf   r   r   s    r`   r   z,BottomTypeTestsMixin.test_cannot_instantiate   s   y)) 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	% 	%"D!""$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s!   <A A !BBBN)rk   rl   rm   r%   r   __annotations__r   r   r   r   r   r   r   rn   rb   r`   r   r      s         #4 4 4
: : :- - -3 3 3" " "  % % % % %rb   r   c                   $    e Zd ZeZd Zd Zd ZdS )NoReturnTestsc                 V    |                      t          t                    d           d S )Ntyping.NoReturn)r   r   r   r   s    r`   r   zNoReturnTests.test_repr   s%    h):;;;;;rb   c                     dt           dt           fd}d	d}t           t           d}||fD ]S}|                     |          5  |                     t          |          |           d d d            n# 1 swxY w Y   Td S )
Nargreturnc                     d S rf   rn   r   s    r`   somez/NoReturnTests.test_get_type_hints.<locals>.some   r   rb   r   r   c                     d S rf   rn   r   s    r`   some_strz3NoReturnTests.test_get_type_hints.<locals>.some_str   r   rb   r   r   target)r   r   r   r   )r   rx   r   gthr[   r   r  expectedr  s        r`   test_get_type_hintsz!NoReturnTests.test_get_type_hints   s    0h080000????#x88X& 	8 	8FV,, 8 8  Vh7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8   $A22A6	9A6	c                     |                      t          t                     |                      t          t                     d S rf   )r   r   r   r   s    r`   test_not_equalityzNoReturnTests.test_not_equality   s4    He,,,E8,,,,,rb   N)rk   rl   rm   r   r   r   r	  r  rn   rb   r`   r   r      sF        K< < <8 8 8- - - - -rb   r   c                       e Zd ZeZd Zd ZdS )
NeverTestsc                 V    |                      t          t                    d           d S )Ntyping.Never)r   r   r   r   s    r`   r   zNeverTests.test_repr   s$    en55555rb   c                     dt           dt           fd}d	d}t           t           d}||fD ]S}|                     |          5  |                     t          |          |           d d d            n# 1 swxY w Y   Td S )
Nr   r   c                     d S rf   rn   r   s    r`   r   z,NeverTests.test_get_type_hints.<locals>.some   r   rb   r   r  c                     d S rf   rn   r   s    r`   r  z0NeverTests.test_get_type_hints.<locals>.some_str   r   rb   r  r  )r   r   r   r  )r   rx   r   r  r  s        r`   r	  zNeverTests.test_get_type_hints   s    *e*****9999 E22X& 	8 	8FV,, 8 8  Vh7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8r
  N)rk   rl   rm   r   r   r   r	  rn   rb   r`   r  r     s7        K6 6 68 8 8 8 8rb   r  c                       e Zd Zd ZdS )AssertNeverTestsc                    |                      t                    5  t          d            d d d            n# 1 swxY w Y   d}|                     t          |          5  t          |           d d d            n# 1 swxY w Y   ddz  }|                      t                    5 }t          |           d d d            n# 1 swxY w Y   |                     t          |j        j        d                   t          j	        dz             d S )Nz
some valueai'  r   r   )
r   AssertionErrorr   assertRaisesRegex
assertLesslen	exceptionr   rO   _ASSERT_NEVER_REPR_MAX_LENGTH)r[   value
huge_valuecms       r`   test_exceptionzAssertNeverTests.test_exception   s   ~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##NE:: 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  5[
~.. 	%"$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%!!$%%014	
 	
 	
 	
 	
s0   7;;A;;A?A?%CCCN)rk   rl   rm   r!  rn   rb   r`   r  r     s#        
 
 
 
 
rb   r  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
	SelfTestsc                     |                      t          t                     |                     t          t                     |                     t          d            d S rf   )r   rB   r   r   r   s    r`   r   zSelfTests.test_equality  sH    t$$$dD!!!D$'''''rb   c                 n    G d d          } G d d          } G d d          }|||fD ]_}|                      |          5  |                     t          |j                  dt          i           d d d            n# 1 swxY w Y   `|                     t          t                    d            d S )	Nc                       e Zd ZdefdZdS )"SelfTests.test_basics.<locals>.Foor   c                     d S rf   rn   r   s    r`   barz&SelfTests.test_basics.<locals>.Foo.bar  r   rb   N)rk   rl   rm   rB   r)  rn   rb   r`   r   r'    s!        &T&&&&&&rb   r   c                       e Zd ZddZdS )%SelfTests.test_basics.<locals>.FooStrr   rB   c                     d S rf   rn   r   s    r`   r)  z)SelfTests.test_basics.<locals>.FooStr.bar  r   rb   N)r   rB   rk   rl   rm   r)  rn   rb   r`   FooStrr+    s        ((((((rb   r.  c                       e Zd ZddZdS )+SelfTests.test_basics.<locals>.FooStrTypingr   typing.Selfc                     d S rf   rn   r   s    r`   r)  z/SelfTests.test_basics.<locals>.FooStrTyping.bar  r   rb   N)r   r1  r-  rn   rb   r`   FooStrTypingr0    s        //////rb   r3  r  r   )rx   r   r  r)  rB   r   r-   r[   r   r.  r3  r  s        r`   test_basicszSelfTests.test_basics  sT   	' 	' 	' 	' 	' 	' 	' 	'	) 	) 	) 	) 	) 	) 	) 	)	0 	0 	0 	0 	0 	0 	0 	0 FL1 	D 	DFV,, D D  VZ8T2BCCCD D D D D D D D D D D D D D Dj&&-----   0BB	B	c                 V    |                      t          t                    d           d S )Nr1  )r   r   rB   r   s    r`   r   zSelfTests.test_repr"  s$    d]33333rb   c                     |                      t                    5  t          t                    d d d            d S # 1 swxY w Y   d S rf   )r   r   rB   r   r   s    r`   test_cannot_subscriptzSelfTests.test_cannot_subscript%  s    y)) 	 	II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                 6   |                      t                    5   G d dt          t                              }d d d            n# 1 swxY w Y   |                      t                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS ))SelfTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   Cr<  +  r   rb   r=  c                       e Zd ZdS ))SelfTests.test_cannot_subclass.<locals>.DNr~   rn   rb   r`   Dr?  .  r   rb   r@  )r   r   r   rB   r[   r=  r@  s      r`   r   zSelfTests.test_cannot_subclass)  s?   y)) 	 	    DJJ   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    D   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#   !AAA-BBBc                 $   |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            d S # 1 swxY w Y   d S rf   )r   r   rB   r   r   s    r`   test_cannot_initzSelfTests.test_cannot_init1  s    y)) 	 	FFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DJJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                 .   |                      t                    5  t          dt                     d d d            n# 1 swxY w Y   |                      t                    5  t	          t
          t                     d d d            d S # 1 swxY w Y   d S Nrq   )r   r   r   rB   rX   r   r   s    r`   test_no_isinstancezSelfTests.test_no_isinstance7  s   y)) 	  	 q$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 y)) 	" 	"sD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"!   =AA"B

BBc                    t           t          t          f         }t          t                   }t          t                   }|                     t          |          t          t          f           |                     t          |          t          f           |                     t          |          t          f           d S rf   )r   rB   r    r%   r   r.   r[   alias_1alias_2alias_3s       r`   
test_aliaszSelfTests.test_alias=  s    d
#t*4.'**T4L999'**TG444'**TG44444rb   Nrk   rl   rm   r   r5  r   r9  r   rD  rG  rN  rn   rb   r`   r#  r#    s        ( ( (
. . .4 4 4      " " "5 5 5 5 5rb   r#  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
LiteralStringTestsc                     |                      t          t                     |                     t          t                     |                     t          d            d S rf   )r   rC   r   r   r   s    r`   r   z LiteralStringTests.test_equalityH  sH    666m]333M400000rb   c                 n    G d d          } G d d          } G d d          }|||fD ]_}|                      |          5  |                     t          |j                  dt          i           d d d            n# 1 swxY w Y   `|                     t          t                    d            d S )	Nc                       e Zd ZdefdZdS )+LiteralStringTests.test_basics.<locals>.Foor   c                     d S rf   rn   r   s    r`   r)  z/LiteralStringTests.test_basics.<locals>.Foo.barO  r   rb   N)rk   rl   rm   rC   r)  rn   rb   r`   r   rU  N  s!        /]//////rb   r   c                       e Zd ZddZdS ).LiteralStringTests.test_basics.<locals>.FooStrr   rC   c                     d S rf   rn   r   s    r`   r)  z2LiteralStringTests.test_basics.<locals>.FooStr.barQ  r   rb   N)r   rC   r-  rn   rb   r`   r.  rX  P  s        111111rb   r.  c                       e Zd ZddZdS )4LiteralStringTests.test_basics.<locals>.FooStrTypingr   typing.LiteralStringc                     d S rf   rn   r   s    r`   r)  z8LiteralStringTests.test_basics.<locals>.FooStrTyping.barS  r   rb   N)r   r\  r-  rn   rb   r`   r3  r[  R  s        888888rb   r3  r  r   )rx   r   r  r)  rC   r   r-   r4  s        r`   r5  zLiteralStringTests.test_basicsM  sT   	0 	0 	0 	0 	0 	0 	0 	0	2 	2 	2 	2 	2 	2 	2 	2	9 	9 	9 	9 	9 	9 	9 	9 FL1 	M 	MFV,, M M  VZ8]2KLLLM M M M M M M M M M M M M M Mj//66666r6  c                 V    |                      t          t                    d           d S )Nr\  )r   r   rC   r   s    r`   r   zLiteralStringTests.test_reprZ  s'    m,,.DEEEEErb   c                     |                      t                    5  t          t                    d d d            d S # 1 swxY w Y   d S rf   )r   r   rC   r   r   s    r`   r9  z(LiteralStringTests.test_cannot_subscript]  s    y)) 	 	#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                 6   |                      t                    5   G d dt          t                              }d d d            n# 1 swxY w Y   |                      t                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )2LiteralStringTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   r=  rb  c  r   rb   r=  c                       e Zd ZdS )2LiteralStringTests.test_cannot_subclass.<locals>.DNr~   rn   rb   r`   r@  rd  f  r   rb   r@  )r   r   r   rC   rA  s      r`   r   z'LiteralStringTests.test_cannot_subclassa  sA   y)) 	 	    D''   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    M   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rB  c                 $   |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            d S # 1 swxY w Y   d S rf   )r   r   rC   r   r   s    r`   rD  z#LiteralStringTests.test_cannot_initi  s   y)) 	 	OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	" 	"D!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"r   c                 .   |                      t                    5  t          dt                     d d d            n# 1 swxY w Y   |                      t                    5  t	          t
          t                     d d d            d S # 1 swxY w Y   d S rF  )r   r   r   rC   rX   r   r   s    r`   rG  z%LiteralStringTests.test_no_isinstanceo  s   y)) 	) 	)q-(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)y)) 	+ 	+sM***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+rH  c                    t           t          t          f         }t          t                   }t          t                   }|                     t          |          t          t          f           |                     t          |          t          f           |                     t          |          t          f           d S rf   )r   rC   r    r%   r   r.   rJ  s       r`   rN  zLiteralStringTests.test_aliasu  s    }45}%=)'**]M,JKKK'**],<==='**],<=====rb   NrO  rn   rb   r`   rQ  rQ  G  s        1 1 1
7 7 7F F F    " " "+ + +> > > > >rb   rQ  c                   z    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 Zd Zd Zd Zd Zd ZdS )TypeVarTestsc                    t          d          }|                     ||           |                     |t                      |                     |j        d           |                     |j        d           |                     |j        d            |                     |j        d           |                     |j        d           d S )Nr   rn   F)	r   r   r   rk   __constraints__r   	__bound____covariant____contravariant__r[   r   s     r`   test_basic_plainzTypeVarTests.test_basic_plain~  s    CLLAa)))S)))*B///ak4(((aou---a)511111rb   c                 V   t          dt                    }|                     |j        d           |                     |j        d           |                     |j        t                     t          dt          t                    }|                     |j        d           |                     |j        t          t          f           |                     |j        d            t          dd          }|                     |j        d           |                     |j        d           |                     |j	        d           t          d	d
          }|                     |j        d	           |                     |j        d           |                     |j	        d           d S )NT_boundboundrn   T_constraintsT_coT	covariantFT_contracontravariant)
r   r   r   rk   rk  r   rl  strrm  rn  )r[   rr  ru  rv  ry  s        r`   test_attributeszTypeVarTests.test_attributes  sr   )3///)95550"555g'---c::/AAA6c
CCCm-t444v...///d($///d,e444:T:::*J777h,e444h0$77777rb   c                     t          d          }|                     t                    5  t          d|           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   r   r   ro  s     r`    test_typevar_instance_type_errorz-TypeVarTests.test_typevar_instance_type_error  s    CLLy)) 	 	r1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                 B   t          d          }|                     t                    5  t          t          |           d d d            n# 1 swxY w Y   |                     t                    5  t          |t                     d d d            d S # 1 swxY w Y   d S Nr   )r   r   r   rX   r   ro  s     r`    test_typevar_subclass_type_errorz-TypeVarTests.test_typevar_subclass_type_error  s   CLLy)) 	 	sA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	q#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AAA1BBBc                     |                      t                    5  t          dt                    }| d d d            d S # 1 swxY w Y   d S )NX)r   r   r   r   r[   r  s     r`   test_constrained_errorz#TypeVarTests.test_constrained_error  s    y)) 	 	S!!AA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   A  AAc                 P   t          d          }t          d          }|                     ||           |                     t          |         |           |                     t          |         t          ||f                    |                     t          ||f         |           |                     t          |t          f         t          |                    |                     t          |t          f         t          t                              |                     t          |t          f         j        |t          f           |                     t          |t          f         j        |f           |                     t          |t          f         j        t                     d S )Nr  Y)	r   r   r   r   r   __args____parameters__r   
__origin__)r[   r  r  s      r`   test_union_uniquezTypeVarTests.test_union_unique  s9   CLLCLLAq!!!q1%%%E!HeAqDk222q!ta(((E!S&M58444E!S&M5:666q#v/!S:::q#v5t<<<eAsFm.66666rb   c                    t          d          }|                     |dz  t          |df                    |                     d|z  t          d|f                    |                     t          |dz            |t	          d          f           |                     t          d|z            t	          d          |f           d S Nr  r   )r   r   r   r.   rA   r  s     r`   test_orzTypeVarTests.test_or  s    CLL 	S%3-000q%Q-000!c'**Q
3,@AAA#'**Z__a,@AAAAArb   c                     t          dt          t                    }|                     t          |t          f         t          |                    d S Nr   )r   r|  bytesr   r   r[   r   s     r`   test_union_constrainedz#TypeVarTests.test_union_constrained  s;    Ce$$E!S&M5844444rb   c                    |                      t          t                    d           |                      t          t                    d           |                      t          t                    d           |                      t          t
                    d           t          dd          }|                      t          |          d           t          d	d
          }|                      t          |          d           d S )Nz~Tz~KTz~VTz~AnyStrrv  Trw  z+T_cory  rz  z	-T_contra)r   r   r   r   r   r   r   )r[   rv  ry  s      r`   r   zTypeVarTests.test_repr  s    a$'''b5)))b5)))fy111v...dW---:T:::h55555rb   c                     |                      t          d          t          d                     |                      t          dt          t                    t          dt          t                               d S r  )r   r   r   r|  r   s    r`   test_no_redefinitionz!TypeVarTests.test_no_redefinition  sX    GCLL'#,,777GCc22GCc4J4JKKKKKrb   c                     |                      t                    5   G d dt          d                    }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )1TypeVarTests.test_cannot_subclass_vars.<locals>.VNr~   rn   rb   r`   Vr    r   rb   r  r   r   r   r   )r[   r  s     r`   test_cannot_subclass_varsz&TypeVarTests.test_cannot_subclass_vars  s    y)) 	 	    GCLL   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     |                      t                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )7TypeVarTests.test_cannot_subclass_var_itself.<locals>.WNr~   rn   rb   r`   Wr    r   rb   r  r  )r[   r  s     r`   test_cannot_subclass_var_itselfz,TypeVarTests.test_cannot_subclass_var_itself  s    y)) 	 	    G   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   <A A c                     |                      t                    5   t          d                       d d d            d S # 1 swxY w Y   d S r  r  r   s    r`   test_cannot_instantiate_varsz)TypeVarTests.test_cannot_instantiate_vars  s    y)) 	 	GCLLNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                 @   |                      t                    5  t          dt                     d d d            n# 1 swxY w Y   |                      t                    5  t          dt          t
          t                     d d d            d S # 1 swxY w Y   d S )Nr  rs  )r   r   r   r   r|  floatr}   r   s    r`   test_bound_errorszTypeVarTests.test_bound_errors  s   y)) 	& 	&Cu%%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&y)) 	5 	5Ce84444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s!   >AA##BBBc                 *    d}t          |i            d S )Nz&import typing
T = typing.TypeVar('T')
execr[   codes     r`   test_missing__name__z!TypeVarTests.test_missing__name__  s    , 	T2rb   c                     |                      t                    5  t          ddd           d d d            d S # 1 swxY w Y   d S )Nr   T)rx  r{  )r   
ValueErrorr   r   s    r`   test_no_bivariantzTypeVarTests.test_no_bivariant  s    z** 	= 	=C4t<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=r   c                    t          d          }|j        }|                      |t                    t                     |                      |t
          t                             t
          t                              |                      |t          t                             t          t                              |                      |t                    t                     |                      |t                    t                     |                      |d           t          d                      |                      ||          |           |                      |t          t          z            t          t          z             |                      |t          t          t          f                   t          t          t          f                    d S r  )r   __typing_subst__r   r   r   listr    r   r   r|  r   )r[   r   substs      r`   test_var_substitutionz"TypeVarTests.test_var_substitution  sU   CLL"eeCjj#&&&tCy))49555tCy))49555td+++eeCjj#&&&eeDkk4::...eeAhh"""s3wS111uS#X//sCxAAAAArb   c                    t          d          }dt          t          ft          t          t          |         t
          t
          |         t          t          t                   t          t          t                   f}|D ]}|                     |          5  | 	                    t                    5   |j        |           d d d            n# 1 swxY w Y   | 	                    t                    5  t          |         |          d d d            n# 1 swxY w Y   | 	                    t                    5  t          |         |          d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nr   rn   r   )r   r   r|  r   r$   r(   r&   r%   rx   r   r   r  r    r  )r[   r   bad_argsr   s       r`   test_bad_var_substitutionz&TypeVarTests.test_bad_var_substitution  s.   CLLc
EWQZ8A;5:x#

  	! 	!C#&& ! !&&y11 , ,&A&s+++, , , , , , , , , , , , , , ,&&y11 ! !GCLL! ! ! ! ! ! ! ! ! ! ! ! ! ! !&&y11 ! !GCLL! ! ! ! ! ! ! ! ! ! ! ! ! ! !! ! ! ! ! ! ! ! ! ! ! ! ! ! !	! 	!s~   E+-C
>E+
CE+CE+/DE+DE+DE+4EE+EE+EE++E/	2E/	N)rk   rl   rm   rp  r}  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  rn   rb   r`   ri  ri  }  s+       
2 
2 
28 8 8*  
    
7 7 7B B B5 5 56 6 6L L L  
  
  5 5 5  = = =B B B! ! ! ! !rb   ri  	templatesreplacementsr   c                    g }|                                 D ]8\  }}g }|D ]}|                    ||f           |                    |           9g }t          j        | D ]^}g }	| D ]5}
|D ]\  }}|
                    ||          }
|	                    |
           6|                    t          |	                     _g }|D ]}||vr|                    |           |S )a  Renders templates with possible combinations of replacements.

    Example 1: Suppose that:
      templates = ["dog_breed are awesome", "dog_breed are cool"]
      replacements = ["dog_breed": ["Huskies", "Beagles"]]
    Then we would return:
      [
          ("Huskies are awesome", "Huskies are cool"),
          ("Beagles are awesome", "Beagles are cool")
      ]

    Example 2: Suppose that:
      templates = ["Huskies are word1 but also word2"]
      replacements = {"word1": ["playful", "cute"],
                      "word2": ["feisty", "tiring"]}
    Then we would return:
      [
          ("Huskies are playful but also feisty"),
          ("Huskies are playful but also tiring"),
          ("Huskies are cute but also feisty"),
          ("Huskies are cute but also tiring")
      ]

    Note that if any of the replacements do not occur in any template:
      templates = ["Huskies are word1", "Beagles!"]
      replacements = {"word1": ["playful", "cute"],
                      "word2": ["feisty", "tiring"]}
    Then we do not generate duplicates, returning:
      [
          ("Huskies are playful", "Beagles!"),
          ("Huskies are cute", "Beagles!")
      ]
    )itemsappend	itertoolsproductreplacetuple)r  r  replacement_combosoriginalpossible_replacementsoriginal_replacement_tuplesreplacementrendered_templatesreplacement_combotemplates_with_replacementstemplate rendered_templates_no_duplicatesr   s                r`   template_replacer    sS   N +7+=+=+?+? ? ?''&(#0 	H 	HK'..+/FGGGG!!"=>>>> &.0BC F F ')#! 	9 	9H): C C%+#++HkBB'..x8888!!%(C"D"DEEEE (*$ 7 7444,33A666++rb   c                       e Zd Zd Zd ZdS )TemplateReplacementTestsc                 n    t          ddgddgddgd          }g d	}|                     ||           d S )
NCats are word1zDogs are word2smallcutebigfluffyword1word2r  r  ))Cats are smallDogs are big)r  Dogs are fluffy)Cats are cuter  )r  r  r  r   r[   actualr  s      r`   :test_two_templates_two_replacements_yields_correct_renderszSTemplateReplacementTests.test_two_templates_two_replacements_yields_correct_renders\  sh    !+-=>%v.#X. 
 
 

 
 
 	*****rb   c                 n    t          ddgddgddgd          }d	d
g}|                     ||           d S )Nr  Dogs!r  r  r  r  r  r  )r  r  )r  r  r  r  s      r`   2test_no_duplicates_if_replacement_not_in_templateszKTemplateReplacementTests.test_no_duplicates_if_replacement_not_in_templatesl  se    !+W5%v.#X. 
 
 
 (&
 	*****rb   N)rk   rl   rm   r  r  rn   rb   r`   r  r  Z  s2        + + + + + + + +rb   r  c                   *    e Zd ZdZd Zd Zd Zd ZdS )GenericAliasSubstitutionTestsaK  Tests for type variable substitution in generic aliases.

    For variadic cases, these tests should be regarded as the source of truth,
    since we hadn't realised the full complexity of variadic substitution
    at the time of finalizing PEP 646. For full discussion, see
    https://github.com/python/cpython/issues/91162.
    c           	      X   t          d          }t          d          }t          d          } G d dt          |                   }g d}ddg}g d	}|D ]\  }}	}
t          ||	|
g||d
          }|D ]\  }}}|                     |||          5  |dk    rE|                     t                    5  t          ||z              d d d            n# 1 swxY w Y   n3|                     t          ||z             t          |                     d d d            n# 1 swxY w Y   d S )Nr   TsTs2c                       e Zd ZdS );GenericAliasSubstitutionTests.test_one_parameter.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  )r=  r  r    r  r   ))
generic[T][()]r   )r  [int]generic[int])r  
[int, str]r   )r  [tuple_type[int, ...]]generic[tuple_type[int, ...]])r  [*tuple_type[int]]r  )r  z[*tuple_type[()]]r   )r  [*tuple_type[int, str]]r   )r  [*tuple_type[int, ...]]r   )r  [*Ts]r   )r  [T, *Ts]r   )r  [*Ts, T]r   )zC[T, *tuple_type[int, ...]]r  r   )zlist[T, *tuple_type[int, ...]]r  z list[int, *tuple_type[int, ...]])zList[T, *tuple_type[int, ...]]r  r   )zgeneric[*Ts, *Ts2]r  r   generic
tuple_typer  aliasr   r  r   	r   r   r$   r  rx   r   r   evalr   )r[   r   r  r  r=  genericstuple_typestestsalias_templateargs_templateexpected_templater  	alias_strargs_strexpected_strs                  r`   test_one_parameterz0GenericAliasSubstitutionTests.test_one_parameter  s   CLL$5!!!!!!!
!!!((((
 
 
. AF 	 	<NM+<!1-}>OP-5[!Q!Q" " " 6H 	 	1	8\\\	<\XX  #{22!..y99 7 7 X!56667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 (( X!566 ..                		 	s6   !D3C	DCDC7DD!$D!c           	      \   t          d          }t          d          }t          d          } G d dt          ||f                   }g d}ddg}g d	}|D ]\  }}	}
t          ||	|
g||d
          }|D ]\  }}}|                     |||          5  |dk    rE|                     t                    5  t          ||z              d d d            n# 1 swxY w Y   n3|                     t          ||z             t          |                     d d d            n# 1 swxY w Y   d S )NT1T2r  c                       e Zd ZdS )<GenericAliasSubstitutionTests.test_two_parameters.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  )r=  dictr!   r  r   ))generic[T1, T2]r  r   )r  r  r   )r  r  generic[int, str])r  [int, str, bool]r   )r  r  r   )r  r  r  )r  z[*tuple_type[int, str, bool]]r   )r  z[int, *tuple_type[str]]r  )r  z[*tuple_type[int], str]r  )r  z$[*tuple_type[int], *tuple_type[str]]r  )r  z([*tuple_type[int, str], *tuple_type[()]]r  )r  z([*tuple_type[()], *tuple_type[int, str]]r  )r  z#[*tuple_type[int], *tuple_type[()]]r   )r  z#[*tuple_type[()], *tuple_type[int]]r   )r  z+[*tuple_type[int, str], *tuple_type[float]]r   )r  z+[*tuple_type[int], *tuple_type[str, float]]r   )r  z1[*tuple_type[int, str], *tuple_type[float, bool]]r   )r  r  r   )r  ,[tuple_type[int, ...], tuple_type[str, ...]]3generic[tuple_type[int, ...], tuple_type[str, ...]])r  r  r   )r  z[int, *tuple_type[str, ...]]r   )r  [*tuple_type[int, ...], str]r   )r  .[*tuple_type[int, ...], *tuple_type[str, ...]]r   )r  r  r   )r  r  r   )r  r  r   )z"generic[T1, *tuple_type[int, ...]][str]#generic[str, *tuple_type[int, ...]]r  r  r  r   r  r[   r  r  r  r=  r  r  r  r  r  r  r  r  r  r	  s                  r`   test_two_parametersz1GenericAliasSubstitutionTests.test_two_parameters  s   T]]T]]$&&&&&B&&&((((%
 %
 %
N AF 	 	<NM+<!1-}>OP-5[!Q!Q" " " 6H 	 	1	8\\\	<\XX  #{22!..y99 7 7 X!56667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 (( X!566 ..                		 	6   !D5C	DCDC7DD#&D#c           	      \   t          d          }t          d          }t          d          } G d dt          |||f                   }dg}ddg}dd	g}|D ]\  }}	}
t          ||	|
g||d
          }|D ]\  }}}|                     |||          5  |dk    rE|                     t
                    5  t          ||z              d d d            n# 1 swxY w Y   n3|                     t          ||z             t          |                     d d d            n# 1 swxY w Y   d S )Nr  r  T3c                       e Zd ZdS )>GenericAliasSubstitutionTests.test_three_parameters.<locals>.CNr~   rn   rb   r`   r=  r     r   rb   r=  r  r   )generic[T1, bool, T2]r  generic[int, bool, str])r!  r  r"  r  r  r  r   )r   r$   r  rx   r   r   r   r   )r[   r  r  r  r=  r  r  r  r  r  r  r  r  r  r	  s                  r`   test_three_parametersz3GenericAliasSubstitutionTests.test_three_parameters  s   T]]T]]T]]*****B
#***5( G G
 AF 	 	<NM+<!1)=:KL)1MM" " " 6H 	 	1	8\\\	<\XX  #{22!..y99 7 7 X!56667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 (( X!566 ..                		 	r  c           	      ^   t          d          }t          d          }t          d          } G d dt          g |R                    }g d}ddg}g d	}|D ]\  }}	}
t          ||	|
g||d
          }|D ]\  }}}|                     |||          5  |dk    rE|                     t                    5  t          ||z              d d d            n# 1 swxY w Y   n3|                     t          ||z             t          |                     d d d            n# 1 swxY w Y   d S )Nr  r  r  c                       e Zd ZdS )AGenericAliasSubstitutionTests.test_variadic_parameters.<locals>.CNr~   rn   rb   r`   r=  r&    r   rb   r=  )r=  r  r   r  r   )@)generic[*Ts]r  zgeneric[()])r'  r  r  )r'  r  r  )r'  r  r  )r'  z[*tuple_type[*Ts]]r'  )r'  r  r  )r'  z"[str, *tuple_type[int, ...], bool])generic[str, *tuple_type[int, ...], bool])r'  r  r  )r'  r  r  )r'  r  zgeneric[*tuple_type[int, ...]])r'  r  r   )r'  r  r'  )r'  r  generic[T, *Ts])r'  r  generic[*Ts, T])r)  r  r   )r)  r  r  )r)  r  r  )r)  r  generic[int, str, bool])generic[list[T], *Ts]r  r   )r,  r  generic[list[int]])r,  r  zgeneric[list[int], str])r,  r  zgeneric[list[int], str, bool])r*  r  r   )r*  r  r  )r*  r  r  )r*  r  r+  )generic[*Ts, list[T]]r  r   )r.  r  r-  )r.  r  zgeneric[int, list[str]])r.  r  zgeneric[int, str, list[bool]])generic[T1, T2, *Ts]r  r   )r/  r  r   )r/  r  r  )r/  r  r+  )r/  [int, str, bool, bytes]generic[int, str, bool, bytes])generic[*Ts, T1, T2]r  r   )r2  r  r   )r2  r  r  )r2  r  r+  )r2  r0  r1  )generic[T1, *Ts, T2]r  r   )r3  r  r   )r3  r  r  )r3  r  r+  )r3  r0  r1  )r)  r  z#generic[int, *tuple_type[int, ...]])r)  [str, *tuple_type[int, ...]]r  )r)  r  z(generic[int, *tuple_type[int, ...], str])r*  r  z#generic[*tuple_type[int, ...], int])r*  r4  z(generic[str, *tuple_type[int, ...], int])r*  r  #generic[*tuple_type[int, ...], str])r3  r  z(generic[int, *tuple_type[int, ...], int])zgeneric[T, str, *Ts]r  z(generic[int, str, *tuple_type[int, ...]])zgeneric[*Ts, str, T]r  z(generic[*tuple_type[int, ...], str, int])r,  r  z)generic[list[int], *tuple_type[int, ...]])r.  r  z)generic[*tuple_type[int, ...], list[int]])z!generic[T, *tuple_type[int, ...]]r  r  )z&generic[T1, T2, *tuple_type[int, ...]][str, bool]z)generic[str, bool, *tuple_type[int, ...]])&generic[T1, *tuple_type[int, ...], T2]r6  r(  )r7  z[str, bool, float]r   )z!generic[T1, *tuple_type[T2, ...]]r  z#generic[int, *tuple_type[str, ...]])z!generic[*tuple_type[T1, ...], T2]r  r5  )z+generic[T1, *tuple_type[generic[*Ts], ...]]r  z2generic[int, *tuple_type[generic[str, bool], ...]])z+generic[*tuple_type[generic[*Ts], ...], T1]r  z2generic[*tuple_type[generic[int, str], ...], bool]r  r  r  r   r  r  s                  r`   test_variadic_parametersz6GenericAliasSubstitutionTests.test_variadic_parameters  s   T]]T]]$########***(J
 J
 J
X AF 	 	<NM+<!1-}>OP-5[!Q!Q" " " 6H 	 	1	8\\\	<\XX  #{22!..y99 7 7 X!56667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 (( X!566 ..                		 	s6   !D 6C		D CD C7D  D$'D$N)rk   rl   rm   __doc__r
  r  r#  r8  rn   rb   r`   r  r  {  sb         / / /d? ? ?B  @d d d d drb   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )UnpackTestsc                 j    g t           t                   R  t          t          t                             d S rf   )r  r   r   r   r   s    r`   test_accepts_single_typez$UnpackTests.test_accepts_single_type  s&    %*uSzrb   c                    t          t          t          t          t                                                }dD ]F}|                     |          5  |                     ||           d d d            n# 1 swxY w Y   Gd S Nr  r  r  required_item)setdirr   r   r   rx   assertInr[   	dir_itemsrB  s      r`   test_dirzUnpackTests.test_dir  s    F5:.//00	
 	8 	8M M:: 8 8mY7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8s   A55A9	<A9	c                     |                      t                    5  t          t          t                   t          t
                   f          d d d            d S # 1 swxY w Y   d S rf   )r   r   r   r   r   r|  r   s    r`   test_rejects_multiple_typesz'UnpackTests.test_rejects_multiple_types  s    y)) 	+ 	+5:uSz)**	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   0AAAc                    |                      t                    5  g t          t                   R d         t          t                             d d d            n# 1 swxY w Y   |                      t                    5  t          t
          t                            t
          t                             d d d            d S # 1 swxY w Y   d S Nr   )r   r   r  r   r   r   r   s    r`   &test_rejects_multiple_parameterizationz2UnpackTests.test_rejects_multiple_parameterization  s   y)) 	* 	*eCjNN1eCj))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*y)) 	+ 	+5:uSz**	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s#   2AA A>4B??CCc                     |                      t                    5  t                       d d d            d S # 1 swxY w Y   d S rf   )r   r   r   r   s    r`   test_cannot_be_calledz!UnpackTests.test_cannot_be_called  s    y)) 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   7;;N)rk   rl   rm   r=  rH  rJ  rM  rO  rn   rb   r`   r;  r;    s_          8 8 8+ + ++ + +    rb   r;  c                       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 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 Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$S )%TypeVarTupleTestsc                 j    |                     |          s|                     d|d|           d S d S )NzString z does not end with )endswithfail)r[   stringtails      r`   assertEndsWithz TypeVarTupleTests.assertEndsWith  sL    t$$ 	GIIEEETEEFFFFF	G 	Grb   c                     t          d          }|                     |j        d           t          d          }|                     |j        d           d S )Nr  r  )r   r   rk   )r[   r  r  s      r`   	test_namezTypeVarTupleTests.test_name  sR    $d+++5!!u-----rb   c                 P    t          d          }|                     ||           d S Nr  )r   r   r[   r  s     r`    test_instance_is_equal_to_itselfz2TypeVarTupleTests.test_instance_is_equal_to_itself  s+    $R     rb   c                 f    |                      t          d          t          d                     d S r\  )r   r   r   s    r`   &test_different_instances_are_differentz8TypeVarTupleTests.test_different_instances_are_different  s.    L..T0B0BCCCCCrb   c                 Z    t          d          }|                     |t                      d S r\  )r   r   r]  s     r`   (test_instance_isinstance_of_typevartuplez:TypeVarTupleTests.test_instance_isinstance_of_typevartuple  s+    $b,/////rb   c                     t          d          }|                     t                    5   |             d d d            d S # 1 swxY w Y   d S r\  )r   r   r   r]  s     r`   test_cannot_call_instancez+TypeVarTupleTests.test_cannot_call_instance  s    $y)) 	 	BDDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA	Ac                     t          d          }|                     g |R d         g |R d                    |                     t          |         t          |                    d S )Nr  r   )r   r   r   r]  s     r`   -test_unpacked_typevartuple_is_equal_to_itselfz?TypeVarTupleTests.test_unpacked_typevartuple_is_equal_to_itself  s]    $2FbFF1I...VBZ00000rb   c                    t          d          }|                     t          g |R          t          g |R                     |                     t          t          |                  t          t          |                             d S r\  )r   r   r  r   r   r]  s     r`   +test_parameterised_tuple_is_equal_to_itselfz=TypeVarTupleTests.test_parameterised_tuple_is_equal_to_itself  sg    $sssU3B33Z000vbz*E&*,=>>>>>rb   c                 f   t          d          }t          d          }|                     t          g ||R          t          g ||R                     |                     t          t          |         t          |         f         t          t          |         t          |         f                    d S )NTs1r  )r   r   r  r   r   )r[   rj  r  s      r`    tests_tuple_arg_ordering_mattersz2TypeVarTupleTests.tests_tuple_arg_ordering_matters  s    5!!5!!*3****3***	
 	
 	
 	&+vc{*+&+vc{*+	
 	
 	
 	
 	
rb   c                 n   t          d          }t          g |R          }|                     |j        g |R            |                     |j        |f           t
          t          |                  }|                     |j        t          |         f           |                     |j        |f           d S r\  )r   r  r   r  r  r   r   )r[   r  t1t2s       r`   *test_tuple_args_and_parameters_are_correctz<TypeVarTupleTests.test_tuple_args_and_parameters_are_correct  s    $3B33Zfff---*RE2226":vbzm444*RE22222rb   c           	         t          d          }t          d          }t          d          } G d dt          g |R                    } G d dt          t          |                            }||t          t
          fD 	]M}|g |R          }|                     |d         |d                    |                     |t                   |t                              |                     |t          t          f         |t          t          f                    |t          |                  }|                     |d         |d                    |                     |t                   |t                              |                     |t          t          f         |t          t          f                    t          |g |R                   }	|                     |	d         t          |d                             |                     |	t                   t          |t                                       |                     |	t          t          f         t          |t          t          f                             t          |t          |                           }
|                     |
d         t          |d                             |                     |
t                   t          |t                                       |                     |
t          t          f         t          |t          t          f                             ||g||R          }|                     t                    5  |d          d d d            n# 1 swxY w Y   |                     t                    5  |t                    d d d            n# 1 swxY w Y   |                     |t          t          f         |t          t          f                    |                     |t          t          t          f         |t          t          t          f                    |                     |t          t          t          t          f         |t          t          t          t          f                    ||t          |         |f         }|                     t                    5  |d          d d d            n# 1 swxY w Y   |                     t                    5  |t                    d d d            n# 1 swxY w Y   |                     |t          t          f         |t          t          f                    |                     |t          t          t          f         |t          t          t          f                    |                     |t          t          t          t          f         |t          t          t          t          f                    t
          t          |         |g |R          t          |         f         }|                     t                    5  |d          d d d            n# 1 swxY w Y   |                     t                    5  |t                    d d d            n# 1 swxY w Y   |t          k    r\|                     |t          t          f         t
          t          t                   |d         t          t                   f                    |                     |t          t          t          f         t
          t          t                   |t                   t          t                   f                    |                     |t          t          t          t          f         t
          t          t                   |t          t          f         t          t                   f                    t          t          |         |t          |                  t          |         f         }|                     t                    5  |d          d d d            n# 1 swxY w Y   |                     t                    5  |t                    d d d            n# 1 swxY w Y   |t          k    r\|                     |t          t          f         t          t          t                   |d         t          t                   f                    |                     |t          t          t          f         t          t          t                   |t                   t          t                   f                    |                     |t          t          t          t          f         t          t          t                   |t          t          f         t          t                   f                    	Od S )	Nr  r   r  c                       e Zd ZdS )3TypeVarTupleTests.test_var_substitution.<locals>.G1Nr~   rn   rb   r`   G1rr    r   rb   rs  c                       e Zd ZdS )3TypeVarTupleTests.test_var_substitution.<locals>.G2Nr~   rn   rb   r`   G2ru    r   rb   rv  rn   )r   r   r$   r   r   r  r   r  r|  r  r    r   r   r   r  )r[   r  r   r  rs  rv  r   r   r=  r@  EFGHIs                  r`   r  z'TypeVarTupleTests.test_var_substitution  s0	   $CLLT]]$$$$$"$$$+++++$+++R% ?	K ?	KA#2##AQrUAbE***QuXqx000Qucz]AeSjM:::&*AQrUAbE***QuXqx000Qucz]AeSjM:::QsssVAQrUD2K000QuXtAeH~666Qucz]D5#:,?@@@Qvbz]#AQrUD2K000QuXtAeH~666Qucz]D5#:,?@@@!*b*"**A""9--  "              ""9--  %              Qucz]AeSjM:::Quc3/5#s?1CDDDQuc356%c5:P8QRRR!VBZ#$A""9--  "              ""9--  %              Qucz]AeSjM:::Quc3/5#s?1CDDDQuc356%c5:P8QRRRd1gq"vtBx/0A""9--  "              ""9--  %              Ezz  5#:!&tE{AbE49'D!EG G GQuc3/"4;#S	#ABD D DQuc356"4;#s(T%[#HIK K K d1gq}d2h67A""9--  "              ""9--  %              Ezz  5#:!&tE{AbE49'D!EG G GQuc3/"4;#S	#ABD D DQuc356"4;#s(T%[#HIK K K K}?	K ?	Ks   	M22M6	9M6	N11N5	8N5	>	SS	S	8TT	T	8	YY	Y	2ZZ	Z	*	`??a	a	$a>>b	b	c                 x   t          d          }t          d          }t          d          } G d dt          g |R                    } G d dt          t          |                            }||t          t
          fD ]:}||         }|                     t                    5  |t          t          f          d d d            n# 1 swxY w Y   |||f         }|                     t                    5  |g |R           d d d            n# 1 swxY w Y   |                     t                    5  |t          |                   d d d            n# 1 swxY w Y   ||g|t          |R          }|                     t                    5  |t          g|R           d d d            n# 1 swxY w Y   |                     t                    5  |t          g||R           d d d            n# 1 swxY w Y   ||t          |         t          |f         }|                     t                    5  |t          t          |         f          d d d            n# 1 swxY w Y   |                     t                    5  |t          t          |         t          |         f          d d d            n# 1 swxY w Y   <d S )Nr  r   r  c                       e Zd ZdS )7TypeVarTupleTests.test_bad_var_substitution.<locals>.G1Nr~   rn   rb   r`   rs  r~  &  r   rb   rs  c                       e Zd ZdS )7TypeVarTupleTests.test_bad_var_substitution.<locals>.G2Nr~   rn   rb   r`   rv  r  '  r   rb   rv  )
r   r   r$   r   r   r  r   r   r   r|  )	r[   r  r   r  rs  rv  r   r   r=  s	            r`   r  z+TypeVarTupleTests.test_bad_var_substitution"  s9   $CLLT]]$$$$$"$$$+++++$+++R% 	/ 	/A"A""9--  #s(               !R%A""9--  #2##              ""9--  &*               !/b/#/r//"A""9--  #(((              ""9-- ! !#--R--  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !VBZb()A""9-- # ##vbz/""# # # # # # # # # # # # # # #""9-- / /#vbz6":-../ / / / / / / / / / / / / / /)	/ 	/s~   #CC	C	3DD	D	0EE	E	
F((F,	/F,	G--G1	4G1	.II	I	:'J--J1	4J1	c                 P   t          d          } G d dt          g |R                    } G d dt          t          |                            }|                     t	          |          d           |                     t	          g |R d                   d           |                     t	          t          |                   d           |                     t	          t
          g |R                    d           |                     t	          t          t          |                            d	           |                     t	          t
          g |R           d
           |                     t	          t          t          t          |                                     d           d S )Nr  c                       e Zd ZdS )2TypeVarTupleTests.test_repr_is_correct.<locals>.G1Nr~   rn   rb   r`   rs  r  C  r   rb   rs  c                       e Zd ZdS )2TypeVarTupleTests.test_repr_is_correct.<locals>.G2Nr~   rn   rb   r`   rv  r  D  r   rb   rv  r   *Tsz
tuple[*Ts]ztyping.Tuple[*Ts]z*tuple[*Ts]z*typing.Tuple[*Ts])r   r$   r   r   r   r  r   )r[   r  rs  rv  s       r`   test_repr_is_correctz&TypeVarTupleTests.test_repr_is_correct@  sb   $$$$$$"$$$+++++$+++b4(((fffQi%000fRj))5111eCRCCj))<888eF2J/002EFFFuSbSSz*M:::fU6":%6788:NOOOOOrb   c           
      ^   t          d          } G d dt          g |R                    } G d dt          t          |                            }|                     t	          |d                   d           |                     t	          |d                   d           |                     t	          |t
                             d	           |                     t	          |t
                             d
           |                     t	          |t
          t          f                   d           |                     t	          |t
          t          f                   d           |                     t	          |g t          t          df         R                    d           |                     t	          |t          t          t          df                                     d           |                     t	          |t
          gt          t          df         R                    d           |                     t	          |t
          t          t          t          df                  f                   d           |                     t	          |g t          t          df         t          R                    d           |                     t	          |t          t          t          df                  t          f                   d           |                     t	          |t
          gt          t          df         t          R                    d           |                     t	          |t
          t          t          t          df                  t          f                   d           d S )Nr  c                       e Zd ZdS )@TypeVarTupleTests.test_variadic_class_repr_is_correct.<locals>.ANr~   rn   rb   r`   r   r  S  r   rb   r   c                       e Zd ZdS )@TypeVarTupleTests.test_variadic_class_repr_is_correct.<locals>.BNr~   rn   rb   r`   r   r  T  r   rb   r   rn   A[()]zB[()]A[float]zB[float]A[float, str]zB[float, str].zA[*tuple[int, ...]]zB[*typing.Tuple[int, ...]]zA[float, *tuple[int, ...]]z!A[float, *typing.Tuple[int, ...]]zA[*tuple[int, ...], str]zB[*typing.Tuple[int, ...], str]zA[float, *tuple[int, ...], str]z&B[float, *typing.Tuple[int, ...], str])
r   r$   r   rX  r   r  r|  r  r   r   )r[   r  r   r   s       r`   #test_variadic_class_repr_is_correctz5TypeVarTupleTests.test_variadic_class_repr_is_correctQ  s!   $########*****r
#***D2KK111D2KK111D5NNJ777D5NNJ777D5#://AAAD5#://AAAD#3E#s(O#3#3!4551	3 	3 	3D6%S/#:!;<<8	: 	: 	: 	D5#:5c?#:#:!;<<8	: 	: 	:D5&sCx*A#A!BCC?	A 	A 	A 	D#8E#s(O#8S#8#8!9::6	8 	8 	8D6%S/#:C#?!@AA=	? 	? 	? 	D5#?5c?#?C#?#?!@AA=	? 	? 	?D5&sCx*A3#F!GHHD	F 	F 	F 	F 	Frb   c                    t          d          } G d dt          t          |                            }|g |R          }|                     t	          |          d           |                     t	          |d                   d           |                     t	          |t
                             d           |                     t	          |t
          t          f                   d           |t          |                  }|                     t	          |          d           |                     t	          |d                   d           |                     t	          |t
                             d           |                     t	          |t
          t          f                   d           |g |t          R          }|                     t	          |          d	           |                     t	          |d                   d
           |                     t	          |t
                             d           |                     t	          |t
          t          f                   d           |t          |         t          f         }|                     t	          |          d	           |                     t	          |d                   d
           |                     t	          |t
                             d           |                     t	          |t
          t          f                   d           |t          g|R          }|                     t	          |          d           |                     t	          |d                   d
           |                     t	          |t
                             d           |                     t	          |t
          t          f                   d           |t          t          |         f         }|                     t	          |          d           |                     t	          |d                   d
           |                     t	          |t
                             d           |                     t	          |t
          t          f                   d           |t          g|t          R          }	|                     t	          |	          d           |                     t	          |	d                   d           |                     t	          |	t
                             d           |                     t	          |	t
          t          f                   d           |t          t          |         t          f         }
|                     t	          |
          d           |                     t	          |
d                   d           |                     t	          |
t
                             d           |                     t	          |
t
          t          f                   d           |g |t          t          df         R          }|                     t	          |          d           |                     t	          |d                   d           |                     t	          |t
                             d           |                     t	          |t
          t          f                   d           |t          |         t          t          t          df                  f         }|                     t	          |          d           |                     t	          |d                   d           |                     t	          |t
                             d           |                     t	          |t
          t          f                   d           d S )Nr  c                       e Zd ZdS )FTypeVarTupleTests.test_variadic_class_alias_repr_is_correct.<locals>.ANr~   rn   rb   r`   r   r  s  r   rb   r   zA[*Ts]rn   r  r  r  zA[*Ts, int]zA[int]zA[float, int]zA[float, str, int]zA[int, *Ts]zA[int, float]zA[int, float, str]zA[int, *Ts, str]zA[int, str]zA[int, float, str, str].zA[*Ts, *tuple[str, ...]]zA[*tuple[str, ...]]zA[float, *tuple[str, ...]]zA[float, str, *tuple[str, ...]]zA[*Ts, *typing.Tuple[str, ...]]zA[*typing.Tuple[str, ...]]z!A[float, *typing.Tuple[str, ...]]z&A[float, str, *typing.Tuple[str, ...]])
r   r$   r   rX  r   r  r|  r   r  r   )r[   r  r   r   r=  r@  rw  rx  ry  rz  r{  JKs                r`   )test_variadic_class_alias_repr_is_correctz;TypeVarTupleTests.test_variadic_class_alias_repr_is_correctq  s-   $*****r
#***crccFDGGX...D2KK111D5NNJ777D5#://AAAfRjMDGGX...D2KK111D5NNJ777D5#://AAAhrh3hhKDGG]333D2KK222D5NNO<<<D5#://1EFFFfRj#oDGG]333D2KK222D5NNO<<<D5#://1EFFFchBhhKDGG]333D2KK222D5NNO<<<D5#://1EFFFc6":oDGG]333D2KK222D5NNO<<<D5#://1EFFFcmBmmmDGG%7888D2KK777D5NN,@AAAD5#://1JKKKc6":s"#DGG%7888D2KK777D5NN,@AAAD5#://1JKKK#r#E#s(O##$DGG%?@@@D2KK)>???D5NN,HIIID5#://1RSSSfRj&sCx112DGG%FGGGD2KK)EFFFD5NN,OPPPD5#://1YZZZZZrb   c                     |                      t                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )7TypeVarTupleTests.test_cannot_subclass_class.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  )r   r   r   r[   r=  s     r`   test_cannot_subclass_classz,TypeVarTupleTests.test_cannot_subclass_class  s    y)) 	( 	('''''L'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(r  c           	      L   t          d          }|                     t                    5   G d d|          }d d d            n# 1 swxY w Y   |                     t          t                    5   G d dt          t                              }d d d            n# 1 swxY w Y   |                     t          t                    5   G d dt          |           }d d d            n# 1 swxY w Y   |                     t          t                    5   G d d	t          t          |                             }d d d            n# 1 swxY w Y   |                     t          d
          5   G d dt                    }d d d            n# 1 swxY w Y   |                     t          d          5   G d dg|R  }d d d            n# 1 swxY w Y   |                     t          d          5   G d dt          |                   }d d d            d S # 1 swxY w Y   d S )Nr  c                       e Zd ZdS ):TypeVarTupleTests.test_cannot_subclass_instance.<locals>.DNr~   rn   rb   r`   r@  r    r   rb   r@  c                       e Zd ZdS ):TypeVarTupleTests.test_cannot_subclass_instance.<locals>.ENr~   rn   rb   r`   rw  r    r   rb   rw  c                       e Zd ZdS ):TypeVarTupleTests.test_cannot_subclass_instance.<locals>.FNr~   rn   rb   r`   rx  r    r   rb   rx  c                       e Zd ZdS ):TypeVarTupleTests.test_cannot_subclass_instance.<locals>.GNr~   rn   rb   r`   ry  r    r   rb   ry  zCannot subclass typing\.Unpackc                       e Zd ZdS ):TypeVarTupleTests.test_cannot_subclass_instance.<locals>.HNr~   rn   rb   r`   rz  r    r   rb   rz  zCannot subclass \*Tsc                       e Zd ZdS ):TypeVarTupleTests.test_cannot_subclass_instance.<locals>.INr~   rn   rb   r`   r{  r    r   rb   r{  c                       e Zd ZdS ):TypeVarTupleTests.test_cannot_subclass_instance.<locals>.JNr~   rn   rb   r`   r  r    r   rb   r  )r   r   r   r  CANNOT_SUBCLASS_TYPEr   r   )	r[   r  r@  rw  rx  ry  rz  r{  r  s	            r`   test_cannot_subclass_instancez/TypeVarTupleTests.test_cannot_subclass_instance  s   $y)) 	 	B	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/CDD 	( 	('''''DLL'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(##I/CDD 	% 	%$$$$$D"I$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%##I/CDD 	, 	,+++++D$$+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,##I$EG G 	" 	"!!!!!F!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" ##I/FGG 	 	R	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/FGG 	& 	&%%%%%F2J%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s}   AA	A	0!BB!$B!C**C.1C.'EEE.FFF4GGG2HH Hc                    t          d          }t          d          } G d dt          g |R                    } G d dt          t          |                            }|d         }|d         }|                     |j        d           |                     |j        d           |t                   }|t                   }|                     |j        t          f           |                     |j        t          f           |t          t          f         }	|t          t          f         }
|                     |	j        t          t          f           |                     |
j        t          t          f           ||         }||         }|                     |j        |f           |                     |j        |f           |g |R          }|t          |                  }|                     |j        g |R            |                     |j        t          |         f           ||g|R          }||t          |         f         }|                     |j        |g|R            |                     |j        |t          |         f           |g ||R          }|t          |         |f         }|                     |j        g ||R            |                     |j        t          |         |f           d S )Nr   r  c                       e Zd ZdS )ATypeVarTupleTests.test_variadic_class_args_are_correct.<locals>.ANr~   rn   rb   r`   r   r    r   rb   r   c                       e Zd ZdS )ATypeVarTupleTests.test_variadic_class_args_are_correct.<locals>.BNr~   rn   rb   r`   r   r    r   rb   r   rn   )r   r   r$   r   r   r  r   r|  )r[   r   r  r   r   r=  r@  rw  rx  ry  rz  r{  r  r  LMNOPs                      r`   $test_variadic_class_args_are_correctz6TypeVarTupleTests.test_variadic_class_args_are_correct  s   CLL$########*****r
#***bEbER(((R(((cFcFcV,,,cV,,,c3hKc3hKc3Z000c3Z000aDaDaT***aT***crccFfRjMVrVV,,,fRj]333af"ffIamaX"XX...a_555frf1ffIfRj!mXrX1XX...fRj!_55555rb   c                    t          d          } G d dt          g |R                    }|                     |t                   j        |           |                     |t
                   j        |           |                     |t          |                  j        |            G d dt          t          |                            }|                     |t                   j        |           |                     |t
                   j        |           |                     |t          |                  j        |           d S )Nr  c                       e Zd ZdS )BTypeVarTupleTests.test_variadic_class_origin_is_correct.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  c                       e Zd ZdS )BTypeVarTupleTests.test_variadic_class_origin_is_correct.<locals>.DNr~   rn   rb   r`   r@  r    r   rb   r@  )r   r$   r   r   r  r   r   )r[   r  r=  r@  s       r`   %test_variadic_class_origin_is_correctz7TypeVarTupleTests.test_variadic_class_origin_is_correct  s   $########af'+++adoq)))ar
m.222*****r
#***af'+++adoq)))ar
m.22222rb   c                 P   t          d          }d|\  fd}|                     t          |          dt          |         i           dt          t
          t          f         \  fd}|                     t          |          dt          t          t
          t          f                  i            G d dt          g |R                    }d|t
          t          f         \  fd}|                     t          |          dt          |t
          t          f                  i           d S )Nr  r   c                      d S rf   rn   r   s    r`   func1zCTypeVarTupleTests.test_get_type_hints_on_unpack_args.<locals>.func1   r   rb   c                      d S rf   rn   r  s    r`   func2zCTypeVarTupleTests.test_get_type_hints_on_unpack_args.<locals>.func2  r   rb   c                       e Zd ZdS )LTypeVarTupleTests.test_get_type_hints_on_unpack_args.<locals>.CustomVariadicNr~   rn   rb   r`   CustomVariadicr    r   rb   r  c                      d S rf   rn   r  s    r`   func3zCTypeVarTupleTests.test_get_type_hints_on_unpack_args.<locals>.func3  r   rb   r   r   r  r   r  r   r|  r$   r[   r  r  r  r  r  s         r`   "test_get_type_hints_on_unpack_argsz4TypeVarTupleTests.test_get_type_hints_on_unpack_args  s   $#"#####UffRj%9:::0%S/00000UffU38_.E%FGGG00000WSbSS\0009.c299999Uff^CH5M.N%OPPPPPrb   c                    t          d          }dd}|                     t          |d|i          dt          |         i           dd}|                     t          |          dt          t          t
          t          f                  i            G d d	t          g |R                    }dd}|                     t          |d	|i          dt          |t
          t          f                  i           d S )Nr  r   r  c                      d S rf   rn   r  s    r`   r  zJTypeVarTupleTests.test_get_type_hints_on_unpack_args_string.<locals>.func1  r   rb   )localns*tuple[int, str]c                      d S rf   rn   r  s    r`   r  zJTypeVarTupleTests.test_get_type_hints_on_unpack_args_string.<locals>.func2  r   rb   c                       e Zd ZdS )STypeVarTupleTests.test_get_type_hints_on_unpack_args_string.<locals>.CustomVariadicNr~   rn   rb   r`   r  r    r   rb   r  *CustomVariadic[int, str]c                      d S rf   rn   r  s    r`   r  zJTypeVarTupleTests.test_get_type_hints_on_unpack_args_string.<locals>.func3  r   rb   )r   r  )r   r  )r   r  r  r  s         r`   )test_get_type_hints_on_unpack_args_stringz;TypeVarTupleTests.test_get_type_hints_on_unpack_args_string  s   $%%%%UT2J777,	. 	. 	. 	3222UffU38_.E%FGGG00000WSbSS\000;;;;U-=~,NOOO &S)A"BC	E 	E 	E 	E 	Erb   c                 (   t          d          }|                     t          g |R          j        g |R            |                     t          t
          |                  j        t
          |         f           |                     t          g |t          R          j        g |t          R            |                     t          t
          |         t          f         j        t
          |         t          f           |                     t          t          g|R          j        t          g|R            |                     t          t          t
          |         f         j        t          t
          |         f           |                     t          t          g|t          R          j        t          g|t          R            |                     t          t          t
          |         t          f         j        t          t
          |         t          f           |                     t          g |t          R          j        g |t          R            |                     t          t
          |                  j        t
          |         f           d S r\  )r   r   r  r  r   r   r   r|  r]  s     r`   test_tuple_args_are_correctz-TypeVarTupleTests.test_tuple_args_are_correct  s   $sss,fff555vbz*3fRj]CCCxxCxx1:R:::>>>vbz3/86":s:KLLLsxRxx1C:"::>>>sF2J/83r
:KLLLs}R}}}-6C	* 	* 	*sF2J34=vbz3/	1 	1 	1 	xxCxx1:R:::>>>vbz*3fRj]CCCCCrb   c           	          t          d          }t          d          }t          d          }t          g |d f         }t          t          |         gd f         }|                     |j        g |t          d           R            |                     |j        t          |         t          d           f           t          t          g|d f         }t          t          t          |         gd f         }|                     |j        t          g|t          d           R            |                     |j        t          t          |         t          d           f           t          g |t          d f         }t          t          |         t          gd f         }	|                     |j        g |t          t          d           R            |                     |	j        t          |         t          t          d           f           t          t          g|t          d f         }
t          t          t          |         t          gd f         }|                     |
j        t          g|t          t          d           R            |                     |j        t          t          |         t          t          d           f           t          d gg|R          }t          d gt          |         f         }|                     |j        t          d           g|R            |                     |j        t          d           t          |         f           t          d gt          t          g|R          f         }t          d gt          t          t          |         f         f         }|                     |j        t          d           t          t          g|R          f           |                     |j        t          d           t          t          t          |         f         f           t          d gt          g |t          R          f         }t          d gt          t          |         t          f         f         }|                     |j        t          d           t          g |t          R          f           |                     |j        t          d           t          t          |         t          f         f           t          d gt          t          g|t          R          f         }t          d gt          t          t          |         t          f         f         }|                     |j        t          d           t          t          g|t          R          f           |                     |j        t          d           t          t          t          |         t          f         f           t          g |g|R          }t          t          |         gt          |         f         }|                     |j        g ||R            |                     |j        t          |         t          |         f           t          g |g|R          }t          t          |         gt          |         f         }|                     |j        g ||R            |                     |j        t          |         t          |         f           d S )Nr  rj  r  )
r   r#   r   r   r  r   r   r|  r  r   )r[   r  rj  r  r  r   cderi   ghijklmnopqrr   us                           r`   test_callable_args_are_correctz0TypeVarTupleTests.test_callable_args_are_correct/  s   $5!!5!! UrUD[!fRj\4'(%6r%64::%6%6777fRj$t**%=>>>cZBZ%&c6":&,-c%;B%;T

%;%;<<<c6":tDzz%BCCCZrZ3Z%&fRj#&,-%;r%;3%;T

%;%;<<<fRj#tDzz%BCCCc_B__d*+c6":s+T12c%@B%@%@T$ZZ%@%@AAAc6":sDJJ%GHHH dV[b[[!dVVBZ'(d4jj%62%6%6777d4jj&*%=>>>dVU3888_,-dVU3r
?334d4jj%b/%BCCCd4jj%VBZ2H%IJJJdVU8B888_,-dVU6":s?334d4jj%S/%BCCCd4jj%r
C2H%IJJJdVU3==S==112dVU3r
C#7889d4jj%b#2F%GHHHd4jj%VBZ8L2M%NOOO UrUZRZZ fRj\6":-.ZrZBZZ000fRj&*%=>>>VsV\c\\"fSk]F3K/0\s\S\\222fSk6#;%?@@@@@rb   c           
      ,   t          d          }t          d          }|                     t                    5   G d dt          g ||R                    }d d d            n# 1 swxY w Y   |                     t                    5   G d dt          t          |         t          |         f                   }d d d            n# 1 swxY w Y   |                     t                    5   G d dt          g |||R                    }d d d            n# 1 swxY w Y   |                     t                    5   G d	 d
t          t          |         t          |         t          |         f                   }d d d            d S # 1 swxY w Y   d S )Nrj  r  c                       e Zd ZdS )STypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_fails.<locals>.CNr~   rn   rb   r`   r=  r  q  r   rb   r=  c                       e Zd ZdS )STypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_fails.<locals>.DNr~   rn   rb   r`   r@  r  s  r   rb   r@  c                       e Zd ZdS )STypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_fails.<locals>.ENr~   rn   rb   r`   rw  r  v  r   rb   rw  c                       e Zd ZdS )STypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_fails.<locals>.FNr~   rn   rb   r`   rx  r  x  r   rb   rx  )r   r   r   r$   r   )r[   rj  r  r=  r@  rw  rx  s          r`   6test_variadic_class_with_duplicate_typevartuples_failszHTypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_failsl  s   5!!5!!y)) 	/ 	/.....GJSJ3JJ'...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/y)) 	= 	=<<<<<GF3K45<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= y)) 	5 	544444G,S,3,,,-444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5y)) 	J 	JIIIIIGF3KfSkABIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	JsG   A$$A(+A(	2CCC,!DD D>>F		FFc                 ,   t          d          } G d dt          t          |                            }|t          g|R           |t          t          |         f          |g |t          R           |t          |         t          f          |t          g|t          R           |t          t          |         t          f          |t          t
          g|t          t          R           |t          t
          t          |         t          t          f          d S )Nr  c                       e Zd ZdS )]TypeVarTupleTests.test_type_concatenation_in_variadic_class_argument_list_succeeds.<locals>.CNr~   rn   rb   r`   r=  r  |  r   rb   r=  )r   r$   r   r   r|  boolr  r[   r  r=  s      r`   @test_type_concatenation_in_variadic_class_argument_list_succeedszRTypeVarTupleTests.test_type_concatenation_in_variadic_class_argument_list_succeedsz  s    $*****r
#***	#(((	#vbz/	(2(s((	&*c/	#--C--	#vbz3
	#t
$b
$%
$
$
$%%	#tVBZ
+,,,,rb   c                 4   t          d          }t          t          g|R           t          g |t          R           t          t          g|t          R           t          t          t          g|t
          t          R           t          t          t          |         f          t          t          |         t          f          t          t          t          |         t          f          t          t          t          t          |         t
          t          f          d S r\  )r   r  r   r|  r  r  r   r   r]  s     r`   7test_type_concatenation_in_tuple_argument_list_succeedszITypeVarTupleTests.test_type_concatenation_in_tuple_argument_list_succeeds  s    $chBhhhrh3hhcmBmmmc4("(e(S(())c6":ofRj#oc6":s"##c4UC/0000rb   c                     t          d          }|                     t                    5   G d dt          |                   }d d d            d S # 1 swxY w Y   d S )Nr  c                       e Zd ZdS )[TypeVarTupleTests.test_variadic_class_definition_using_packed_typevartuple_fails.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  )r   r   r   r$   r  s      r`   >test_variadic_class_definition_using_packed_typevartuple_failszPTypeVarTupleTests.test_variadic_class_definition_using_packed_typevartuple_fails  s    $y)) 	' 	'&&&&&GBK&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   AAAc                    t          d          }|                     t                    5   G d dt          g |t          R                    }d d d            n# 1 swxY w Y   |                     t                    5   G d dt          t
          |         t          f                   }d d d            d S # 1 swxY w Y   d S )Nr  c                       e Zd ZdS )VTypeVarTupleTests.test_variadic_class_definition_using_concrete_types_fails.<locals>.FNr~   rn   rb   r`   rx  r    r   rb   rx  c                       e Zd ZdS )VTypeVarTupleTests.test_variadic_class_definition_using_concrete_types_fails.<locals>.ENr~   rn   rb   r`   rw  r    r   rb   rw  )r   r   r   r$   r   r   )r[   r  rx  rw  s       r`   9test_variadic_class_definition_using_concrete_types_failszKTypeVarTupleTests.test_variadic_class_definition_using_concrete_types_fails  s@   $y)) 	- 	-,,,,,GHRHHH%,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-y)) 	4 	433333GF2JO,333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s#   $AA!A?,B88B<?B<c           	         t          d          }t          d          }t          d          } G d dt          ||g|R                    }|t          t          f          |t          t          t
          f          |t          t          t
          t          f           G d dt          ||t          |         f                   }|t          t          f          |t          t          t
          f          |t          t          t
          t          f           G d d	t          |g||R                    }|t          t          f          |t          t          t
          f          |t          t          t
          t          f           G d
 dt          |t          |         |f                   }|t          t          f          |t          t          t
          f          |t          t          t
          t          f           G d dt          g |||R                    }|t          t          f          |t          t          t
          f          |t          t          t
          t          f           G d dt          t          |         ||f                   }	|	t          t          f          |	t          t          t
          f          |	t          t          t
          t          f          d S )Nr  r  r  c                       e Zd ZdS )WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.ANr~   rn   rb   r`   r   r    r   rb   r   c                       e Zd ZdS )WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.BNr~   rn   rb   r`   r   r
    r   rb   r   c                       e Zd ZdS )WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  c                       e Zd ZdS )WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.DNr~   rn   rb   r`   r@  r    r   rb   r@  c                       e Zd ZdS )WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.ENr~   rn   rb   r`   rw  r    r   rb   rw  c                       e Zd ZdS )WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.FNr~   rn   rb   r`   rx  r    r   rb   rx  )r   r   r$   r   r|  r  r  r   )
r[   r  r  r  r   r   r=  r@  rw  rx  s
             r`   :test_variadic_class_with_2_typevars_accepts_2_or_more_argszLTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args  sV   $T]]T]]+++++B$+++	#s(	#sE/	#sE4
  22222Br
*+222	#s(	#sE/	#sE4
  +++++R$+++	#s(	#sE/	#sE4
  22222F2J*+222	#s(	#sE/	#sE4
  +++++R$+++	#s(	#sE/	#sE4
  22222r
B*+222	#s(	#sE/	#sE4
    rb   c                     t          d          }dt          |         fd}d|\  fd}|                     |j        dt          |         i           |                     |j        dg |R d         i           d S )Nr  r   c                      d S rf   rn   r  s    r`   ri   zGTypeVarTupleTests.test_variadic_args_annotations_are_correct.<locals>.f  r   rb   c                      d S rf   rn   r  s    r`   r  zGTypeVarTupleTests.test_variadic_args_annotations_are_correct.<locals>.g  r   rb   r   )r   r   r   r   )r[   r  ri   r  s       r`   *test_variadic_args_annotations_are_correctz<TypeVarTupleTests.test_variadic_args_annotations_are_correct  s    $&VBZ&&&&b*VVBZ,@AAA*VVrVVAY,?@@@@@rb   c                 d   dt           t          df         \  fd}|                     |j        dg t           t          df         R d         i           dt          t
          t          df                  fd}|                     |j        dt          t
          t          df                  i           d S )Nr   .c                      d S rf   rn   r  s    r`   r  zUTypeVarTupleTests.test_variadic_args_with_ellipsis_annotations_are_correct.<locals>.a  r   rb   r   c                      d S rf   rn   r  s    r`   r   zUTypeVarTupleTests.test_variadic_args_with_ellipsis_annotations_are_correct.<locals>.b  r   rb   )r  r   r   r   r   r   )r[   r  r   s      r`   8test_variadic_args_with_ellipsis_annotations_are_correctzJTypeVarTupleTests.test_variadic_args_with_ellipsis_annotations_are_correct  s    ,eCHo,,,,,* "5E#s(O"5"5a"89	; 	; 	; 	4VE#s(O,3333* &sCx"9:	< 	< 	< 	< 	<rb   c                 <   t          d          }dt          t          g|R          \  fd}|                     |j        dg t          t          g|R          R d         i           dt          g |t          R          \  fd}|                     |j        dg t          g |t          R          R d         i           dt          t
          g|t          R          \  fd}|                     |j        dg t          t
          g|t          R          R d         i           dt          t          t          g|t          t
          R          \  fd}|                     |j        dg t          t          t          g|t          t
          R          R d         i           dt          t          t          t          |         f                  fd}|                     |j        dt          t          t          t          |         f                  i           dt          t          t          |         t          f                  fd	}|                     |j        dt          t          t          |         t          f                  i           dt          t          t
          t          |         t          f                  fd
}|                     |j        dt          t          t
          t          |         t          f                  i           dt          t          t          t          t          |         t          t
          f                  fd}	|                     |	j        dt          t          t          t          t          |         t          t
          f                  i           d S )Nr  r   c                      d S rf   rn   r  s    r`   r  zXTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.a  r   rb   r   c                      d S rf   rn   r  s    r`   r   zXTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.b  r   rb   c                      d S rf   rn   r  s    r`   r  zXTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.c  r   rb   c                      d S rf   rn   r  s    r`   r  zXTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.d  r   rb   c                      d S rf   rn   r  s    r`   r  zXTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.e  r   rb   c                      d S rf   rn   r  s    r`   ri   zXTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.f  r   rb   c                      d S rf   rn   r  s    r`   r  zXTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.g  r   rb   c                      d S rf   rn   r  s    r`   r  zXTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.h  r   rb   )
r   r  r   r   r   r|  r  r  r   r   )
r[   r  r  r   r  r  r  ri   r  r  s
             r`   ;test_concatenation_in_variadic_args_annotations_are_correctzMTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct  sY   $ 	-eCH"HHo,,,,,(uSX2XX((+,	
 	
 	

 	-eHRHHHo,,,,,(uXbX#XX((+,	
 	
 	

 	2eCM"McMM*11111-uS]2]s]]+--a01	
 	
 	

 	?eC66E63667>>>>>:uS$77U7C778::1=>	
 	
 	
 	;VE#vbz/23::::VE#vbz/234	
 	
 	

 	;VE&*c/23::::VE&*c/234	
 	
 	

 	@VE#vbz3"678????VE#vbz3"6789	
 	
 	

 	MVE#tVBZ"CDELLLLVE#tVBZ"CDEF	
 	
 	
 	
 	
rb   c                 x   t          d          } G d dt          g |R                    } G d dt          t          |                            }|                     |t                   |t                              |                     |t                   |t                              t          d          }t          d          }|                     |g |R          |g |R                     |                     |t          |                  |t          |                             |                     |g ||R          |g ||R                     |                     |t          |         t          |         f         |t          |         t          |         f                    |                     |t          g||R          |t          g||R                     |                     |t          t          |         t          |         f         |t          t          |         t          |         f                    d S )Nr  c                       e Zd ZdS )MTypeVarTupleTests.test_variadic_class_same_args_results_in_equalty.<locals>.CNr~   rn   rb   r`   r=  r(    r   rb   r=  c                       e Zd ZdS )MTypeVarTupleTests.test_variadic_class_same_args_results_in_equalty.<locals>.DNr~   rn   rb   r`   r@  r*    r   rb   r@  rj  r  )r   r$   r   r   r   r[   r  r=  r@  rj  r  s         r`   0test_variadic_class_same_args_results_in_equaltyzBTypeVarTupleTests.test_variadic_class_same_args_results_in_equalty  s"   $########*****r
#***33(((33(((5!!5!!dsddGdsddG	
 	
 	
 	fSkNfSkN	
 	
 	

 	jsjSjjMjsjSjjM	
 	
 	
 	fSk6#;&'fSk6#;&'	
 	
 	

 	coCo#oocoCo#oo	
 	
 	
 	c6#;s+,c6#;s+,	
 	
 	
 	
 	
rb   c                    t          d          } G d dt          g |R                    } G d dt          t          |                            }|                     |t          t
          f         |t
          t          f                    |                     |t          t
          f         |t
          t          f                    t          d          }t          d          }|                     |g ||R          |g ||R                     |                     |t          |         t          |         f         |t          |         t          |         f                    d S )Nr  c                       e Zd ZdS )ETypeVarTupleTests.test_variadic_class_arg_ordering_matters.<locals>.CNr~   rn   rb   r`   r=  r/  6  r   rb   r=  c                       e Zd ZdS )ETypeVarTupleTests.test_variadic_class_arg_ordering_matters.<locals>.DNr~   rn   rb   r`   r@  r1  7  r   rb   r@  rj  r  )r   r$   r   r   r   r|  r+  s         r`   (test_variadic_class_arg_ordering_mattersz:TypeVarTupleTests.test_variadic_class_arg_ordering_matters4  sX   $########*****r
#***c3hKc3hK	
 	
 	
 	c3hKc3hK	
 	
 	

 5!!5!!jsjSjjMjsjSjjM	
 	
 	
 	fSk6#;&'fSk6#;&'	
 	
 	
 	
 	
rb   c                    t          d          }t          d          }t          d          } G d dt          g |R                    } G d dt          t          |                            }|                     |g |R          |g |R                     |                     |t          |                  |t          |                             d S )Nr  rj  r  c                       e Zd ZdS )RTypeVarTupleTests.test_variadic_class_arg_typevartuple_identity_matters.<locals>.CNr~   rn   rb   r`   r=  r5  S  r   rb   r=  c                       e Zd ZdS )RTypeVarTupleTests.test_variadic_class_arg_typevartuple_identity_matters.<locals>.DNr~   rn   rb   r`   r@  r7  T  r   rb   r@  )r   r$   r   r   )r[   r  rj  r  r=  r@  s         r`   5test_variadic_class_arg_typevartuple_identity_matterszGTypeVarTupleTests.test_variadic_class_arg_typevartuple_identity_mattersN  s    $5!!5!!########*****r
#***AdsddGQtttW---AfSkNAfSkN;;;;;rb   N)&rk   rl   rm   rX  rZ  r^  r`  rb  rd  rf  rh  rk  ro  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r,  r2  r8  rn   rb   r`   rR  rR    sP       G G G. . .! ! !D D D0 0 0  
1 1 1
? ? ?


 

 

3 3 3FK FK FKP/ / /<P P P"F F F@>[ >[ >[@( ( (& & &$'6 '6 '6R3 3 3Q Q QE E E D D D(;A ;A ;AzJ J J- - - 1 1 1' ' '
4 4 4!! !! !!FA A A< < <5
 5
 5
n$
 $
 $
L
 
 
4	< 	< 	< 	< 	<rb   rR  c                   P    e Zd Zed             Zed             Zed             ZdS )TypeVarTuplePicklingTestsc                     t          d          at          j        t          j        t          |                    }|                     t          |           d S )N
global_Ts1)r   r<  rv   loadsdumpsr   )r[   rt   
global_Ts2s      r`   6test_pickling_then_unpickling_results_in_same_identityzPTypeVarTuplePicklingTests.test_pickling_then_unpickling_results_in_same_identity`  sF     ",//
\&,z5"A"ABB
j*-----rb   c                 \   t          d          ag t          R d         }t          j        t          j        ||                    }|                     ||           t          t                   }t          j        t          j        ||                    }|                     ||           d S )N	global_Tsr   )r   rB  rv   r=  r>  r   r   )r[   rt   	unpacked1	unpacked2	unpacked3	unpacked4s         r`   ?test_pickling_then_unpickling_unpacked_results_in_same_identityzYTypeVarTuplePicklingTests.test_pickling_then_unpickling_unpacked_results_in_same_identityg  s     !--	!iMM!$	Li!?!?@@	i+++9%	Li!?!?@@	i+++++rb   c           	         t          d          at          d          at          g t          R          t
          t          t                            t          t          gt          R          t
          t          t          t                   f         t          t          gt          R          t
          t          t          t                   f         g}|D ]?}t          j
        t          j        ||                    }|                     ||           @d S )Nglobal_TrB  )r   rI  r   rB  r  r   r   r   r   rv   r=  r>  r   )r[   rt   tuplestrn  s        r`   >test_pickling_then_unpickling_tuple_with_typevartuple_equalityzXTypeVarTuplePicklingTests.test_pickling_then_unpickling_tuple_with_typevartuple_equalityt  s    
 :&& --	 *9**&#$!-i-- !VI&&'#/	//"#vi(()	
  	$ 	$Afl1e4455BQ####	$ 	$rb   N)rk   rl   rm   r{   r@  rG  rL  rn   rb   r`   r:  r:  Z  sh         . . . 
, 
, 
, $ $ $ $ $rb   r:  c                       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 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )
UnionTestsc                 n    t           t          t          f         }|                     |t                      d S rf   )r   r   r  r   r[   r  s     r`   r5  zUnionTests.test_basics  s,    #u*Au%%%%%rb   c                    |                      t                    5  t          t          t                     d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                     d d d            n# 1 swxY w Y   |                      t                    5  t          t          t          t
          f         t                     d d d            d S # 1 swxY w Y   d S rf   )r   r   rX   r   r   r|  r   s    r`   test_subclass_errorzUnionTests.test_subclass_error  s   y)) 	# 	#sE"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#y)) 	# 	#uc"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#y)) 	- 	-uS#X,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s5   AA	A'BBB3-C--C14C1c                    t           t                   }|                     |t                     t           t          t          f         }t           t          t          f         }t           t          t          f         }|                     ||           |                     |t                     |                     |t                     |                     |t                     d S rf   )r   r   r   r   objectr   )r[   r  u1u2u3s        r`   test_union_anyzUnionTests.test_union_any  s    #JC   38_38_3;R   B$$$B$$$B$$$$$rb   c                 \   t           t                   }|                     |t                     t           t          t          f         }t           t          t          f         }|                     ||           |                     |t                     |                     |t                     d S rf   )r   rT  r   r   r   )r[   r  rU  rV  s       r`   test_union_objectzUnionTests.test_union_object  s    &MF###3;63;R   B'''B'''''rb   c                     t           t          t          f         }t           t          t          f         }|                     ||           d S rf   )r   r   r  r   )r[   rU  rV  s      r`   test_unorderedzUnionTests.test_unordered  s:    3:5#:R     rb   c                 `    t           t                   }|                     |t                     d S rf   )r   r}   r   )r[   rK  s     r`   test_single_class_disappearsz'UnionTests.test_single_class_disappears  s%    (Oa"""""rb   c                     t           t          t          f         }|                     |t                     |                     t          |j                   |                     t          |j                   d S rf   )r   r}   r   r   rE  r  rP  s     r`   test_base_class_keptzUnionTests.test_base_class_kept  sY    (G#$Ax(((h
+++gqz*****rb   c                     t           t          t          f         }t           |t          f         }|                     |t           t          t          t          f                    d S rf   )r   r   r  r}   r   )r[   r  vs      r`   test_union_unionzUnionTests.test_union_union  sF    #u*!X+E#uh"6788888rb   c                     G d dt                     } G d d|          } G d d|          }|                     t          ||f         j        ||f           t          ||f         }|                     t
                    5  t          |           d d d            n# 1 swxY w Y   t          t          |f         }|                     t
                    5  t          |           d d d            n# 1 swxY w Y   t          |t          f         }|                     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 );UnionTests.test_union_of_unhashable.<locals>.UnhashableMetaNrk   rl   rm   __hash__rn   rb   r`   UnhashableMetarf            HHHrb   ri  c                       e Zd ZdS ).UnionTests.test_union_of_unhashable.<locals>.ANr~   rn   rb   r`   r   rl    r   rb   r   	metaclassc                       e Zd ZdS ).UnionTests.test_union_of_unhashable.<locals>.BNr~   rn   rb   r`   r   rp    r   rb   r   )r   r   r   r  r   r   hashr   )r[   ri  r   r   union1union2union3s          r`   test_union_of_unhashablez#UnionTests.test_union_of_unhashable  s#   	 	 	 	 	T 	 	 	 	/...................q!t-1v666q!ty)) 	 	LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 sAvy)) 	 	LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 q#vy)) 	 	LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   B!!B%(B%C66C:=C:/EEEc                    |                      t          t                    d           t          t          t          f         }|                      t          |          dt
          z             t          t          t          f         }|                      t          |          dt
          z             t          d          }t          |t          f         t                   }|                      t          |          t          t                               t          t          t                   t          f         }|                      t          |          d           t          t          t                   t          t          t          f         f         }|                      t          |          d           t          t          t          z           }|                      t          |          d           t          d t          f         }|                      t          |          d           t          t          d f         }|                      t          |          d           t          d t          t          f         }|                      t          |          d	           t          t                   }|                      t          |          d           d S )
Nztyping.Unionztyping.Union[%s.Employee, int]ztyping.Union[int, %s.Employee]r   z#typing.Union[typing.List[int], int]z)typing.Union[list[int], dict[str, float]]ztyping.Union[int, float]ztyping.Optional[str]z typing.Union[NoneType, str, int])r   r   r   r}   r   rk   r   r    r  r  r|  r  r   )r[   r  r   s      r`   r   zUnionTests.test_repr  s   en555(C- a"BX"MNNN#x- a"BX"MNNNCLL!S&M#a$s)),,,$s)S.!a"GHHH$s)T#u*--.a"MNNN#+a"<===$)a"8999#t)a"8999$S.!a"DEEESMa"899999rb   c                     t          t          t          t          t          f                             }dD ]F}|                     |          5  |                     ||           d d d            n# 1 swxY w Y   Gd S r?  )rC  rD  r   r|  r   rx   rE  rF  s      r`   rH  zUnionTests.test_dir  s    E#s(O,,--	
 	8 	8M M:: 8 8mY7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8s   A11A5	8A5	c                    |                      t                    5   G d dt                    }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t                              }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t          t
          f                   }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )*UnionTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   r=  rz    r   rb   r=  c                       e Zd ZdS )*UnionTests.test_cannot_subclass.<locals>.DNr~   rn   rb   r`   r@  r|    r   rb   r@  c                       e Zd ZdS )*UnionTests.test_cannot_subclass.<locals>.ENr~   rn   rb   r`   rw  r~    r   rb   rw  )r   r   r   r   r   r|  )r[   r=  r@  rw  s       r`   r   zUnionTests.test_cannot_subclass  s   y)) 	 	    E   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    DKK   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    E#s(O   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s1   ;?? !BBB2&C%%C),C)c                 `   |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            n# 1 swxY w Y   t          t          t
          f         }|                      t                    5   |             d d d            n# 1 swxY w Y   |                      t                    5   t          |                       d d d            d S # 1 swxY w Y   d S rf   )r   r   r   r   r   r  rP  s     r`   r   z"UnionTests.test_cannot_instantiate  s   y)) 	 	GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DKKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#u*y)) 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DGGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sB   6::BBBCC C>D##D'*D'c                 v   |                      t          t          t          j        t
                   f         t          k               |                      t          t          t          j        t
                   f         t          j        t
                   k               |                     t          t          t          t          j        t
                   f         j                   |                     t          j        t
                   t          t          t          j        t
                   f         j                   d S rf   )r   r   r|  rO   Iterabler   rE  r  r   s    r`   test_union_generalizationz$UnionTests.test_union_generalization  s    sFOC$889S@AAAsFOC$889V_S=QQRRRc5foc&:!:;DEEEfoc*E#vs7K2K,L,UVVVVVrb   c                    |                      t          t                     |                      t          t                     |                      t          t                     |                      t
          t                     |                      d gt
                     |                      t
          t          j                   |                      t
          t          j                 t                     d S rf   )	r   r   rT  r   r%   r   rO   Mappingr"   r   s    r`   test_union_compare_otherz#UnionTests.test_union_compare_other  s    E6***E3'''He,,,He,,,TFH---Hfn555HV%:;UCCCCCrb   c                 ~    t           t                   }t          t          d f         }|                     ||           d S rf   )r   r   r   r   )r[   r  r  s      r`   test_optionalzUnionTests.test_optional  s5    SM#t)Arb   c                     |                      t                    5  t          d          d d d            d S # 1 swxY w Y   d S Nrn   )r   r   r   r   s    r`   
test_emptyzUnionTests.test_empty   s    y)) 	 	"II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   6::c                     t           t          t          f         }d|fd}|                     t	          |          d         |           d S )Nr   c                     d S rf   rn   r   s    r`   ri   z(UnionTests.test_no_eval_union.<locals>.f&  r   rb   )r   r   r|  r   r,   )r[   r  ri   s      r`   test_no_eval_unionzUnionTests.test_no_eval_union$  sG    #s(OnQ'',a00000rb   c                     dt           fd}|                     t          t          |t           f                   d           d S )Nr   c                      d S rf   rn   rn   rb   r`   funz0UnionTests.test_function_repr_union.<locals>.fun*  r   rb   ztyping.Union[fun, int])r   r   r   r   )r[   r  s     r`   test_function_repr_unionz#UnionTests.test_function_repr_union)  s@    SeCHo..0HIIIIIrb   c                 <    t           t          t          f         }| d S rf   )r   r|  r>   r  s     r`   test_union_str_patternz!UnionTests.test_union_str_pattern-  s    #w,	rb   c                 n    ddl m t          t          f          fd}t          |t          f          d S )Nr   )Elementc                       |  S rf   rn   )r   r  s    r`   Elemz#UnionTests.test_etree.<locals>.Elem9  s    7D>!rb   )xml.etree.ElementTreer  r   r|  )r[   r  r  s     @r`   
test_etreezUnionTests.test_etree2  sV     	211111gsl	" 	" 	" 	" 	" 	dCirb   c                    |                      t          t          d         t          d         f         j        t          d         t          d         f           |                      t          t          d         t          d         f         t          d                    |                      t          t          d         t          d         f         j        t          d         t          d         f           |                      t          t          d         t          d         f         j        t          d         t          d         f           dd l} G d d|j                  }|                      t          t          |j                 t          |j                 f         t          |j                            |                      t          t          |j                 t          |j                 f         t          |j                            |                      t          t          |j                 t          |j                 f         j        t          |j                 t          |j                 f           |                      t          t          d         t          |j                 t          d         f         j        t          d         t          |j                 t          d         f           |                      t          t          d         t          |j                 t          d         f         j        t          d         t          |j                 t          d         f           d S )Nrq   r   Fr   Tc                       e Zd ZdZdZdS )/UnionTests.test_union_of_literals.<locals>.Intsr   rq   Nrk   rl   rm   r   r   rn   rb   r`   Intsr  J          AAAArb   r  )r   r   r   r  enumIntEnumr   r   )r[   r  r  s      r`   test_union_of_literalsz!UnionTests.test_union_of_literals>  s   wqz71:56?!!*gaj1	3 	3 	3wqz71:56 	% 	% 	% 	wu~wqz9:C!%.'!*5	7 	7 	7wt}gaj89B!$-4	6 	6 	6 		 	 	 	 	4< 	 	 	 	wtv?@ 	* 	* 	*wtv?@ 	* 	* 	* 	wtv?@I!$&/746?;	= 	= 	= 	wqz746?GENJKT!!*gdfowu~F	H 	H 	Hwqz746?GDMIJS!!*gdfowt}E	G 	G 	G 	G 	Grb   N)rk   rl   rm   r5  rR  rX  rZ  r\  r^  r`  rc  ru  r   rH  r   r   r  r  r  r  r  r  r  r  r  rn   rb   r`   rN  rN    sl       & & &- - -	% 	% 	%( ( (! ! !
# # #+ + +9 9 9
  (: : :28 8 8	 	 		 	 	W W WD D D  
  1 1 1
J J J
 
 


 
 
G G G G Grb   rN  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )
TupleTestsc                    |                      t                    5  t          t          t          t          t
          f                    d d d            n# 1 swxY w Y   |                      t                    5  t          t          t          t          t
          f                    d d d            n# 1 swxY w Y    G d dt                    }|                     t          t                     |                     |t                     d S )Nc                       e Zd ZdS )"TupleTests.test_basics.<locals>.TPNr~   rn   rb   r`   TPr  d  r   rb   r  )r   r   rX   r   r   r|  r  ra   )r[   r  s     r`   r5  zTupleTests.test_basics^  sR   y)) 	/ 	/ueCHo...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/y)) 	/ 	/ueCHo...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	eU+++b%(((((s#   -AAA9-B22B69B6c                    |                      t          t                   t          t                              |                      t          t          df         t          t          df                    |                     t          t                   t          t          t          f                    |                     t          t                   t          t          df                    d S N.)r   r   r   r   r   s    r`   r   zTupleTests.test_equalityh  s    sU3Z000sCx%S/:::E#Jc3h888E#Jc3h88888rb   c                      G d dt                     }|                     |t                     |                     t          t                     |                     t           t                     d S )Nc                       e Zd ZdS )/TupleTests.test_tuple_subclass.<locals>.MyTupleNr~   rn   rb   r`   MyTupler  o          Drb   r  )r  ra   r   )r[   r  s     r`   test_tuple_subclasszTupleTests.test_tuple_subclassn  st    	 	 	 	 	e 	 	 	gu---eU+++eU+++++rb   c                     |                      t                    5  t          dt          t          t          f                    d d d            n# 1 swxY w Y   |                     dt                     d S )N)r   r   )r   r   r   r   r   r   r   s    r`   test_tuple_instance_type_errorz)TupleTests.test_tuple_instance_type_erroru  s    y)) 	0 	0vuS#X///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0fe,,,,,s   (AAAc                    |                      t          t                    d           |                      t          t          d                   d           |                      t          t          t          t          f                   d           |                      t          t          t          df                   d           |                      t          t          t
          t                                      d           d S )Nztyping.Tuplern   ztyping.Tuple[()]ztyping.Tuple[int, float].ztyping.Tuple[int, ...]ztyping.Tuple[list[int]])r   r   r   r   r  r  r   s    r`   r   zTupleTests.test_reprz  s    en555eBi*<===eCJ/002LMMMeCHo..0HIIIeDI.//1JKKKKKrb   c                 :   |                      t                    5  t          dt                     d d d            n# 1 swxY w Y   |                      t                    5  t          dt          t                              d d d            d S # 1 swxY w Y   d S r   )r   r   rX   r   r   r   s    r`   r   zTupleTests.test_errors  s   y)) 	" 	"r5!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"y)) 	' 	'r5:&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's!   =AA"!BBBN)	rk   rl   rm   r5  r   r  r  r   r   rn   rb   r`   r  r  \  sq        ) ) )9 9 9, , ,- - -
L L L' ' ' ' 'rb   r  c                       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 Zd Zd Zd Zd Zd Zd Zd Zd ZdS )BaseCallableTestsc                 >   | j         }|                     t                    5  t          t          j        |t          gt          f                    d d d            n# 1 swxY w Y   |                     t          j        |           |                     ||           d S rf   )r#   r   r   rX   typesFunctionTyper   ra   r[   r#   s     r`   test_self_subclassz$BaseCallableTests.test_self_subclass  s    =y)) 	A 	Au)8SE3J+?@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	Ae0(;;;h11111s   .AA #A c                    | j         }|t          gt          f         }|                     ||t          gt          f                    |                     t          ||t          gt          f         h          d           |                     ||t          gt
          f                    |                     ||t
          gt          f                    |                     ||t          t          gt          f                    |                     ||g t          f                    |                     ||dt          f                    |                     ||           d S )Nrq   .)r#   r   r   r  r   r|  )r[   r#   r=  s      r`   test_eq_hashzBaseCallableTests.test_eq_hash  s'   =cUCZ HcUCZ0111a3%*!5677;;;Axs
3444Axs
3444Axc
C8999AxC0111AxS1222Ax(((((rb   c                     | j         }t          t          |dt          f                             }dD ]F}|                     |          5  |                     ||           d d d            n# 1 swxY w Y   Gd S )N.r@  rA  )r#   rC  rD  r   rx   rE  )r[   r#   rG  rB  s       r`   rH  zBaseCallableTests.test_dir  s    =HS#X.//00	
 	8 	8M M:: 8 8mY7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8s   A..A2	5A2	c                 T   | j         }|                     t                    5   |             d d d            n# 1 swxY w Y   |                     t                    5   t          |                       d d d            n# 1 swxY w Y   |t          gt
          f         }|                     t                    5   |             d d d            n# 1 swxY w Y   |                     t                    5   t          |                       d d d            d S # 1 swxY w Y   d S rf   )r#   r   r   r   r   r|  )r[   r#   r  s      r`   r   z)BaseCallableTests.test_cannot_instantiate  s   =y)) 	 	HJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	cUCZ y)) 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DGGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sC   9= =BB	B<CCC8DD!$D!c                     | j         }|                     t                    5  |t                    d d d            d S # 1 swxY w Y   d S rf   )r#   r   r   r   r  s     r`   test_callable_wrong_formsz+BaseCallableTests.test_callable_wrong_forms  s    =y)) 	 	SMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   =AAc                 r    | j         }d }|                     ||           |                     d |           d S )Nc                      d S rf   rn   rn   rb   r`   ri   z9BaseCallableTests.test_callable_instance_works.<locals>.f      Drb   )r#   r   r   r[   r#   ri   s      r`   test_callable_instance_worksz.BaseCallableTests.test_callable_instance_works  sJ    =	 	 	a***  x00000rb   c                    | j         }d }|                     t                    5  t          ||g d f                    d d d            n# 1 swxY w Y   |                     t                    5  t          ||g t          f                    d d d            n# 1 swxY w Y   |                     t                    5  t          d |g d f                    d d d            n# 1 swxY w Y   |                     t                    5  t          d |g t          f                    d d d            d S # 1 swxY w Y   d S )Nc                      d S rf   rn   rn   rb   r`   ri   z>BaseCallableTests.test_callable_instance_type_error.<locals>.f  r  rb   )r#   r   r   r   r   r  s      r`   !test_callable_instance_type_errorz3BaseCallableTests.test_callable_instance_type_error  s/   =	 	 	y)) 	. 	.q(2t8,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.y)) 	- 	-q(2s7+,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-y)) 	1 	1tXb$h/000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1y)) 	0 	0tXb#g.///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0sG   A

AA/BB B>C##C'*C'D33D7:D7c                    | j         }|j         d}|g t          f         }|                     t	          |          | d           |t
          t          gt          f         }|                     t	          |          | d           |dt
          f         }|                     t	          |          | d           |t
          t          gt          t                   f         }|                     t	          |          | d           d S )N	.Callablez
[[], bool]z[[str, float], int].z
[..., str]z[[str, float], list[int]])	r#   rl   r  r   r   r|  r  r   r  )r[   r#   fullnamect0ct2ctvct3s          r`   r   zBaseCallableTests.test_repr  s    =)444r4x cx$;$;$;<<<U|S()cx$D$D$DEEEsCx cx$;$;$;<<<U|T#Y./cx$J$J$JKKKKKrb   c                     | j         }d|dt          f         fd}|                     t          |t	                      t                                d|dt          f         i           d S )Nr  .c                     d S rf   rn   r  s    r`   fooz:BaseCallableTests.test_callable_with_ellipsis.<locals>.foo  r  rb   )r#   r   r   r,   globalslocals)r[   r#   r  s      r`   test_callable_with_ellipsisz-BaseCallableTests.test_callable_with_ellipsis  sx    =	8CF# 	 	 	 	 	WYYAAxQ/0	2 	2 	2 	2 	2rb   c                 R    | j         }t          j        |dt          f                   d S r  )r#   rO   r    r|  r  s     r`   test_ellipsis_in_genericz*BaseCallableTests.test_ellipsis_in_generic  s%    =HS#X&''''rb   c                     | j         }|                     |t          z  t          |t          f                    |                     t          |z  t          t          |f                    d S rf   )r#   r   r   r   r  s     r`   test_or_and_rorz!BaseCallableTests.test_or_and_ror  sW    =E)55+ABBB)5+ABBBBBrb   c                    | j         }|t          t          gt          f         }|t          j        j         u r |                     |t          j                   | 	                    |j
        t          j        j                    |                     |j        t          t          t          f           |                     |j        d           d S r  )r#   r   r|  r  collectionsabcr   r  GenericAliasr   r  r   r  r  r[   r#   r  s      r`   
test_basiczBaseCallableTests.test_basic  s    =#sU*+{///!!%);<<<e&(@AAA#sE):;;;-r22222rb   c                     | j         }|t          t          gt          f         }|                      t          j        |                      |           d S rf   )r#   r   r|  r  r   weakrefrefr  s      r`   test_weakrefzBaseCallableTests.test_weakref  sK    =#sU*++U++--u55555rb   c                 J   | j         }t          d          at          d          at          d          a|t          t          gt          f         |t          t          f         |t          t          f         |t          t          t          f         t          f         |t          g t          t          R          t          f         g}|D ]}t          t          j        dz             D ]}|                     ||          5  t          j        ||          }t          j        |          }|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   d d d            n# 1 swxY w Y   bbbd S )NT_pickleP_pickle	TS_picklerq   )r  rt   )r#   r   r  rE   r  r   r  r   r|  r  rF   ru   rv   rw   rx   r>  r=  r   r  r  r  )r[   r#   samplesr  rt   r   loadeds          r`   test_picklezBaseCallableTests.test_pickle  s   =:&&Z(( --	 c3Z&'Xs]#Xx'([h/45[!5)!5X!5!56;<
  	R 	REv6:;; R R\\U\;; R RUE22A#\!__F$$U%5v7HIII$$U^V_EEE$$U%96;PQQQR R R R R R R R R R R R R R RR h			s   =B
FFFc                    | j         }|j         d}|t          t          gt          f         }|t          t          gt
          f         }|dt          f         }|                     |t                   |t          t          gt          f                    |                     |d          |t          t          d           gt          d           f                    |                     |t          t          t          f         |t          t          gt          f                    |                     |t                   |dt          f                    |                     |t                   |dt          f                    |t          t
          t          f         }|                     t          |          | d           |                     t          |t                             | d           |                     |t                   |t          t          gt          f                    |t          j        t                   t          t          t          f         t
          gt          f         }|                     |t          t          t          f         |t          j        t                   t          t          t          f         t          gt          f                    d S )Nr  .z[[int, ~VT], str]z[[int, dict], str])r#   rl   r   r   r   r   r   r|  r   r  r   r   r  rO   r    r  )r[   r#   r  C1C2C3C4C5s           r`   r  z'BaseCallableTests.test_var_substitution  s"   =)444sAhk"r1grk"c1fC(C:s?";<<<D8S$t**,=tDzz,I#JKKKCO,hU|S7H.IJJJC(38"4555HxX'>??? Rbh#A#A#ABBBbhH)H)H)HIIID8S$K,<#=>>> v{1~uRU|R8#=>CeO,!6;s#3U38_e"Lc"QR	T 	T 	T 	T 	Trb   c                     | j         }t          d          }t          d          }d}|                     t          |          5  |||f         dt
          f          d d d            d S # 1 swxY w Y   d S )Nr  r   zAExpected a list of types, an ellipsis, ParamSpec, or Concatenate.r   )r#   rE   r   r  r   r   )r[   r#   r  r   pats        r`   test_type_subst_errorz'BaseCallableTests.test_type_subst_error(  s    =cNNCLLQ##Is33 	# 	#QTN1c6""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   A((A,/A,c                    | j         } G d d|          }|t          gt          f         }|                      |            j        |           |                      |            j        |t          gt          f                    d S )Nc                       e Zd Zd ZdS )/BaseCallableTests.test_type_erasure.<locals>.C1c                     d S rf   rn   r   s    r`   __call__z8BaseCallableTests.test_type_erasure.<locals>.C1.__call__5      trb   Nrk   rl   rm   r  rn   rb   r`   r  r  4  s#            rb   r  )r#   r   r   r   r   r   __orig_class__)r[   r#   r  r  s       r`   test_type_erasurez#BaseCallableTests.test_type_erasure2  s    =	 	 	 	 	 	 	 	 uaxLaaccmR(((+Rq\:::::rb   c                    | j         }|j         d}t          d          }t          d          }||t          f         }|                     |t
          gt          f         |t
          gt          f                    |                     |t
          t          gt          f         |t
          t          gt          f                    |                     |g t          f         |g t          f                    |                     |dt          f         |dt          f                    |                     ||t          f         ||t          f                    |                     |t          t
          |f         t          f         |t          t
          |f         t          f                    |                     t          |          | d           |                     t          |t
          t          gt          f                   | d           | 	                    t                    5  |t
          t          f          d d d            n# 1 swxY w Y   ||t
          f         }|                     |t
          g         |t
          gt
          f                    |                     |t
          t          g         |t
          t          gt
          f                    |                     |g          |g t
          f                    |                     |d         |dt
          f                    |                     ||         ||t
          f                    |                     |t          t
          |f                  |t          t
          |f         t
          f                    |                     |t
                   |t
          gt
          f                    |                     |t
          t          f         |t
          t          gt
          f                    |                     t          |          | d           |                     t          |t
          t          f                   | d           d S )	Nr  r  P2.z[~P, ~T]z[[int, str], str]z	[~P, int]z[[int, str], int])r#   rl   rE   r   r   r   r|  rF   r   r   r   )r[   r#   r  r  r  r  r  s          r`   test_paramspecz BaseCallableTests.test_paramspec;  s   =)444cNNt__ad^SE3J3%*)=>>>S#JO,hSz3.GHHHBGhr3w&7888CHxS'9:::BGhr3w&7888KR0#56!+c2g"6";<	> 	> 	>bh#8#8#8999b#sS122x4R4R4RSSSy)) 	 	sCxLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 afSEHcUCZ$8999S#J3*c/)BCCCB"c'!2333C(38"4555B"c'!2333KR01!+c2g"6";<	> 	> 	> 	C(C5#:"6777CHxc
C'@AAAbh#9#9#9:::bcl++-K-K-KLLLLLs   &IIIc                 d   | j         }|j         d}t          d          }t          d          }t          d          }|t          t
          |f         |f         }|                     t          |          | d           |                     ||t
          f         |t          t
          |f         t
          f                    |                     |t          t          gt
          f         |t
          t          t          gt
          f                    |                     |g t
          f         |t
          gt
          f                    |                     |t          t          |f         t
          f         |t          t
          t          |f         t
          f                    |                     |dt
          f         |t          t
          df         t
          f                    |t          t
          |f         t
          f         }|                     t          |          | d           |                     ||         |t          t
          |f         t
          f                    |                     |t          t          g         |t
          t          t          gt
          f                    |                     |t          t          f         |t
          t          t          gt
          f                    |                     |g          |t
          gt
          f                    |                     |t          t          |f                  |t          t
          t          |f         t
          f                    |                     |d         |t          t
          df         t
          f                    d S )Nr  r   r  r  z![typing.Concatenate[int, ~P], ~T].z"[typing.Concatenate[int, ~P], int])
r#   rl   r   rE   rF   r   r   r   r|  r  )r[   r#   r  r   r  r  r=  s          r`   test_concatenatez"BaseCallableTests.test_concatenate]  s   =)444CLLcNNt__[a(!+,a$GGG	I 	I 	I2s7Xk#r'.BC.G%HIIIC<,-xc58I38N/OPPP2s7XseSj%9:::;sBw/45!+c3l";S"@A	C 	C 	C38h{38/Dc/I&JKKK[a(#-.a$HHH	J 	J 	J2S"W)=s)B CDDDC<(Ce3Dc3I*JKKK3:#sE1BC1G(HIII2# 4555;sBw/0!+c3l";S"@A	C 	C 	C3+c3h*?*D!EFFFFFrb   c           	      	   | j         }t          d          }t          d          }t          d          }t          d          }t          d          } G d dt          ||f                   }|                     |j        ||f           |t          |g|||f         f         }|                     |j        t          |f|||f         f           |                     |j        ||f           |                     |t          t          t                   t          gf         |t          t          g|t          t                   t          gt          f         f                    |||gt          f         t          |         gt          f         }	|                     |	j        ||gt          f         t          |         ft          f           |                     |	j        |f           |                     |	t          t                            ||t          t                   gt          f         t          t          t                            gt          f                    ||||f         |g|f         }
|                     |
j        |||f         |f|f           |                     |
j        ||f           |                     |
g t          f         ||g t          f         t          gt          f                    |                     |
t          t          gt          f         ||t          t          gt          f         t          gt          f                    |                     |
t          t          g|f         t                   ||t          t          gt          f         t          gt          f                    ||t          g|t          |f         |g|f         }|                     |j        |t          g|t          |f         |f|f           |                     |j        ||f           |                     |t          t          t          f         ||t          t          t          t          gt          f         t          gt          f                    d S )Nr  r  r   r  r  c                       e Zd ZdS )3BaseCallableTests.test_nested_paramspec.<locals>.MyNr~   rn   rb   r`   Myr    r  rb   r  )r#   rE   r   r   r$   r   r  r   r  r|  r  r  r  r  )r[   r#   r  r  r   r  r  r  r  r  r  r  s               r`   test_nested_paramspecz'BaseCallableTests.test_nested_paramspecx  s!    =cNNt__CLLT]]$	 	 	 	 	A 	 	 	 	*QF333b	8BF++,Ry(2r62B&CDDD*RH555C$s)U!334S#J$s)U1CS1H(IIJ	L 	L 	L 2$)$d2h/45"s(;T"X'F&LMMM*RE222DIXtCyk3&67d3iI3NO	Q 	Q 	Q "b&!2&*+R(8"'=r&BCCC*RH555BGXb#g.4c9:	< 	< 	<S$K,-XsDk3&67=sBC	E 	E 	ES$KN+C0XsDk3&67=sBC	E 	E 	E 3//S/2-.3R78#C"1D(Er'JB&OPPP*RH555D%./XsD%&=u&DEuMuTU	W 	W 	W 	W 	Wrb   c                 "   | j         }|t          t          gt          f         }|                     t
          d          5  |t                    d d d            n# 1 swxY w Y   t          d          }||t          f         }|                     t
          d          5  |t          t          t          f          d d d            n# 1 swxY w Y   |                     t
          d          5  |t                    d d d            d S # 1 swxY w Y   d S )Nzis not a generic classr  many arguments forfew arguments for)r#   r   r|  r  r  r   rE   r   )r[   r#   r  r  r  s        r`   r   zBaseCallableTests.test_errors  s   =#sU*+##I/GHH 	 	#JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	cNNad^##I/CDD 	 	sC}	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/BCC 	 	sGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s5   AAACC
C)DDDN)rk   rl   rm   r  r  rH  r   r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r	  r   rn   rb   r`   r  r    sc       2 2 2
) 
) 
)8 8 8
 
 
  
1 1 10 0 0
L 
L 
L2 2 2( ( (
C C C
3 3 36 6 6
* * *2T T T0# # #; ; ; M  M  MDG G G6(W (W (WT
 
 
 
 
rb   r  c                   "    e Zd Zej        Zd ZdS )TypingCallableTestsc                 X   t           j        t          t          gt          f         }t
          j        j        t          t          gt          f         }|                     |j        |j                   |                     t          |j                  t          |j                             d S rf   )
rO   r#   r   r|  r  r  r  r   r  rq  )r[   c1c2s      r`   test_consistencyz$TypingCallableTests.test_consistency  s{     _c3Z-._%sCj$&67bk222bk**D,=,=>>>>>rb   N)rk   rl   rm   rO   r#   r  rn   rb   r`   r  r    s*        H? ? ? ? ?rb   r  c                   &    e Zd Zej        j        ZdS )CollectionsCallableTestsN)rk   rl   rm   r  r  r#   rn   rb   r`   r  r    s        'HHHrb   r  c                   h    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 Zd Zd ZdS )LiteralTestsc                    t           d          t           d          t           d          t           d           t           d          t           d          t           t           d         t           d         f          t           d          d S )	Nrq   rq   r      )r   r   zT)rq   2Frq   r         )s   foor)  )r   r   s    r`   r5  zLiteralTests.test_basics  sg    

wt},--rb   c                     dd l } G d d|j                  }|                     t          |j                 j        |j        f           d S )Nr   c                       e Zd ZdZdS )"LiteralTests.test_enum.<locals>.Myr   N)rk   rl   rm   r   rn   rb   r`   r  r"    s        AAArb   r  )r  Enumr   r   r   r  )r[   r  r  s      r`   	test_enumzLiteralTests.test_enum  sb    	 	 	 	 	 	 	 	 	/"$99999rb   c                     t           t                    t           d          t           ddd          t           t                    d S )N)y       @      @.rn   r  r  r  r)  )r   r   r   r   s    r`   3test_illegal_parameters_do_not_raise_runtime_errorsz@LiteralTests.test_illegal_parameters_do_not_raise_runtime_errors  s8     	  !$$%%



rb   c                 f    t           t          d                   t           t          d                   d S )Nr  )r  r)  baz)r    r   r   s    r`    test_literals_inside_other_typesz-LiteralTests.test_literals_inside_other_types  s)    WWW*+,,,,rb   c                 ,   |                      t          t          d                   d           |                      t          t          d                   d           |                      t          t          t                             d           |                      t          t                    d           |                      t          t          d                    d           |                      t          t          d                   d	           d S )
Nrq   ztyping.Literal[1])rq   Tr  ztyping.Literal[1, True, 'foo']ztyping.Literal[int]ztyping.Literalztyping.Literal[None]rq   r   r  r  ztyping.Literal[1, 2, 3])r   r   r   r   r   s    r`   r   zLiteralTests.test_repr  s    gaj))+>???gn5668XYYYgcl++-BCCCg(8999gdm,,.DEEEgj1224MNNNNNrb   c                     t          t          t          d                             }dD ]F}|                     |          5  |                     ||           d d d            n# 1 swxY w Y   Gd S )Nr  r@  rA  )rC  rD  r   rx   rE  rF  s      r`   rH  zLiteralTests.test_dir  s    GG,--..	
 	8 	8M M:: 8 8mY7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8s   A%%A)	,A)	c                 X   |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5  t          d                      d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            n# 1 swxY w Y   |                      t                    5   t          t          d                                d d d            d S # 1 swxY w Y   d S rF  )r   r   r   r   r   s    r`   rD  zLiteralTests.test_cannot_init  s   y)) 	 	III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	AJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DMMOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sB   6::A<<B B !C

CC/#DD#&D#c                    |                      t                    5  t          dt          d                    d d d            n# 1 swxY w Y   |                      t                    5  t          t          t          d                    d d d            n# 1 swxY w Y   |                      t                    5  t          dt          d                    d d d            n# 1 swxY w Y   |                      t                    5  t          t          t          d                    d d d            d S # 1 swxY w Y   d S rF  )r   r   r   r   r   rX   r   s    r`    test_no_isinstance_or_issubclassz-LiteralTests.test_no_isinstance_or_issubclass  s   y)) 	& 	&q'!*%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&y)) 	( 	(sGAJ'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(y)) 	& 	&q'!*%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&y)) 	( 	(sGAJ'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(sG   AA
A(!BBB:C""C&)C&!D55D9<D9c                 (   |                      t                    5   G d dt          d                   }d d d            n# 1 swxY w Y   |                      t                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )-LiteralTests.test_no_subclassing.<locals>.FooNr~   rn   rb   r`   r   r3  	  r   rb   r   rq   c                       e Zd ZdS )-LiteralTests.test_no_subclassing.<locals>.BarNr~   rn   rb   r`   r   r5  	  r   rb   r   r   r   r   )r[   r   r   s      r`   test_no_subclassingz LiteralTests.test_no_subclassing	  s   y)) 	( 	('''''gaj'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(y)) 	% 	%$$$$$g$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s#   AAA&BBBc                     |                      t                    5  t          d         d          d d d            d S # 1 swxY w Y   d S rF  r6  r   s    r`   test_no_multiple_subscriptsz(LiteralTests.test_no_multiple_subscripts	  s    y)) 	 	AJqMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                    |                      t          d         t          d                    |                      t          d         t          d                    |                      t          d         t          d                    |                      t          d         t          d                    |                      t          d         t          d                    |                      t          d         t          d	                    |                     t          d         t          d                    |                     t          d         t          d
                    |                     t          d         t          d                    d S )Nr   FTrq   r   )rq   T)rq   rq   r  Tr   r   rq   r  r,  )r   r   r   r   s    r`   
test_equalzLiteralTests.test_equal	  s   GAJ777GDM71:666GAJ
333GG,gaj999GG,gdm<<<GDM77+;<<<WQZ000666)7:+>?????rb   c                    |                      t          t          d                   t          t          d                              |                      t          t          d                   t          t          d                              |                      t          t          d                   t          t          d                              d S )Nrq   r  r<  r  r,  )r   rq  r   r   s    r`   	test_hashzLiteralTests.test_hash	  s    gaj))4
+;+;<<<gdm,,d74=.A.ABBBgg.//gj6I1J1JKKKKKrb   c                 p   |                      t          d         j        d           |                      t          d         j        d           |                      t          dt          d         t          d         f         j        d           |                      t          g g f         j        g g f           d S )Nr  r,  rq   r   )r  r  )rq   r   r  r  )r   r   r  r   s    r`   	test_argszLiteralTests.test_args	  s    )2I>>>,5yAAAGAJ!=>GVVVR1B8<<<<<rb   c                 T   t           t           d         t           d         t           d         f         }t           t           d         df         }t           t           d                  }|||fD ]>}|                     |t           d                    |                     |j        d           ?d S )Nrq   r   r  r  r  )r   r   r  )r[   l1l2l3r  s        r`   test_flattenzLiteralTests.test_flatten"	  s    WQZWQZ78WT]A%&WW%&R 	4 	4AQ 0111QZ3333	4 	4rb   c                    dd l } G d d|j                  }t          t          |j                 t          |j                 t          d         t          d         f         }|                     |j        |j        |j        ddf           d S )Nr   c                       e Zd ZdZdZdS )5LiteralTests.test_does_not_flatten_enum.<locals>.Intsrq   r   Nr  rn   rb   r`   r  rI  ,	  r  rb   r  rq   r   )r  r  r   r   r   r   r  )r[   r  r  r  s       r`   test_does_not_flatten_enumz'LiteralTests.test_does_not_flatten_enum*	  s    	 	 	 	 	4< 	 	 	 DFODFOAJAJ
 	dfdfa%;<<<<<rb   N)rk   rl   rm   r5  r$  r'  r*  r   rH  rD  r0  r7  r9  r=  r?  rA  rF  rJ  rn   rb   r`   r  r    s        	  	  	 : : :  - - -O O O8 8 8  ( ( (% % %  	@ 	@ 	@L L L
= = =4 4 4= = = = =rb   r  XKXVc                   D    e Zd ZdedefdZdedefdZd	dededefdZdS )
SimpleMappingkeyr   c                     d S rf   rn   r[   rO  s     r`   __getitem__zSimpleMapping.__getitem__?	      rb   r  c                     d S rf   rn   r[   rO  r  s      r`   __setitem__zSimpleMapping.__setitem__B	  rS  rb   Ndefaultc                     d S rf   rn   r[   rO  rW  s      r`   getzSimpleMapping.getE	  rS  rb   rf   )rk   rl   rm   rK  rL  rR  rV  rZ  rn   rb   r`   rN  rN  =	  s        r b    r "     r B "      rb   rN  c                   :    e Zd Zd ZdefdZdefdZddefdZdS )MySimpleMappingc                     i | _         d S rf   storer   s    r`   r   zMySimpleMapping.__init__K	  s    


rb   rO  c                     | j         |         S rf   r^  rQ  s     r`   rR  zMySimpleMapping.__getitem__N	  s    z#rb   c                     || j         |<   d S rf   r^  rU  s      r`   rV  zMySimpleMapping.__setitem__Q	  s    
3rb   Nc                 B    	 | j         |         S # t          $ r |cY S w xY wrf   )r_  KeyErrorrY  s      r`   rZ  zMySimpleMapping.getT	  s7    	:c?" 	 	 	NNN	s    rf   )rk   rl   rm   r   r|  rR  rV  rZ  rn   rb   r`   r\  r\  I	  sy          s     s         s      rb   r\  c                   $    e Zd ZU eed<   eed<   dS )
Coordinater   r   Nrk   rl   rm   r   r   rn   rb   r`   re  re  [	  "         
FFF
FFFFFrb   re  c                       e Zd ZU eed<   dS )PointlabelNrk   rl   rm   r|  r   rn   rb   r`   ri  ri  _	  s         JJJJJrb   ri  c                   .    e Zd ZU eed<   eed<   eed<   dS )MyPointr   r   rj  Nrk   rl   rm   r   r   r|  rn   rb   r`   rm  rm  c	  s+         
FFF
FFFJJJJJrb   rm  c                       e Zd ZU eed<   dS )XAxisr   Nrf  rn   rb   r`   rp  rp  h	           
FFFFFrb   rp  c                       e Zd ZU eed<   dS )YAxisr   Nrf  rn   rb   r`   rs  rs  k	  rq  rb   rs  c                       e Zd ZdS )PositionNr~   rn   rb   r`   ru  ru  n	  s        Drb   ru  c                   *    e Zd ZU eed<   dedefdZdS )Protoattrr   r   c                     d S rf   rn   r[   r   s     r`   methz
Proto.methu	  rS  rb   N)rk   rl   rm   r   r   r|  r{  rn   rb   r`   rw  rw  r	  sA         
III       rb   rw  c                       e Zd ZdS )ConcreteNr~   rn   rb   r`   r}  r}  x	  r   rb   r}  c                   .    e Zd ZU dZeed<   dedefdZdS )Otherrq   rx  r   r   c                     |dk    rdS dS )Nthisrq   r   rn   rz  s     r`   r{  z
Other.meth}	  s    &==1qrb   N)rk   rl   rm   rx  r   r   r|  r{  rn   rb   r`   r  r  {	  sE         D#MMM       rb   r  c                   $    e Zd ZU eed<   eed<   dS )NTr   r   Nrf  rn   rb   r`   r  r  	  rg  rb   r  c                   $    e Zd ZU ej        ed<   dS )HasCallProtocolr  N)rk   rl   rm   rO   r#   r   rn   rb   r`   r  r  	  s          orb   r  c                   d   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 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 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) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;d:S );ProtocolTestsc                    t            G d dt                                } G d d          } G d d          }d }|                     ||           |                      |            |           |                     ||           |                      |            |           |                     t          j        |           |                     ||           d S )Nc                       e Zd Zd ZdS ),ProtocolTests.test_basic_protocol.<locals>.Pc                     d S rf   rn   r   s    r`   r{  z1ProtocolTests.test_basic_protocol.<locals>.P.meth	      rb   Nrk   rl   rm   r{  rn   rb   r`   r  r  	  #            rb   r  c                       e Zd ZdS ),ProtocolTests.test_basic_protocol.<locals>.CNr~   rn   rb   r`   r=  r  	  r   rb   r=  c                       e Zd Zd ZdS ),ProtocolTests.test_basic_protocol.<locals>.Dc                     d S rf   rn   r   s    r`   r{  z1ProtocolTests.test_basic_protocol.<locals>.D.meth	  r  rb   Nr  rn   rb   r`   r@  r  	  #            rb   r@  c                      d S rf   rn   rn   rb   r`   ri   z,ProtocolTests.test_basic_protocol.<locals>.f	  r  rb   )r+   r(   ra   r   rd   r   r  r  )r[   r  r=  r@  ri   s        r`   test_basic_protocolz!ProtocolTests.test_basic_protocol	  s   		 	 	 	 	 	 	 
		 		 	 	 	 	 	 	 		 	 	 	a###aacc1%%%  A&&&  a(((  !3Q777  A&&&&&rb   c                 :   t            G d dt                                } G d d          }d }t          t          t          |t
          j        fD ]}|                     ||           t                      ddt          |fD ]}| 	                    ||           d S )Nc                       e Zd ZdS )FProtocolTests.test_everything_implements_empty_protocol.<locals>.EmptyNr~   rn   rb   r`   Emptyr  	          Drb   r  c                       e Zd ZdS )BProtocolTests.test_everything_implements_empty_protocol.<locals>.CNr~   rn   rb   r`   r=  r  	  r  rb   r=  c                      d S rf   rn   rn   rb   r`   ri   zBProtocolTests.test_everything_implements_empty_protocol.<locals>.f	  r  rb   rq   rn   )
r+   r(   rT  r   r  r  r  ra   rO   r   )r[   r  r=  ri   things        r`   )test_everything_implements_empty_protocolz7ProtocolTests.test_everything_implements_empty_protocol	  s    		 	 	 	 	H 	 	 
			 	 	 	 	 	 	 		 	 	 dE1e.@A 	0 	0E!!%////hh2vq1 	0 	0E!!%////	0 	0rb   c                 B    d }|                      |t                     d S )Nc                      d S rf   rn   rn   rb   r`   ri   z:ProtocolTests.test_function_implements_protocol.<locals>.f	  r  rb   )r   r  rh   s     r`   !test_function_implements_protocolz/ProtocolTests.test_function_implements_protocol	  s/    	 	 	 	a11111rb   c                     G d d          } G d dt                     }|                     t                    5   G d d|t                     }d d d            n# 1 swxY w Y   |                     t                    5   G d dt           |          }d d d            n# 1 swxY w Y   |                     t                    5   G d	 d
||t                     }d d d            n# 1 swxY w Y    G d d||          } G d d||          }|                      |            |           |                      |            |           d S )Nc                       e Zd ZdS )9ProtocolTests.test_no_inheritance_from_nominal.<locals>.CNr~   rn   rb   r`   r=  r  	  r   rb   r=  c                       e Zd ZdS ):ProtocolTests.test_no_inheritance_from_nominal.<locals>.BPNr~   rn   rb   r`   BPr  	  r   rb   r  c                       e Zd ZdS )9ProtocolTests.test_no_inheritance_from_nominal.<locals>.PNr~   rn   rb   r`   r  r  	  r   rb   r  c                       e Zd ZdS )9ProtocolTests.test_no_inheritance_from_nominal.<locals>.QNr~   rn   rb   r`   Qr  	  r   rb   r  c                       e Zd ZdS )9ProtocolTests.test_no_inheritance_from_nominal.<locals>.RNr~   rn   rb   r`   Rr  	  r   rb   r  c                       e Zd ZdS )9ProtocolTests.test_no_inheritance_from_nominal.<locals>.DNr~   rn   rb   r`   r@  r  	  r   rb   r@  c                       e Zd ZdS )9ProtocolTests.test_no_inheritance_from_nominal.<locals>.ENr~   rn   rb   r`   rw  r  	  r   rb   rw  )r(   r   r   r   )r[   r=  r  r  r  r  r@  rw  s           r`    test_no_inheritance_from_nominalz.ProtocolTests.test_no_inheritance_from_nominal	  sj           y)) 	 	    Ax   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    Ha   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    B8   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	A2  a(((  a(((((s5   AA #A B""B&)B&C))C-0C-c                 \    G d dt                     }|                     t                    5   |             d d d            n# 1 swxY w Y    G d d|          }|                      |            |           |                     t                    5   |d           d d d            n# 1 swxY w Y   t	          d          } G d dt           |                   }|                     t                    5   |             d d d            n# 1 swxY w Y   |                     t                    5   |t
                                d d d            n# 1 swxY w Y   |                     t                    5   ||                      d d d            n# 1 swxY w Y    G d	 d
||                   }|                      |t
                               |           |                     t                    5   |t
                   d           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS ).ProtocolTests.test_no_instantiation.<locals>.PNr~   rn   rb   r`   r  r  	  r   rb   r  c                       e Zd ZdS ).ProtocolTests.test_no_instantiation.<locals>.CNr~   rn   rb   r`   r=  r  	  r   rb   r=  r   r   c                       e Zd ZdS )/ProtocolTests.test_no_instantiation.<locals>.PGNr~   rn   rb   r`   PGr  	  r   rb   r  c                       e Zd ZdS )/ProtocolTests.test_no_instantiation.<locals>.CGNr~   rn   rb   r`   CGr  	  r   rb   r  )r(   r   r   r   r   r   )r[   r  r=  r   r  r  s         r`   test_no_instantiationz#ProtocolTests.test_no_instantiation	  s   y)) 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	aacc1%%%y)) 	 	AbEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 CLL#####!###y)) 	 	BDDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	BsGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	BqEGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Agbgii,,,y)) 	 	BsGBKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sk   AA	A	B..B25B2;DDD7EE E>FF"F=H!!H%(H%c                      G d dt                     } G d d          } |            }|                    |d           |                     |j        d           d S )Nc                   *    e Zd ZU eed<   deddfdZdS )LProtocolTests.test_protocol_defining_init_does_not_get_overridden.<locals>.Pr   r   Nc                     || _         d S rf   r   r   s     r`   r   zUProtocolTests.test_protocol_defining_init_does_not_get_overridden.<locals>.P.__init__	  r   rb   rk   rl   rm   r   r   r   rn   rb   r`   r  r  	  A         FFF# $      rb   r  c                       e Zd ZdS )LProtocolTests.test_protocol_defining_init_does_not_get_overridden.<locals>.CNr~   rn   rb   r`   r=  r  	  r   rb   r=  rq   )r(   r   r   r   r[   r  r=  r  s       r`   3test_protocol_defining_init_does_not_get_overriddenzAProtocolTests.test_protocol_defining_init_does_not_get_overridden	  s|    	 	 	 	 	 	 	 	 	ACC	

1aa     rb   c                      G d dt                     } G d d|          } |d          }|                     ||           |                     |j        d           d S )Nc                   *    e Zd ZU eed<   deddfdZdS )JProtocolTests.test_concrete_class_inheriting_init_from_protocol.<locals>.Pr   r   Nc                     || _         d S rf   r   r   s     r`   r   zSProtocolTests.test_concrete_class_inheriting_init_from_protocol.<locals>.P.__init__	  r   rb   r  rn   rb   r`   r  r  	  r  rb   r  c                       e Zd ZdS )JProtocolTests.test_concrete_class_inheriting_init_from_protocol.<locals>.CNr~   rn   rb   r`   r=  r  	  r   rb   r=  rq   )r(   r   r   r   r  s       r`   1test_concrete_class_inheriting_init_from_protocolz?ProtocolTests.test_concrete_class_inheriting_init_from_protocol	  s    	 	 	 	 	 	 	 	
 	AaDDa###a     rb   c                 2   t            G d dt                                } G d d|          } G d d|          }|                     t                    5   |             d d d            n# 1 swxY w Y   |                      |            |           d S )Nc                   4    e Zd Zej        defd            ZdS )9ProtocolTests.test_cannot_instantiate_abstract.<locals>.Pr   c                     t           rf   )NotImplementedErrorr   s    r`   amethz?ProtocolTests.test_cannot_instantiate_abstract.<locals>.P.ameth
  s    ))rb   N)rk   rl   rm   r  abstractmethodr   r  rn   rb   r`   r  r  
  s=        *s * * *  * * *rb   r  c                       e Zd ZdS )9ProtocolTests.test_cannot_instantiate_abstract.<locals>.BNr~   rn   rb   r`   r   r  
  r  rb   r   c                       e Zd ZdefdZdS )9ProtocolTests.test_cannot_instantiate_abstract.<locals>.Cr   c                     dS )N   rn   r   s    r`   r  z?ProtocolTests.test_cannot_instantiate_abstract.<locals>.C.ameth
      rrb   N)rk   rl   rm   r   r  rn   rb   r`   r=  r  
  s/        s      rb   r=  )r+   r(   r   r   r   )r[   r  r   r=  s       r`    test_cannot_instantiate_abstractz.ProtocolTests.test_cannot_instantiate_abstract
  s#   		* 	* 	* 	* 	* 	* 	* 
		*
	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 y)) 	 	ACCC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	aacc1%%%%%s   A..A25A2c                     G d dt                     }t           G d d|t                                 } G d d          } G d d          } G d	 d
          }|                      |            |           |                      |            |           |                     ||           |                     ||           |                      |            |           |                     ||           d S )Nc                       e Zd Zd ZdS )5ProtocolTests.test_subprotocols_extending.<locals>.P1c                     d S rf   rn   r   s    r`   meth1z;ProtocolTests.test_subprotocols_extending.<locals>.P1.meth1
  r  rb   Nrk   rl   rm   r  rn   rb   r`   P1r  
  r  rb   r  c                       e Zd Zd ZdS )5ProtocolTests.test_subprotocols_extending.<locals>.P2c                     d S rf   rn   r   s    r`   meth2z;ProtocolTests.test_subprotocols_extending.<locals>.P2.meth2
  r  rb   Nrk   rl   rm   r  rn   rb   r`   r  r  
  r  rb   r  c                       e Zd Zd Zd ZdS )4ProtocolTests.test_subprotocols_extending.<locals>.Cc                     d S rf   rn   r   s    r`   r  z:ProtocolTests.test_subprotocols_extending.<locals>.C.meth1"
  r  rb   c                     d S rf   rn   r   s    r`   r  z:ProtocolTests.test_subprotocols_extending.<locals>.C.meth2%
  r  rb   Nrk   rl   rm   r  r  rn   rb   r`   r=  r  !
  2              rb   r=  c                       e Zd Zd ZdS )5ProtocolTests.test_subprotocols_extending.<locals>.C1c                     d S rf   rn   r   s    r`   r  z;ProtocolTests.test_subprotocols_extending.<locals>.C1.meth1)
  r  rb   Nr  rn   rb   r`   r  r  (
  r  rb   r  c                       e Zd Zd ZdS )5ProtocolTests.test_subprotocols_extending.<locals>.C2c                     d S rf   rn   r   s    r`   r  z;ProtocolTests.test_subprotocols_extending.<locals>.C2.meth2-
  r  rb   Nr  rn   rb   r`   r  r  ,
  r  rb   r  r(   r+   r   rd   r   ra   )r[   r  r  r=  r  r  s         r`   test_subprotocols_extendingz)ProtocolTests.test_subprotocols_extending
  s{   	 	 	 	 	 	 	 	 
	 	 	 	 	X 	 	 
			 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	  r***  r***  R(((  R(((aacc2&&&a$$$$$rb   c                     G d dt                     } G d dt                     }t           G d d||t                                 } G d d          } G d	 d
          } G d d          }|                      |            |           |                      |            |           |                     ||           |                     ||           |                      |            |           |                     ||           d S )Nc                       e Zd Zd ZdS )3ProtocolTests.test_subprotocols_merging.<locals>.P1c                     d S rf   rn   r   s    r`   r  z9ProtocolTests.test_subprotocols_merging.<locals>.P1.meth19
  r  rb   Nr  rn   rb   r`   r  r  8
  r  rb   r  c                       e Zd Zd ZdS )3ProtocolTests.test_subprotocols_merging.<locals>.P2c                     d S rf   rn   r   s    r`   r  z9ProtocolTests.test_subprotocols_merging.<locals>.P2.meth2=
  r  rb   Nr  rn   rb   r`   r  r  <
  r  rb   r  c                       e Zd ZdS )2ProtocolTests.test_subprotocols_merging.<locals>.PNr~   rn   rb   r`   r  r  @
  r  rb   r  c                       e Zd Zd Zd ZdS )2ProtocolTests.test_subprotocols_merging.<locals>.Cc                     d S rf   rn   r   s    r`   r  z8ProtocolTests.test_subprotocols_merging.<locals>.C.meth1E
  r  rb   c                     d S rf   rn   r   s    r`   r  z8ProtocolTests.test_subprotocols_merging.<locals>.C.meth2H
  r  rb   Nr  rn   rb   r`   r=  r  D
  r  rb   r=  c                       e Zd Zd ZdS )3ProtocolTests.test_subprotocols_merging.<locals>.C1c                     d S rf   rn   r   s    r`   r  z9ProtocolTests.test_subprotocols_merging.<locals>.C1.meth1L
  r  rb   Nr  rn   rb   r`   r  r  K
  r  rb   r  c                       e Zd Zd ZdS )3ProtocolTests.test_subprotocols_merging.<locals>.C2c                     d S rf   rn   r   s    r`   r  z9ProtocolTests.test_subprotocols_merging.<locals>.C2.meth2P
  r  rb   Nr  rn   rb   r`   r  r  O
  r  rb   r  r  )r[   r  r  r  r=  r  r  s          r`   test_subprotocols_mergingz'ProtocolTests.test_subprotocols_merging7
  s   	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 
	 	 	 	 	B 	 	 
			 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	  q)))  q)))  Q'''  Q'''aacc1%%%a#####rb   c                    t          d          }t           G d dt                                }t           G d dt          |                               } G d dt                    } G d d	t          |                   } G d
 d          }|                     ||           |                     ||           |                     ||           |                     t
                    5  t          |||                    d d d            n# 1 swxY w Y   |                     t
                    5  t          |||                    d d d            n# 1 swxY w Y   |                     t
                    5  t          ||           d d d            n# 1 swxY w Y   |                     t
                    5  t          ||           d d d            n# 1 swxY w Y   |                     t
                    5  t          |||                    d d d            n# 1 swxY w Y   |                     t
                    5  t          ||t                              d d d            n# 1 swxY w Y   d}|                     t
          |          5  t          d|           d d d            n# 1 swxY w Y   |                     t
          |          5  t          d|           d d d            n# 1 swxY w Y   |                     t
          |          5  t          d|           d d d            n# 1 swxY w Y   |                     t
          |          5  t          d|           d d d            d S # 1 swxY w Y   d S )Nr   c                       e Zd Zd ZdS )2ProtocolTests.test_protocols_issubclass.<locals>.Pc                     d S rf   rn   r   s    r`   r   z4ProtocolTests.test_protocols_issubclass.<locals>.P.x_
  r   rb   Nrk   rl   rm   r   rn   rb   r`   r  r  ]
          rb   r  c                       e Zd Zd ZdS )3ProtocolTests.test_protocols_issubclass.<locals>.PGc                     d S rf   rn   r   s    r`   r   z5ProtocolTests.test_protocols_issubclass.<locals>.PG.xc
  r   rb   Nr  rn   rb   r`   r  r  a
  r  rb   r  c                       e Zd Zd ZdS )5ProtocolTests.test_protocols_issubclass.<locals>.BadPc                     d S rf   rn   r   s    r`   r   z7ProtocolTests.test_protocols_issubclass.<locals>.BadP.xf
  r   rb   Nr  rn   rb   r`   BadPr  e
          rb   r  c                       e Zd Zd ZdS )6ProtocolTests.test_protocols_issubclass.<locals>.BadPGc                     d S rf   rn   r   s    r`   r   z8ProtocolTests.test_protocols_issubclass.<locals>.BadPG.xi
  r   rb   Nr  rn   rb   r`   BadPGr   h
  r  rb   r"  c                       e Zd Zd ZdS )2ProtocolTests.test_protocols_issubclass.<locals>.Cc                     d S rf   rn   r   s    r`   r   z4ProtocolTests.test_protocols_issubclass.<locals>.C.xl
  r   rb   Nr  rn   rb   r`   r=  r$  k
  r  rb   r=  z$issubclass\(\) arg 1 must be a classrq   )	r   r+   r(   ra   r   r   rX   r   r  )r[   r   r  r  r  r"  r=  only_classes_alloweds           r`   test_protocols_issubclassz'ProtocolTests.test_protocols_issubclassZ
  s/   CLL		 	 	 	 	 	 	 
		 
	 	 	 	 	! 	 	 
			 	 	 	 	8 	 	 		 	 	 	 	HQK 	 	 		 	 	 	 	 	 	 	 	a###a$$$dB'''y)) 	! 	!q"Q%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!y)) 	! 	!q"Q%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!y)) 	  	 q$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 y)) 	! 	!q%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!y)) 	! 	!q"Q%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!y)) 	$ 	$r2c7###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$  G##I/CDD 	 	q!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/CDD 	 	q"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/CDD 	  	 q$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ##I/CDD 	! 	!q%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   +DDD3EEE;FFF=GG!G?H""H&)H&I//I36I3J44J8;J8K77K;>K;L::L>L> M>>NNc                    t            G d dt                                } G d dt                    } G d dt                    } G d dt                    } G d	 d
t                    } G d dt                    } G d dt                    }||||||fD ]K}|                     |j                  5  |                     ||           d d d            n# 1 swxY w Y   L G d dt                    }	 G d dt                    }
|                     |	|           |                     |
|            G d d          } G d d          } G d d          } G d d          }|                     ||           |                     ||           |                     ||           |                     ||           d S )Nc                       e Zd Zd ZdS )ZProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.CallableMembersProtoc                     d S rf   rn   r   s    r`   r{  z_ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.CallableMembersProto.meth
  r   rb   Nr  rn   rb   r`   CallableMembersProtor*  
  s        rb   r,  c                       e Zd Zd ZdS )TProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.IdenticalProtoc                     d S rf   rn   r   s    r`   r{  zYProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.IdenticalProto.meth
  r   rb   Nr  rn   rb   r`   IdenticalProtor.  
  s        rb   r0  c                       e Zd Zd Zd ZdS )SProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.SupersetProtoc                     d S rf   rn   r   s    r`   r{  zXProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.SupersetProto.meth
  r   rb   c                     d S rf   rn   r   s    r`   r  zYProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.SupersetProto.meth2
  r   rb   N)rk   rl   rm   r{  r  rn   rb   r`   SupersetProtor2  
  s"             rb   r5  c                   *    e Zd ZU eg df         ed<   dS )]ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NonCallableMembersProtoNr{  rk   rl   rm   r#   r   rn   rb   r`   NonCallableMembersProtor7  
  '         2t8$$$$$$rb   r9  c                   H    e Zd ZU eg df         ed<   eeegef         ed<   dS )eProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NonCallableMembersSupersetProtoNr{  r  )rk   rl   rm   r#   r   r|  r   r  rn   rb   r`   NonCallableMembersSupersetProtor<  
  sA         2t8$$$$S#J,------rb   r=  c                   0    e Zd ZU eg df         ed<   d ZdS )XProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.MixedMembersProto1Nr{  c                     d S rf   rn   r   s    r`   r  z^ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.MixedMembersProto1.meth2
  r   rb   )rk   rl   rm   r#   r   r  rn   rb   r`   MixedMembersProto1r?  
  0         2t8$$$$     rb   rA  c                   4    e Zd ZU d Zeeegef         ed<   dS )XProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.MixedMembersProto2c                     d S rf   rn   r   s    r`   r{  z]ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.MixedMembersProto2.meth
  r   rb   r  N)	rk   rl   rm   r{  r#   r|  r   r  r   rn   rb   r`   MixedMembersProto2rD  
  s5         S#J,------rb   rF  rs   c                       e Zd ZdS )SProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.EmptyProtocolNr~   rn   rb   r`   EmptyProtocolrH  
  r   rb   rI  c                       e Zd Zd ZdS )WProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.UnrelatedProtocolc                     d S rf   rn   r   s    r`   wutz[ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.UnrelatedProtocol.wut
  r   rb   N)rk   rl   rm   rM  rn   rb   r`   UnrelatedProtocolrK  
  s        rb   rN  c                   *    e Zd ZU eg df         ed<   dS )^ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.AnnotatedButNotAProtocolNr{  r8  rn   rb   r`   AnnotatedButNotAProtocolrP  
  r:  rb   rQ  c                       e Zd Zd ZdS )gProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclassc                     d S rf   rn   r   s    r`   r{  zlProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass.meth
  r   rb   Nr  rn   rb   r`   !NotAProtocolButAnImplicitSubclassrS  
               rb   rU  c                   0    e Zd ZU eg df         ed<   d ZdS )hProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass2Nr{  c                     d S rf   rn   r   s    r`   r{  zmProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass2.meth
  r   rb   )rk   rl   rm   r#   r   r{  rn   rb   r`   "NotAProtocolButAnImplicitSubclass2rX  
  rB  rb   rZ  c                   T    e Zd ZU eg df         ed<   eeegef         ed<   d Zd Z	dS )hProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass3Nr{  r  c                     d S rf   rn   r   s    r`   r{  zmProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass3.meth
  r   rb   c                     dS )NTrn   r[   r   r   s      r`   r  znProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass3.meth2
  s    $$rb   )
rk   rl   rm   r#   r   r   r|  r  r{  r  rn   rb   r`   "NotAProtocolButAnImplicitSubclass3r\  
  sS         2t8$$$$S#J,----   .....rb   r`  )r+   r(   rx   rk   ra   rd   )r[   r,  r0  r5  r9  r=  rA  rF  rt   rI  rN  rQ  rU  rZ  r`  s                  r`   .test_implicit_issubclass_between_two_protocolsz<ProtocolTests.test_implicit_issubclass_between_two_protocols
  sn   		  	  	  	  	 8 	  	  
		 	  	  	  	  	 X 	  	  	 	! 	! 	! 	! 	!H 	! 	! 	!	% 	% 	% 	% 	%h 	% 	% 	%	. 	. 	. 	. 	.h 	. 	. 	.	! 	! 	! 	! 	! 	! 	! 	!	. 	. 	. 	. 	. 	. 	. 	.
 M+B+-?AS
 	C 	CE EN33 C C%%e-ABBBC C C C C C C C C C C C C C C 	+****H***	 	 	 	 	 	 	 	 	  0DEEE  !24HIII	% 	% 	% 	% 	% 	% 	% 	%	! 	! 	! 	! 	! 	! 	! 	!	! 	! 	! 	! 	! 	! 	! 	!	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	  !9;OPPP?AUVVV@BVWWW@BVWWWWWs   8CC	"C	c                 `   |                      t          j                   t          j                     |                     t
          d          5   G d dt          j        j        t                    }d d d            n# 1 swxY w Y   | 
                    g t          j        j                   d S )Nz/Protocols can only inherit from other protocolsc                       e Zd ZdS )CProtocolTests.test_isinstance_checks_not_at_whim_of_gc.<locals>.FooNr~   rn   rb   r`   r   rd  
  r   rb   r   )
addCleanupgcenabledisabler  r   r  r  r  r(   r   r[   r   s     r`   (test_isinstance_checks_not_at_whim_of_gcz6ProtocolTests.test_isinstance_checks_not_at_whim_of_gc
  s    	"""

##=
 
 	 	    ko-x   		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  [_%<=====s   $A>>BBc                     G d d          }t            G d dt                                }|                     t                    5  t	          ||           d d d            n# 1 swxY w Y   |                      |            |           |                    |           |                     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 )?ProtocolTests.test_protocols_issubclass_non_callable.<locals>.Crq   Nr  rn   rb   r`   r=  rm  
          AAArb   r=  c                       e Zd ZdZdS )FProtocolTests.test_protocols_issubclass_non_callable.<locals>.PNonCallrq   Nr  rn   rb   r`   PNonCallrp  
          AAArb   rq  c                       e Zd ZdS )?ProtocolTests.test_protocols_issubclass_non_callable.<locals>.DNr~   rn   rb   r`   r@  rt  
  r   rb   r@  )
r+   r(   r   r   rX   r   registerrd   r   ra   )r[   r=  rq  r@  s       r`   &test_protocols_issubclass_non_callablez4ProtocolTests.test_protocols_issubclass_non_callable
  s   	 	 	 	 	 	 	 	 
	 	 	 	 	x 	 	 
		 y)) 	$ 	$q(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$aacc8,,,!y)) 	$ 	$q(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$aacc8,,, 	  A&&&  a(((	

1a###aacc1%%%y)) 	$ 	$q(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s6   A%%A),A)=CC!C(GG
G
c                 V   t          d          }t           G d dt                                }t           G d dt          |                               }t           G d dt                                }t           G d d	t                                } G d
 d          t           G fddt                                } G d dt                    } G d dt          |                   } G d d          }	 G d d          }
|	|
fD ]c}|||||fD ]Y}|                     |j        |j                  5  |                      |            |           d d d            n# 1 swxY w Y   Zd|                     t                    5  t           |	            ||                    d d d            n# 1 swxY w Y   |                     t                    5  t           |	            ||	                    d d d            n# 1 swxY w Y   |                     t                    5  t           |	            |           d d d            n# 1 swxY w Y   |                     t                    5  t           |	            |           d d d            d S # 1 swxY w Y   d S )Nr   c                       e Zd Zd ZdS )2ProtocolTests.test_protocols_isinstance.<locals>.Pc                     d S rf   rn   r   s    r`   r{  z7ProtocolTests.test_protocols_isinstance.<locals>.P.meth  r   rb   Nr  rn   rb   r`   r  ry  
  r  rb   r  c                       e Zd Zd ZdS )3ProtocolTests.test_protocols_isinstance.<locals>.PGc                     d S rf   rn   r   s    r`   r{  z8ProtocolTests.test_protocols_isinstance.<locals>.PG.meth  r   rb   Nr  rn   rb   r`   r  r|    r  rb   r  c                       e Zd Zej        ZdS );ProtocolTests.test_protocols_isinstance.<locals>.WeirdProtoN)rk   rl   rm   r|  	maketransr{  rn   rb   r`   
WeirdProtor    s        =DDDrb   r  c                       e Zd Zd ZdS )<ProtocolTests.test_protocols_isinstance.<locals>.WeirdProto2c                      d S rf   rn   r   r   s     r`   <lambda>zEProtocolTests.test_protocols_isinstance.<locals>.WeirdProto2.<lambda>  s    4 rb   Nr  rn   rb   r`   WeirdProto2r    s        //DDDrb   r  c                       e Zd Zd ZdS )?ProtocolTests.test_protocols_isinstance.<locals>.CustomCallablec                     d S rf   rn   r   s      r`   r  zHProtocolTests.test_protocols_isinstance.<locals>.CustomCallable.__call__  r  rb   Nr  rn   rb   r`   CustomCallabler    r  rb   r  c                   $    e Zd Z              ZdS )=ProtocolTests.test_protocols_isinstance.<locals>.WeirderProtoNr  )r  s   r`   WeirderProtor    s        !>##DDDrb   r  c                       e Zd Zd ZdS )5ProtocolTests.test_protocols_isinstance.<locals>.BadPc                     d S rf   rn   r   s    r`   r{  z:ProtocolTests.test_protocols_isinstance.<locals>.BadP.meth  r   rb   Nr  rn   rb   r`   r  r    r  rb   r  c                       e Zd Zd ZdS )6ProtocolTests.test_protocols_isinstance.<locals>.BadPGc                     d S rf   rn   r   s    r`   r{  z;ProtocolTests.test_protocols_isinstance.<locals>.BadPG.meth  r   rb   Nr  rn   rb   r`   r"  r    r  rb   r"  c                       e Zd Zd ZdS )2ProtocolTests.test_protocols_isinstance.<locals>.Cc                     d S rf   rn   r   s    r`   r{  z7ProtocolTests.test_protocols_isinstance.<locals>.C.meth  r   rb   Nr  rn   rb   r`   r=  r    r  rb   r=  c                       e Zd Zd ZdS )3ProtocolTests.test_protocols_isinstance.<locals>.C2c                     d | _         d S )Nc                      d S rf   rn   rn   rb   r`   r  zNProtocolTests.test_protocols_isinstance.<locals>.C2.__init__.<locals>.<lambda>"  s    D rb   )r{  r   s    r`   r   z<ProtocolTests.test_protocols_isinstance.<locals>.C2.__init__!  s    (L			rb   Nr   rn   rb   r`   r  r     s#        ) ) ) ) )rb   r  )klassrt   )	r   r+   r(   rx   rk   r   r   r   r   )r[   r   r  r  r  r  r  r  r"  r=  r  r  rt   r  s                @r`   test_protocols_isinstancez'ProtocolTests.test_protocols_isinstance
  s   CLL		 	 	 	 	 	 	 
		 
	 	 	 	 	! 	 	 
		 
	! 	! 	! 	! 	! 	! 	! 
		! 
	0 	0 	0 	0 	0( 	0 	0 
		0	 	 	 	 	 	 	 	 
	$ 	$ 	$ 	$ 	$ 	$ 	$8 	$ 	$ 
		$	 	 	 	 	8 	 	 		 	 	 	 	HQK 	 	 		 	 	 	 	 	 	 		) 	) 	) 	) 	) 	) 	) 	) U 	: 	:EB
KE : :\\en\MM : :))%%''5999: : : : : : : : : : : : : : :: y)) 	# 	#qqssBqE"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#y)) 	# 	#qqssBqE"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#y)) 	" 	"qqssD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"y)) 	# 	#qqssE"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#sZ   <E''E+.E+F99F= F=H		HH.III8JJ"%J"c           	      l    G d d          } G d d           G fdd          } G d d|          } G d	 d
|          } G d d          }t          d          t           G d dt                                }t           G d dt                                }t           G d dt                                         }t           G fddt                                         }	||||	fD ]}
||||fD ]Y}|                     |j        |
j                  5  |                      |            |
           d d d            n# 1 swxY w Y   Z|                     d|
j                  5  |                      |            |
           d d d            n# 1 swxY w Y    G d dt                    } G d dt                    } G d dt                             } G fddt                             }|         ||         |	         |	|         ||||fD ]}|||||fD ]}|                     |j        |          5  |                     t                    5  t           |            |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S ) Nc                   $    e Zd Zed             ZdS )MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.Cc                     dS r   rn   r   s    r`   rx  zRProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.C.attr4  s    rrb   Nrk   rl   rm   propertyrx  rn   rb   r`   r=  r  3  s-          X  rb   r=  c                       e Zd ZddZdS )\ProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.CustomDescriptorNc                     dS r   rn   )r[   objobjtypes      r`   __get__zdProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.CustomDescriptor.__get__9  r  rb   rf   )rk   rl   rm   r  rn   rb   r`   CustomDescriptorr  8  s(             rb   r  c                   $    e Zd Z              ZdS )MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.DN)rk   rl   rm   rx  )r  s   r`   r@  r  <  s        ##%%DDDrb   r@  c                       e Zd ZdS )MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.ENr~   rn   rb   r`   rw  r  A  r   rb   rw  c                       e Zd ZdS )MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.FNr~   rn   rb   r`   rx  r  B  r   rb   rx  c                       e Zd ZdS )QProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.EmptyNr~   rn   rb   r`   r  r  D  r   rb   r  r   c                   $    e Zd Zed             ZdS )MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.Pc                     d S rf   rn   r   s    r`   rx  zRProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.P.attrJ      Crb   Nr  rn   rb   r`   r  r  H  #         Xrb   r  c                       e Zd ZU eed<   dS )NProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.P1rx  Nrf  rn   rb   r`   r  r  M  s         IIIIIrb   r  c                   $    e Zd Zed             ZdS )NProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PGc                     d S rf   rn   r   s    r`   rx  zSProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PG.attrS  r  rb   Nr  rn   rb   r`   r  r  Q  r  rb   r  c                       e Zd ZU  ed<   dS )OProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PG1rx  Nrk   rl   rm   r   r   s   r`   PG1r  V  s         GGGGGrb   r  )r  protocol_classc                   $    e Zd Zed             ZdS )PProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPc                     d S rf   rn   r   s    r`   rx  zUProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadP.attrf  r  rb   Nr  rn   rb   r`   r  r  e  #         Xrb   r  c                       e Zd ZU eed<   dS )QProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadP1rx  Nrf  rn   rb   r`   BadP1r  i           IIIIIrb   r  c                   $    e Zd Zed             ZdS )QProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPGc                     d S rf   rn   r   s    r`   rx  zVProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPG.attrm  r  rb   Nr  rn   rb   r`   r"  r  l  r  rb   r"  c                       e Zd ZU  ed<   dS )RProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPG1rx  Nr  r  s   r`   BadPG1r  p  s         GGGGGrb   r  )r  r  )
r   r+   r(   rx   rk   r   r   r   r   r   )r[   r=  r@  rw  rx  r  r  r  r  r  r  r  r  r  r"  r  r  r  r   s                    @@r`   4test_protocols_isinstance_properties_and_descriptorszBProtocolTests.test_protocols_isinstance_properties_and_descriptors2  s:   	 	 	 	 	 	 	 	
	 	 	 	 	 	 	 		& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 	CLL		  	  	  	  	  	  	  
		  
	 	 	 	 	 	 	 
		 
	  	  	  	  	 ! 	  	  
		  
	 	 	 	 	 	 	(1+ 	 	 
		  Rn 		B 		BNAq! C C\\.#1#: "   C C ))%%''>BBB	C C C C C C C C C C C C C C C GN<STT B B((.AAAB B B B B B B B B B B B B B B	  	  	  	  	 8 	  	  	 	 	 	 	 	H 	 	 		  	  	  	  	 HQK 	  	  	 	 	 	 	 	 	 	Xa[ 	 	 	 a5"Q%QQueVK 	1 	1CAq!U* 1 1\\C\@@ 1 1**955 1 1"5577C0001 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 11	1 	1sZ   #EEE6F!!F%	(F%	J'+J	J'JJ'JJ''J+.J+c                     t            G d dt                                } G d d          } G d d          }|                      |            |           |                      |            |           d S )Nc                       e Zd ZU eed<   dS )NProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.HasXr   Nrf  rn   rb   r`   HasXr  z           FFFFFrb   r  c                       e Zd ZdZd ZdS )XProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithX
   c                     g S rf   rn   r   s    r`   __dir__z`ProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithX.__dir__      	rb   N)rk   rl   rm   r   r  rn   rb   r`   CustomDirWithXr  ~  s(        A    rb   r  c                       e Zd Zd ZdS )[ProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithoutXc                     dgS )Nr   rn   r   s    r`   r  zcProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithoutX.__dir__  s	    urb   N)rk   rl   rm   r  rn   rb   r`   CustomDirWithoutXr    #            rb   r  )r+   r(   r   r   )r[   r  r  r  s       r`   2test_protocols_isinstance_not_fooled_by_custom_dirz@ProtocolTests.test_protocols_isinstance_not_fooled_by_custom_diry  s    		 	 	 	 	8 	 	 
			 	 	 	 	 	 	 	
	 	 	 	 	 	 	 	 	nn..555  !2!2!4!4d;;;;;rb   c                 8    G d d          } G d d          } G d d          } G d d          }|                       |d	d
d          t                     |                       |d	d
          t                     |                     t                      t                     |                       |d	d
          t                     |                      t                      t                     |                      t                      t                     |                       |d          t                     |                      |            t                     |                      |            t                     |                      |            t                     |                      |            t                     |                     t                      t                     |                      t          d	d
          t                     d S )Nc                       e Zd Zd ZdS )<ProtocolTests.test_protocols_isinstance_py36.<locals>.APointc                 0    || _         || _        || _        d S rf   r   r   rj  )r[   r   r   rj  s       r`   r   zEProtocolTests.test_protocols_isinstance_py36.<locals>.APoint.__init__  s    "


rb   Nr   rn   rb   r`   APointr    s#        # # # # #rb   r  c                       e Zd ZdZd ZdS )<ProtocolTests.test_protocols_isinstance_py36.<locals>.BPointr   c                 "    || _         || _        d S rf   r   r   r_  s      r`   r   zEProtocolTests.test_protocols_isinstance_py36.<locals>.BPoint.__init__  s    rb   N)rk   rl   rm   rj  r   rn   rb   r`   BPointr    s(        E    rb   r  c                       e Zd Zd Zd ZdS )7ProtocolTests.test_protocols_isinstance_py36.<locals>.Cc                     || _         d S rf   rx  r[   rx  s     r`   r   z@ProtocolTests.test_protocols_isinstance_py36.<locals>.C.__init__       			rb   c                     dS rL  rn   rz  s     r`   r{  z<ProtocolTests.test_protocols_isinstance_py36.<locals>.C.meth      qrb   N)rk   rl   rm   r   r{  rn   rb   r`   r=  r    s2        ! ! !    rb   r=  c                       e Zd ZdS )9ProtocolTests.test_protocols_isinstance_py36.<locals>.BadNr~   rn   rb   r`   Badr    r   rb   r  rq   r   r   r   )	r   ri  r   rm  ru  r  rw  r}  r  )r[   r  r  r=  r  s        r`   test_protocols_isinstance_py36z,ProtocolTests.test_protocols_isinstance_py36  s   	# 	# 	# 	# 	# 	# 	# 	#	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	ffQ3//777ffQllE222  E222ffQllH555eggu---hjj%000aaeeU+++  ...  ...  111  111  (333bAhh11111rb   c                 F   t          d          }t           G d dt                                }t           G d dt          |                               } G d d          }|                      |d          |           |                      |d          |           d S )	Nr   c                       e Zd ZdZdS )7ProtocolTests.test_protocols_isinstance_init.<locals>.Prq   Nr  rn   rb   r`   r  r    rr  rb   r  c                       e Zd ZdZdS )8ProtocolTests.test_protocols_isinstance_init.<locals>.PGrq   Nr  rn   rb   r`   r  r    rr  rb   r  c                       e Zd Zd ZdS )7ProtocolTests.test_protocols_isinstance_init.<locals>.Cc                     || _         d S rf   r   r   s     r`   r   z@ProtocolTests.test_protocols_isinstance_init.<locals>.C.__init__  r   rb   Nr   rn   rb   r`   r=  r    r   rb   r=  rq   )r   r+   r(   r   )r[   r   r  r  r=  s        r`   test_protocols_isinstance_initz,ProtocolTests.test_protocols_isinstance_init  s    CLL		 	 	 	 	 	 	 
		 
	 	 	 	 	! 	 	 
			 	 	 	 	 	 	 	 	aaddA&&&aaddB'''''rb   c                 
   t            G d dt                                } G d d          } |            }|                     ||           d|_        |                     ||           |`|                     ||           d S )Nc                       e Zd ZU eed<   dS )DProtocolTests.test_protocols_isinstance_monkeypatching.<locals>.HasXr   Nrf  rn   rb   r`   r  r    r  rb   r  c                       e Zd ZdS )CProtocolTests.test_protocols_isinstance_monkeypatching.<locals>.FooNr~   rn   rb   r`   r   r    r   rb   r   r   )r+   r(   r   r   r   )r[   r  r   ri   s       r`   (test_protocols_isinstance_monkeypatchingz6ProtocolTests.test_protocols_isinstance_monkeypatching  s    		 	 	 	 	8 	 	 
		 	CEE  D)))a&&&C  D)))))rb   c                     G d dt           t                             } G d d|t                             } G d d          } G d d          }|t                   }|                      |            |           |                     ||            G d	 d
|t                             } G d d|t                             }|t
                   }|                      |            |           |                     ||           d S )Nc                       e Zd ZdS )=ProtocolTests.test_protocol_checks_after_subscript.<locals>.PNr~   rn   rb   r`   r  r    r   rb   r  c                       e Zd ZdS )=ProtocolTests.test_protocol_checks_after_subscript.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  c                       e Zd ZdS )BProtocolTests.test_protocol_checks_after_subscript.<locals>.Other1Nr~   rn   rb   r`   Other1r    r   rb   r  c                       e Zd ZdS )BProtocolTests.test_protocol_checks_after_subscript.<locals>.Other2Nr~   rn   rb   r`   Other2r    r   rb   r  c                       e Zd ZdS )>ProtocolTests.test_protocol_checks_after_subscript.<locals>.D1Nr~   rn   rb   r`   D1r    r   rb   r  c                       e Zd ZdS )>ProtocolTests.test_protocol_checks_after_subscript.<locals>.D2Nr~   rn   rb   r`   D2r    r   rb   r  )r(   r   r   r   rd   r   r   ra   )	r[   r  r=  r  r  CAr  r  CIs	            r`   $test_protocol_checks_after_subscriptz2ProtocolTests.test_protocol_checks_after_subscript  s&   """"""""!sV  1---  +++33sVbbddA&&&b!$$$$$rb   c                 n   t            G d dt                                } G d dt                    } G d d|          } G d d          }|                    |           |                    |           |                      |            |           |                      |            |           d S )	Nc                       e Zd ZdZdS )8ProtocolTests.test_protocols_support_register.<locals>.Prq   Nr  rn   rb   r`   r  r     rr  rb   r  c                       e Zd Zd ZdS )9ProtocolTests.test_protocols_support_register.<locals>.PMc                     d S rf   rn   r   s    r`   r{  z>ProtocolTests.test_protocols_support_register.<locals>.PM.meth  r   rb   Nr  rn   rb   r`   PMr"    rV  rb   r$  c                       e Zd ZdS )8ProtocolTests.test_protocols_support_register.<locals>.DNr~   rn   rb   r`   r@  r&    r   rb   r@  c                       e Zd ZdS )8ProtocolTests.test_protocols_support_register.<locals>.CNr~   rn   rb   r`   r=  r(    r   rb   r=  )r+   r(   ru  r   )r[   r  r$  r@  r=  s        r`   test_protocols_support_registerz-ProtocolTests.test_protocols_support_register  s    		 	 	 	 	 	 	 
			! 	! 	! 	! 	! 	! 	! 	! 		

1	

1aacc1%%%aacc1%%%%%rb   c                    t            G d dt                                } G d d          } G d d|          } G d d          }|                      |            |           |                      |            |           d S )	Nc                       e Zd ZdZdS )NProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.Prq   Nr  rn   rb   r`   r  r,    rr  rb   r  c                       e Zd ZdZdS )NProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.Arq   Nr  rn   rb   r`   r   r.    rn  rb   r   c                       e Zd ZdZdS )NProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.BNr  rn   rb   r`   r   r0            AAArb   r   c                       e Zd Zd ZdS )NProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.Cc                     d | _         d S rf   r   r   s    r`   r   zWProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.C.__init__      rb   Nr   rn   rb   r`   r=  r3    #            rb   r=  )r+   r(   r   r[   r  r   r   r=  s        r`   5test_none_on_non_callable_doesnt_block_implementationzCProtocolTests.test_none_on_non_callable_doesnt_block_implementation  s    		 	 	 	 	 	 	 
			 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	aacc1%%%aacc1%%%%%rb   c                    t            G d dt                                } G d d          } G d d|          } G d d          }|                      |            |           |                      |            |           d S )	Nc                       e Zd Zd ZdS )DProtocolTests.test_none_on_callable_blocks_implementation.<locals>.Pc                     d S rf   rn   r   s    r`   r   zFProtocolTests.test_none_on_callable_blocks_implementation.<locals>.P.x  r   rb   Nr  rn   rb   r`   r  r;    r  rb   r  c                       e Zd Zd ZdS )DProtocolTests.test_none_on_callable_blocks_implementation.<locals>.Ac                     d S rf   rn   r   s    r`   r   zFProtocolTests.test_none_on_callable_blocks_implementation.<locals>.A.x	  r   rb   Nr  rn   rb   r`   r   r>    r  rb   r   c                       e Zd ZdZdS )DProtocolTests.test_none_on_callable_blocks_implementation.<locals>.BNr  rn   rb   r`   r   rA    r1  rb   r   c                       e Zd Zd ZdS )DProtocolTests.test_none_on_callable_blocks_implementation.<locals>.Cc                     d | _         d S rf   r   r   s    r`   r   zMProtocolTests.test_none_on_callable_blocks_implementation.<locals>.C.__init__  r5  rb   Nr   rn   rb   r`   r=  rC    r6  rb   r=  )r+   r(   r   r7  s        r`   +test_none_on_callable_blocks_implementationz9ProtocolTests.test_none_on_callable_blocks_implementation  s    		 	 	 	 	 	 	 
			 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	  a(((  a(((((rb   c                     G d dt                     }t           G d dt                                 } G d d|          } G d d|          } G d	 d
          } G d d          }|                      |            |           |                      |            |           |                     ||           |                     ||           |                      |            |           |                     ||           d S )Nc                       e Zd ZdZdS )5ProtocolTests.test_non_protocol_subclasses.<locals>.Prq   Nr  rn   rb   r`   r  rH    rn  rb   r  c                       e Zd Zd ZdS )6ProtocolTests.test_non_protocol_subclasses.<locals>.PRc                     d S rf   rn   r   s    r`   r{  z;ProtocolTests.test_non_protocol_subclasses.<locals>.PR.meth  r   rb   Nr  rn   rb   r`   PRrJ                 rb   rL  c                       e Zd ZdZdS )8ProtocolTests.test_non_protocol_subclasses.<locals>.NonPrq   Nr  rn   rb   r`   NonPrO    rn  rb   rP  c                       e Zd ZdS )9ProtocolTests.test_non_protocol_subclasses.<locals>.NonPRNr~   rn   rb   r`   NonPRrR     r   rb   rS  c                       e Zd ZdZdS )5ProtocolTests.test_non_protocol_subclasses.<locals>.Crq   Nr  rn   rb   r`   r=  rU  "  rn  rb   r=  c                       e Zd Zd ZdS )5ProtocolTests.test_non_protocol_subclasses.<locals>.Dc                     d S rf   rn   r   s    r`   r{  z:ProtocolTests.test_non_protocol_subclasses.<locals>.D.meth&  r   rb   Nr  rn   rb   r`   r@  rW  %  rV  rb   r@  r  )r[   r  rL  rP  rS  r=  r@  s          r`   test_non_protocol_subclassesz*ProtocolTests.test_non_protocol_subclasses  s   	 	 	 	 	 	 	 	 
	! 	! 	! 	! 	! 	! 	! 
		!	 	 	 	 	1 	 	 	 	B	 	 	 	 	 	 	 		! 	! 	! 	! 	! 	! 	! 	! 	  d+++  e,,,  D)))  E***eeggr***eR(((((rb   c                 L    G d dt                     } G d d          } G d d          } G d d|          }|                      |            |           |                      |            |           |                     ||           |                     ||           d S )	Nc                       e Zd ZdZdS )1ProtocolTests.test_custom_subclasshook.<locals>.Prq   Nr  rn   rb   r`   r  r\  0  rn  rb   r  c                       e Zd ZdS )7ProtocolTests.test_custom_subclasshook.<locals>.OKClassNr~   rn   rb   r`   OKClassr^  3  r   rb   r_  c                       e Zd ZdZdS )8ProtocolTests.test_custom_subclasshook.<locals>.BadClassrq   Nr  rn   rb   r`   BadClassra  5  rn  rb   rb  c                   $    e Zd Zed             ZdS )1ProtocolTests.test_custom_subclasshook.<locals>.Cc                 6    |j                             d          S NOK)rk   
startswithr\   others     r`   __subclasshook__zBProtocolTests.test_custom_subclasshook.<locals>.C.__subclasshook__9  s    ~00666rb   Nrk   rl   rm   classmethodrk  rn   rb   r`   r=  rd  8  s-        7 7 [7 7 7rb   r=  )r(   r   r   ra   rd   )r[   r  r_  rb  r=  s        r`   test_custom_subclasshookz&ProtocolTests.test_custom_subclasshook/  s   	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 		7 	7 	7 	7 	7 	7 	7 	7
 	ggii+++  Q///gq)))  1-----rb   c                     t            G d dt                                } 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 )8ProtocolTests.test_issubclass_fails_correctly.<locals>.Prq   Nr  rn   rb   r`   r  rq  C  rr  rb   r  c                       e Zd ZdS )8ProtocolTests.test_issubclass_fails_correctly.<locals>.CNr~   rn   rb   r`   r=  rs  G  r   rb   r=  )r+   r(   r   r   rX   r[   r  r=  s      r`   test_issubclass_fails_correctlyz-ProtocolTests.test_issubclass_fails_correctlyB  s    		 	 	 	 	 	 	 
		 	y)) 	 	qqssA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A..A25A2c                 r   t          d          }t          d          }t           G d dt          ||f                               } G d d|t          |f         t          |                   }|                     t
                    5  |t                    d d d            n# 1 swxY w Y   |                     t
                    5  |t          t          f          d d d            n# 1 swxY w Y    G d d|t          |f                   }|                      |t                               |           d S )	Nr   Sc                       e Zd Zd ZdS )9ProtocolTests.test_defining_generic_protocols.<locals>.PRc                     d S rf   rn   r   s    r`   r{  z>ProtocolTests.test_defining_generic_protocols.<locals>.PR.methR  r   rb   Nr  rn   rb   r`   rL  ry  P  rM  rb   rL  c                       e Zd ZdZdS )8ProtocolTests.test_defining_generic_protocols.<locals>.Prq   Nrk   rl   rm   r   rn   rb   r`   r  r|  T  rn  rb   r  c                       e Zd ZdS )8ProtocolTests.test_defining_generic_protocols.<locals>.CNr~   rn   rb   r`   r=  r  \  r   rb   r=  )r   r+   r(   r   r   r   r|  r   )r[   r   rw  rL  r  r=  s         r`   test_defining_generic_protocolsz-ProtocolTests.test_defining_generic_protocolsL  s   CLLCLL		! 	! 	! 	! 	!!Q$ 	! 	! 
		!	 	 	 	 	36
HQK 	 	 	 y)) 	 	sGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	c3hKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	"!!!!36
!!!fafhh*****s$   B""B&)B&C((C,/C,c           	      p   t          d          t          d          }t           G d dt          t          |f                               } G d d|t          t
          f         t                    }|                     t                    5  t          |t          t
          f         |           d d d            n# 1 swxY w Y   | 	                    ||           |                     t                    5  |t                    d d d            n# 1 swxY w Y    G fddt          t                             } G fd	d
t                   t                    }t           G d d|t
                   t                                } G d d          }| 
                     |            |           d S )Nr   rw  c                       e Zd Zd ZdS )CProtocolTests.test_defining_generic_protocols_old_style.<locals>.PRc                     d S rf   rn   r   s    r`   r{  zHProtocolTests.test_defining_generic_protocols_old_style.<locals>.PR.methf  r   rb   Nr  rn   rb   r`   rL  r  d  rM  rb   rL  c                       e Zd ZdZdS )BProtocolTests.test_defining_generic_protocols_old_style.<locals>.Prq   Nr}  rn   rb   r`   r  r  h  rn  rb   r  c                        e Zd Zd defdZdS )CProtocolTests.test_defining_generic_protocols_old_style.<locals>.P1r   r   c                     d S rf   rn   r   s     r`   r)  zGProtocolTests.test_defining_generic_protocols_old_style.<locals>.P1.barr  r   rb   Nrk   rl   rm   r|  r)  r  s   r`   r  r  q  '        +Q+3++++++rb   r  c                        e Zd Zd defdZdS )CProtocolTests.test_defining_generic_protocols_old_style.<locals>.P2r   r   c                     d S rf   rn   r   s     r`   r)  zGProtocolTests.test_defining_generic_protocols_old_style.<locals>.P2.baru  r   rb   Nr  r  s   r`   r  r  t  r  rb   r  c                       e Zd ZdZdS )EProtocolTests.test_defining_generic_protocols_old_style.<locals>.PSubrq   Nr  rn   rb   r`   PSubr  w  rr  rb   r  c                   "    e Zd ZdZdedefdZdS )EProtocolTests.test_defining_generic_protocols_old_style.<locals>.Testrq   r   r   c                     |S rf   rn   r   s     r`   r)  zIProtocolTests.test_defining_generic_protocols_old_style.<locals>.Test.bar~  s    rb   N)rk   rl   rm   r   r|  r)  rn   rb   r`   Testr  {  s;        AS S      rb   r  )r   r+   r(   r$   r   r|  r   r   rX   ra   r   )	r[   rw  rL  r  r  r  r  r  r   s	           @r`   )test_defining_generic_protocols_old_stylez7ProtocolTests.test_defining_generic_protocols_old_style`  s   CLLCLL		! 	! 	! 	! 	!71a4= 	! 	! 
		!	 	 	 	 	38h 	 	 	 y)) 	) 	)r#s(|R(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)a$$$y)) 	 	sGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 		, 	, 	, 	, 	, 	, 	,71: 	, 	, 	,	, 	, 	, 	, 	, 	, 	,X 	, 	, 	, 
	 	 	 	 	2c7H 	 	 
			 	 	 	 	 	 	 	 	ddffd+++++s$   #B==CC8DDDc                     t          d          } G d dt          |                   } G d d||                   }|                      |t                               j        d            G d d          } G d	 d
|||                   }|                      |t                               j        d            G d d||         |          }|                      |t                               j        d           d S )Nr   c                       e Zd ZdS ))ProtocolTests.test_init_called.<locals>.PNr~   rn   rb   r`   r  r    r   rb   r  c                       e Zd Zd ZdS ))ProtocolTests.test_init_called.<locals>.Cc                     d| _         d S rf  testr   s    r`   r   z2ProtocolTests.test_init_called.<locals>.C.__init__  r  rb   Nr   rn   rb   r`   r=  r    #        ! ! ! ! !rb   r=  rg  c                       e Zd Zd ZdS ))ProtocolTests.test_init_called.<locals>.Bc                     d| _         d S rf  r  r   s    r`   r   z2ProtocolTests.test_init_called.<locals>.B.__init__  r  rb   Nr   rn   rb   r`   r   r    r  rb   r   c                       e Zd ZdS )*ProtocolTests.test_init_called.<locals>.D1Nr~   rn   rb   r`   r  r    r  rb   r  c                       e Zd ZdS )*ProtocolTests.test_init_called.<locals>.D2Nr~   rn   rb   r`   r  r    r  rb   r  )r   r(   r   r   r  )r[   r   r  r=  r   r  r  s          r`   test_init_calledzProtocolTests.test_init_called  sS   CLL""""""""	! 	! 	! 	! 	!! 	! 	! 	! 	3---	! 	! 	! 	! 	! 	! 	! 	!	 	 	 	 	AaD 	 	 	 	C...	 	 	 	 	1q 	 	 	 	C.....rb   c                    t          d          } G d dt          |                   } G d d||                   }|                      |t                               j        d           |                     t                    5   |t                   d           d d d            n# 1 swxY w Y   |                     t                    5   |t                   d           d d d            d S # 1 swxY w Y   d S )	Nr   c                       e Zd ZdS )(ProtocolTests.test_new_called.<locals>.PNr~   rn   rb   r`   r  r    r   rb   r  c                        e Zd Z fdZ xZS )(ProtocolTests.test_new_called.<locals>.Cc                 J     t                      j        | g|R  }d|_        |S rf  )r   __new__r  )r\   r   r[   r   s      r`   r  z0ProtocolTests.test_new_called.<locals>.C.__new__  s,    &uwws2T222 	rb   rk   rl   rm   r  r   r   s   @r`   r=  r    s8                rb   r=  rg  r   r  )r   r(   r   r   r  r   r   )r[   r   r  r=  s       r`   test_new_calledzProtocolTests.test_new_called  s   CLL""""""""	 	 	 	 	! 	 	 	 	3---y)) 	 	AcF2JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	AcFRLLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   B((B,/B,C22C69C6c                    t          d          }t          d          }|                     t                    5   G d dt          ||f                   }d d d            n# 1 swxY w Y   |                     t                    5   G d dt          t                             }d d d            n# 1 swxY w Y   |                     t                    5   G d dt          |         t          |                   }d d d            n# 1 swxY w Y   |                     t                    5   G d	 dt
          j        ||f         t          |                   }d d d            d S # 1 swxY w Y   d S )
Nr   rw  c                       e Zd ZdS )6ProtocolTests.test_protocols_bad_subscripts.<locals>.PNr~   rn   rb   r`   r  r    r   rb   r  c                       e Zd ZdS )6ProtocolTests.test_protocols_bad_subscripts.<locals>.QNr~   rn   rb   r`   r  r    r   rb   r  c                       e Zd ZdS )6ProtocolTests.test_protocols_bad_subscripts.<locals>.RNr~   rn   rb   r`   r  r    r   rb   r  c                       e Zd ZdS )6ProtocolTests.test_protocols_bad_subscripts.<locals>.SNr~   rn   rb   r`   rw  r    r   rb   )r   r   r   r(   r   rO   r  )r[   r   rw  r  r  r  s         r`   test_protocols_bad_subscriptsz+ProtocolTests.test_protocols_bad_subscripts  sZ   CLLCLLy)) 	* 	*)))))HQTN)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*y)) 	) 	)(((((HSM(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)y)) 	4 	433333HQK!333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4y)) 	= 	=<<<<<FN1a4((1+<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=sG   A!!A%(A%B11B58B5&DDD--E''E+.E+c                    t          d          }t          d          } G d dt          ||f                   }|                     t          |||f                                       d                     |                     t          |t
          t          f                                       d                     d S )Nr   rw  c                       e Zd ZdS )4ProtocolTests.test_generic_protocols_repr.<locals>.PNr~   rn   rb   r`   r  r    r   rb   r  z	P[~T, ~S]zP[int, str])r   r(   r   r   rT  r   r|  r[   r   rw  r  s       r`   test_generic_protocols_reprz)ProtocolTests.test_generic_protocols_repr  s    CLLCLL%%%%%A%%%Qq!tW..{;;<<<QsCx[))22=AABBBBBrb   c                    t          d          }t          d          } G d dt          ||f                   }|                     ||           |                     |t          |f         |t          |f                    |                     |||f         t          ||f                  t          t
          f         |t          t          t
          f         t          t          t
          f         f                    d S )Nr   rw  c                       e Zd ZdS )2ProtocolTests.test_generic_protocols_eq.<locals>.PNr~   rn   rb   r`   r  r    r   rb   r  )r   r(   r   r   r   r|  r  s       r`   test_generic_protocols_eqz'ProtocolTests.test_generic_protocols_eq  s    CLLCLL%%%%%A%%%A36Ac1fI...1a4q!t-c3h75c?E#s(O;<	> 	> 	> 	> 	>rb   c                 ~   t          d          } G d dt          |                   }|                     |j        |f           |                     |t                   j        d           |                     |t                   j        t          f           |                     |t                   j        |           d S )Nr   c                       e Zd ZdS )DProtocolTests.test_generic_protocols_special_from_generic.<locals>.PNr~   rn   rb   r`   r  r    r   rb   r  rn   )r   r(   r   r  r   r  r   r  )r[   r   r  s      r`   +test_generic_protocols_special_from_genericz9ProtocolTests.test_generic_protocols_special_from_generic  s    CLL"""""""")A40003.33333&111af'+++++rb   c                 6   t            G d dt                                } G d dt                    }t          d          } G d dt          |                   }|                     |j                   |                     |j                   |                     |j                   |                     |j                   |                     |j                   |                     |t                   j                   |                     t          j
        |          dh           |                     t          j
        |          d	h           |                     t          t          j
        |                    t          d	dh                     d S )
Nc                       e Zd ZdZdS )FProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PRrq   Nr  rn   rb   r`   rL  r    rr  rb   rL  c                       e Zd Zd ZdS )EProtocolTests.test_generic_protocols_special_from_protocol.<locals>.Pc                     d S rf   rn   r   s    r`   r{  zJProtocolTests.test_generic_protocols_special_from_protocol.<locals>.P.meth  r  rb   Nr  rn   rb   r`   r  r    r  rb   r  r   c                       e Zd ZdZd ZdS )FProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PGrq   c                     d S rf   rn   r   s    r`   r{  zKProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PG.meth  r  rb   N)rk   rl   rm   r   r{  rn   rb   r`   r  r    s(        A    rb   r  r{  r   )r+   r(   r   r   _is_protocolr   _is_runtime_protocolr   r   rO   _get_protocol_attrs	frozenset)r[   rL  r  r   r  s        r`   ,test_generic_protocols_special_from_protocolz:ProtocolTests.test_generic_protocols_special_from_protocol  s   		 	 	 	 	 	 	 
			 	 	 	 	 	 	 	 CLL	 	 	 	 	! 	 	 	 	'''((((((/000/0003,---3A66AAA3B77#???6#=b#A#ABB"C=11	3 	3 	3 	3 	3rb   c                 `   |                      t                    5  t           G d d                      }d d d            n# 1 swxY w Y    G d dt                    }|                      t                    5  t           G d d|                      }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )8ProtocolTests.test_no_runtime_deco_on_nominal.<locals>.CNr~   rn   rb   r`   r=  r    s        Trb   r=  c                       e Zd ZdZdS )<ProtocolTests.test_no_runtime_deco_on_nominal.<locals>.Protorq   Nr  rn   rb   r`   rw  r    rn  rb   rw  c                       e Zd ZdS )?ProtocolTests.test_no_runtime_deco_on_nominal.<locals>.ConcreteNr~   rn   rb   r`   r}  r    s        rb   r}  )r   r   r+   r(   )r[   r=  rw  r}  s       r`   test_no_runtime_deco_on_nominalz-ProtocolTests.test_no_runtime_deco_on_nominal  sa   y)) 	 	MMMMMM 	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	H 	 	 	 y)) 	 	    5   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AA	A:B##B'*B'c                     t            G d dt                                } G d dt                    }|                      |            |            G d d          } G d d          }|                      |            |           |                      |            |            G d	 d
          } G d d          }|                      |            |           |                      |            |           d S )Nc                       e Zd ZdZdS )4ProtocolTests.test_none_treated_correctly.<locals>.PNr  rn   rb   r`   r  r    s        AAArb   r  c                       e Zd ZdS )4ProtocolTests.test_none_treated_correctly.<locals>.BNr~   rn   rb   r`   r   r    r   rb   r   c                       e Zd ZdZdS )4ProtocolTests.test_none_treated_correctly.<locals>.Crq   Nr  rn   rb   r`   r=  r  	  rn  rb   r=  c                       e Zd ZdZdS )4ProtocolTests.test_none_treated_correctly.<locals>.DNr  rn   rb   r`   r@  r    r1  rb   r@  c                       e Zd Zd ZdS )5ProtocolTests.test_none_treated_correctly.<locals>.CIc                     d| _         d S rF  r   r   s    r`   r   z>ProtocolTests.test_none_treated_correctly.<locals>.CI.__init__  r   rb   Nr   rn   rb   r`   r  r    r   rb   r  c                       e Zd Zd ZdS )5ProtocolTests.test_none_treated_correctly.<locals>.DIc                     d | _         d S rf   r   r   s    r`   r   z>ProtocolTests.test_none_treated_correctly.<locals>.DI.__init__  r5  rb   Nr   rn   rb   r`   DIr    r6  rb   r  )r+   r(   rT  r   r   )r[   r  r   r=  r@  r  r  s          r`   test_none_treated_correctlyz)ProtocolTests.test_none_treated_correctly   s   		 	 	 	 	 	 	 
		 	  a(((	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	aacc1%%%aacc1%%%	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	bbddA&&&bbddA&&&&&rb   c                      G d dt                     }t          j        t          j        |f         }t          j        |t          j        f         }|                     ||           d S )Nc                       e Zd ZdZdS )1ProtocolTests.test_protocols_in_unions.<locals>.PNr  rn   rb   r`   r  r    r1  rb   r  )r(   rO   r   r  r   )r[   r  AliasAlias2s       r`   test_protocols_in_unionsz&ProtocolTests.test_protocols_in_unions  sp    	 	 	 	 	 	 	 	 V_a/0a01'''''rb   c                    t          d          }t           G d dt          |                               a G d dt          t                             at                      }d|_        d|_        t          t          j
        dz             D ]}t          j        ||          }t          j        |          }|                     |j        d           |                     |j        d           |                     |j        d           |                     |j        ddd	           t          j        t          |          }t          j        |          } G d
 d          }|                      |            |           d S )Nr   c                       e Zd ZdZdS )r  rq   Nr  rn   rb   r`   r  r  )  rr  rb   r  c                       e Zd ZdS )CPNr~   rn   rb   r`   r  r  -  r  rb   r  r   r  rq   r&  c                       e Zd ZdZdS )2ProtocolTests.test_protocols_pickleable.<locals>.Erq   Nr  rn   rb   r`   rw  r  =  s        rb   rw  )r   r+   r(   r  r   r  r  r)  ru   rv   rw   r>  r=  r   r   __dict__r   )	r[   r   r  rt   r  r   r   r@  rw  s	            r`   test_protocols_pickleablez'ProtocolTests.test_protocols_pickleable%  s   CLL		 	 	 	 	 	 	 
			 	 	 	 	3 	 	 	 DD62Q677 	* 	*EQ&&AQAQUB'''QUE***QS!$$$QZE)B)BCCCQ&&AQA        !!!!##q))))	* 	*rb   c                     |                      t          t          j                   |                     t
          t          j                   d S rf   )ra   r   rO   SupportsIntrd   r|  r   s    r`   test_supports_intzProtocolTests.test_supports_intB  s:    c6#5666  f&899999rb   c                     |                      t          t          j                   |                     t
          t          j                   d S rf   )ra   r  rO   SupportsFloatrd   r|  r   s    r`   test_supports_floatz!ProtocolTests.test_supports_floatF  s:    eV%9:::  f&:;;;;;rb   c                      G d d          }|                      t          t          j                   |                      |t          j                   |                     t
          t          j                   d S )Nc                       e Zd Zd ZdS ).ProtocolTests.test_supports_complex.<locals>.Cc                     dS )Ny                rn   r   s    r`   __complex__z:ProtocolTests.test_supports_complex.<locals>.C.__complex__M  r  rb   N)rk   rl   rm   r  rn   rb   r`   r=  r  L  s#            rb   r=  )ra   complexrO   SupportsComplexrd   r|  r  s     r`   test_supports_complexz#ProtocolTests.test_supports_complexJ  s}    	 	 	 	 	 	 	 	 	gv'=>>>a!7888  f&<=====rb   c                      G d d          }|                      t          t          j                   |                      |t          j                   |                     t
          t          j                   d S )Nc                       e Zd Zd ZdS ),ProtocolTests.test_supports_bytes.<locals>.Bc                     dS Nrb   rn   r   s    r`   	__bytes__z6ProtocolTests.test_supports_bytes.<locals>.B.__bytes__W  s    srb   N)rk   rl   rm   r  rn   rb   r`   r   r  V  r   rb   r   )ra   r  rO   SupportsBytesrd   r|  )r[   r   s     r`   test_supports_bytesz!ProtocolTests.test_supports_bytesT  s}    	 	 	 	 	 	 	 	 	eV%9:::a!5666  f&:;;;;;rb   c                     |                      t          t          j                   |                      t          t          j                   |                     t          t          j                   d S rf   )ra   r  rO   SupportsAbsr   rd   r|  r   s    r`   test_supports_abszProtocolTests.test_supports_abs^  sS    eV%7888c6#5666  f&899999rb   c                 "   t          t          t          j                   |                     t          t          j                   |                     t
          t          j                   |                     t          t          j                   d S rf   )rX   r  rO   SupportsRoundra   r   rd   r|  r   s    r`   test_supports_roundz!ProtocolTests.test_supports_roundc  sf    5&.///eV%9:::c6#7888  f&:;;;;;rb   c                     |                      t          t          j                   |                     t
          t          j                   d S rf   )ra   r  rO   
Reversiblerd   r   r   s    r`   test_reversiblezProtocolTests.test_reversiblei  s:    dF$5666  f&788888rb   c                     |                      t          t          j                   |                     t
          t          j                   d S rf   )ra   r   rO   SupportsIndexrd   r|  r   s    r`   test_supports_indexz!ProtocolTests.test_supports_indexm  s:    c6#7888  f&:;;;;;rb   c                     |                      dt          j                    G d dt          j                  } G d d|          } |            }|                      ||           d S )Nr   c                       e Zd ZdefdZdS )>ProtocolTests.test_bundled_protocol_instance_works.<locals>.C1r   c                     dS r   rn   r   s    r`   __int__zFProtocolTests.test_bundled_protocol_instance_works.<locals>.C1.__int__t  r  rb   N)rk   rl   rm   r   r#  rn   rb   r`   r  r!  s  s/              rb   r  c                       e Zd ZdS )>ProtocolTests.test_bundled_protocol_instance_works.<locals>.C2Nr~   rn   rb   r`   r  r%  v  r  rb   r  )r   rO   r  r  )r[   r  r  r  s       r`   $test_bundled_protocol_instance_worksz2ProtocolTests.test_bundled_protocol_instance_worksq  s    a!3444	 	 	 	 	# 	 	 		 	 	 	 	 	 	 	BDDa$$$$$rb   c                     t            G d dt          j        j        t                                } G d d          } G d d          }|                     ||           |                     ||           d S )Nc                       e Zd Zd ZdS )@ProtocolTests.test_collections_protocols_allowed.<locals>.Customc                     d S rf   rn   r   s    r`   closezFProtocolTests.test_collections_protocols_allowed.<locals>.Custom.close~  r   rb   N)rk   rl   rm   r+  rn   rb   r`   Customr)  |  rM  rb   r,  c                       e Zd ZdS );ProtocolTests.test_collections_protocols_allowed.<locals>.ANr~   rn   rb   r`   r   r.    r   rb   r   c                       e Zd Zd Zd ZdS );ProtocolTests.test_collections_protocols_allowed.<locals>.Bc                     g S rf   rn   r   s    r`   __iter__zDProtocolTests.test_collections_protocols_allowed.<locals>.B.__iter__  r  rb   c                     dS rL  rn   r   s    r`   r+  zAProtocolTests.test_collections_protocols_allowed.<locals>.B.close  r  rb   N)rk   rl   rm   r2  r+  rn   rb   r`   r   r0    s2              rb   r   )r+   r  r  r  r(   ra   rd   )r[   r,  r   r   s       r`   "test_collections_protocols_allowedz0ProtocolTests.test_collections_protocols_allowed{  s    		! 	! 	! 	! 	![_-x 	! 	! 
		! 		 	 	 	 	 	 	 	 	a(((  F+++++rb   c                     |                      t                    5   G d dt          t                    }d d d            n# 1 swxY w Y    G d dt          j        t                    }d S )Nc                       e Zd ZdS )EProtocolTests.test_builtin_protocol_allowlist.<locals>.CustomProtocolNr~   rn   rb   r`   CustomProtocolr7    r   rb   r8  c                       e Zd ZdS )KProtocolTests.test_builtin_protocol_allowlist.<locals>.CustomContextManagerNr~   rn   rb   r`   CustomContextManagerr:    r  rb   r;  )r   r   r   r(   rO   ContextManager)r[   r8  r;  s      r`   test_builtin_protocol_allowlistz-ProtocolTests.test_builtin_protocol_allowlist  s    y)) 	 	    8   	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	6#8( 	 	 	 	 	s   AAAc                      G d dt                     }|                     t          d          5  t          d|           d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZU eed<   dS )CProtocolTests.test_non_runtime_protocol_isinstance_check.<locals>.Pr   Nrf  rn   rb   r`   r  r@             FFFFFrb   r  z@runtime_checkablerq   )r(   r  r   r   r[   r  s     r`   *test_non_runtime_protocol_isinstance_checkz8ProtocolTests.test_non_runtime_protocol_isinstance_check  s    	 	 	 	 	 	 	 	 ##I/CDD 	 	q!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   AAAc                 \     G d dt                     } G d d|          } |             d S )Nc                       e Zd ZU eed<   dS )-ProtocolTests.test_super_call_init.<locals>.Pr   Nrf  rn   rb   r`   r  rG    rA  rb   r  c                        e Zd Z fdZ xZS )/ProtocolTests.test_super_call_init.<locals>.Fooc                 H    t                                                       d S rf   )r   r   )r[   r   s    r`   r   z8ProtocolTests.test_super_call_init.<locals>.Foo.__init__  s      """""rb   r   r   s   @r`   r   rI    s8        # # # # # # # # #rb   r   )r(   )r[   r  r   s      r`   test_super_call_initz"ProtocolTests.test_super_call_init  sg    	 	 	 	 	 	 	 		# 	# 	# 	# 	#! 	# 	# 	# 	rb   c                     t           t           G d dt                                            }|                     t          |           |                     t	                      |           d S )Nc                       e Zd ZdS )MProtocolTests.test_empty_protocol_decorated_with_final.<locals>.EmptyProtocolNr~   rn   rb   r`   rI  rN    s        '*srb   rI  )r'   r+   r(   ra   rT  r   )r[   rI  s     r`   (test_empty_protocol_decorated_with_finalz6ProtocolTests.test_empty_protocol_decorated_with_final  sg    		*****H** 
	 
*fm444fhh66666rb   c                 $   t           t           G d dt                                            }|                     t          |           |                     t          |           |                     d|           |                     d|           d S )Nc                       e Zd ZdedefdZdS )]ProtocolTests.test_protocol_decorated_with_final_callable_members.<locals>.ProtocolWithMethodrV  r   c                     d S rf   rn   )r[   rV  s     r`   rh  zhProtocolTests.test_protocol_decorated_with_final_callable_members.<locals>.ProtocolWithMethod.startswith  r   rb   N)rk   rl   rm   r|  r  rh  rn   rb   r`   ProtocolWithMethodrR    s(         ;:::::::rb   rT  r  r   )	r'   r+   r(   ra   r|  rd   r   r   r   )r[   rT  s     r`   3test_protocol_decorated_with_final_callable_memberszAProtocolTests.test_protocol_decorated_with_final_callable_members  s    			; 	; 	; 	; 	; 	; 	; 
	 
	; 	c#5666  &8999e%7888  %788888rb   c                    t           t           G d dt                                            } G d d          }d}|                     t          |          5  t          ||           d d d            n# 1 swxY w Y   |                     t          |          5  t          t          |           d d d            n# 1 swxY w Y   |                      |            |           |                     d|           d S )Nc                       e Zd ZU eed<   dS )kProtocolTests.test_protocol_decorated_with_final_noncallable_members.<locals>.ProtocolWithNonCallableMemberr   Nrf  rn   rb   r`   ProtocolWithNonCallableMemberrX    s          FFFFFrb   rY  c                       e Zd ZdZdS )QProtocolTests.test_protocol_decorated_with_final_noncallable_members.<locals>.Foor   Nr  rn   rb   r`   r   r[    s        AAArb   r   <Protocols with non-method members don't support issubclass()r   	r'   r+   r(   r  r   rX   r   r   r   )r[   rY  r   only_callable_members_pleases       r`   6test_protocol_decorated_with_final_noncallable_memberszDProtocolTests.test_protocol_decorated_with_final_noncallable_members  s   			 	 	 	 	H 	 	 
	 
		 	 	 	 	 	 	 	 L 	% ##I/KLL 	; 	;s9:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; ##I/KLL 	; 	;s9:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	ccee%BCCC  %BCCCCC$   A55A9<A9B==CCc                    t           t           G d dt                                            } G d d          }d}|                     t          |          5  t          ||           d d d            n# 1 swxY w Y   |                     t          |          5  t          t          |           d d d            n# 1 swxY w Y   |                      |            |           |                     d|           d S )Nc                   "    e Zd ZU eed<   ddZdS )`ProtocolTests.test_protocol_decorated_with_final_mixed_members.<locals>.ProtocolWithMixedMembersr   r   Nc                     d S rf   rn   r   s    r`   methodzgProtocolTests.test_protocol_decorated_with_final_mixed_members.<locals>.ProtocolWithMixedMembers.method  r   rb   r   N)rk   rl   rm   r   r   re  rn   rb   r`   ProtocolWithMixedMembersrc    s)          FFF))))))rb   rg  c                       e Zd ZdZddZdS )KProtocolTests.test_protocol_decorated_with_final_mixed_members.<locals>.Foor   r   Nc                     d S rf   rn   r   s    r`   re  zRProtocolTests.test_protocol_decorated_with_final_mixed_members.<locals>.Foo.method  r   rb   rf  )rk   rl   rm   r   re  rn   rb   r`   r   ri    s!        A))))))rb   r   r\  r   r]  )r[   rg  r   r^  s       r`   0test_protocol_decorated_with_final_mixed_membersz>ProtocolTests.test_protocol_decorated_with_final_mixed_members  s   			* 	* 	* 	* 	*x 	* 	* 
	 
	*	* 	* 	* 	* 	* 	* 	* 	*
 L 	% ##I/KLL 	6 	6s4555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 ##I/KLL 	6 	6s4555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	ccee%=>>>  %=>>>>>r`  N)<rk   rl   rm   r  r  r  r  r  r  r  r  r  r  r'  ra  rj  rv  r  r  r  r  r  r	  r  r)  r8  rE  rY  rn  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r&  r4  r=  rC  rK  rO  rU  r_  rk  rn   rb   r`   r  r  	  s       ' ' ',0 0 0 2 2 2) ) ),  :! ! !
! 
! 
!& & &$% % %@!$ !$ !$F.! .! .!`HX HX HXT> > >$ $ $64# 4# 4#lE1 E1 E1N< < <"#2 #2 #2J( ( ($* * *% % %"& & &"& & &$) ) )$) ) )4. . .&  + + +(!, !, !,F/ / /2  "
= 
= 
=C C C	> 	> 	>, , ,3 3 38  ' ' ':( ( (* * *:: : :< < <> > >< < <: : :
< < <9 9 9< < <% % %, , ,      7 7 7	9 	9 	9D D D,? ? ? ? ?rb   r  c                   R   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 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 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) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7S )8GenericTestsc                 *   t           t          t          f         }|                     |j        d           |                     t                    5  |t                    d d d            n# 1 swxY w Y   |                     t                    5  |t          t          f          d d d            n# 1 swxY w Y   t           t          t          f         }|                     |j        t          f           |t                    |                     t                    5  |t          t          f          d d d            n# 1 swxY w Y   t           t          t          f         }|                     t                    5  t          |t                      d d d            n# 1 swxY w Y   | 
                     |            t                      t          d          }|                     t          t          |         t          z           j        |f           d S )Nrn   r   )rN  r|  r   r   r  r   r   rK  r   rX   r   r   r    r  r  )r[   r  r  SM1r   s        r`   r5  zGenericTests.test_basics  s   #s(#)2...y)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	c3hKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	"c'")B5111	#y)) 	 	c3hKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	CH%y)) 	+ 	+sM***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ccee]333CLLd1go.=tDDDDDsH   A))A-0A-B//B36B3D<<E E :FF #F c                 b   t          d          }t          d          }|                     t                    5  t          |         |          d d d            n# 1 swxY w Y   |                     t                    5  t          |         |          d d d            n# 1 swxY w Y   |                     t                    5   G d dt          |         t          |                   }d d d            n# 1 swxY w Y   |                     t                    5  t	          g t
          t                              d d d            n# 1 swxY w Y   |                     t                    5  t          t          t
          t                              d d d            n# 1 swxY w Y   |                     t                    5   G d dt                    }d d d            n# 1 swxY w Y   |                     t                    5   G d dt          |         t          |                   }d d d            n# 1 swxY w Y   |                     t                    5   G d	 d
t
          |         t          |                   }d d d            n# 1 swxY w Y   |                     t                    5  t          d          d d d            n# 1 swxY w Y    G d dt          |                   }|                     t                    5  |d          d d d            d S # 1 swxY w Y   d S )Nr   rw  c                       e Zd ZdS )+GenericTests.test_generic_errors.<locals>.CNr~   rn   rb   r`   r=  rr    r   rb   r=  c                       e Zd ZdS )4GenericTests.test_generic_errors.<locals>.NewGenericNr~   rn   rb   r`   
NewGenericrt    r   rb   ru  c                       e Zd ZdS )3GenericTests.test_generic_errors.<locals>.MyGenericNr~   rn   rb   r`   	MyGenericrw  
  r   rb   rx  c                       e Zd ZdS )4GenericTests.test_generic_errors.<locals>.MyGeneric2Nr~   rn   rb   r`   
MyGeneric2rz    r   rb   r{  rn   c                       e Zd ZdS )+GenericTests.test_generic_errors.<locals>.DNr~   rn   rb   r`   r@  r}    r   rb   r@  )	r   r   r   r$   r   r    r   rX   r  )r[   r   rw  r=  ru  rx  r{  r@  s           r`   test_generic_errorsz GenericTests.test_generic_errors  s9   CLLCLLy)) 	 	AJqMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	AJqMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	1 	100000GAJ
000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1y)) 	& 	&r49%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&y)) 	( 	(tT#Y'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(y)) 	+ 	+*****W***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+y)) 	9 	988888GAJ
888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9y)) 	7 	766666T!Wgaj666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7y)) 	 	BKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!!!!
!!!y)) 	 	bEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA A>BB"%B"&C55C9<C9!EEE,&FF"%F"G##G'*G'&H::H>H>&JJJ6KKK	L$$L(+L(c                 J   t          d          }t          d          }|                     t                    5  t          ||f          d d d            n# 1 swxY w Y   |                     t                    5  t          |||f          d d d            d S # 1 swxY w Y   d S )Nr   rw  )r   r   r   r$   )r[   r   rw  s      r`   	test_initzGenericTests.test_init  s   CLLCLLy)) 	 	AqDMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	Aq!G	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AAA:BBBc                     G d dt           j        t                             } G d d|          }|                     |j        d           |                     t                    5  |j         d d d            n# 1 swxY w Y   d|_        d|_         G d d	|          } G d
 d|t                             }|                     |j        d           |                     |j        d           |                     |j        d           d S )Nc                        e Zd Z fdZ xZS )*GenericTests.test_init_subclass.<locals>.Xc                 H     t                      j        di | d| _        d S )Nr   rn   )r   __init_subclass__rx  )r\   r   r   s     r`   r  z<GenericTests.test_init_subclass.<locals>.X.__init_subclass__  s+    ))33F333rb   rk   rl   rm   r  r   r   s   @r`   r  r    s8                rb   r  c                       e Zd ZdS )*GenericTests.test_init_subclass.<locals>.YNr~   rn   rb   r`   r  r     r  rb   r  r   rq   r   c                       e Zd ZdS )*GenericTests.test_init_subclass.<locals>.ZNr~   rn   rb   r`   Zr  '  r  rb   r  c                       e Zd ZdS )*GenericTests.test_init_subclass.<locals>.WNr~   rn   rb   r`   r  r  )  r  rb   r  )rO   r$   r   r   rx  r   AttributeErrorr   )r[   r  r  r  r  s        r`   test_init_subclasszGenericTests.test_init_subclass  s   	 	 	 	 	q! 	 	 		 	 	 	 	 	 	 	$$$~.. 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	# 	 	 	###$$$$$$$$s   'A;;A?A?c                     |                      t          t                    dt           d           |                      t          t                    dt           d           d S )Nr   z.SimpleMapping'>z.MySimpleMapping'>)r   r   rN  rk   r\  r   s    r`   r   zGenericTests.test_repr/  st    m,,>H>>>	@ 	@ 	@o..@H@@@	B 	B 	B 	B 	Brb   c                 r   t          d          }t          d          } G d dt          |                   }|t          ||f                  }|                     ||t          ||f                             |                     ||t          ||f                             ||t
          f         }|                     |||t
          f                    |                     |||t
          f                    |                     |||t          f                    |t                   }|                     ||t                              |                     ||t
                              |                     |||                    |                     t          |                              d                     d S )Nr   rw  c                       e Zd ZdS )'GenericTests.test_chain_repr.<locals>.CNr~   rn   rb   r`   r=  r  9  r  rb   r=  z.C[typing.Tuple[str, int]])	r   r$   r   r   r   r   r|  r   rT  )r[   r   rw  r=  r  r  r  s          r`   test_chain_reprzGenericTests.test_chain_repr5  s   CLLCLL	 	 	 	 	
 	 	 	 eAqDkNAeAqDkN+++Aqq!t~...afIAafI&&&AqCy)))AqCy)))cFAcF###Aqv&&&Aqt$$$A(* * 	+ 	+ 	+ 	+ 	+rb   c                 P   t          d          }t          dd          }t          d          }|                     t          t                    d           |                     t          t          |                   d           |                     t          t          |                   d           |                     t          t          |         |         t                             d	           |                     t          t          t                             d	           d S )
Nr   UTrw  rw  ztyping.Listztyping.List[~T]ztyping.List[+U]ztyping.List[int])r   r   r   r    r   )r[   r   r  rw  s       r`   test_new_reprzGenericTests.test_new_reprM  s    CLLC4(((CLLd]333d1g(9:::d1g(9:::d1gajo..0BCCCd3i*<=====rb   c                    t          d          }t          d          }|                     t          t          j        ||f         ||f                   d           |                     t          t
          t          ||f                  t          |f                   d           |                     t          t
          t          ||f                  t
          t                                      d           d S )Nr   TSztyping.Mapping[~TS, ~T]z"typing.List[typing.Tuple[int, ~T]]z=typing.List[typing.Tuple[typing.List[int], typing.List[int]]])r   r   r   rO   r  r    r   r   )r[   r   r  s      r`   test_new_repr_complexz"GenericTests.test_new_repr_complexX  s    CLLT]]fnQU3BE:;;=VWWWd5B<0a899=	? 	? 	?eAqDk"49-..K	
 	
 	
 	
 	
rb   c                 b   t          d          }|                     t          t          |                   d           |                     t          t          j        |                   d            G d dt          j        t          t          f                   }t          |j                   d S )Nr   ztyping.Generic[~T]ztyping.Protocol[~T]c                       e Zd ZdS )*GenericTests.test_new_repr_bare.<locals>.CNr~   rn   rb   r`   r=  r  h  r   rb   r=  )	r   r   r   r$   rO   r(   r!   r   __mro__r[   r   r=  s      r`   test_new_repr_barezGenericTests.test_new_repr_bared  s    CLLgaj))+?@@@foa0113HIII+++++CH%+++QYrb   c                 @   t          d          } G d dt          |                   } |            }d|_        |                     |j        ddi            G d d|t
                             } |            }d|_        |                     |j        d	di           d S )
Nr   c                       e Zd ZdS )!GenericTests.test_dict.<locals>.BNr~   rn   rb   r`   r   r  o  r  rb   r   r   r  c                       e Zd ZdS )!GenericTests.test_dict.<locals>.CNr~   rn   rb   r`   r=  r  v  r  rb   r=  r  r)  )r   r$   r  r   r  r   r)  )r[   r   r   r   r=  r  s         r`   	test_dictzGenericTests.test_dictl  s    CLL	 	 	 	 	
 	 	 	 ACCeR[111	 	 	 	 	# 	 	 	 ACCeU^44444rb   c                     t          d          } G d dt          |                   }|                      |t                               |           d S )Nr   c                       e Zd Zd ZdS )7GenericTests.test_setattr_exceptions.<locals>.Immutablec                      t          d          )N	immutable)RuntimeErrorrU  s      r`   __setattr__zCGenericTests.test_setattr_exceptions.<locals>.Immutable.__setattr__  s    ";///rb   Nrk   rl   rm   r  rn   rb   r`   	Immutabler    s#        0 0 0 0 0rb   r  )r   r$   r   r   )r[   r   r  s      r`   test_setattr_exceptionsz$GenericTests.test_setattr_exceptions}  se    CLL	0 	0 	0 	0 	0
 	0 	0 	0 	nin..	:::::rb   c                    t          d          } G d dt          |                   }|                     |t                   j        d           |                     ||t                            j        d           d||t                            _        |                     |j        d           |                     |t
                   j        d           d|t          t
                            _        |                     |j        d           |                     |t          t                            j        d           |                      |            j        d           |                      |t          t
                                        j        d            G d d||                   }|                     |t                   j        d           |                     |j        d           d	|_        d
|t                   _        |                     |j        d           |                     |t                   j        d           |                     |j        d
           |                     |t
                   j        d	           d S )Nr   c                       e Zd ZdZdS )<GenericTests.test_subscripted_generics_as_proxies.<locals>.CdefNr  rn   rb   r`   r=  r    s        AAArb   r=  r  changednewc                       e Zd ZdS )<GenericTests.test_subscripted_generics_as_proxies.<locals>.DNr~   rn   rb   r`   r@  r    r  rb   r@  zfrom derived zzfrom derived x)	r   r$   r   r   r   r|  r    r  r   r[   r   r=  r@  s       r`   $test_subscripted_generics_as_proxiesz1GenericTests.test_subscripted_generics_as_proxies  s*   CLL	 	 	 	 	
 	 	 	35)))1S6e,,,!C&	i(((39---$s)e$$$5:%000	***5:*E222	 	 	 	 	! 	 	 	39---e$$$##i(((35))).///3#344444rb   c                 l   t          d          } G d dt          j        j        t          |                   }|                    t                     |                     d|           |t                    |                     d|           |                                 |	                                 d S )Nr   c                       e Zd ZdS ).GenericTests.test_abc_registry_kept.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  rq   )
r   r  r  r  r$   ru  r   r   _abc_registry_clear_abc_caches_clearr  s      r`   test_abc_registry_keptz#GenericTests.test_abc_registry_kept  s    CLL99999'999	

3a###	#a###		rb   c                      G d dt           t          t          f                   }|                     i |           |                     t          |           d S )Nc                       e Zd ZdS )5GenericTests.test_false_subclasses.<locals>.MyMappingNr~   rn   rb   r`   	MyMappingr    r   rb   r  )r"   r|  r   rd   r  )r[   r  s     r`   test_false_subclassesz"GenericTests.test_false_subclasses  sW    77777sCx0777  Y///  y11111rb   c                     G d dt           t          t          f                   } |                                             |                      |            t          j        j                    |                      |            t                      |                      |            t                     |                     i |           d S )Nc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )'GenericTests.test_abc_bases.<locals>.MMc                     d S rf   rn   r[   r  s     r`   rR  z3GenericTests.test_abc_bases.<locals>.MM.__getitem__  r  rb   c                     d S rf   rn   r[   r  rb  s      r`   rV  z3GenericTests.test_abc_bases.<locals>.MM.__setitem__  r  rb   c                     d S rf   rn   r  s     r`   __delitem__z3GenericTests.test_abc_bases.<locals>.MM.__delitem__  r  rb   c                      t          d          S r  iterr   s    r`   r2  z0GenericTests.test_abc_bases.<locals>.MM.__iter__      Bxxrb   c                     dS rL  rn   r   s    r`   __len__z/GenericTests.test_abc_bases.<locals>.MM.__len__  r  rb   Nrk   rl   rm   rR  rV  r  r2  r  rn   rb   r`   MMr    _                       rb   r  )r"   r|  updater   r  r  r   r    )r[   r  s     r`   test_abc_baseszGenericTests.test_abc_bases  s    
	 
	 
	 
	 
	S) 
	 
	 
	 	bbddKO$BCCCbbddN333  t,,,  R(((((rb   c                 <    G d dt           t          t          f         t          j        j                   } G d dt          j        j         t           t          t          f                   }|                     |j        t          j        j         t          f           d S )Nc                       e Zd ZdS )-GenericTests.test_multiple_bases.<locals>.MM1Nr~   rn   rb   r`   MM1r    r  rb   r  c                       e Zd ZdS )-GenericTests.test_multiple_bases.<locals>.MM2Nr~   rn   rb   r`   MM2r    r  rb   r  )r"   r|  r  r  r   	__bases__r$   )r[   r  r  s      r`   test_multiple_basesz GenericTests.test_multiple_bases  s    	 	 	 	 	.c*KO,J 	 	 		 	 	 	 	+/0.c2J 	 	 	)G(QRRRRRrb   c                     t          d          } G d dt          j        t          |f                   }|                     |j        t          j        t          |f         f           d S )Nr   c                       e Zd ZdS )'GenericTests.test_orig_bases.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  )r   rO   r!   r|  r   __orig_bases__r  s      r`   test_orig_baseszGenericTests.test_orig_bases  s_    CLL)))))CF#))))FKQ,?+ABBBBBrb   c                    d }|                       |ddit          j        t          t          f                              |                      |ddit          j        t          t          f                              |                     t                    5   |ddit          j        t          t          f                    d d d            n# 1 swxY w Y   d } G d dt          t                             }|                       | |t                               |t                                        |                      | |t                               |t                                        |                      | |t                               t                               |                     t                    5   |g d|t                              d d d            n# 1 swxY w Y   d } G d	 d
t          t                             }|                       |g d|                     |                      |ddg|                     d S )Nc                     t          |j                  dk    rt          |j        r8|j        \  t	          fd|                                 D                       S d S )Nr   c              3   ^   K   | ]'\  }}t          |          ot          |          V  (d S rf   )r   ).0r  rb  r   r   s      r`   	<genexpr>zSGenericTests.test_naive_runtime_checks.<locals>.naive_dict_check.<locals>.<genexpr>  sT        1 q"%%;*Q*;*;     rb   )r  r  r  r  allr  )r  tpr   r   s     @@r`   naive_dict_checkz@GenericTests.test_naive_runtime_checks.<locals>.naive_dict_check  s    2$%%)))){ B      #		      rb   r   rq   c                 F    t          | d          st          | j        |k    S )Nr  )hasattrr  r  r  r  s     r`   naive_generic_checkzCGenericTests.test_naive_runtime_checks.<locals>.naive_generic_check  s)    3 011 *))%++rb   c                       e Zd ZdS )4GenericTests.test_naive_runtime_checks.<locals>.NodeNr~   rn   rb   r`   Noder    r   rb   r  r  c                 :    t          fd| D                       S )Nc              3   d   K   | ]*}t          |j        d          j        d                    V  +dS )r   N)r   r  r  )r  r   r  s     r`   r  zXGenericTests.test_naive_runtime_checks.<locals>.naive_list_base_check.<locals>.<genexpr>  sQ       % % "!R%6q%9%B1%EFF % % % % % %rb   )r  r  s    `r`   naive_list_base_checkzEGenericTests.test_naive_runtime_checks.<locals>.naive_list_base_check  s;     % % % % #% % % % % %rb   c                       e Zd ZdS )1GenericTests.test_naive_runtime_checks.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  r  r   )r   rO   r!   r|  r   r   r   r  r   r$   r    )r[   r  r  r  r  r=  s         r`   test_naive_runtime_checksz&GenericTests.test_naive_runtime_checks  s   		 		 		 	((#q6;sCx3HIIJJJ))1c(FKS4IJJKKK233 	< 	<aXv{36':;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<	, 	, 	,
 	$####71:###++IDIKKcCCDDD,,YT#Y[[$s)DDEEE,,YT#Y[[$??@@@233 	6 	6			49555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6	% 	% 	% 	 S	--iii;;<<<..Sz1==>>>>>s$   +CCCG,,G03G0c                    t          d          }t          d          }t          d          } G d dt          |         |         |                   } G d d|t          |         |         |                   }|                     |j        |f           |                     |j        |f           |                     |t                   j        d           |                     |t                   j        d           |                     |t                   j        t          f           |                     |t                   j        t          f           |                     |j        t          t          f           |                     |j        |t          t          f           |                     |j	        t          |         |         |         f           |                     |j	        |t          |         |         |         f           d S )	Nr   r  r  c                       e Zd ZdS ).GenericTests.test_multi_subscr_base.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  c                       e Zd ZdS ).GenericTests.test_multi_subscr_base.<locals>.DNr~   rn   rb   r`   r@  r    r   rb   r@  rn   )
r   r    r   r  r   r  r  r  r$   r  )r[   r   r  r  r=  r@  s         r`   test_multi_subscr_basez#GenericTests.test_multi_subscr_base  s   CLLCLLCLL#####Q
1###&&&&&471:a=&&&)A4000)A40003.3333.33333&11133&111tWo666q$&8999)DGAJqM+;<<<)AtAwqz!}+=>>>>>rb   c                    t          d          } G d dt                    }|                     t          |         t          |                    |                     t          |t
          f         |         t          |t
          f                    |                     t          d|f         j        t          |f           d S )Nr   c                       e Zd ZdS ).GenericTests.test_subscript_meta.<locals>.MetaNr~   rn   rb   r`   Metar    r   rb   r  .)	r   r   r   r5   r   r   r#   r  Ellipsis)r[   r   r  s      r`   test_subscript_metaz GenericTests.test_subscript_meta  s    CLL4dT$Z000q#vt,eD#I.>???#t),5$7GHHHHHrb   c                     G d dt           t                             } G d dt           t                             }|                     ||           |                     t          j        t
                   t          j        t
                              |                     |j        |j                   |                     t          j        j        |j        t
                            t          j        j        |j        t
                                       |                     ||j                   |                     |t          j                   |                     |t          j        j                   |                     |j        t          j                   |                     |j        t          j        j                   |                     |t
                   |j        t
                              |                     |t          t                            |j        t          t                                       |                     |t
                   t          j        t
                              |                     |t
                   t          j        j        t
                              |                     |j        t                   t          j        t                              |                     |j        t          t                            t          j        j        t          t                                       |                     t          |t
                            t          |j        t
                                       |                     t          |t          t                                     t          |j        t          t                                                |                     t          t
          |t
                   f         t          t
          t          j        t
                   f                    |                     t          |t
                   |t
                   f         t          |t
                   t          j        t
                   f                    |                     t          j        |t
                            t          j        t          j        j        t
                                       |                     t!          t          |t
                                                          d                     |                     t!          t          |j        t
                                                          d                     |                     t!          t          t          j        t
                                                          d                     |                     t!          t          t          j        j        t
                                                          d                     d S )	Nc                       e Zd ZdS )+GenericTests.test_generic_hashes.<locals>.ANr~   rn   rb   r`   r   r            Crb   r   c                   6    e Zd Z G d dee                   ZdS )+GenericTests.test_generic_hashes.<locals>.Bc                       e Zd ZdS )-GenericTests.test_generic_hashes.<locals>.B.ANr~   rn   rb   r`   r   r            rb   r   N)rk   rl   rm   r$   r   r   rn   rb   r`   r   r    sB            GAJ     rb   r   z<locals>.A[str]]z<locals>.B.A[str]]zmod_generics_cache.A[str]]zmod_generics_cache.B.A[str]])r$   r   r   rM   r   r|  r   r   r    r   r   r   r   rO   	FrozenSetr   r   rT  r   s      r`   test_generic_hashesz GenericTests.test_generic_hashes  sv   	 	 	 	 	
 	 	 		 	 	 	 	
 	 	 	 	A+-c24F4H4MNNNac"""+-/C9+-/C9	; 	; 	; 	Aqs###A13444A135666AC!3!5666AC!3!5!7888AcFACH---Ad3iL!#d3i.999AcF$6$8$=>>>AcF$6$8$:3$?@@@ACH&8&:3&?@@@ACS	N,>,@,B49,MNNNE!C&M5S?;;;E!DI,/qs49~1FGGGE#qv+.c;M;OPS;T6T0UVVVE!C&!C&.1!!C&*<*>s*C"CD	F 	F 	FF,QsV4",-?-A-CC-HI	K 	K 	K 	U1S6]++445GHHIIIU13s8_--667KLLMMMU#5#7#<=>>!">??	A 	A 	AU#5#7#9##>?@@!"@AA	C 	C 	C 	C 	Crb   c                 2   t          d          }t          d          }|                     t          ||f         t                   t          t          t          f                    |                     t          j        t          ||f                  |         t          j        t          ||f                             |                     t                    5  t          |t          f         d          d d d            n# 1 swxY w Y   |                     t          |t          f         t                   t                     |                     t          ||f         t          t          t          t          f         f         t          t          t          f                     G d d          } G d d|          }|                     t          ||f         t          ||f                  t          ||f                    |                     t          |g|f         t                   t          t          gt          f                    |                     t          dt          |         f         t                   t          dt          t                   f                    d S )	Nr   r  rn   c                       e Zd ZdS )9GenericTests.test_extended_generic_rules_eq.<locals>.BaseNr~   rn   rb   r`   Baser  A  r   rb   r  c                       e Zd ZdS )<GenericTests.test_extended_generic_rules_eq.<locals>.DerivedNr~   rn   rb   r`   Derivedr  B  r   rb   r  .)r   r   r   r   rO   r  r   r   r   r|  r#   r   r    )r[   r   r  r  r  s        r`   test_extended_generic_rules_eqz+GenericTests.test_extended_generic_rules_eq7  s$   CLLCLLq!tS)5c?;;;q!t5a8&/%PQSTPT+:VWWWy)) 	 	!S&M"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	q#vs+S111q!tS%S/%9:E#s(OLLL     d   q$wdGm(<=uT7]?STTT1#q&)"-xb/ABBB#tAw,/4hsDI~6NOOOOOs   C;;C?C?c                    t          d          }|                     t          t          t          t
          f                                       dd          d           |                     t          t          t          t          t                   f                                       dd          d           |                     t          t
          dt          |         f         t                                                 dd          d           |                     t          t
          g t          |         f         t                                                 dd          d           d S )	Nr   ztyping.r   zUnion[Tuple, Callable]zUnion[Tuple, Tuple[int]].zCallable[..., Optional[int]]zCallable[[], List[int]])
r   r   r   r   r   r#   r  r   r   r    ro  s     r`    test_extended_generic_rules_reprz-GenericTests.test_extended_generic_rules_reprG  s(   CLLeE8O455==iLL1	3 	3 	3eE5:$5677??	2NN3	5 	5 	5hsHQK'78=>>FFyRTUU7	9 	9 	9hr47{3C899AA)RPP2	4 	4 	4 	4 	4rb   c                    dt           t           d                  fd}dt          t          t          d                            fd}dt          t          d                   t          z  fd} G d d          }|                     t          |t                      t                                dt           t           |                  i           |                     t          |t                      t                                dt          t          |                  i           |                     t          |t                      t                                dt          |t          z           t          z  i           t          d          }t          |d	f         }d|fd
}| 
                    t          |t                      t                                d         |           t          d	t           |         f         }d|fd}	| 
                    t          |	t                      t                                d         |           d S )Nr   CCc                     d S rf   rn   r   s    r`   foobarz5GenericTests.test_generic_forward_ref.<locals>.foobarS  r   rb   c                     d S rf   rn   r   s    r`   foobar2z6GenericTests.test_generic_forward_ref.<locals>.foobar2T  r   rb   zCC | intc                     d S rf   rn   r   s    r`   foobar3z6GenericTests.test_generic_forward_ref.<locals>.foobar3U  r   rb   c                       e Zd ZdS )1GenericTests.test_generic_forward_ref.<locals>.CCNr~   rn   rb   r`   r  r'  V  r   rb   r   .c                     d S rf   rn   r   s    r`   barfooz5GenericTests.test_generic_forward_ref.<locals>.barfoof  r   rb   c                     d S rf   rn   r   s    r`   barfoo2z6GenericTests.test_generic_forward_ref.<locals>.barfoo2i  r   rb   )r    r  rA   r   r   r,   r  r  r   r   r   r#   )
r[   r!  r#  r%  r  r   ATr)  CTr+  s
             r`   test_generic_forward_refz%GenericTests.test_generic_forward_refR  s   ,d4:&,,,,9tDD!1!1239999?tJz223c9????6799fhh77$tBx.!	
 	
 	
 	7GIIvxx88$tBx.!	
 	
 	
 	7GIIvxx88$rCx.3&'	
 	
 	

 CLL1c6]bnVWYYAA#FKKKc47l#rnWgiiBB3GLLLLLrb   c           
          G d d          }|                      t          |t                      t                                dt          |         i            G d d          }|                      t          |t                      t                                dt
          |t          t          t          |                           f         i           i }t          t          j	        d          |           |d         }|                      |j
        d         d           |                      t          |t                      t                                dt          t          |                  i           t          d	         }d
|fd}|                      t          |t                      t                                d
t          t          t          d	                            i           d S )Nc                   &    e Zd ZU ed         ed<   dS )8GenericTests.test_generic_pep585_forward_ref.<locals>.C1r  r  Nrk   rl   rm   r  r   rn   rb   r`   r  r1  o  s         DzMMMMMrb   r  r  c                   N    e Zd ZU edeeed                           f         ed<   dS )8GenericTests.test_generic_pep585_forward_ref.<locals>.C2r  r  r  N)rk   rl   rm   r  r  r    r   rn   rb   r`   r  r4  v  s6         D$tDJ/00111111rb   r  zf
        from __future__ import annotations
        class C3:
            a: List[list["C2"]]
        r  zList[list['C2']]r  r   c                     d S rf   rn   r   s    r`   ri   z7GenericTests.test_generic_pep585_forward_ref.<locals>.f  r   rb   )r   r,   r  r  r  r  r    r  textwrapdedentr   rA   )r[   r  r  scoper  r  ri   s          r`   test_generic_pep585_forward_refz,GenericTests.test_generic_pep585_forward_refl  s   	 	 	 	 	 	 	 	2wyy&((33$r(O	
 	
 	

	2 	2 	2 	2 	2 	2 	2 	22wyy&((33$r4T"X//01	
 	
 	
 X_    		 	 	
 4[+C02DEEE2wyy&((33$tBx.!	
 	
 	
 I1gii22$tJsOO,-.	
 	
 	
 	
 	
rb   c                     G d dt           t          t          f                   } G d dt           t          df                   } G d dt          j        t                             }|                     |j        t          t          f           |                     |t          t          f         j	        t          t          f           |                     |t          t          f         j
        |           |                     |j        t          f           |                     t          |t                                                 d          d	         d
           |                     |j        t          f           |                      |            t          j        j                   |                     |t          j        j                   |                      |            t"                     |                     |t"                     |                     t&                    5  t)          t           t          df         t          j                   d d d            n# 1 swxY w Y   |                     t&                    5  t)          t           t          df         t          j                   d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )@GenericTests.test_extended_generic_rules_subclassing.<locals>.T1Nr~   rn   rb   r`   r  r<    r   rb   r  c                       e Zd ZdS )@GenericTests.test_extended_generic_rules_subclassing.<locals>.T2Nr~   rn   rb   r`   r  r>    r   rb   r  .c                       e Zd Zd ZdS )@GenericTests.test_extended_generic_rules_subclassing.<locals>.C1c                     dS )NFrn   )r[   items     r`   __contains__zMGenericTests.test_extended_generic_rules_subclassing.<locals>.C1.__contains__  s    urb   N)rk   rl   rm   rC  rn   rb   r`   r  r@    r  rb   r  .zC1[int])r   r   r   rO   	Containerr   r  r   r|  r  r  r   splitr   r  r  ra   r  r   r   rX   Sequencer  )r[   r  r  r  s       r`   'test_extended_generic_rules_subclassingz4GenericTests.test_extended_generic_rules_subclassing  s   #####q"u###$$$$$q#v$$$	 	 	 	 	!!$ 	 	 	 	*QG444CH.c
;;;CF.333*QD111 	bg,,S11"5yAAA*QD111bbddKO$=>>>b+/";<<<bbddE***b%(((y)) 	9 	9uS#X888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9y)) 	9 	9uS#X888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s$   )-I""I&)I&-KKKc                 T   |                      t                    5  t          t                    d d d            n# 1 swxY w Y   |                      t                    5  t          t
                    d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                             d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                             d d d            d S # 1 swxY w Y   d S rf   )r   r   r    r   r   r   r%   r   r   s    r`   test_fail_with_bare_unionz&GenericTests.test_fail_with_bare_union  s   y)) 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	(OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	$ 	$Xc]##	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$y)) 	  	 #	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 sC   :>>A>>BB#CCC2DD!$D!c                    t          d          }|                     t                    5  t          t                    d d d            n# 1 swxY w Y   |                     t                    5  t
          t          |                   d d d            n# 1 swxY w Y   |                     t                    5  t          t          j                  d d d            d S # 1 swxY w Y   d S r  )r   r   r   r    r$   r   rO   r(   ro  s     r`   test_fail_with_bare_genericz(GenericTests.test_fail_with_bare_generic  s|   CLLy)) 	 	MM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	'!*	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	" 	"!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s5   A		AA.BBB8CC!$C!c                    t          d          }|                                   G d dt          ||f                   }|                      |t                               j        |           |                      |t                               j        |t                               G d dt          j	        ||f                   }|                      |t                               j        |           |                      |t                               j        |t                               G d dt          j
        t          |f                   }|                      |t                               j        |           |                      |t                               j        |t                               G d d	t          j        t          |f                   }|                      |t                               j        |           |                      |t                               j        |t                              d S )
Nr   c                       e Zd ZdS )5GenericTests.test_type_erasure_special.<locals>.MyTupNr~   rn   rb   r`   MyTuprP    r   rb   rQ  c                       e Zd ZdS )6GenericTests.test_type_erasure_special.<locals>.MyDictNr~   rn   rb   r`   MyDictrS    r   rb   rT  c                       e Zd ZdS )5GenericTests.test_type_erasure_special.<locals>.MyDefNr~   rn   rb   r`   MyDefrV    r   rb   rW  c                       e Zd ZdS )7GenericTests.test_type_erasure_special.<locals>.MyChainNr~   rn   rb   r`   MyChainrY    r   rb   rZ  )r   rj   r   r   r   r   r   r  rO   r!   DefaultDictr|  ChainMap)r[   r   rQ  rT  rW  rZ  s         r`   test_type_erasure_specialz&GenericTests.test_type_erasure_special  s   CLL%%%%%E!Q$K%%%jeCjll,e444s4eCjAAA,,,,,V[A&,,,kfSkmm-v6665vc{CCC44444F&sAv.444jeCjll,e444s4eCjAAA33333foc1f-333lgclnn.8886EEEEErb   c                 t   d t           j        D             }|D ]}|                     t          |          d           |                     ||           t          |dd           rxt          |t           j                  s^t          |j        t                    rDt          |j                  dk    r,|                     |t                   j        t          f           t          |t                    rC|j        D ];}|                     t          |          d           |                     ||           <d S )Nc              3   @   K   | ]}t          t          |          V  d S rf   )getattrrO   )r  els     r`   r  z4GenericTests.test_all_repr_eq_any.<locals>.<genexpr>  s,      ==##======rb   r   r  rq   )rO   __all__r   r   r   r`  r   r   r  r  r  r   r  r   r  )r[   objsr  bases       r`   test_all_repr_eq_anyz!GenericTests.test_all_repr_eq_any  s0   ==fn=== 	1 	1CS		2...S#&&&-t44 <&sFN;;<"3#5u==< C.//144  S!2SF;;;#t$$ 1K 1 1D''T

B777$$T40000	1 	1rb   c                    t          d          } G d dt          |                   } G d d|t                             at                      }d|_        d|_        t          t          j        dz             D ]}t          j	        ||          }t          j
        |          }|                     |j        d           |                     |j        d           |                     |j        ddd	           t          t          t          t           t"          t          t          t$          f         t"          t&                   t          t          d
f         t          d         t           t$          gt(          f         t*          j        t*          j        t                   g}|D ]`}t          t          j        dz             D ]A}t          j	        ||          }t          j
        |          }|                     ||           Bat&          t*          j        t*          j        t&          t                   t*          j        t*          j                 t*          j        t          t          t$          f                  g}	|	D ]`}t          t          j        dz             D ]A}t          j	        ||          }t          j
        |          }|                     ||           Bad S )Nr   c                       e Zd ZdS )#GenericTests.test_pickle.<locals>.BNr~   rn   rb   r`   r   rh    r  rb   r   c                       e Zd ZdS )r=  Nr~   rn   rb   r`   r=  r=    r  rb   r=  r   r  rq   r&  .rn   )r   r$   r   r=  r  r)  ru   rv   rw   r>  r=  r   r  r   r   r   r#   r%   r|  r    r  rO   r[  r  r  r5   r  AbstractSet)
r[   r   r   r  rt   r  r   r  r   more_sampless
             r`   r  zGenericTests.test_pickle  s   CLL	 	 	 	 	
 	 	 		 	 	 	 	# 	 	 	 CC62Q677 	D 	DEQ&&AQAQUB'''QUE***QZE)B)BCCCCuhc?HTNE#s(OU2YSE5L)%v'7'<>  	' 	'Av6:;; ' 'LE**LOO  A&&&&' fov{DIFN3V5GcSVh5XZ 	' 	'Av6:;; ' 'LE**LOO  A&&&&'	' 	'rb   c                    t          d          } G d dt          |                   }t          |t          f         t          |t          f         t          d         t
          d|f         t
          t          gt          f         t          t          t          f         ||         |t                   |t                   t          j        |         t          j        t                   t          j        t                   t          j	        t          t          f         t          j	        |t          f         t          t                   t          t          |                  t          d         t          dt          f         t          d         t          j        dt          f         g}|t          gz   D ]H}|                     |t          |                     |                     |t!          |                     Id S )Nr   c                       e Zd ZdS )1GenericTests.test_copy_and_deepcopy.<locals>.NodeNr~   rn   rb   r`   r  rn  	  r   rb   r  rn   .)r   r   )r   r$   r   r   r   r#   r   rO   r  r!   r|  r%   r    r  r   r   r   )r[   r   r  thingsrK  s        r`   test_copy_and_deepcopyz#GenericTests.test_copy_and_deepcopy  sM   CLL#####71:###3-q#vb	36"HcUCZ$8S/47DItCy&/RSBT/#&(<fk#s(>S+af%x}htAw6GxS/49fnS#X.FH 3% 	- 	-AQQ(((Q,,,,	- 	-rb   c                    t          d          at          dt                    at          dt          t
                    at          d          at          t          t          t          t          t          j        t          t          j        t          t          t           t"          fD ]}|                     |          5  |                     t)          |          |           |                     t+          |          |           t-          t.          j        dz             D ]=}|                     t/          j        t/          j        ||                    |           >	 d d d            n# 1 swxY w Y   bbbbt          d          }t          d	t                    }t          d
t          t
                    }t          d          }||||fD ]v}|                     |          5  |                     t)          |          |           |                     t+          |          |           d d d            n# 1 swxY w Y   wd S )Nr  TPBrs  TPVPP)r  rq   TLTLBTLVPL)r   r  r   rr  r  r|  rs  rE   rt  r    rO   r  r%   r  r   r   r   r#   rx   r   r   r   ru   rv   rw   r=  r>  )r[   r  rt   ru  rv  rw  rx  s          r`   $test_immutability_by_copy_and_picklez1GenericTests.test_immutability_by_copy_and_pickle  sz    T]]e3'''eUC((t__c3&/eX/ 	K 	KA A&& K Kd1ggq)))hqkk1---"6#:Q#>?? K KEMM&,v|Au/E/E"F"FJJJJKK K K K K K K K K K K K K K K
 S" T]]e3'''eUC((t__c3# 	. 	.AA&& . .d1ggq)))hqkk1---. . . . . . . . . . . . . . .	. 	.s&   <B!E**E.	1E.	'AH::H>	H>	c                    t          d           G fddt                             } |d          }|                     t          |          j        d           |                     t          |          j        d           |                     t          |          |           |                     t          |          |           d|_        |                     t          |          j        d           |                     t          |          j        d            |t                   d          }|                     t          |          j        d           |                     t          |          j        d           |                     t          |          |           |                     t          |          |           d|_        |                     t          |          j        d           |                     t          |          j        d           |                     |j        |t                              d S )Nr   c                        e Zd Zd ddfdZdS )3GenericTests.test_copy_generic_instances.<locals>.Crx  r   Nc                     || _         d S rf   r  r  s     r`   r   z<GenericTests.test_copy_generic_instances.<locals>.C.__init__3  r  rb   r   r  s   r`   r=  r|  2  s7        !Q !4 ! ! ! ! ! !rb   r=  r   rq   )	r   r$   r   r   rx  r   assertIsNotr   r  )r[   r=  r  cir   s       @r`   test_copy_generic_instancesz(GenericTests.test_copy_generic_instances0  s   CLL	! 	! 	! 	! 	! 	! 	!
 	! 	! 	! AbEEar***!)2...a!$$$!a(((aq)))!)1---QsVBZZb+++"*B///b2&&&"r***b***"*A...*AcF33333rb   c           	         t          d          }t          t          |t          f         t          d|f         t
          t          t          f         t          t          t                            t          j	        t          t          f         t          j        t                   t          j        d         g}|D ]2}|                      t          j        |                      |           3d S )Nr   .whatever)r   r   r   r   r#   r   r   r    rO   r  r|  r?   r  r  r   r  r  )r[   r   ro  rK  s       r`   test_weakref_allzGenericTests.test_weakref_allH  s    CLLuQV}hsAv&6c3h49%v~c3h'?,u%vz'BD  	2 	2A^W[^^--q1111	2 	2rb   c                    t          d          } G d dt          |                   } |            } |t                               }d|_        d|_        |                     t
                    5  d|_        d d d            n# 1 swxY w Y   |                     t
                    5  d|_        d d d            n# 1 swxY w Y   d|d         fd}|                     t          |t                      t                                d         ||                    |                     t          |t                             t          |t                                        d S )Nr   c                       e Zd ZdZdS )0GenericTests.test_parameterized_slots.<locals>.C)potatoNrk   rl   rm   	__slots__rn   rb   r`   r=  r  R  s        #IIIrb   r=  r   r   c                     d S rf   rn   r   s    r`   r  z2GenericTests.test_parameterized_slots.<locals>.foo_  r   rb   )r   r$   r   r  r   r  tomator   r,   r  r  r   r   )r[   r   r=  r  c_intr  s         r`   test_parameterized_slotsz%GenericTests.test_parameterized_slotsP  s   CLL	$ 	$ 	$ 	$ 	$
 	$ 	$ 	$ ACC#~.. 	 	AH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	~.. 	 	EL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 1S6WYYAA#F!MMMafx#'7'788888s$   0BBB)B==CCc                    t          d          } G d dt          |                   } |            } |t                               }d|_        d|_        |                     t
                    5  d|_        d d d            n# 1 swxY w Y   |                     t
                    5  d|_        d d d            d S # 1 swxY w Y   d S )Nr   c                       e Zd ZddiZdS )5GenericTests.test_parameterized_slots_dict.<locals>.Dbananar   Nr  rn   rb   r`   r@  r  e  s        !2IIIrb   r@  yesno)r   r$   r   r  r   r  r!  )r[   r   r@  r  d_ints        r`   test_parameterized_slots_dictz*GenericTests.test_parameterized_slots_dictc  sT   CLL	' 	' 	' 	' 	'
 	' 	' 	' ACC#~.. 	 	AH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	~.. 	  	 EL	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s$   0BBB)B>>CCc                     |                      t                    5  t          t          t          f         } G d dt
          |                   }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )#GenericTests.test_errors.<locals>.CNr~   rn   rb   r`   r=  r  v  r   rb   r=  )r   r   rN  rK  r   r$   )r[   r   r=  s      r`   r   zGenericTests.test_errorsr  s    y)) 	 	b#g&A    GAJ   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   3AA"Ac                 2    G d dt           t                             }|                     |j        t                     |                     |j        d           |t                   }|                     |j        t                     |                     t          |                              d          d         d            G d d|t                             }|                     |j        t                     |                     |j        d	           d S )
Nc                       e Zd ZdS )#GenericTests.test_repr_2.<locals>.CNr~   rn   rb   r`   r=  r  z  r  rb   r=  r  rD  rE  zC[int]c                       e Zd ZdS )#GenericTests.test_repr_2.<locals>.YNr~   rn   rb   r`   r  r    r  rb   r  r  )	r$   r   r   rl   rk   rm   r   r   rG  )r[   r=  r  r  s       r`   test_repr_2zGenericTests.test_repr_2y  s0   	 	 	 	 	
 	 	 	 	x000>	@ 	@ 	@cFx000as++B/:::	 	 	 	 	# 	 	 	 	x000>	@ 	@ 	@ 	@ 	@rb   c                    |                      t          t                     |                      t          t                   t          t                              |                     t          t                   t          t
                              d S rf   )r   r$   r   r   r   r   r   s    r`   	test_eq_1zGenericTests.test_eq_1  sZ    '***WQZ000GBK55555rb   c                     G d dt           t                             } G d dt           t                             }|                     ||           |                     ||           |                     |t                   |t                              |                     |t                   |t                              d S )Nc                       e Zd ZdS )!GenericTests.test_eq_2.<locals>.ANr~   rn   rb   r`   r   r    r  rb   r   c                       e Zd ZdS )!GenericTests.test_eq_2.<locals>.BNr~   rn   rb   r`   r   r    r  rb   r   )r$   r   r   r   r   s      r`   	test_eq_2zGenericTests.test_eq_2  s    	 	 	 	 	
 	 	 		 	 	 	 	
 	 	 	 	AAq!!!1qt$$$AaD!A$'''''rb   c           	          G d dt           t          t          f                   } G d dt           t          t          f                   } G d d|t          t          f         t           t          t          t          f         |t          t          f                   }|                     |j        t          t          t          f           d S )Nc                       e Zd ZdS )1GenericTests.test_multiple_inheritance.<locals>.ANr~   rn   rb   r`   r   r    r  rb   r   c                       e Zd ZdS )1GenericTests.test_multiple_inheritance.<locals>.BNr~   rn   rb   r`   r   r    r  rb   r   c                       e Zd ZdS )1GenericTests.test_multiple_inheritance.<locals>.CNr~   rn   rb   r`   r=  r    r  rb   r=  )r$   r   r   r   r   r  )r[   r   r   r=  s       r`   test_multiple_inheritancez&GenericTests.test_multiple_inheritance  s    	 	 	 	 	2 	 	 		 	 	 	 	A 	 	 		 	 	 	 	!R%'"a),aAh 	 	 	 	)B2;77777rb   c                     t          d          } G d dt          |                   } G d dt          t                   |          }|                     |j        |t          |t          t          f           d S )Nrw  c                       e Zd ZdS )9GenericTests.test_multiple_inheritance_special.<locals>.BNr~   rn   rb   r`   r   r    r   rb   r   c                       e Zd ZdS )9GenericTests.test_multiple_inheritance_special.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  )r   r$   r    r   r   r  r  rT  )r[   rw  r   r=  s       r`   !test_multiple_inheritance_specialz.GenericTests.test_multiple_inheritance_special  st    CLL     
   """""S	1"""Qa&$ABBBBBrb   c                     G d dt                      G fdd           G d dt          t                             }|                               5   G d d|          }d d d            n# 1 swxY w Y   |                               5   G d	 d
|t                             }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )DGenericTests.test_init_subclass_super_called.<locals>.FinalExceptionNr~   rn   rb   r`   FinalExceptionr    r  rb   r  c                   &     e Zd Zd fdZ xZS );GenericTests.test_init_subclass_super_called.<locals>.Finalr   Nc                     | j         D ]!}|urt          |          r |          " t                      j        di | d S r  )r  rX   r   r  )r\   r   rd  r&   r  r   s      r`   r  zMGenericTests.test_init_subclass_super_called.<locals>.Final.__init_subclass__  sb    M 3 3D5((Ze-D-D(,nT222))33F33333rb   rf  r  )r   r&   r  s   @r`   r&   r    sH        4 4 4 4 4 4 4 4 4 4 4 4rb   r&   c                       e Zd ZdS ):GenericTests.test_init_subclass_super_called.<locals>.TestNr~   rn   rb   r`   r  r    r  rb   r  c                       e Zd ZdS )>GenericTests.test_init_subclass_super_called.<locals>.SubclassNr~   rn   rb   r`   Subclassr    r   rb   r  c                       e Zd ZdS )?GenericTests.test_init_subclass_super_called.<locals>.Subclass2Nr~   rn   rb   r`   	Subclass2r    r   rb   r  )	Exceptionr$   r   r   r   )r[   r  r  r  r&   r  s       @@r`   test_init_subclass_super_calledz,GenericTests.test_init_subclass_super_called  s   	 	 	 	 	Y 	 	 		4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4	 	 	 	 	71:u 	 	 	~.. 	 	    4   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ~.. 	 	    DI   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   A55A9<A9B<<C C c                    t           } G d d|t                             }|t          j        t                            } G d d|          } |            }|                    g            |                    d           |                    d           |                     |                                ddg           d S )Nc                   0    e Zd ZdZdefdZd ZdefdZdS ))GenericTests.test_nested.<locals>.VisitorNr  c                     || _         d S rf   r  r[   r  s     r`   rC  z-GenericTests.test_nested.<locals>.Visitor.set  r   rb   c                     | j         S rf   r  r   s    r`   rZ  z-GenericTests.test_nested.<locals>.Visitor.get  	    vrb   r   c                     | j         S rf   r  r   s    r`   visitz/GenericTests.test_nested.<locals>.Visitor.visit  r  rb   )rk   rl   rm   r  r   rC  rZ  r  rn   rb   r`   Visitorr    s^        AQ      q      rb   r  c                       e Zd ZdefdZdS )0GenericTests.test_nested.<locals>.IntListVisitorr   c                 :    | j                             |           d S rf   )r  r  r   s     r`   r  z7GenericTests.test_nested.<locals>.IntListVisitor.append  s    a     rb   N)rk   rl   rm   r   r  rn   rb   r`   IntListVisitorr    s/        ! ! ! ! ! ! !rb   r  rq   r   )	r$   r   rO   r    r   rC  r  r   rZ  )r[   ry  r  r  r  r  s         r`   test_nestedzGenericTests.test_nested  s    	 	 	 	 	ad 	 	 	 FK$%	! 	! 	! 	! 	!Q 	! 	! 	!
 N	b					1b'*****rb   c                      t          d           G fddt                             df fd} |d           d S )Nr   c                   *    e Zd Z	 	 dd ddddfdZdS ),GenericTests.test_type_erasure.<locals>.NodeNrj  leftNode[T]rightc                 0    || _         || _        || _        d S rf   rj  r  r  )r[   rj  r  r  s       r`   r   z5GenericTests.test_type_erasure.<locals>.Node.__init__  s     #
 	"


rb   NNr   r  s   r`   r  r    sK        +/,0# #a #(# )# # # # # #rb   r  r   c                     |           }          |           } t                    |           }                    t          |                                         t          |                                         t          |                                         |j        |                                |j        |                                |j        |            d S rf   )r   r   r   r   rj  )r   r  r   r  r  r   r[   s       r`   r  z+GenericTests.test_type_erasure.<locals>.foo  s    QAQ

AS	!AMM$q''4(((MM$q''4(((MM$q''4(((QWa(((QWa(((QWa(((((rb   r   r   r$   )r[   r  r  r   s   ` @@r`   r  zGenericTests.test_type_erasure  s    CLL	# 	# 	# 	# 	# 	# 	#71: 	# 	# 	#		)1 		) 		) 		) 		) 		) 		) 		) 		) 	Brb   c                    t          d          } G d dt          |                   } G d d|          }|                     |j        d           |                     t
                    5  |t                    d d d            n# 1 swxY w Y   |                     t
                    5  |t                    d d d            n# 1 swxY w Y   |                     t
                    5  ||          d d d            d S # 1 swxY w Y   d S )Nr   c                       e Zd ZdS ))GenericTests.test_implicit_any.<locals>.CNr~   rn   rb   r`   r=  r    r  rb   r=  c                       e Zd ZdS ))GenericTests.test_implicit_any.<locals>.DNr~   rn   rb   r`   r@  r    r  rb   r@  rn   )r   r$   r   r  r   r   r   r   r  s       r`   test_implicit_anyzGenericTests.test_implicit_any  s   CLL	 	 	 	 	
 	 	 		 	 	 	 	 	 	 	 	)2...y)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	aDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   ,BB
B
+CC	C	*	D  DDc                      G d dt           t                             } G d d          } G d d||          } |d          }|                     |j        d           d S )Nc                       e Zd ZdS )*GenericTests.test_new_with_args.<locals>.ANr~   rn   rb   r`   r   r    r  rb   r   c                        e Zd Z fdZ xZS )*GenericTests.test_new_with_args.<locals>.Bc                 X    t                                          |           }||_        |S rf   )r   r  r   r\   r   r  r   s      r`   r  z2GenericTests.test_new_with_args.<locals>.B.__new__  s$    ggooc**
rb   r  r   s   @r`   r   r    8                rb   r   c                       e Zd ZdS )*GenericTests.test_new_with_args.<locals>.CNr~   rn   rb   r`   r=  r    r  rb   r=  r  )r$   r   r   r   r[   r   r   r=  r  s        r`   test_new_with_argszGenericTests.test_new_with_args  s    	 	 	 	 	
 	 	 		 	 	 	 	 	 	 		 	 	 	 	1 	 	 	 AeHH&&&&&rb   c                      G d d          } G d dt           t                   |          } |d          }|                     |j        d           |                     |j        d           d S )Nc                        e Zd Z fdZ xZS )+GenericTests.test_new_with_args2.<locals>.Ac                 V    || _         t                                                       d S rf   )from_ar   r   r[   r   r   s     r`   r   z4GenericTests.test_new_with_args2.<locals>.A.__init__!  s&    !  """""rb   r   r   s   @r`   r   r     s8        # # # # # # # # #rb   r   c                        e Zd Z fdZ xZS )+GenericTests.test_new_with_args2.<locals>.Cc                 X    || _         t                                          |           d S rf   )from_cr   r   r  s     r`   r   z4GenericTests.test_new_with_args2.<locals>.C.__init__(  s(    !  %%%%%rb   r   r   s   @r`   r=  r  '  s8        & & & & & & & & &rb   r=  r  )r$   r   r   r  r  )r[   r   r=  r  s       r`   test_new_with_args2z GenericTests.test_new_with_args2  s    	# 	# 	# 	# 	# 	# 	# 	#	& 	& 	& 	& 	&
A 	& 	& 	& AeHH5)))5)))))rb   c                     G d dt           t                             }|                     t                    5   |d           d d d            n# 1 swxY w Y    G d d          } G d d||          } |d          }|                     |j        d           |                     |j        d           |                     |j        d	           d S )
Nc                       e Zd ZdS )(GenericTests.test_new_no_args.<locals>.ANr~   rn   rb   r`   r   r  3  r  rb   r   r  c                        e Zd Z fdZ xZS )(GenericTests.test_new_no_args.<locals>.Bc                 X    t                                          |           }d|_        |S )Nr   )r   r  from_b)r\   r  r   s     r`   r  z0GenericTests.test_new_no_args.<locals>.B.__new__:  $    ggooc** 

rb   r  r   s   @r`   r   r	  9  r  rb   r   c                   $     e Zd Zd Z fdZ xZS )(GenericTests.test_new_no_args.<locals>.Cc                     || _         d S rf   r   rz  s     r`   r   z1GenericTests.test_new_no_args.<locals>.C.__init__B  s    rb   c                 X    t                                          |           }d|_        |S )Nr  )r   r  r  r  s      r`   r  z0GenericTests.test_new_no_args.<locals>.C.__new__E  r	  rb   )rk   rl   rm   r   r  r   r   s   @r`   r=  r	  A  sG                  rb   r=  r   r  )r$   r   r   r   r   r   r	  r  r  s        r`   test_new_no_argszGenericTests.test_new_no_args1  sY   	 	 	 	 	
 	 	 	 y)) 	 	AeHHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 		 	 	 	 	1 	 	 	 AeHH&&&3'''3'''''s   AAAc           
      0   t           t                   t          t                   t          t          t          f         t
          t                   t          d         t          t          t          d          f         t          t                   fD ]}| 
                    |          5  |                     t          dt          j        d|           d          5   G d d|          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )	Nr  r  )r^   ^zCannot subclass $c                       e Zd ZdS )4GenericTests.test_subclass_special_form.<locals>.FooNr~   rn   rb   r`   r   r	  ^          rb   r   )r%   r   r&   r   r  r   r   rF   rE   rI   rx   r  r   reescape)r[   r  r   s      r`   test_subclass_special_formz'GenericTests.test_subclass_special_formP  s   SM#J#u*SMDMYs^^+,cN
 	 	C #&&  ++!#Ory1KC1K1K'L'L#O#O#O       c                               	 	s6   #5D
C3'D
3C77D
:C7;D

D	D	c                     t          dd          } G d dt          |                   }t          d          } G d d|t          |                   }d S )	Nrv  Trw  c                       e Zd ZdS )2GenericTests.test_complex_subclasses.<locals>.BaseNr~   rn   rb   r`   r  r	  d  r  rb   r  r   c                       e Zd ZdS )1GenericTests.test_complex_subclasses.<locals>.SubNr~   rn   rb   r`   r   r	  j  r  rb   r   r  )r[   rv  r  r   r   s        r`   test_complex_subclassesz$GenericTests.test_complex_subclassesa  s    v...	 	 	 	 	74= 	 	 	 CLL	 	 	 	 	$
 	 	 	 	 	rb   c           	      >   |                      t          t                   j        t          f           |                      t          t          t                            j        t          f            G d d          }t          t          fD ]}|t
          t          t          t          t          j
        t          j        fD ]w}|                     ||          5  |                     t          d          5  ||         t                    d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   x|                      t           |                     j        t          f           |                      t           |                     j        t          f           d S )Nc                       e Zd ZefZdS )0GenericTests.test_parameter_detection.<locals>.AN)rk   rl   rm   r   r  rn   rb   r`   r   r	  p  s        TNNNrb   r   )r  subz.* is not a generic class)r   r    r   r  r  r   r   r   rE   r  r  	UnionTyperx   r  r   r|  )r[   r   r  r   s       r`   test_parameter_detectionz%GenericTests.test_parameter_detectionm  s   a/!666d1g5t<<<	" 	" 	" 	" 	" 	" 	" 	"  	" 	"Ag|Y@RTYTcd " "\\!\33 " "//	;VWW " "!S		" " " " " " " " " " " " " " "" " " " " " " " " " " " " " "" 	aacc1A4888aacc1A488888s6   D(1D	D(DD(DD((D,/D,c           
         t          d           G d dt                             } G fdd          }t          ||t          t          t           t
          t          t          j        t          j	        f
D ]}t          t          fD ]}|                     ||          5  |                     ||f         t                   ||t          f                    |                     ||f         t                   |t          |f                    ||         }|                     t                    5  |t                    d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t           t"          j        j        fD ]}|                     ||          5  |                     ||gf         t                   ||gt          f                    |                     |g|f         t                   |t          g|f                    ||g|f         }|                     t                    5  |t                    d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nr   c                       e Zd ZdS )2GenericTests.test_non_generic_subscript.<locals>.GNr~   rn   rb   r`   ry  r!	    r  rb   ry  c                       e Zd Z fZdS )2GenericTests.test_non_generic_subscript.<locals>.AN)rk   rl   rm   r  r  s   r`   r   r#	    s        TNNNrb   r   )r  r	  )callabler	  )r   r$   r   r    r  r   rE   r  r  r	  r   r  rx   r   r   r   r#   r  r  )r[   ry  r   r   rK  r  r  r   s          @r`   test_non_generic_subscriptz'GenericTests.test_non_generic_subscript~  s`   CLL	 	 	 	 	
 	 	 		" 	" 	" 	" 	" 	" 	" 	" 	" 	" q!T4<$eo7 	 	A E\  \\q\11  $$Qq!tWS\1QV9===$$Qq!tWS\1S!V9===!A**955  #              	               {77  \\1!\44  $$QsAvYs^QsCx[AAA$$QsAvYs^Quax[AAA1#q&	A**955  #              	              	 	sn   !BE!0E
	>E!
EE!EE!!E%(E%BI%4I	I%II%II%%I),I)N)9rk   rl   rm   r5  r~  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r.  r9  rI  rK  rM  r]  re  r  rp  ry  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r		  r	  r	  r	  r%	  rn   rb   r`   rm  rm    sc       E E E&  2  % % %(B B B+ + +0	> 	> 	>

 

 

  5 5 5"	; 	; 	;5 5 56  2 2 2
) ) )&S S SC C C
"? "? "?H? ? ?"I I I(C (C (CTP P P 	4 	4 	4M M M4%
 %
 %
N9 9 9:     " " "F F F"1 1 1"' "' "'H- - -. . .84 4 402 2 29 9 9&       @ @ @$6 6 6
( ( (8 8 8C C C  &+ + +<  0  $' ' '&* * *&( ( (>  "
 
 
9 9 9"    rb   rm  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )ClassVarTestsc                 <   |                      t                    5  t          t          t          f          d d d            n# 1 swxY w Y   |                      t                    5  t          t                   t                    d d d            d S # 1 swxY w Y   d S rf   )r   r   r%   r   r|  r   s    r`   r5  zClassVarTests.test_basics  s   y)) 	 	S#X	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	SM#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AAA&BBBc                 :   |                      t          t                    d           t          t                   }|                      t          |          d           t          t                   }|                      t          |          dt
          z             d S )Nztyping.ClassVartyping.ClassVar[int]ztyping.ClassVar[%s.Employee])r   r   r%   r   r}   rk   r[   cvs     r`   r   zClassVarTests.test_repr  sw    h):;;;c]b#9:::hb#AH#LMMMMMrb   c           	      f   |                      t                    5   G d dt          t                              }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t          t                                       }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )-ClassVarTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   r=  r/	    r   rb   r=  c                       e Zd ZdS )-ClassVarTests.test_cannot_subclass.<locals>.DNr~   rn   rb   r`   r@  r1	    r   rb   r@  )r   r   r   r%   r   rA  s      r`   r   z"ClassVarTests.test_cannot_subclass  sK   y)) 	 	    DNN   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    D#''   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#   !AAA-,B&&B*-B*c                    |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            n# 1 swxY w Y   |                      t                    5   t          t          t          t
                                                   d d d            d S # 1 swxY w Y   d S rf   )r   r   r%   r   r   r   r   s    r`   rD  zClassVarTests.test_cannot_init     y)) 	 	JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	, 	,)D(3-())+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,0   6::BBB)3C))C-0C-c                 D   |                      t                    5  t          dt          t                              d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                     d d d            d S # 1 swxY w Y   d S rF  )r   r   r   r%   r   rX   r   s    r`   rG  z ClassVarTests.test_no_isinstance     y)) 	) 	)q(3-(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)y)) 	& 	&sH%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&#   !AAA-BBBNrk   rl   rm   r5  r   r   rD  rG  rn   rb   r`   r'	  r'	    sb          N N N  , , ,& & & & &rb   r'	  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )
FinalTestsc                    t           t                    |                     t                    5  t           t          t          f          d d d            n# 1 swxY w Y   |                     t                    5  t           t                   t                    d d d            n# 1 swxY w Y   |                     t                    5  t
          t           t                             d d d            d S # 1 swxY w Y   d S rf   )r&   r   r   r   r|  r   r   s    r`   r5  zFinalTests.test_basics  s~   c

y)) 	 	#s(OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	#JsOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	! 	!U3Z  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s5   AAA8B""B&)B&C22C69C6c                    |                      t          t                    d           t          t                   }|                      t          |          d           t          t                   }|                      t          |          dt
          z             t          t          t                            }|                      t          |          d           d S )Nztyping.Finalztyping.Final[int]ztyping.Final[%s.Employee]ztyping.Final[tuple[int]])r   r   r&   r   r}   rk   r  r+	  s     r`   r   zFinalTests.test_repr  s    en5553Zb#67778_b#>#IJJJ5:b#=>>>>>rb   c           	      f   |                      t                    5   G d dt          t                              }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t          t                                       }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )*FinalTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   r=  r@	    r   rb   r=  c                       e Zd ZdS )*FinalTests.test_cannot_subclass.<locals>.DNr~   rn   rb   r`   r@  rB	    r   rb   r@  )r   r   r   r&   r   rA  s      r`   r   zFinalTests.test_cannot_subclass  sK   y)) 	 	    DKK   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    Ds$$   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r2	  c                    |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            n# 1 swxY w Y   |                      t                    5   t          t          t          t
                                                   d d d            d S # 1 swxY w Y   d S rf   )r   r   r&   r   r   r   r   s    r`   rD  zFinalTests.test_cannot_init  s   y)) 	 	GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DKKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	) 	)&Dx}%&&(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r5	  c                 D   |                      t                    5  t          dt          t                              d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                     d d d            d S # 1 swxY w Y   d S rF  )r   r   r   r&   r   rX   r   s    r`   rG  zFinalTests.test_no_isinstance  s   y)) 	& 	&q%*%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&y)) 	# 	#sE"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#r8	  Nr9	  rn   rb   r`   r;	  r;	    s_        ! ! !? ? ?  ) ) )# # # # #rb   r;	  c                       e Zd Zd Zd ZdS )FinalDecoratorTestsc                 R    d }|                      |t          |                     d S )Nc                     d S rf   rn   r   s    r`   funcz7FinalDecoratorTests.test_final_unmodified.<locals>.func  r   rb   )r   r'   r[   rI	  s     r`   test_final_unmodifiedz)FinalDecoratorTests.test_final_unmodified  s+    dE$KK(((((rb   c                    t           d             }t            G d d                      }|                     d|j                   |                     d|j                    G d d          }t           |d                         }|                     ||           |                     dt	          |d	                      G d
 dt
                    }t            G d d|                      }|                     |j        d           t          t                     |                     dt	          t          d	                      G d d          }|                     dt          j	        |d          j                   |                     dt          j	        |d          j                   |                     d|j
        j        j                   |                     d|j        j                   d S )Nc                      d S rf   rn   rn   rb   r`   rI	  z3FinalDecoratorTests.test_dunder_final.<locals>.func      Crb   c                       e Zd ZdS )2FinalDecoratorTests.test_dunder_final.<locals>.ClsNr~   rn   rb   r`   ClsrP	    s        3rb   rQ	  Tc                       e Zd ZdZd Zd ZdS )6FinalDecoratorTests.test_dunder_final.<locals>.WrapperrI	  c                     || _         d S rf   rT	  rJ	  s     r`   r   z?FinalDecoratorTests.test_dunder_final.<locals>.Wrapper.__init__  r  rb   c                      | j         |i |S rf   rT	  r   s      r`   r  z?FinalDecoratorTests.test_dunder_final.<locals>.Wrapper.__call__  s     ty$1&111rb   N)rk   rl   rm   r  r   r  rn   rb   r`   WrapperrS	    s7        !I! ! !2 2 2 2 2rb   rW	  c                      d S rf   rn   rn   rb   r`   wrappedz6FinalDecoratorTests.test_dunder_final.<locals>.wrapped   s    srb   F	__final__c                   $    e Zd Zed             ZdS )3FinalDecoratorTests.test_dunder_final.<locals>.Metac                     dS )Ncan't set mern   r   s    r`   rZ	  z=FinalDecoratorTests.test_dunder_final.<locals>.Meta.__final__  s    (6rb   N)rk   rl   rm   r  rZ	  rn   rb   r`   r  r\	    s#        66 X666rb   r  c                       e Zd ZdS )7FinalDecoratorTests.test_dunder_final.<locals>.WithMetaNr~   rn   rb   r`   WithMetar`	  	  s        (+rb   ra	  rm  r^	  c                       e Zd Zeed                         Zeed                         Zeed                         Z	e e
            d                         ZdS )6FinalDecoratorTests.test_dunder_final.<locals>.Methodsc                     d S rf   rn   r\   s    r`   	clsmethodz@FinalDecoratorTests.test_dunder_final.<locals>.Methods.clsmethod  s     #rb   c                      d S rf   rn   rn   rb   r`   stmethodz?FinalDecoratorTests.test_dunder_final.<locals>.Methods.stmethod      Crb   c                     d S rf   rn   r   s    r`   propz;FinalDecoratorTests.test_dunder_final.<locals>.Methods.prop  ri	  rb   c                     d S rf   rn   r   s    r`   cachedz=FinalDecoratorTests.test_dunder_final.<locals>.Methods.cached"  s    !crb   N)rk   rl   rm   r'   rm  rf	  staticmethodrh	  r  rk	  r   rm	  rn   rb   r`   Methodsrc	    s        ## [ U# \ U  U XY[[!! [ U!!!rb   ro	  rf	  rh	  )r'   r   rZ	  r   r  r   r   r   inspectgetattr_staticrk	  fgetrm	  )r[   rI	  rQ	  rW	  rY	  r  ra	  ro	  s           r`   test_dunder_finalz%FinalDecoratorTests.test_dunder_final  s/   	 
	 
dDN+++dCM***	2 	2 	2 	2 	2 	2 	2 	2 
	 
 
gw///eWWk::;;;	7 	7 	7 	7 	74 	7 	7 	7 
++++++++ 
++^<<< 	c


eWS+66777	" 	" 	" 	" 	" 	" 	" 	"* 	"7K88B	
 	
 	
 	"7J77A	
 	
 	
 	dGL-7888dGN455555rb   N)rk   rl   rm   rK	  rs	  rn   rb   r`   rF	  rF	    s7        ) ) )B6 B6 B6 B6 B6rb   rF	  c                       e Zd Zd Zd ZdS )	CastTestsc                    |                      t          t          d          d           |                      t          t          d          d           |                     t          t          t          d                    t                     |                      t          t          d          d           |                      t          t          d          d           |                      t          t          t          t          f         d          d           |                      t          t          d          d           |                      t          d d          d           d S r   )r   r*   r   r  r   r   r   r  r   r|  r   r   s    r`   r5  zCastTests.test_basics6  s   c2+++eR"---d4r??++S111c2+++dB,,,eCJ/44b999fb))2...dB,,,,,rb   c                 F    t          dd           t          dd           d S Nr   hello)r*   r   s    r`   r   zCastTests.test_errors@  s%    RWbrb   Nrk   rl   rm   r5  r   rn   rb   r`   ru	  ru	  4  s2        - - -    rb   ru	  c                       e Zd Zd Zd ZdS )AssertTypeTestsc                 X   d}|                      t          |t                    |           |                      t          |t          t          z            |           |                      t          |t
                    |           |                      t          |d           |           d S r   )r   r)   r   r|  r  r   rz  s     r`   r5  zAssertTypeTests.test_basicsH  s    k#s++S111k#sU{33S999k#v..444k#t,,c22222rb   c                     d}|                      t          |d          |           |                      t          |d          |           d S rx	  )r   r)   rz  s     r`   r   zAssertTypeTests.test_errorsO  sI    k#r**C000k#w//55555rb   Nrz	  rn   rb   r`   r|	  r|	  F  s2        3 3 36 6 6 6 6rb   r|	  )ann_module8c                   &    e Zd Zej        j        ZdS )NoTypeCheck_OuterN)rk   rl   rm   r	  r	  Innerrn   rb   r`   r	  r	  Y  s        )/EEErb   r	  c                       e Zd Zej        ZdS )NoTypeCheck_WithFunctionN)rk   rl   rm   r	  NoTypeCheck_functionrn   rb   r`   r	  r	  ]  s        &;rb   r	  c                       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 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 Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d%S )&ForwardRefTestsc                 B    G d dt           t                             }|t                   }t          |j        t                      t                                }|                     |d         t          |t                                       |                     |d         |t                              |                     |d         t                     | 	                    d|           t          |j
        t                      t                                }|                     |d         t          |t                                       t          |j        t                      t                                }|                     |d         |t                              d S )Nc                   X    e Zd ZdefdZ	 	 	 ddddddefd	Zd
ed         fdZdddZ	dS ))ForwardRefTests.test_basics.<locals>.Noderj  c                 0    || _         d x| _        | _        d S rf   r  )r[   rj  s     r`   r   z2ForwardRefTests.test_basics.<locals>.Node.__init__h  s    "
)--	DJJJrb   Nr  zOptional[Node[T]]r  r  stuffc                 "    || _         || _        d S rf   )r  r  )r[   r  r  r	  blahs        r`   add_bothz2ForwardRefTests.test_basics.<locals>.Node.add_bothl  s    
 !	"


rb   nodec                 2    |                      |d            d S rf   r	  r[   r	  s     r`   add_leftz2ForwardRefTests.test_basics.<locals>.Node.add_leftt      dD)))))rb   c                 2    |                      d |           d S rf   r	  r	  s     r`   	add_rightz3ForwardRefTests.test_basics.<locals>.Node.add_rightw  r	  rb   )NNNrf   )r	  r  )
rk   rl   rm   r   r   r   r	  r   r	  r	  rn   rb   r`   r  r	  f  s        .a . . . . -1&*"	# #2# )# !$# # # #*Xi%8 * * * ** * * * * * *rb   r  r  r  r	  r	  r	  )r$   r   r   r,   r	  r  r  r   r   assertNotInr	  r	  )r[   r  rK  
both_hints
left_hintsright_hintss         r`   r5  zForwardRefTests.test_basicsd  sI   	* 	* 	* 	* 	*71: 	* 	* 	*( I#AJ		688DD
F+Xd1g->???G,d1g666G,c222,,,#AJ		688DD
F+Xd1g->???$Q['))VXXFFV,d1g66666rb   c                     t          j        d          }|                     t                    5  t	          d|           d d d            d S # 1 swxY w Y   d S )Nr   r   )rO   rA   r   r   r   r[   frs     r`   #test_forwardref_instance_type_errorz3ForwardRefTests.test_forwardref_instance_type_error  s    u%%y)) 	 	r2	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rD  c                     t          j        d          }|                     t                    5  t	          t
          |           d d d            d S # 1 swxY w Y   d S )Nr   )rO   rA   r   r   rX   r   r	  s     r`   #test_forwardref_subclass_type_errorz3ForwardRefTests.test_forwardref_subclass_type_error  s    u%%y)) 	  	 sB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   AAAc                     |                      t                    5  t          j        d           d d d            d S # 1 swxY w Y   d S rF  )r   r   rO   rA   r   s    r`   test_forwardref_only_str_argz,ForwardRefTests.test_forwardref_only_str_arg  s    y)) 	! 	!a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   =AAc                 &   t          j        d          }|                     |t          j        d                     |                     t          d         t          t
                              |                     |t          j        dt                               t          j        dt                    }|                     |t          j        dt                               |                     |t          j        dd                     d S )Nr   module__other_name__)rO   rA   r   r   r    r   rk   )r[   r	  frms      r`   test_forward_equalityz%ForwardRefTests.test_forward_equality  s    u%%V.u55666DKc333B 1% I I IJJJh777f/hGGGHHHC!25AQ!R!R!RSSSSSrb   c                    t          j        d          }t          j        d          }t          j        d          }t          j        d          } G d d          }d|d|fd}|                     t          |t	                      t                                ||d           |                     ||           |                     ||           |                     ||           |                     t          |         t          |                    |                     t          |         t          |                    |                     t          |         t          |                    |                     t          ||f         t          |                    |                     t          ||t          f         t          |t          f                    d S )Nr=  c                       e Zd ZdS )4ForwardRefTests.test_forward_equality_gth.<locals>.CNr~   rn   rb   r`   r=  r	    r  rb   r  r   c                     d S rf   rn   r  r   s     r`   r  z6ForwardRefTests.test_forward_equality_gth.<locals>.foo  r  rb   r	  )
rO   rA   r   r,   r  r  r    r   r   r   )r[   r  c1_gthr  c2_gthr=  r  s          r`   test_forward_equality_gthz)ForwardRefTests.test_forward_equality_gth  s   s##"3''s##"3''	 	 	 	 	 	 	 		6 	f 	 	 	 	 	WYYAAQRCSCSTTTR   V$$$(((b4<000DHd1g...DL$q'222r6z*E"I666r63/r3w@@@@@rb   c           	      <   t          j        d          }t          j        d          }t          j        d          }t          j        d          }d|d|fd}t          |t                      t	                                 |                     t          |          t          |                     |                     t          |          t          |                     |                     t          |          t          |                     t          j        dt                    }t          j        dd          }|                     t          |          t          |                     |                     t          |          t          |                     |                     t          |          t          |                     |                     t          |          t          t          j        dt                                         d S )Nr   r  r   c                     d S rf   rn   r	  s     r`   r  z7ForwardRefTests.test_forward_equality_hash.<locals>.foo  r  rb   r	  r	  )	rO   rA   r,   r  r  r   rq  rk   r   )r[   r  r	  r  r	  r  c3c4s           r`   test_forward_equality_hashz*ForwardRefTests.test_forward_equality_hash  s   u%%"5))u%%"5))	6 	f 	 	 	 	sGIIvxx000b488,,,ftF||444b4<<000uX666u-=>>>DHHd2hh///DHHd6ll333DHHd2hh///b4(9%(Q(Q(Q#R#RSSSSSrb   c                      G d d          }d }d }|                       |             |                       |                      |             |                       d S )Nc                       e Zd ZdS ):ForwardRefTests.test_forward_equality_namespace.<locals>.ANr~   rn   rb   r`   r   r	    r  rb   r   c                      t          j        d          } d| fd}t          |t                      t	                                 | S )Nr   r   c                     d S rf   rn   r   s    r`   r  zPForwardRefTests.test_forward_equality_namespace.<locals>.namespace1.<locals>.fun  r  rb   rO   rA   r,   r  r  )r  r  s     r`   
namespace1zCForwardRefTests.test_forward_equality_namespace.<locals>.namespace1  sL    !#&&Aq    3		688444Hrb   c                      t          j        d          }  G d d          }d| fd}t          |t                      t	                                 | S )Nr   c                       e Zd ZdS )NForwardRefTests.test_forward_equality_namespace.<locals>.namespace2.<locals>.ANr~   rn   rb   r`   r   r	    r   rb   r   c                     d S rf   rn   r   s    r`   r  zPForwardRefTests.test_forward_equality_namespace.<locals>.namespace2.<locals>.fun  r  rb   r	  )r  r   r  s      r`   
namespace2zCForwardRefTests.test_forward_equality_namespace.<locals>.namespace2  sv    !#&&A       q     3		688444Hrb   )r   r   )r[   r   r	  r	  s       r`   test_forward_equality_namespacez/ForwardRefTests.test_forward_equality_namespace  s    	 	 	 	 	 	 	 		 	 			 		 		 	zz||444JJLL**,,77777rb   c           	          |                      t          t          d                   d           |                      t          t          t          dd                             d           d S )Nr   ztyping.List[ForwardRef('int')]modr	  z,typing.List[ForwardRef('int', module='mod')])r   r   r    rA   r   s    r`   test_forward_reprz!ForwardRefTests.test_forward_repr  sk    d5k**,LMMMd:eE#B#B#BCDDG	I 	I 	I 	I 	Irb   c                    dt           d         fd}|                     t          |t                      t	                                dt           t
                   i           dt          t          d                   t          z  fd}|                     t          |t                      t	                                dt          t
                   t          z  i           d S )Nr  r   c                     d S rf   rn   r  s    r`   r  z/ForwardRefTests.test_union_forward.<locals>.foo  r  rb   c                     d S rf   rn   r  s    r`   r  z/ForwardRefTests.test_union_forward.<locals>.foo  r  rb   )	r   r   r,   r  r  r   r  rA   r   r[   r  s     r`   test_union_forwardz"ForwardRefTests.test_union_forward  s    	5: 	 	 	 	 	WYYAAuQx	* 	* 	*	5C)C/ 	 	 	 	 	WYYAAuQx#~.	0 	0 	0 	0 	0rb   c                    dt           d         fd}|                     t          |t                      t	                                dt           t
                   i           dt          t          d                   fd}|                     t          |t                      t	                                dt          t
                   i           d S )Nr  r   c                     d S rf   rn   r  s    r`   r  z/ForwardRefTests.test_tuple_forward.<locals>.foo  r  rb   c                     d S rf   rn   r  s    r`   r  z/ForwardRefTests.test_tuple_forward.<locals>.foo  r  rb   )r   r   r,   r  r  r   r  rA   r	  s     r`   test_tuple_forwardz"ForwardRefTests.test_tuple_forward  s    	5: 	 	 	 	 	WYYAAuQx	* 	* 	*	5C) 	 	 	 	 	WYYAAuQx	* 	* 	* 	* 	*rb   c                     dd}|                      t          |t                      t                                dt          t
                   i           d S )Nr  List['int']c                     d S rf   rn   r  s    r`   r  z0ForwardRefTests.test_double_forward.<locals>.foo  r  rb   )r  r	  )r   r,   r  r  r    r   r	  s     r`   test_double_forwardz#ForwardRefTests.test_double_forward  sZ    	 	 	 	WYYAAtCy)	+ 	+ 	+ 	+ 	+rb   c                     d }d }d } |            } |            }|                      ||           |                     t          |||           d S )Nc                      t          j        d          } | }d| fd}t          |t                      t	                                }| S )Nr   r   c                     d S rf   rn   r   s    r`   r  zPForwardRefTests.test_forward_recursion_actually.<locals>.namespace1.<locals>.fun  r   rb   r	  r  r   r  rets       r`   r	  zCForwardRefTests.test_forward_recursion_actually.<locals>.namespace1	  F    !#&&AAq gii::CHrb   c                      t          j        d          } | }d| fd}t          |t                      t	                                }| S )Nr   r   c                     d S rf   rn   r   s    r`   r  zPForwardRefTests.test_forward_recursion_actually.<locals>.namespace2.<locals>.fun  r   rb   r	  r	  s       r`   r	  zCForwardRefTests.test_forward_recursion_actually.<locals>.namespace2  r	  rb   c                     | |k    S rf   rn   )o1o2s     r`   cmpz<ForwardRefTests.test_forward_recursion_actually.<locals>.cmp  s    8Orb   )r~  r   RecursionError)r[   r	  r	  r	  r1r2s         r`   test_forward_recursion_actuallyz/ForwardRefTests.test_forward_recursion_actually  s}    	 	 		 	 		 	 	 Z\\Z\\R   .#r266666rb   c                 |   t           d         t          t          f          G fdd          } G fdd          } G fdd          } G fdd	          }|                     t	          |t                      t                                t	          |t                      t                                           |                     t	          |t                      t                                d
t           t          t          t           t          t          t           d         f                  f                  i           |                     t	          |t                      t                                d
t          t          t           t          t          t           d         f                  f         i           |                     t	          |t                      t                                d
t          t           t          t          t           t          t          t           d         f                  f                  t           t          t          t           d         f                  f         i           |                     t	          |t                      t                                d
t          t          t           t          t          t           d         f                  t           t          t          t           t          t          t           d         f                  f                  f         i           d S )NValuec                   (    e Zd ZU e          ed<   dS )7ForwardRefTests.test_union_forward_recursion.<locals>.Cr  N)rk   rl   rm   r    r   )r	  s   r`   r=  r	  %  s#         erb   r=  c                   ,    e Zd ZU e f         ed<   dS )7ForwardRefTests.test_union_forward_recursion.<locals>.Dr  N)rk   rl   rm   r   r   r	  	ValueLists   r`   r@  r	  '  s)         ui'((((((rb   r@  c                   8    e Zd ZU ee          f         ed<   dS )7ForwardRefTests.test_union_forward_recursion.<locals>.Er  Nrk   rl   rm   r   r    r   r	  s   r`   rw  r	  )  s-         tE{I-......rb   rw  c                   :    e Zd ZU e e          f         ed<   dS )7ForwardRefTests.test_union_forward_recursion.<locals>.Fr  Nr	  r	  s   r`   rx  r	  +  s/         ud5k94555555rb   rx  r  )r    r   r|  r   r,   r  r  )r[   r=  r@  rw  rx  r	  r	  s        @@r`   test_union_forward_recursionz,ForwardRefTests.test_union_forward_recursion!  s   M	c9n%	 	 	 	 	 	 	 	 	 		) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	799fhh??PQSZS\S\^d^f^fAgAghhh799fhh??eCeCg<N6O1P,P&Q!RS	U 	U 	U799fhh??sDsDM7I1J,K'K!LM	O 	O 	O799fhh??!%T%T']8J2K-L(L"MN!%T'](:";<=" 	 	 	 	799fhh?? !%T'](:";<!%T%T']8J2K-L(L"MNO" 	 	 	 	 	rb   c                     dt           dgdf         fd}|                     t          |t                      t	                                dt           t
          gt
          f         i           d S )Nr  r   c                     d S rf   rn   r  s    r`   r  z2ForwardRefTests.test_callable_forward.<locals>.fooC  r  rb   )r#   r   r,   r  r  r   r	  s     r`   test_callable_forwardz%ForwardRefTests.test_callable_forwardA  su    	8SE3J' 	 	 	 	 	WYYAAxQ/0	2 	2 	2 	2 	2rb   c                     dd}|                      t          |t                      t                                dt          dt
          f         i           d S )Nr  Callable[..., T]c                     d S rf   rn   r  s    r`   r  z@ForwardRefTests.test_callable_with_ellipsis_forward.<locals>.fooK  r  rb   .)r  r	  )r   r,   r  r  r#   r   r	  s     r`   #test_callable_with_ellipsis_forwardz3ForwardRefTests.test_callable_with_ellipsis_forwardI  sa    	 	 	 	 	WYYAAxQ/0	2 	2 	2 	2 	2rb   c                     G d d          } G d d          }|                      t          |t                                d         t          t                              |                      t          |t                                d         t
          t                              |                      t          |t                                d         t                     |                      t          |t                                d         t
                     |                     t                    5  t          |t                                f d d d            d S # 1 swxY w Y   d S )	Nc                   `    e Zd ZU dZed         ed<   dZed         ed<   dZded<   dZded	<   d
S )5ForwardRefTests.test_special_forms_forward.<locals>.Cr  )ClassVar[int])r  r  r  )
Final[int]constr   r%   r   r&   r   N)	rk   rl   rm   r  r@   r   r   r   r   rn   rb   r`   r=  r	  S  sY         45Ay0155523Ay./333AzAwNNNNNrb   r=  c                   *    e Zd ZU dZed         ed<   dS )6ForwardRefTests.test_special_forms_forward.<locals>.CFr  r	  r   N)rk   rl   rm   r   r    r   rn   rb   r`   CFr 
  Y  s'         $%AtL!%%%%%rb   r
  r  r   r   r   )r   r,   r  r%   r   r&   r   r   )r[   r=  r
  s      r`   test_special_forms_forwardz*ForwardRefTests.test_special_forms_forwardQ  s   	 	 	 	 	 	 	 		& 	& 	& 	& 	& 	& 	& 	& 	79955c:HSMJJJ79955c:E#JGGG79955c:HEEE79955c:EBBBy)) 	+ 	+2wyy))**	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   7E""E&)E&c                     |                      t                    5  t          d          d d d            d S # 1 swxY w Y   d S )Nz/T)r   SyntaxErrorr$   r   s    r`   test_syntax_errorz!ForwardRefTests.test_syntax_errorc  s    {++ 	 	DMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                     dd}|                      t                    5  t          |           d d d            d S # 1 swxY w Y   d S )Nr  Node[Tc                     d S rf   rn   r  s    r`   r  z6ForwardRefTests.test_delayed_syntax_error.<locals>.fooj  r  rb   )r  r
  )r   r
  r,   r	  s     r`   test_delayed_syntax_errorz)ForwardRefTests.test_delayed_syntax_errorh  s    	 	 	 	 {++ 	  	 3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   <A A c                 8   t           j        t           j        t           j        t           j        fD ]j}|                     |          5  |                     t                    5  |d          d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   kd S )N)formr   )rO   r    Setr5   Dequerx   r   r
  )r[   r
  s     r`   test_syntax_error_empty_stringz.ForwardRefTests.test_syntax_error_empty_stringp  s   [&*fk6<H 	 	D4((  &&{33  HH                            	 	s6   B"	A7+B7A;;B>A;?BB	B	c                     dd}|                      t                    5  t          |t                                 d d d            d S # 1 swxY w Y   d S )Nr  Noode[T]c                     d S rf   rn   r  s    r`   r  z,ForwardRefTests.test_name_error.<locals>.foox  r  rb   )r  r
  )r   	NameErrorr,   r  r	  s     r`   test_name_errorzForwardRefTests.test_name_errorv  s    	 	 	 	 y)) 	* 	*3)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   A		AAc                 z    t           dddi fd            }t          |          }|                     |i            d S )Nr  	whateversr   c                     d S rf   rn   r  s    r`   r  z/ForwardRefTests.test_no_type_check.<locals>.foo      Drb   )r2   r,   r   )r[   r  ths      r`   test_no_type_checkz"ForwardRefTests.test_no_type_check~  sY    		; 	2 	 	 	 
	 C  R     rb   c                     t            G d d                      }t          |j                  }|                     |i            t           |            j                  }|                     |i            d S )Nc                       e Zd Zdddi fdZdS )3ForwardRefTests.test_no_type_check_class.<locals>.Cr  r
  r   c                     d S rf   rn   r  s    r`   r  z7ForwardRefTests.test_no_type_check_class.<locals>.C.foo  r  rb   Nrk   rl   rm   r  rn   rb   r`   r=  r
    6        { r      rb   r=  )r2   r,   r  r   )r[   r=  cthiths       r`   test_no_type_check_classz(ForwardRefTests.test_no_type_check_class  s    		 	 	 	 	 	 	 
	 QU##b!!!QQSSW%%b!!!!!rb   c                 4    G d d          t            G fdd                      }|                     t          j                  dt          i            G d d|          }|                     t          |j                  dt          i           d S )Nc                       e Zd ZdefdZdS )6ForwardRefTests.test_no_type_check_no_bases.<locals>.Cr   c                     d S rf   rn   r   s     r`   r{  z;ForwardRefTests.test_no_type_check_no_bases.<locals>.C.meth  r   rb   Nrk   rl   rm   r   r{  rn   rb   r`   r=  r%
    s!        'c''''''rb   r=  c                       e Zd Z ZdS )6ForwardRefTests.test_no_type_check_no_bases.<locals>.DN)rk   rl   rm   r  r=  s   r`   r@  r)
    s        AAArb   r@  r   c                       e Zd ZdefdZdS ):ForwardRefTests.test_no_type_check_no_bases.<locals>.Childr   c                     d S rf   rn   r   s     r`   r  z>ForwardRefTests.test_no_type_check_no_bases.<locals>.Child.foo  r   rb   N)rk   rl   rm   r   r  rn   rb   r`   Childr,
    s!        &S&&&&&&rb   r.
  )r2   r   r,   r{  r   r  )r[   r@  r.
  r=  s      @r`   test_no_type_check_no_basesz+ForwardRefTests.test_no_type_check_no_bases  s    	( 	( 	( 	( 	( 	( 	( 	(		 	 	 	 	 	 	 	 	 
	 	//#s<<<	' 	' 	' 	' 	'A 	' 	' 	' 		22S#J?????rb   c                     G d d          } G d d          }t            G d d                      }||j        |j        j        |j        fD ]m}|                     |          5  |                     |j                   |                     t          |          i            d d d            n# 1 swxY w Y   n||fD ]}|                     |          5  | 	                    t                    5  |j         d d d            n# 1 swxY w Y   |                     t          |          i            d d d            n# 1 swxY w Y   d S )	Nc                       e Zd ZU eed<   dS )>ForwardRefTests.test_no_type_check_nested_types.<locals>.Otherr  Nrf  rn   rb   r`   r  r2
    rA  rb   r  c                       e Zd ZU eed<   dS ):ForwardRefTests.test_no_type_check_nested_types.<locals>.Br  Nrf  rn   rb   r`   r   r4
    rA  rb   r   c                   R    e Zd ZU eed<    G d d          Z G d d          ZeZdS ):ForwardRefTests.test_no_type_check_nested_types.<locals>.Ar  c                   4    e Zd ZU eed<    G d d          ZdS )<ForwardRefTests.test_no_type_check_nested_types.<locals>.A.Br   c                       e Zd ZU eed<   dS )>ForwardRefTests.test_no_type_check_nested_types.<locals>.A.B.Cr  Nrf  rn   rb   r`   r=  r:
    s         FFFFFrb   r=  N)rk   rl   rm   r   r   r=  rn   rb   r`   r   r8
    sG                  rb   r   c                       e Zd ZU eed<   dS )<ForwardRefTests.test_no_type_check_nested_types.<locals>.A.Dr  Nrf  rn   rb   r`   r@  r<
             rb   r@  N)rk   rl   rm   r   r   r   r@  r  rn   rb   r`   r   r6
    sp         FFF               EEErb   r   )r  )not_modified)r2   r   r=  r@  rx   r   __no_type_check__r   r,   r   r  r   )r[   r  r   r   r  r>
  s         r`   test_no_type_check_nested_typesz/ForwardRefTests.test_no_type_check_nested_types  sq   	 	 	 	 	 	 	 		 	 	 	 	 	 	 				 		 		 		 		 		 		 
		 aceQS) 	< 	<EE** < < 7888  !6!6;;;< < < < < < < < < < < < < < < #AJ 	F 	FL<88 F F&&~66 3 3 223 3 3 3 3 3 3 3 3 3 3 3 3 3 3##N<$@$@"EEEF F F F F F F F F F F F F F F	F 	FsH   '>B11B5	8B5	E4D<EDED&EE		E	c                 V   t            G d d                      }|                     |j        j                   |                     t          |j                  i            |                     |j        j                   |                     t          |j                  i            d S )Nc                   N    e Zd Zededefd            Zededefd            ZdS )IForwardRefTests.test_no_type_check_class_and_static_methods.<locals>.Somer   r   c                     d S rf   rn   r   s    r`   stzLForwardRefTests.test_no_type_check_class_and_static_methods.<locals>.Some.st  s    #&3rb   r   c                     d S rf   rn   )r\   r   s     r`   clzLForwardRefTests.test_no_type_check_class_and_static_methods.<locals>.Some.cl  s    (+rb   N)rk   rl   rm   rn	  r   rE
  rm  rG
  rn   rb   r`   SomerC
    sP        &c&c&&& \&+3+3+++ [+++rb   rH
  )r2   r   rE
  r?
  r   r,   rG
  )r[   rH
  s     r`   +test_no_type_check_class_and_static_methodsz;ForwardRefTests.test_no_type_check_class_and_static_methods  s    		, 	, 	, 	, 	, 	, 	, 
	, 	122200"555122200"55555rb   c                     |                      t          j                   |                     t                    5  t
          j        j         d d d            n# 1 swxY w Y   |                     t                    5  t
          j        j        j         d d d            n# 1 swxY w Y   |                      t          j                   |                     t                    5  t
          j        j         d d d            d S # 1 swxY w Y   d S rf   )	r   r	  r?
  r   r  r	  r	  r	  r	  r   s    r`   test_no_type_check_other_modulez/ForwardRefTests.test_no_type_check_other_module  s   );<<<~.. 	< 	<);;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<~.. 	B 	B)/AA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	0BCCC~.. 	? 	?,>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s5   AAA=B  B$'B$$DD
Dc                 6   dt           dt           fdt           G fdd                      }|                     t                    5  j         d d d            n# 1 swxY w Y   |                     t                    t           t           d           d S )Nr   r   c                      d S rf   rn   r  s    r`   r   zBForwardRefTests.test_no_type_check_foreign_functions.<locals>.some  s    Crb   c                   @    e Zd Z Z e           Z e           ZdS )?ForwardRefTests.test_no_type_check_foreign_functions.<locals>.AN)rk   rl   rm   
some_aliasrm  
some_classrn	  some_static)r   s   r`   r   rO
    s2        J$T**J&,t,,KKKrb   r   )r   r   )r   r2   r   r  r?
  r   r,   )r[   r   r   s     @r`   $test_no_type_check_foreign_functionsz4ForwardRefTests.test_no_type_check_foreign_functions  s   	 	 	 	 	 	 
	- 	- 	- 	- 	- 	- 	- 	- 	- 
	-
 ~.. 	# 	#""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#--s/K/KLLLLLs   
AA"%A"c                     t            G d d                      }|                     |j        j                   |                     t          |j                  i            d S )Nc                   2    e Zd ZU d Zeegef         ed<   dS )4ForwardRefTests.test_no_type_check_lambda.<locals>.Ac                     | S rf   rn   r   s    r`   r  z=ForwardRefTests.test_no_type_check_lambda.<locals>.A.<lambda>  s    C rb   r)  N)rk   rl   rm   r)  r#   r   r   rn   rb   r`   r   rV
    s1          )8C3%*%77777rb   r   )r2   r   r)  r?
  r   r,   r  s     r`   test_no_type_check_lambdaz)ForwardRefTests.test_no_type_check_lambda  ss    		8 	8 	8 	8 	8 	8 	8 
	8 	/000..33333rb   c                 .    t          t                     d S rf   )r2   r  r   s    r`   test_no_type_check_TypeErrorz,ForwardRefTests.test_no_type_check_TypeError  s     	drb   c                      G d d          } G d d          } G d d          } G d d          }d	t           j        t                   i}||||fD ]%}|                     t	          |          |           &d S )
Nc                   4    e Zd ZU dZej        e         ed<   dS )CForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.C   r  N)rk   rl   rm   r  rO   r%   r   r   rn   rb   r`   r=  r]
    s)         ()C%)))))rb   r=  c                   *    e Zd ZU dZee         ed<   dS )CForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.Dr^
  r  N)rk   rl   rm   r  r%   r   r   rn   rb   r`   r@  r`
    s&         !"C#"""""rb   r@  c                       e Zd ZU dZded<   dS )CForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.Er^
  r*	  r  Nrk   rl   rm   r  r   rn   rb   r`   rw  rb
    s#         *+C'+++++rb   rw  c                       e Zd ZU dZded<   dS )CForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.Fr^
  r	  r  Nrc
  rn   rb   r`   rx  re
    s"         #$C$$$$$rb   rx  r  )rO   r%   r   r   r,   )r[   r=  r@  rw  rx  expected_resultclazzs          r`   (test_no_type_check_forward_ref_as_stringz8ForwardRefTests.test_no_type_check_forward_ref_as_string  s    	* 	* 	* 	* 	* 	* 	* 	*	# 	# 	# 	# 	# 	# 	# 	#	, 	, 	, 	, 	, 	, 	, 	,	% 	% 	% 	% 	% 	% 	% 	% !&/#"67Aq\ 	E 	EE^E22ODDDD	E 	Erb   c                      G d d          } G d d          }||fD ]C}|                      t                    5  t          |           d d d            n# 1 swxY w Y   Dd S )Nc                       e Zd ZU dZded<   dS )GForwardRefTests.test_nested_classvar_fails_forward_ref_check.<locals>.Er^
  z%typing.ClassVar[typing.ClassVar[int]]r  Nrc
  rn   rb   r`   rw  rk
    s#         ;<C8<<<<<rb   rw  c                   *    e Zd ZU dZed         ed<   dS )GForwardRefTests.test_nested_classvar_fails_forward_ref_check.<locals>.Fr^
  r	  r  N)rk   rl   rm   r  r%   r   rn   rb   r`   rx  rm
    s'         -.C/*.....rb   rx  )r   r   r,   )r[   rw  rx  rg
  s       r`   ,test_nested_classvar_fails_forward_ref_checkz<ForwardRefTests.test_nested_classvar_fails_forward_ref_check  s    	= 	= 	= 	= 	= 	= 	= 	=	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ V 	& 	&E""9-- & &u%%%& & & & & & & & & & & & & & &	& 	&s   AA	A	c                    t           d             }|                     |j        d           |dddi fd            }| G d d                      }|                     |j        d	           t          |          }|                     |i            t          |j                  }|                     |i            t           |            j                  }|                     |i            d S )
Nc                     | S rf   rn   rT	  s    r`   magic_decoratorz@ForwardRefTests.test_meta_no_type_check.<locals>.magic_decorator  s    Krb   rq
  r  r
  r   c                     d S rf   rn   r  s    r`   r  z4ForwardRefTests.test_meta_no_type_check.<locals>.foo  r
  rb   c                       e Zd Zdddi fdZdS )2ForwardRefTests.test_meta_no_type_check.<locals>.Cr  r
  r   c                     d S rf   rn   r  s    r`   r  z6ForwardRefTests.test_meta_no_type_check.<locals>.C.foo  r  rb   Nr
  rn   rb   r`   r=  rt
    r
  rb   r=  r  )r3   r   rk   r,   r  )r[   rq
  r  r=  r
  r 
  r!
  s          r`   test_meta_no_type_checkz'ForwardRefTests.test_meta_no_type_check  s+   	 	 	 
!	 	 	13DEEE		; 	2 	 	 	 
	 
	 	 	 	 	 	 	 
	 	u---C  R   QU##b!!!QQSSW%%b!!!!!rb   c                     d}i }t          ||           t          |d         j                  }|                     ||d         |d         d           d S )Nz^class C:
    def foo(self, a: 'C') -> 'D': pass
class D:
    def bar(self, b: 'D') -> C: pass
r=  r@  )r  r   )r  r,   r  r   )r[   r  nshintss       r`   test_default_globalsz$ForwardRefTests.test_default_globals&  s\    9
 T2r#w{++bgC A ABBBBBrb   c                    |                      t          t          t                                d         t          t                              |                     t          t          t                                d         t          t                              |                     t          t          t                                d         t                     d S )Nrx  )r   r  Loopr  r&   r   r   r   s    r`   test_final_forward_refz&ForwardRefTests.test_final_forward_ref1  s    T799--f5uT{CCCCgii008%*EEECgii008%@@@@@rb   c                     t          d          }|                     |dz  t          |df                    |                     d|z  t          d|f                    d S r  )rA   r   r   r  s     r`   r  zForwardRefTests.test_or6  sW    sOOS%3-000q%Q-00000rb   N)'rk   rl   rm   r5  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r	
  r
  r
  r
  r"
  r/
  r@
  rI
  rK
  rS
  rX
  rZ
  rh
  rn
  rv
  rz
  r}
  r  rn   rb   r`   r	  r	  b  sP       !7 !7 !7F  
     
! ! !T T TA A A*T T T,8 8 80I I I
0 0 0* * *+ + +7 7 72  @2 2 22 2 2+ + +$  
       * * *! ! !
" 
" 
"@ @ @ F F F:6 6 6	? 	? 	?M M M4 4 4  
E E E& & &" " "2	C 	C 	CA A A
1 1 1 1 1rb   r	  c                     d| z  |z   S )Nr  rn   r  s     r`   cached_funcr
  =  s    q519rb   c                   @    e Zd Zed             Zed             Zd ZdS )MethodHolderc                     d S rf   rn   re	  s    r`   rf	  zMethodHolder.clsmethodC  s    rb   c                      d S rf   rn   rn   rb   r`   rh	  zMethodHolder.stmethodE  rN	  rb   c                     d S rf   rn   r   s    r`   re  zMethodHolder.methodG  r   rb   N)rk   rl   rm   rm  rf	  rn	  rh	  re  rn   rb   r`   r
  r
  B  s?         [ \rb   r
  c                   z    e Zd Zd Zd Zed             Zd Z ed e	d                     d             Z
d Zd	S )
OverloadTestsc                     |                      t                    5  t          d             } |             d d d            d S # 1 swxY w Y   d S )Nc                      d S rf   rn   rn   rb   r`   r	  z/OverloadTests.test_overload_fails.<locals>.blahO  s    rb   )r   r  r   r[   r	  s     r`   test_overload_failsz!OverloadTests.test_overload_failsL  s    233 	 	  X DFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA
Ac                 @    t           d             }d } |             d S )Nc                      d S rf   rn   rn   rb   r`   r	  z2OverloadTests.test_overload_succeeds.<locals>.blahV  r
  rb   c                      d S rf   rn   rn   rb   r`   r	  z2OverloadTests.test_overload_succeeds.<locals>.blahZ  r  rb   r   r
  s     r`   test_overload_succeedsz$OverloadTests.test_overload_succeedsU  s;    		 	 
		 	 	 	rb   c                    t          dt          d                     5  |                     t          j        i            t          t                     t          t                     |                     t          j        t                    g            |                     t          j        t                    g            d d d            d S # 1 swxY w Y   d S )Ntyping._overload_registryc                  *    t          t                    S rf   r   r  rn   rb   r`   r  zCOverloadTests.test_overload_on_compiled_functions.<locals>.<lambda>b  s    {4'8'8 rb   )	r   r   r   rO   _overload_registryr   sumprintr   r   s    r`   #test_overload_on_compiled_functionsz1OverloadTests.test_overload_on_compiled_functions_  s    .8899; ; 	> 	> V6;;; SMMMUOOO V1#66;;;V1%88"===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   B#CCCc                 d    d }|}t          |           d }|}t          |           d }|||gfS )Nc                      d S rf   rn   rn   rb   r`   r	  z,OverloadTests.set_up_overloads.<locals>.blaho  r  rb   c                      d S rf   rn   rn   rb   r`   r	  z,OverloadTests.set_up_overloads.<locals>.blahu  r  rb   c                      d S rf   rn   rn   rb   r`   r	  z,OverloadTests.set_up_overloads.<locals>.blah{  r  rb   r
  )r[   r	  	overload1	overload2s       r`   set_up_overloadszOverloadTests.set_up_overloadsn  se    	 	 	 		 	 	 		 	 	 i+++rb   r
  c                  *    t          t                    S rf   r
  rn   rb   r`   r  zOverloadTests.<lambda>  s    K-- rb   c                 8   |                      t          j        i            |                                 \  }}|                     t          j        i            |                      t          t          |                    |           d }t          |           |}d }|                      t          t          |                    |g           d }|                      t          t          |                    g            t                       |                      t          j        i            |                      t          |          g            d }|                      t          |          g            |                      t          j        i            d S )Nc                      d S rf   rn   rn   rb   r`   some_other_funcz=OverloadTests.test_overload_registry.<locals>.some_other_func  r   rb   c                      d S rf   rn   rn   rb   r`   r
  z=OverloadTests.test_overload_registry.<locals>.some_other_func  r   rb   c                      d S rf   rn   rn   rb   r`   not_overloadedz<OverloadTests.test_overload_registry.<locals>.not_overloaded  r   rb   c                      d S rf   rn   rn   rb   r`   the_only_onez:OverloadTests.test_overload_registry.<locals>.the_only_one  r   rb   )	r   rO   r
  r
  r   r  r   r   r   )r[   impl	overloadsr
  other_overloadr
  r
  s          r`   test_overload_registryz$OverloadTests.test_overload_registry  s{    	2B777//11iF5r:::mD1122I>>>###!!!(###mO<<==?OPPP"""mN;;<<bAAA 	2B777t,,b111 	!  |44b9992B77777rb   c                     t          d          D ]I}|                                 \  }}|                     t          t	          |                    |           Jd S Nr   )ru   r
  r   r  r   )r[   _r
  r
  s       r`   test_overload_registry_repeatedz-OverloadTests.test_overload_registry_repeated  sc    q 	C 	CA"3355OD)T-"5"566	BBBB	C 	Crb   N)rk   rl   rm   r
  r
  rL   r
  r
  r   r   r
  r
  rn   rb   r`   r
  r
  J  s             > > \>, , ,& U&--..0 08 80 088C C C C Crb   r
  )
ann_moduleann_module2ann_module3ann_module5ann_module6T_ac                   6    e Zd Zd Zdej        e         fdZdS )AwaitableWrapperc                     || _         d S rf   r  r[   r  s     r`   r   zAwaitableWrapper.__init__      


rb   r   c              #      K   d V  | j         S rf   r
  r   s    r`   	__await__zAwaitableWrapper.__await__  s      zrb   N)rk   rl   rm   r   rO   Iteratorr
  r
  rn   rb   r`   r
  r
    sE          6?3/      rb   r
  c                   ^    e Zd Zdej        e         fdZdej        e         fdZdefdZ	dS )AsyncIteratorWrapperr  c                     || _         d S rf   r
  r
  s     r`   r   zAsyncIteratorWrapper.__init__  r
  rb   r   c                     | S rf   rn   r   s    r`   	__aiter__zAsyncIteratorWrapper.__aiter__  s    rb   c                 6   K   | j          d {V }|r|S t          rf   )r  StopAsyncIteration)r[   datas     r`   	__anext__zAsyncIteratorWrapper.__anext__  s2      Z 	%K$$rb   N)
rk   rl   rm   rO   r  r
  r   AsyncIteratorr
  r
  rn   rb   r`   r
  r
    st        foc2    6/4    % % % % % % %rb   r
  c                        e Zd ZdefdZd ZdS )ACMr   c                 
   K   dS r   rn   r   s    r`   
__aenter__zACM.__aenter__  s      rrb   c                 
   K   d S rf   rn   )r[   etyper   tbs       r`   	__aexit__zACM.__aexit__  s      trb   N)rk   rl   rm   r   r
  r
  rn   rb   r`   r
  r
    s>        #        rb   r
  c                       e Zd ZU eed<   dS )r   r   N)rk   rl   rm   r  r   rn   rb   r`   r   r     s         HHHHHrb   r   c                   J    e Zd ZU dZeed                   ed<   eed<   eed<   dS )r   Nr   r   r   )rk   rl   rm   r   r%   r   r   r   rn   rb   r`   r   r     s;         !%Ax%%%
FFF
FFFFFrb   r   c                   :    e Zd ZU  e            Zed          ed<   dS )CSubr  N)rk   rl   rm   r   r  r%   r   rn   rb   r`   r
  r
    s-         !##Axrb   r
  c                   6    e Zd ZU g Zeee                  ed<   dS )ry  lstN)rk   rl   rm   r
  r%   r    r   r   rn   rb   r`   ry  ry    s+         C$q'	rb   ry  c                   &    e Zd ZU ed          ed<   dS )r|
  rx  N)rk   rl   rm   r&   r   rn   rb   r`   r|
  r|
    s"         
-rb   r|
  c                   $    e Zd ZU d ed<   ded<   dS )NoneAndForwardparentNmeaningr  rn   rb   r`   r
  r
    s%         MMMMMrb   r
  c                   $    e Zd ZU eed<   eed<   dS )CoolEmployeenamecoolNrk   rl   rm   r|  r   r   rn   rb   r`   r
  r
    s"         
III
IIIIIrb   r
  c                   (    e Zd ZU eed<   dZeed<   dS )CoolEmployeeWithDefaultr
  r   r
  N)rk   rl   rm   r|  r   r
  r   rn   rb   r`   r
  r
    s&         
IIID#MMMMMrb   r
  c                        e Zd ZU eed<   d ZdS )XMethr   c                     d| j         z  S r
  r   r   s    r`   doublezXMeth.double  s    46zrb   N)rk   rl   rm   r   r   r
  rn   rb   r`   r
  r
    s.         
FFF    rb   r
  c                   4    e Zd ZU eed<   dZeed<   d Zd ZdS )XReprr   rq   r   c                 $    | j          d| j         S )Nz -> r  r   s    r`   __str__zXRepr.__str__  s    &&&df&&&rb   c                     dS rL  rn   r[   rj  s     r`   __add__zXRepr.__add__  s    qrb   N)rk   rl   rm   r   r   r   r
  r
  rn   rb   r`   r
  r
    sJ         
FFFAsJJJ' ' '    rb   r
  Labelrj  c                   $    e Zd ZU eed<   eed<   dS )Point2Dr   r   Nrf  rn   rb   r`   r
  r
    rg  rb   r
  c                   $    e Zd ZU eed<   eed<   dS )Point2DGenericr  r   Nrk   rl   rm   r   r   rn   rb   r`   r
  r
    s"         DDDDDDDDrb   r
  c                       e Zd ZU eed<   dS )r   r   Nrf  rn   rb   r`   r   r     rq  rb   r   Ftotalc                       e Zd ZU eed<   dS )
BarGenericr   Nrf  rn   rb   r`   r
  r
     rq  rb   r
  c                       e Zd ZdS )LabelPoint2DNr~   rn   rb   r`   r
  r
    r   rb   r
  c                   $    e Zd ZU eed<   eed<   dS )Options	log_levellog_pathNrn  rn   rb   r`   r
  r
    s"         NNNMMMMMrb   r
  c                   0    e Zd ZU eed<   ee         ed<   dS )
TotalMovietitleyearN)rk   rl   rm   r|  r   r7   r   rn   rb   r`   r  r  	  s,         JJJ
c
rb   r  c                   0    e Zd ZU ee         ed<   eed<   dS )NontotalMovier  r  N)rk   rl   rm   r8   r|  r   r   rn   rb   r`   r  r    s)         C=
IIIIIrb   r  c                   &    e Zd ZU ee         ed<   dS )ParentNontotalMovier  Nrk   rl   rm   r8   r|  r   rn   rb   r`   r  r    s"         C=rb   r  c                   &    e Zd ZU ee         ed<   dS )ChildTotalMovier  Nrk   rl   rm   r7   r   r   rn   rb   r`   r
  r
    s#         
c
rb   r
  c                   F    e Zd ZU eeee         df         df         ed<   dS )ParentDeeplyAnnotatedMovier!  another levelr  N)rk   rl   rm   r@   r8   r|  r   rn   rb   r`   r  r    s6         Yx}h67HIIIIIIrb   r  c                   6    e Zd ZU eeedf                  ed<   dS )ChildDeeplyAnnotatedMovie  r  N)rk   rl   rm   r7   r@   r   r   rn   rb   r`   r  r    s,         
iT	*
++++++rb   r  c                   \    e Zd ZU eee         df         ed<   eeedf                  ed<   dS )AnnotatedMovier!  r  r  r  N	rk   rl   rm   r@   r8   r|  r   r7   r   rn   rb   r`   r  r    sF         Xc]H,----
iT	*
++++++rb   r  c                   l    e Zd ZU eeee         df         df         ed<   eeedf                  ed<   dS )DeeplyAnnotatedMovier!  r  r  r  r  Nr  rn   rb   r`   r  r  !  sP         Yx}h67HIIII
iT	*
++++++rb   r  c                   <    e Zd ZU ed         ed<   ed         ed<   dS )WeirdlyQuotedMovie)z"Annotated[Required[str], "foobar"]r  r  zAnnotated[int, 2000]r  N)rk   rl   rm   r@   r   r7   rn   rb   r`   r  r  %  s6         JKKKK
,
------rb   r  c                   $    e Zd ZU ded<   ded<   dS )HasForeignBaseClassr
  
some_xreprzmod_generics_cache.Aother_aNr  rn   rb   r`   r  r  )  s*         ######rb   r  amc                 f   K   | 4 d {V }|cd d d           d {V  S # 1 d {V swxY w Y   d S rf   rn   )r  r   s     r`   g_withr  -  s             Q                             s    
**r   c                   l    e Zd Zej        dd            Zej        ej        dd                        ZdS )ForRefExampler[   c                     d S rf   rn   r   s    r`   rI	  zForRefExample.func:  s    rb   c                     d S rf   rn   r   s    r`   nestedzForRefExample.nested>  s	     	rb   N)r[   r!  )rk   rl   rm   r
  decrI	  r$  rn   rb   r`   r!  r!  9  sb        ^   ^ ^^   ^ ^  rb   r!  c                       e Zd Zd Zd Z ed          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 Zd Zd Zd Zd Zd Zd ZdS )GetTypeHintTestsc                    |                      t                    5  t          d           d d d            n# 1 swxY w Y   |                      t                    5  t          d           d d d            n# 1 swxY w Y   |                      t                    5  t          d            d d d            d S # 1 swxY w Y   d S )N{   r  )r   r   r  r   s    r`   (test_get_type_hints_from_various_objectsz9GetTypeHintTests.test_get_type_hints_from_various_objectsE  sm   y)) 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	III	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s0   7;;A88A<?A<B::B>B>c                 b   dt           t          t          f         t          t          t          t          z  d}|                     t          t                    |           |                     t          t                    i            |                     t          t                    i            d S )Nr   )rq   ri   r   r   r  )	r   r   r|  r  r   r  r
  r
  r
  )r[   ann_module_type_hintss     r`   test_get_type_hints_modulesz,GetTypeHintTests.test_get_type_hints_modulesN  s    $%E#s(O#CVY\aVa b bZ*?@@@[))2...[))2.....rb   z	known bugc                     t           t          j                 t           t          j                 d}|                     t          t                    |           d S )N)	default_a	default_b)r   rM   r   r   r   r  )r[   	mgc_hintss     r`   &test_get_type_hints_modules_forwardrefz7GetTypeHintTests.test_get_type_hints_modules_forwardrefT  sO    
 #++=+?"@"*+=+?"@B B	/00)<<<<<rb   c                    |                      t          t          j                  dt          t          j                 i           |                     t          t          j                  t                     |                      t          t          j                  dt          d           |                      t          t          j
                  t          t          t          t          j                 d           |                      t          t          j                  dt          i           |                      t          t          j                  dt          t          j                 i           |                      t          t          j                  t          t          d           |                      t          t          j                  dt          i           |                      t          t"                    t"          t          d           d           |                      t          t$                    t&          t(          j        t(          j        d	           |                      t          t&          j                  t          t          d           |                      t          t(          j                  t(          j        j        t(          j        j        t(          j        d
           d S )Nr   r)  )123r  )r  r  r   r  r  r   )r
  r
  )r  r  some_b)my_inner_a1my_inner_a2
my_outer_a)r   r  r
  r=  r   r   j_classr  r  r   r@  r|  r  r   h_classrw  r  r
  r  r
  rM   r   r   r  r   s    r`   test_get_type_hints_classesz,GetTypeHintTests.test_get_type_hints_classes]  sR   Z\**x
56	8 	8 	8c*"455t<<<Z\**Cd,C,CDDDZ\**"8JL3IJJ	L 	L 	LZ\**S#J777Z/00x
56	8 	8 	8Z\**#C,@,@AAAZ^,,sCj999^,,$2tDzzJJ	L 	L 	L011(-:L:N$6$8: :	; 	; 	; 	U]++"--	/ 	/ 	//122);)=)?);)=)?(:(<> >	? 	? 	? 	? 	?rb   c                 t     G d d          }|                      t          |          dt          i           d S )Nc                       e Zd ZU dZeed<   dS )ZGetTypeHintTests.test_get_type_hints_classes_no_implicit_optional.<locals>.WithNoneDefaultNfield)rk   rl   rm   r?  r   r   rn   rb   r`   WithNoneDefaultr>  v  s"         E3rb   r@  r?  )r   r  r   )r[   r@  s     r`   0test_get_type_hints_classes_no_implicit_optionalzAGetTypeHintTests.test_get_type_hints_classes_no_implicit_optionalu  sT    	 	 	 	 	 	 	 	 	_--~>>>>>rb   c                    t            G d d                      }|                     |j                   |                     |j        j        j                   |                     t          t          j        j	                  i             G d dt          t                             }t            G d d|                      }|                     t          |j	                  dt          i           d S )Nc                   (    e Zd Z G d d          ZdS )>GetTypeHintTests.test_respect_no_type_check.<locals>.NoTpCheckc                       e Zd ZddZdS )BGetTypeHintTests.test_respect_no_type_check.<locals>.NoTpCheck.Innr   
not a typec                     d S rf   rn   r   s     r`   r   zKGetTypeHintTests.test_respect_no_type_check.<locals>.NoTpCheck.Inn.__init__  r   rb   N)r   rG  r   rn   rb   r`   InnrF  ~  s        888888rb   rI  N)rk   rl   rm   rI  rn   rb   r`   	NoTpCheckrD  |  s<        9 9 9 9 9 9 9 9 9 9rb   rJ  c                       e Zd ZdefdZdS ):GetTypeHintTests.test_respect_no_type_check.<locals>.ABaser   c                     d S rf   rn   r   s    r`   r{  z?GetTypeHintTests.test_respect_no_type_check.<locals>.ABase.meth  r   rb   Nr'
  rn   rb   r`   ABaserL    s!        !!!!!!!rb   rN  c                       e Zd ZdS )8GetTypeHintTests.test_respect_no_type_check.<locals>.DerNr~   rn   rb   r`   DerrP    s        #rb   rQ  r   )r2   r   r?
  rI  r   r   r  r
  NTCr{  r$   r   r   )r[   rJ  rN  rQ  s       r`   test_respect_no_type_checkz+GetTypeHintTests.test_respect_no_type_check{  s   		9 	9 	9 	9 	9 	9 	9 
	9 		3444	.@AAA[_122B777	" 	" 	" 	" 	"GAJ 	" 	" 	"	% 
UZ3*55555rb   c                 b   |                      t          t                    i            |                      t          t                    i            |                      t          t                    i            |                      t          t
                    i            |                      t          t          j                  i            |                      t          t                      j                  i            |                      t          t          j	                  i            d S rf   )
r   r  r   r   rD  r  rT  r
  r|  joinr   s    r`    test_get_type_hints_for_builtinsz1GetTypeHintTests.test_get_type_hints_for_builtins  s    S2&&&TB'''S2&&&S2&&&V^,,b111VXX-..333SX+++++rb   c                     d }d|j         d<   |                     t          |          dt          i           dd}|                     t          |          dt	          d           i           d S )Nc                     d S rf   rn   r  s     r`   testfz6GetTypeHintTests.test_previous_behavior.<locals>.testf  r   rb   r   r   c                     d S rf   rn   r   s    r`   testgz6GetTypeHintTests.test_previous_behavior.<locals>.testg  r   rb   )r   N)r   r   r  r   r   )r[   rY  r[  s      r`   test_previous_behaviorz'GetTypeHintTests.test_previous_behavior  sq    %*c"Uc3Z000Uc4::%677777rb   c                      G d d          } G d d          } |            }ddi|_         |                     t          |t                                d|i           d S )Nc                       e Zd ZdS )KGetTypeHintTests.test_get_type_hints_for_object_with_annotations.<locals>.ANr~   rn   rb   r`   r   r_    r   rb   r   c                       e Zd ZdS )KGetTypeHintTests.test_get_type_hints_for_object_with_annotations.<locals>.BNr~   rn   rb   r`   r   ra    r   rb   r   r   )r   r   r  r  )r[   r   r   r   s       r`   /test_get_type_hints_for_object_with_annotationsz@GetTypeHintTests.test_get_type_hints_for_object_with_annotations  si    ACC #JQ))C844444rb   c           	         |                      t          t          j        t          j                  dt
          j        t          j                 i           |                      t          t          t                                t          t          t          t                            t          d           |                      t          t          t                                t          t                   t          t          t          t          t                            d           |                      t          t                    dt          t          t                            i           d S )Nvar)r   r   r   )r  r   r   r   r
  )r   r  r
  CVr  rO   r%   r   r  r   r   r
  ry  r    r   r   s    r`   test_get_type_hints_ClassVarz-GetTypeHintTests.test_get_type_hints_ClassVar  s    [^[-ABB!@A	C 	C 	CQ		**"(1+)>SII	K 	K 	KT799--'~Cc'46 6	7 	7 	7 	Q%$q'):!;<<<<<rb   c                     dt           i}|                     t          t           j                  |           |                     t          t           j                  |           d S )Nr[   )r!  r   r  rI	  r$  )r[   expectss     r`   ,test_get_type_hints_wrapped_decoratored_funcz=GetTypeHintTests.test_get_type_hints_wrapped_decoratored_func  sT    =)]/00':::]122G<<<<<rb   c                 
   dt           d         fd}t          t          df         }|                     t	          |t                      t                                dt           t                   i           |                     t	          |t                      t                      d          dt           t          t          df                  i           dt          t          d                   fd}t          t          df         }|                     t	          |t                      t                                dt          t                   i           |                     t	          |t                      t                      d          dt          t          t          df                  i           t          t          t          df         d	f         }d|fd
}|                     t	          |t                      t                                d         t          t          d	f                    |                     t	          |t                      t                      d          d         |           t          t          t          df         d	f         }d|fd}|                     t	          |t                      t                                d         t          t          d	f                    |                     t	          |t                      t                      d          d         |           dt          j        d	t          t           t                   df         f         dt          j        t          t          t          df         f         fd}|                     t	          |t                      t                                t          j        d	t           t                   f         t          j        t          t          f         d           t          j        d	t           t                   f         }d|fd}|                     t	          |t                      t                      d          d         |           t          j        t          t           z  df         }d|fd}	|                     t	          |	t                      t                                dt          t           z  i           |                     t	          |	t                      t                      d          dt          j        t          t           z  df         i           d S )Nr   r  c                     d S rf   rn   r   s    r`   r!  z>GetTypeHintTests.test_get_type_hints_annotated.<locals>.foobar  r   rb   rq   r  Tinclude_extrasc                     d S rf   rn   r   s    r`   r!  z>GetTypeHintTests.test_get_type_hints_annotated.<locals>.foobar  r   rb   )rq   r   .c                     d S rf   rn   r   s    r`   r)  z>GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo  r   rb   c                     d S rf   rn   r   s    r`   r)  z>GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo  r   rb   r	  r   mutablec                     d S rf   rn   r  s     r`   r+  z?GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo2  s    DGCrb   r  c                     d S rf   rn   r   s    r`   barfoo3z?GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo3  r   rb   c                     d S rf   rn   r   s    r`   barfoo4z?GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo4  r   rb   )r    r@   r   r   r,   r  r  r  rA   r   r   r  rO   r#   r   r   r  )
r[   r!  r  BAr)  r+  BA2ru  BA3rw  s
             r`   test_get_type_hints_annotatedz.GetTypeHintTests.test_get_type_hints_annotated  sk   %d3i%%%%c7l#6799fhh77$s)	
 	
 	
 	6799fhhtLLL$yg./0	
 	
 	

 	2d:c??+1111c7l#6799fhh77$s)	
 	
 	
 	6799fhhtLLL$yg./0	
 	
 	

 9QY',-b		688DDSI5QRTWQW=YYY6799fhhtLLLSQ	
 	
 	

 9QY',-b		688DDSI5QRTWQW=YYY6799fhhtLLLSQ	
 	
 	

	HvsId1gw6F,G'GH 	H|C1i<)@$@A	H 	H 	H 	H7GIIvxx88/#tAw,/fl366JKK	
 	
 	

 oc47l+ s    7GIIvxxMMMcR	
 	
 	
 sU{G34 s    7GIIvxx88#+	
 	
 	
 	7GIIvxxMMM&"3;#789	
 	
 	
 	
 	
rb   c           	      n   dt           t          t          t          df                  z  fd}|                     t          |          dt           t          t                   z  i           |                     t          |d          dt           t          t          t          df                  z  i           d S )Nr   metac                     d S rf   rn   r   s    r`   
with_unionzKGetTypeHintTests.test_get_type_hints_annotated_in_union.<locals>.with_union  r   rb   Trm  )r   r  r@   r|  r   r,   )r[   r  s     r`   &test_get_type_hints_annotated_in_unionz7GetTypeHintTests.test_get_type_hints_annotated_in_union  s    B#YsF{%; <<BBBB
33c3c?5KLLL:d;;;#YsF{3445	
 	
 	
 	
 	
rb   c                    t           t          df          G fddt          t                             }|                     t	          |j        t                      t                                |t                   |t                   d           |                     t	          |j        t                      t                      d          |t                            |t                   d           |                     t	          |j        t                      t                                |t                   |t                   d           d S )NConstc                   4    e Zd ZddZd d         ddfdZdS )	BGetTypeHintTests.test_get_type_hints_annotated_refs.<locals>.MySetrj  Const[MySet[T]]r   MySet[T]c                     d S rf   rn   r
  s     r`   __ior__zJGetTypeHintTests.test_get_type_hints_annotated_refs.<locals>.MySet.__ior__      rb   c                     d S rf   rn   r
  s     r`   __iand__zKGetTypeHintTests.test_get_type_hints_annotated_refs.<locals>.MySet.__iand__  r  rb   N)rj  r  r   r  )rk   rl   rm   r  r  )r  s   r`   MySetr    sP           eJ&7 J      rb   r  )rj  r   Trm  )	r@   r   r$   r   r,   r  r  r  r  )r[   r  r  s     @r`   "test_get_type_hints_annotated_refsz3GetTypeHintTests.test_get_type_hints_annotated_refs  s.   !W*%	 	 	 	 	 	 	GAJ 	 	 	 	5>799fhh??Ah%(33	
 	
 	

 	5>799fhhtTTTE!Hoq::	
 	
 	

 	5='))VXX>>Ah%(33	
 	
 	
 	
 	
rb   c                     ddt           t          df         fd}|                     t          |          dt          i           |                     t          |d          dt           t          df         i           d S )Nr   r
  c                     d S rf   rn   r   s    r`   annotated_with_none_defaultzeGetTypeHintTests.test_get_type_hints_annotated_with_none_default.<locals>.annotated_with_none_default  r   rb   Trm  rf   )r@   r   r   r,   )r[   r  s     r`   /test_get_type_hints_annotated_with_none_defaultz@GetTypeHintTests.test_get_type_hints_annotated_with_none_default  s    NN9S&[+ANNNN677#J	
 	
 	
 	6tLLL)CK()	
 	
 	
 	
 	
rb   c                 t     G d d          }|                      t          |          dt          i           d S )Nc                       e Zd ZU eZded<   dS )IGetTypeHintTests.test_get_type_hints_classes_str_annotations.<locals>.Foor   r   N)rk   rl   rm   r|  r   r   rn   rb   r`   r   r     s         AFFFFFrb   r   r   )r   r,   r|  ri  s     r`   +test_get_type_hints_classes_str_annotationsz<GetTypeHintTests.test_get_type_hints_classes_str_annotations  sT    	 	 	 	 	 	 	 	 	,,sCj99999rb   c                      G d d          }d|_         |                     dt          j                   |                     t          |          i            d S )Nc                       e Zd ZdS )BGetTypeHintTests.test_get_type_hints_bad_module.<locals>.BadModuleNr~   rn   rb   r`   	BadModuler  (  r  rb   r  bad)rl   r	  sysmodulesr   r,   )r[   r  s     r`   test_get_type_hints_bad_modulez/GetTypeHintTests.test_get_type_hints_bad_module&  sn    	 	 	 	 	 	 	 	$	,,,	22B77777rb   c                      G d d          } G d d|          }dx|_         |_         |                     dt          j                   |                     t          |          t          t          d           d S )Nc                       e Zd ZU eed<   dS )JGetTypeHintTests.test_get_type_hints_annotated_bad_module.<locals>.BadBaser  N)rk   rl   rm   r  r   rn   rb   r`   BadBaser  0  s         JJJJJrb   r  c                       e Zd ZU eed<   dS )JGetTypeHintTests.test_get_type_hints_annotated_bad_module.<locals>.BadTyper)  Nr2  rn   rb   r`   BadTyper  2  s         IIIIIrb   r  r  r&  )rl   r	  r  r  r   r,   r  r  )r[   r  r  s      r`   (test_get_type_hints_annotated_bad_modulez9GetTypeHintTests.test_get_type_hints_annotated_bad_module.  s    	 	 	 	 	 	 	 		 	 	 	 	g 	 	 	277W/,,,00%2M2MNNNNNrb   c                     t          t                    }|                     |dt          t                   i           t          t          j                  }|                     |dt          i           d S )Nr
  r  )r,   r
  r   r&   r|  MyClass)r[   ry
  s     r`   test_forward_ref_and_finalz+GetTypeHintTests.test_forward_ref_and_final8  s_    {++s 4555{233% 011111rb   c                     |                      t          d          5  t          t                     d d d            d S # 1 swxY w Y   d S )Nz4typing.ClassVar\[int\] is not valid as type argument)r  r   r,   r
  r   s    r`   test_top_level_class_varz)GetTypeHintTests.test_top_level_class_var@  s    ##C
 
 	( 	( ;'''		( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   >AAc           	         |                      t          t                    t          t          d           |                      t          t          d          t          t
          t                   d           |                      t          t                    t          t          d           |                      t          t          d          t          t          t                   df         t
          t          t          df                  d           |                      t          t                    t          t          d           |                      t          t          d          t          t          t                   ddf         t
          t          t          df                  d           |                      t          t                    t          t          d           |                      t          t          d          t          t          t                   ddf         t
          t          t          df                  d           |                      t          t          j                  dt          i           |                      t          t          j        d          dt          t          t                   ddd	f         i           |                      t          t                    t          t          d           |                      t          t          d          t          t                   t
          t                   d           |                      t          t                    t          t          d           |                      t          t          d          t          t          t                   ddf         t
          t          t          df                  d           d S )
N)r  r  Trm  r!  r  r  r  r   r  )r   r,   r  r|  r   r7   r  r@   r8   r  r  rN   VeryAnnotatedr
  r  r   s    r`   test_get_type_hints_typeddictz.GetTypeHintTests.test_get_type_hints_typeddictH  sQ   
33sC5P5PQQQ
4HHH$K
 K
 	 	 	
 	773PS9T9TUUUtLLLx}h67	#t) 45O
 O
 	 	 	
 	(<==VY?Z?Z[[[(<TRRRx}hGH	#t) 45U
 U
 	 	 	
 	(:;;sTW=X=XYYY(:4PPPx}hGH	#t) 45S
 S
 	 	 	
 	(:(HIICQT:VVV(:(HY]^^^8C=#sC78a
 	 	 	 	88CQT:U:UVVVMMMc]K,<P
 P
 	 	 	 	(ABBc[^D_D_```(ARVWWWx}hGH	#t) 45Z
 Z
 	 	 	 	 	rb   c                    t          d          }dt          j        j        t          gt          f         fd}dt          j        j        dt          f         fd}dt          j        j        |t          f         fd}|                     t          |          dt          j        j        t          gt          f         i           |                     t          |          dt          j        j        dt          f         i           |                     t          |          dt          j        j        |t          f         i           d S )Nr  r   c                     d S rf   rn   r   s    r`   ri   zHGetTypeHintTests.test_get_type_hints_collections_abc_callable.<locals>.ft  r   rb   .c                     d S rf   rn   r   s    r`   r  zHGetTypeHintTests.test_get_type_hints_collections_abc_callable.<locals>.gu  r   rb   c                     d S rf   rn   r   s    r`   r  zHGetTypeHintTests.test_get_type_hints_collections_abc_callable.<locals>.hv  r   rb   )rE   r  r  r#   r   r   r,   )r[   r  ri   r  r  s        r`   ,test_get_type_hints_collections_abc_callablez=GetTypeHintTests.test_get_type_hints_collections_abc_callableq  s	   cNN;)3%*5;;;;9)#s(399997)!S&17777**S+/2JC5RU:2V,WXXX**S+/2J3PS82T,UVVV**S+/2J1c62R,STTTTTrb   N)rk   rl   rm   r*  r-  r
   r2  r;  rA  rS  rV  r\  rb  rf  ri  r{  r  r  r  r  r  r  r  r  r  r  rn   rb   r`   r'  r'  D  s         / / / 
T+= = =? ? ?0? ? ?6 6 6, , ,8 8 85 5 5= = == = =
=
 =
 =
~
 
 

 
 
6

 

 

: : :8 8 8O O O2 2 2( ( (' ' 'R	U 	U 	U 	U 	Urb   r'  c                       e Zd Zd Zd ZdS )GetUtilitiesTestCasec                 
   t          d          }t          d          }t          d          } G d dt          |                   }|                     t          |t                             |           |                     t          ||                   |           |                     t          t                    d            |                     t          t          t                             t                     |                     t          t          t          t          f                   t                     |                     t          t          d                   t                     |                     t          t          t          t                                      t                     |                     t          t                    t                     |                     t          t          |                   t                     |                     t          t          t          ||f                  t                             t                     |                     t          t          |df                   t                     |                     t          t                    t                     |                     t          t                    t                      |                     t          t"                    t$          j        j                   |                     t          t          t                             t                     |                     t          t                    d            |                     t          t          t          z            t(          j                   |                     t          |j                  |           |                     t          |j                  |           |                     t          t0          t                             t0                     |                     t          t2          t                             t2                     |                     t          g |R d                   t4                     |                     t          t4          |                   t4                     |                     t          g t           g |R          R d                   t                      |                     t          t4          t          t4          |                                     t4                     d S )	Nr   r  r  c                       e Zd ZdS )/GetUtilitiesTestCase.test_get_origin.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  r   +   r  r   )r   r   rE   r$   r   r-   r   r%   r   r|  r   r&   r    r   r  r@   r  r#   r  r  r  r	  r   r   r8   r7   r   )r[   r   r  r  r=  s        r`   r   z$GetUtilitiesTestCase.test_get_origin~  s   CLL$cNN!!!!!
!!!j3((!,,,j1&&***joot,,,j#//:::jsCx115999j117;;;jtCy!122E:::j))7333j,,g666jeAqDk!23!788$???j1g:!677CCCj&&---j''///j**KO,DEEEjc++T222j&&---j,,eo>>>j((!,,,j**A...j#//:::jS!122K@@@j2++V444j,,f555j5":!233U;;;jfRj(9!:;;VDDDDDrb   c           
         t          d          } G d dt          |                   }|                     t          |t                             t          f           |                     t          ||                   |f           |                     t          t                    d           |                     t          t
          t                             t          f           |                     t          t          t          t          f                   t          t          f           |                     t          t          d                   d           |                     t          t          t          t                                      t          t                   f           |                     t          t          t          t          |t          f         f         t                             t          t          t          t          f         f           |                     t          t          j        t          t          ||f         f         t          t                                      t          t          t          t                   t          t                   f         f           |                     t          t          g |f         t                             g t          f           |                     t          t          dt          f                   dt          f           |                     t          t          t          t          t          |df         gt          f         f                   t          t          t          |df         gt          f         f           |                     t          t          t          df                   t          df           |                     t          t          d                   d           |                     t          t           |ddd	gf                   |ddd	gf           |                     t          t                    d           |                     t          t                    d           |                     t          t                    d           |                     t          t"          t                             t          f           |                     t          t"                    d           |                     t          t$          j        j        t          gt          f                   t          gt          f           |                     t          t$          j        j        dt          f                   dt          f           |                     t          t$          j        j        g t          f                   g t          f           |                     t          t$          j        j        t          gt          f                   t          t          t          gt          f                              t)          d
          }|                     t          t          |t          f                   |t          f           |                     t          t          t*          t          |f         t          f                   t*          t          |f         t          f           |                     t          t"          t          z            t"          t          f           |                     t          t,          t                             t          f           |                     t          t.          t                             t          f           |                     t          t0                    d           |                     t          t2          t                             t          f           t5          d          }|                     t          |          d           |                     t          g |R d                   |f           |                     t          t6          |                   |f           |                     t          t8          g |R                    g |R            |                     t          t8          t6          |                            t6          |         f           |                     t          g t8          g |R          R d                   g |R            |                     t          t6          t8          t6          |                                     t8          t6          |                  f           d S )Nr   c                       e Zd ZdS )-GetUtilitiesTestCase.test_get_args.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  rn   r  .oner   threer  r  r   )r   r$   r   r.   r   r%   r   r|  r   r&   r    r   rO   r!   r   r#   r@   r  r  r  rE   rF   r8   r7   rD   rI   r   r   r  )r[   r   r=  r  r  s        r`   test_get_argsz"GetUtilitiesTestCase.test_get_args  s   CLL!!!!!
!!!!C&))C6222!A$!...#+++(3-003&999%S/22S#J???'&/22H===%S	"233d3i\BBB%U1c6](:";C"@AAuS#X/	1 	1 	1&+c5A;.>"?"NOOuXc]HSM%ABC	E 	E 	E(2q5/#"677"cCCC(38"455SzBBB%XuQV}os6J-K(K"LMMxq#v(<=>	@ 	@ 	@%S/22S#J???%),,b111)Aua',B"CDDq%QRU\T]F^___$,,,%"---(++R000$s),,sf555$,,,+/":C5#:"FGG3%QTVVV+/":38"DEESzRRR+/":2s7"CDDr3iPPP+/":C5#:"FGG!(C5#:"677	9 	9 	9cNN(1c6"233aX>>>(;sAv+>+C"DEE%c1f-s3	5 	5 	5$*--c{;;;(3-003&999+c"233cV<<<),,b111)C.11C6:::$"r***&B&&),,re444&*--u555%*--vvv666%r
"344vbzmDDD.E#2##J.."344fff===&vbz):";<<uVBZ?P>RSSSSSrb   N)rk   rl   rm   r   r  rn   rb   r`   r  r  }  s:        E E E>/T /T /T /T /Trb   r  c                   F   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 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 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) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5S )6CollectionsAbcTestsc                     |                      dt          j                   |                     g t          j                   d S r   )r   rO   Hashabler   r   s    r`   test_hashablez!CollectionsAbcTests.test_hashable  8    b&/222  V_55555rb   c                    |                      g t          j                   |                      g t          j                   |                      g t          j                   |                     dt          j                   |                     t
          t          j                   |                     t
          t          j                   d S r   )r   rO   r  r   ra   r  r   s    r`   test_iterablez!CollectionsAbcTests.test_iterable  s    b&/222 	b&/222b&/222  V_555dFO444dFO44444rb   c                     t          g           }|                     |t          j                   |                     dt          j                   d S r   )r  r   rO   r
  r   )r[   its     r`   test_iteratorz!CollectionsAbcTests.test_iterator  sC    "XXb&/222  V_55555rb   c                    i }t          dt                      |           |d         } |            }|                     |t          j                   |                     |t          j                   |                    d            d S )NzPasync def foo() -> typing.Awaitable[int]:
    return await AwaitableWrapper(42)
r  )r  r  r   rO   	Awaitabler   sendr[   rx
  r  r  s       r`   test_awaitablez"CollectionsAbcTests.test_awaitable  s    6IIr	 	 	 iCEEa!1222  f&6777	trb   c                    i }t          dt                      |           |d         } |            }|                     |t          j                   |                     t                    5  t          |t          j        t                              d d d            n# 1 swxY w Y   | 	                    |t          j                   	 |
                    d            d S # t          $ r Y d S w xY w)Nzasync def foo():
    return
r  )r  r  r   rO   	Coroutiner   r   r   r   r   r  StopIterationr  s       r`   test_coroutinez"CollectionsAbcTests.test_coroutine  s*   IIr	 	 	 iCEEa!1222y)) 	1 	1q&*3/000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1  f&6777	FF4LLLLL 	 	 	DD	s$   ,&BB"%B"
C! !
C/.C/c                    t          d          }t          |          }|                     |t          j                   |                     |t          j                   |                     dt          j                   d S Nr  r   )ru   r
  r   rO   AsyncIterabler   r[   base_itr  s      r`   test_async_iterablez'CollectionsAbcTests.test_async_iterable  sk    ))!'**b&"6777b&"6777  V%9:::::rb   c                     t          d          }t          |          }|                     |t          j                   |                     dt          j                   d S r  )ru   r
  r   rO   r
  r   r  s      r`   test_async_iteratorz'CollectionsAbcTests.test_async_iterator	  sR    ))!'**b&"6777  V%9:::::rb   c                     |                      g t          j                   |                     dt          j                   d S r   )r   rO   Sizedr   r   s    r`   
test_sizedzCollectionsAbcTests.test_sized  s8    b&,///  V\22222rb   c                     |                      g t          j                   |                     dt          j                   d S r   )r   rO   rF  r   r   s    r`   test_containerz"CollectionsAbcTests.test_container  s:    b&"2333  V%566666rb   c                 @   |                      t                      t          j                   |                      t	                      t          j                   |                     t          t          j                   |                     dt          j                   d S r   )r   r  rO   
Collectionr  ra   r  r   r   s    r`   test_collectionz#CollectionsAbcTests.test_collection  st    eggv'8999ikk6+<===dF$5666  V%677777rb   c                     |                      t                      t          j                   |                     dt          j                   d S r   )r   rC  rO   rj  r   r   s    r`   test_abstractsetz$CollectionsAbcTests.test_abstractset  s>    ceeV%7888  V%788888rb   c                     |                      t                      t          j                   |                     t                      t          j                   d S rf   )r   rC  rO   
MutableSetr   r  r   s    r`   test_mutablesetz#CollectionsAbcTests.test_mutableset!  sB    ceeV%6777  f.?@@@@@rb   c                     |                      i t          j                   |                     dt          j                   d S r   )r   rO   r  r   r   s    r`   test_mappingz CollectionsAbcTests.test_mapping%  s8    b&.111  V^44444rb   c                     |                      i t          j                   |                     dt          j                   d S r   )r   rO   r"   r   r   s    r`   test_mutablemappingz'CollectionsAbcTests.test_mutablemapping)  s:    b&"7888  V%:;;;;;rb   c                     |                      g t          j                   |                     dt          j                   d S r   )r   rO   rH  r   r   s    r`   test_sequencez!CollectionsAbcTests.test_sequence-  r  rb   c                     |                      g t          j                   |                     dt          j                   d S r  )r   rO   MutableSequencer   r   s    r`   test_mutablesequencez(CollectionsAbcTests.test_mutablesequence1  s:    b&"8999  V%;<<<<<rb   c                     |                      dt          j                   |                      t          d          t          j                   d S r  )r   rO   
ByteString	bytearrayr   s    r`   test_bytestringz#CollectionsAbcTests.test_bytestring5  s@    c6#4555innf.?@@@@@rb   c                 P    |                      t          t          j                   d S rf   )ra   r  rO   r    r   s    r`   	test_listzCollectionsAbcTests.test_list9       dFK00000rb   c                     |                      t          j        t          j                    G d dt          j        t
                             }|                      |            t          j                   d S )Nc                       e Zd ZdS )/CollectionsAbcTests.test_deque.<locals>.MyDequeNr~   rn   rb   r`   MyDequer  >  r   rb   r  )ra   r  dequerO   r
  r   r   )r[   r  s     r`   
test_dequezCollectionsAbcTests.test_deque<  sc    k/>>>-----fl3'---ggii):;;;;;rb   c                 Z    |                      t          j        t          j                   d S rf   )ra   r  CounterrO   r   s    r`   test_counterz CollectionsAbcTests.test_counterA  s#    k16>BBBBBrb   c                     |                      t          t          j                   |                     t
          t          j                   d S rf   )ra   rC  rO   r
  rd   r  r   s    r`   test_setzCollectionsAbcTests.test_setD  s8    c6:...  FJ77777rb   c                     |                      t          t          j                   |                     t
          t          j                   d S rf   )ra   r  rO   r  rd   rC  r   s    r`   test_frozensetz"CollectionsAbcTests.test_frozensetH  s:    i)9:::  f&677777rb   c                 P    |                      t          t          j                   d S rf   )ra   r  rO   r!   r   s    r`   r  zCollectionsAbcTests.test_dictL  r  rb   c                 
   t          d          }t          d          }|                     t          ||f         t          t          f         t          t          t          f                    |                     t          |t          f         t                   t          t          t          f                    |                     t          t          |f         t                   t          t          t          f                    |                     t          |t
          |         f         t          t          f         t          t          t
          t                   f                    |                     t          |t
          t                   f         t                   t          t          t
          t                   f                    |                     t          |t          |         f         t          t          f         t          t          t          t                   f                    |                     t          |t          t                   f         t                   t          t          t          t                   f                    d S )Nr  r  )r   r   r!   r|  r   r    r  )r[   r  r  s      r`   test_dict_subscribez'CollectionsAbcTests.test_dict_subscribeO  s   CLLCLLadCH-tCH~>>>afc*DcN;;;c1fc*DcN;;;aaj)#s(3T#tCy.5IJJJacl+C0$sDI~2FGGGaaj)#s(3T#tCy.5IJJJacl+C0$sDI~2FGGGGGrb   c                    |                      t                    5  t          j                     d d d            n# 1 swxY w Y   |                      t                    5  t          j        t                                d d d            n# 1 swxY w Y   |                      t                    5  t          j        t
                                d d d            d S # 1 swxY w Y   d S rf   )r   r   rO   r    r   r   r   s    r`   test_no_list_instantiationz.CollectionsAbcTests.test_no_list_instantiationZ  s|   y)) 	 	KMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	KN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	K	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	1   ;?? BBB0CC #C c                 8    G d dt           j        t                             } |            }|                     ||           |                     |t           j                   |                     |t                     |                     t          |           d S )Nc                       e Zd ZdS )6CollectionsAbcTests.test_list_subclass.<locals>.MyListNr~   rn   rb   r`   MyListr  d  r  rb   r  )rO   r    r   r   rH  ra   r  rd   )r[   r  r  s      r`   test_list_subclassz&CollectionsAbcTests.test_list_subclassb  s    	 	 	 	 	V[% 	 	 	 FHHa(((a111fd+++  v.....rb   c                    |                      t                    5  t          j                     d d d            n# 1 swxY w Y   |                      t                    5  t          j        t          t
          f                      d d d            n# 1 swxY w Y   |                      t                    5  t          j        t          t          f                      d d d            d S # 1 swxY w Y   d S rf   )r   r   rO   r!   r   r   r|  r   r   s    r`   test_no_dict_instantiationz.CollectionsAbcTests.test_no_dict_instantiationn  s   y)) 	 	KMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	" 	"KB!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"y)) 	$ 	$KS!###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$1   ;?? &BBB7&C**C.1C.c                 F    G d dt           j        t          t          f                   } |            }|                     ||           |                     |t           j                   |                     |t                     |                     t          |           d S )Nc                       e Zd ZdS )6CollectionsAbcTests.test_dict_subclass.<locals>.MyDictNr~   rn   rb   r`   rT  r  x  r  rb   rT  )	rO   r!   r|  r   r   r"   ra   r  rd   )r[   rT  r  s      r`   test_dict_subclassz&CollectionsAbcTests.test_dict_subclassv  s    	 	 	 	 	V[c* 	 	 	 FHHa(((a!6777fd+++  v.....rb   c                    |                      t          t          j                              t          j                   |                      t          t          j        t          t          f                               t          j                   |                      t          t          j        t          t          f                               t          j                   d S rf   )
r   r   rO   r[  r  r   r   r   r|  r   r   s    r`   test_defaultdict_instantiationz2CollectionsAbcTests.test_defaultdict_instantiation      d6-//00+2IJJJd6-b"f57788+:QRRRd6-c3h799::K<STTTTTrb   c                     G d dt           j        t          t          f                   } |            }|                     ||           |                     |t          j                   |                     t          j        |           d S )Nc                       e Zd ZdS )@CollectionsAbcTests.test_defaultdict_subclass.<locals>.MyDefDictNr~   rn   rb   r`   	MyDefDictr    r  rb   r  )	rO   r[  r|  r   r   ra   r  r   rd   )r[   r  dds      r`   test_defaultdict_subclassz-CollectionsAbcTests.test_defaultdict_subclass      	 	 	 	 	*384 	 	 	 Y[[b),,,i)@AAA  !8)DDDDDrb   c                    |                      t          t          j                              t          j                   |                      t          t          j        t
          t          f                               t          j                   |                      t          t          j        t          t          f                               t          j                   d S rf   )	r   r   rO   OrderedDictr  r   r   r|  r   r   s    r`   test_ordereddict_instantiationz2CollectionsAbcTests.test_ordereddict_instantiation  r  rb   c                     G d dt           j        t          t          f                   } |            }|                     ||           |                     |t          j                   |                     t          j        |           d S )Nc                       e Zd ZdS )@CollectionsAbcTests.test_ordereddict_subclass.<locals>.MyOrdDictNr~   rn   rb   r`   	MyOrdDictr'    r  rb   r(  )rO   r#  r|  r   r   ra   r  rd   )r[   r(  ods      r`   test_ordereddict_subclassz-CollectionsAbcTests.test_ordereddict_subclass  r!  rb   c                    |                      t          t          j                              t          j                   |                      t          t          j        t
          t          f                               t          j                   |                      t          t          j        t          t          f                               t          j                    G d dt          j        t
          t          f                   }|                      t           |t          t          f                               |           d S )Nc                       e Zd ZdS );CollectionsAbcTests.test_chainmap_instantiation.<locals>.CMNr~   rn   rb   r`   CMr-    r   rb   r.  )	r   r   rO   r\  r  r   r   r|  r   )r[   r.  s     r`   test_chainmap_instantiationz/CollectionsAbcTests.test_chainmap_instantiation  s    d6?,,--{/CDDDd6?2r624455{7KLLLd6?38466779MNNN.....R(...d<2c3h<>>**B/////rb   c                     G d dt           j        t          t          f                   } |            }|                     ||           |                     |t          j                   |                     t          j        |           d S )Nc                       e Zd ZdS )>CollectionsAbcTests.test_chainmap_subclass.<locals>.MyChainMapNr~   rn   rb   r`   
MyChainMapr2    r  rb   r3  )rO   r\  r|  r   r   ra   r  rd   )r[   r3  r   s      r`   test_chainmap_subclassz*CollectionsAbcTests.test_chainmap_subclass  s    	 	 	 	 	c2 	 	 	 Z\\b*---j+*>???  !5zBBBBBrb   c                 X   |                      t          t          j                              t          j                   |                      t          t          j        t                                         t          j                   |                      t          t          j        t                                         t          j                    G d dt          j        t                             }|                      t           |t                                         |           d S )Nc                       e Zd ZdS )7CollectionsAbcTests.test_deque_instantiation.<locals>.DNr~   rn   rb   r`   r@  r7    r   rb   r@  )r   r   rO   r
  r  r  r   r   r[   r@  s     r`   test_deque_instantiationz,CollectionsAbcTests.test_deque_instantiation  s    d6<>>**K,=>>>d6<?,,--{/@AAAd6<,..//1BCCC%%%%%Q%%%d61S688nna(((((rb   c                 X   |                      t          t          j                              t          j                   |                      t          t          j        t
                                         t          j                   |                      t          t          j        t                                         t          j                    G d dt          j        t
                             }|                      t           |t                                         |           d S )Nc                       e Zd ZdS )9CollectionsAbcTests.test_counter_instantiation.<locals>.CNr~   rn   rb   r`   r=  r<    r   rb   r=  )r   r   rO   r   r  r   r   r  s     r`   test_counter_instantiationz.CollectionsAbcTests.test_counter_instantiation  s    d6>++,,k.ABBBd6>!,..//1DEEEd6>#.0011;3FGGG'''''q!'''d61S688nna(((((rb   c                     G d dt           j        t                             } |            }|                     ||           |                     |t           j                   |                     |t          j                   d S )Nc                       e Zd ZdS )JCollectionsAbcTests.test_counter_subclass_instantiation.<locals>.MyCounterNr~   rn   rb   r`   	MyCounterr@    r  rb   rA  )rO   r   r   r   r  )r[   rA  r  s      r`   #test_counter_subclass_instantiationz7CollectionsAbcTests.test_counter_subclass_instantiation  s    	 	 	 	 	s+ 	 	 	 IKKa+++a000a!455555rb   c                    |                      t                    5  t          j                     d d d            n# 1 swxY w Y   |                      t                    5  t          j        t                                d d d            n# 1 swxY w Y   |                      t                    5  t          j        t
                                d d d            d S # 1 swxY w Y   d S rf   )r   r   rO   r
  r   r   r   s    r`   test_no_set_instantiationz-CollectionsAbcTests.test_no_set_instantiation  sx   y)) 	 	JLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	JqMOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	JsO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                      G d dt           j        t                             } |            }|                     ||           d S )Nc                       e Zd ZdS )BCollectionsAbcTests.test_set_subclass_instantiation.<locals>.MySetNr~   rn   rb   r`   r  rG    r  rb   r  )rO   r
  r   r   )r[   r  r  s      r`   test_set_subclass_instantiationz3CollectionsAbcTests.test_set_subclass_instantiation  s[    	 	 	 	 	FJsO 	 	 	 EGGa'''''rb   c                    |                      t                    5  t          j                     d d d            n# 1 swxY w Y   |                      t                    5  t          j        t                                d d d            n# 1 swxY w Y   |                      t                    5  t          j        t
                                d d d            d S # 1 swxY w Y   d S rf   )r   r   rO   r  r   r   r   s    r`   test_no_frozenset_instantiationz3CollectionsAbcTests.test_no_frozenset_instantiation  s   y)) 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	" 	"Q!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"y)) 	$ 	$S!###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$r  c                      G d dt           j        t                             } |            }|                     ||           d S )Nc                       e Zd ZdS )NCollectionsAbcTests.test_frozenset_subclass_instantiation.<locals>.MyFrozenSetNr~   rn   rb   r`   MyFrozenSetrM    r  rb   rN  )rO   r  r   r   )r[   rN  r  s      r`   %test_frozenset_subclass_instantiationz9CollectionsAbcTests.test_frozenset_subclass_instantiation  s]    	 	 	 	 	&*3/ 	 	 	 KMMa-----rb   c                    |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5  t          t                                d d d            n# 1 swxY w Y   |                      t                    5  t          t                                d d d            d S # 1 swxY w Y   d S rf   )r   r   r   r   r   r   s    r`   test_no_tuple_instantiationz/CollectionsAbcTests.test_no_tuple_instantiation  so   y)) 	 	GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	!HJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	#JLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s0   6::BBB&CCCc                 z    d } |            }|                      t          |          t          j                   d S )Nc               3      K   dV  d S r   rn   rn   rb   r`   r  z/CollectionsAbcTests.test_generator.<locals>.foo  s      HHHHHrb   )ra   r   rO   	Generator)r[   r  r  s      r`   test_generatorz"CollectionsAbcTests.test_generator  sA    	 	 	CEEd1ggv'788888rb   c                    |                      t                    5  t          j                     d d d            n# 1 swxY w Y   |                      t                    5  t          j        t          t          t          f                      d d d            n# 1 swxY w Y   |                      t                    5  t          j        t
          t
          t
          f                      d d d            d S # 1 swxY w Y   d S rf   )r   r   rO   rT  r   r   r   s    r`   test_no_generator_instantiationz3CollectionsAbcTests.test_no_generator_instantiation  s   y)) 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	( 	(Q1W%'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(y)) 	. 	.S#s]+---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s1   ;?? ,BBB=,C66C:=C:c                     i }t          dt                      |            |d                     }|                     t          |          t          j                   d S )Nzasync def f():
    yield 42
ri   )r  r  ra   r   rO   AsyncGenerator)r[   rx
  r  s      r`   test_async_generatorz(CollectionsAbcTests.test_async_generator  s[     &yy"	. 	. 	.BsGIId1ggv'<=====rb   c                    |                      t                    5  t          j                     d d d            n# 1 swxY w Y   |                      t                    5  t          j        t          t          f                      d d d            n# 1 swxY w Y   |                      t                    5  t          j        t
          t
          f                      d d d            d S # 1 swxY w Y   d S rf   )r   r   rO   rY  r   r   r   s    r`   %test_no_async_generator_instantiationz9CollectionsAbcTests.test_no_async_generator_instantiation	  s   y)) 	$ 	$!###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$y)) 	* 	*!!Q$')))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*y)) 	. 	.!#s(+---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.r  c                 f	    G d dt           j                  }|                     t                    5   |             d d d            n# 1 swxY w Y    G d d|          }|                     t           |                      d           |                     t          |j                             | 	                     |            t           j
                    G d dt           j        t          t          f                   }|                     t           |                      d           |                     t           |t          t          f                               d           |                     t           |t          t          f                               d           |                     t          |           |                     t          |           |                     |t           j
                   |                     |t           j
                   |                     |t           j
                   | 	                     |t          t          f                     t           j
                   | 	                     |t          t          f                     t"          j        j
                   |                     |t"          j        j
                   |                     |t"          j        j
                   |                     |t"          j        j
                   |                     t                    5  t'          |t          t          f         t           j
                   d d d            n# 1 swxY w Y   |                     ||            G d d	t           j                  }|                     t*          |            G d
 dt           j        t.          t.          t.          f                   }d }|                     |t           j                   |                     |t           j                   |                     |t"          j        j                   |                     |t"          j        j                   |                     t1          |          |           d S )Nc                       e Zd ZdS )1CollectionsAbcTests.test_subclassing.<locals>.MMANr~   rn   rb   r`   MMAr_    r  rb   r`  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )1CollectionsAbcTests.test_subclassing.<locals>.MMCc                     d S rf   rn   r  s     r`   rR  z=CollectionsAbcTests.test_subclassing.<locals>.MMC.__getitem__  r  rb   c                     d S rf   rn   r  s      r`   rV  z=CollectionsAbcTests.test_subclassing.<locals>.MMC.__setitem__  r  rb   c                     d S rf   rn   r  s     r`   r  z=CollectionsAbcTests.test_subclassing.<locals>.MMC.__delitem__  r  rb   c                      t          d          S r  r  r   s    r`   r2  z:CollectionsAbcTests.test_subclassing.<locals>.MMC.__iter__   r  rb   c                     dS rL  rn   r   s    r`   r  z9CollectionsAbcTests.test_subclassing.<locals>.MMC.__len__"  r  rb   Nr  rn   rb   r`   MMCrb    r  rb   rh  r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )1CollectionsAbcTests.test_subclassing.<locals>.MMBc                     d S rf   rn   r  s     r`   rR  z=CollectionsAbcTests.test_subclassing.<locals>.MMB.__getitem__*  r  rb   c                     d S rf   rn   r  s      r`   rV  z=CollectionsAbcTests.test_subclassing.<locals>.MMB.__setitem__,  r  rb   c                     d S rf   rn   r  s     r`   r  z=CollectionsAbcTests.test_subclassing.<locals>.MMB.__delitem__.  r  rb   c                      t          d          S r  r  r   s    r`   r2  z:CollectionsAbcTests.test_subclassing.<locals>.MMB.__iter__0  r  rb   c                     dS rL  rn   r   s    r`   r  z9CollectionsAbcTests.test_subclassing.<locals>.MMB.__len__2  r  rb   Nr  rn   rb   r`   MMBrj  )  r  rb   rp  c                       e Zd ZdS )/CollectionsAbcTests.test_subclassing.<locals>.INr~   rn   rb   r`   r{  rr  K  r   rb   r{  c                       e Zd ZdS )/CollectionsAbcTests.test_subclassing.<locals>.GNr~   rn   rb   r`   ry  rt  N  r   rb   ry  c               3      K   dV  d S rL  rn   rn   rb   r`   r  z/CollectionsAbcTests.test_subclassing.<locals>.gO  s      qrb   )rO   r"   r   r   r   r  r   r$	  r  r   r  r   r   r|  rd   r  ra   r  r  rX   r  r  rT  r   r   )r[   r`  rh  rp  r{  ry  r  s          r`   test_subclassingz$CollectionsAbcTests.test_subclassing  sx   	 	 	 	 	&' 	 	 	 y)) 	 	CEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
	 
	 
	 
	 
	# 
	 
	 
	 	SSUUQ''',,---cceeV^444
	 
	 
	 
	 
	&'B/ 
	 
	 
	 	SSUUQ''']Sc]__--q111[SR[]]++Q///  s+++  s+++c6>222c6>222c6>222kc"b&kmmV^<<<kc"b&kmm[_-DEEEc;?#:;;;c;?#:;;;c;?#:;;;y)) 	6 	6s38}fn555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6c3'''%%%%%%%%  q)))55555 c3/555a!1222a111a!:;;;a!9:::  a!,,,,,s#   A

AA-M==NNc                     G d dt           j        t          t          f                   }i }t          dt	                      |           |d         }|                     |t           j                   |                     |t           j                   |                     |t          j        j                   |                     |t          j        j                   | 	                    t          |          |            |            }|                     |t           j                   |                     |t           j                   |                     |t          j        j                   |                     |t          j        j                   |                     t          |          |           |                     ||           d S )Nc                       e Zd Zd ZddZdS )?CollectionsAbcTests.test_subclassing_async_generator.<locals>.Gc                     d S rf   rn   r
  s     r`   asendzECollectionsAbcTests.test_subclassing_async_generator.<locals>.G.asendX  r  rb   Nc                     d S rf   rn   )r[   typvalr
  s       r`   athrowzFCollectionsAbcTests.test_subclassing_async_generator.<locals>.G.athrowZ  r  rb   r  )rk   rl   rm   r{  r  rn   rb   r`   ry  ry  W  s7               rb   ry  zasync def g(): yield 0r  )rO   rY  r   r  r  ra   r  r  r  rd   r   r   r   )r[   ry  rx
  r  instances        r`    test_subclassing_async_generatorz4CollectionsAbcTests.test_subclassing_async_generatorV  s   	 	 	 	 	%c3h/ 	 	 	 %wyy"555sGa!6777a!5666a!?@@@a!>???  a!,,,133h(=>>>h(<===h(FGGGh(EFFF  a!,,,  A&&&&&rb   c                 
    G d dt           j                  } G d d|          } G d d          } G d d          }|                     ||           |                     ||           |                     ||           d S )	Nc                   $    e Zd Zed             ZdS )?CollectionsAbcTests.test_subclassing_subclasshook.<locals>.Basec                      |j         dk    rdS dS )Nr   TF)rk   ri  s     r`   rk  zPCollectionsAbcTests.test_subclassing_subclasshook.<locals>.Base.__subclasshook__q  s    >U**4 5rb   Nrl  rn   rb   r`   r  r  p  s-        ! ! [! ! !rb   r  c                       e Zd ZdS )<CollectionsAbcTests.test_subclassing_subclasshook.<locals>.CNr~   rn   rb   r`   r=  r  x  r   rb   r=  c                       e Zd ZdS )>CollectionsAbcTests.test_subclassing_subclasshook.<locals>.FooNr~   rn   rb   r`   r   r  y  r   rb   r   c                       e Zd ZdS )>CollectionsAbcTests.test_subclassing_subclasshook.<locals>.BarNr~   rn   rb   r`   r   r  z  r   rb   r   )rO   r  ra   rd   )r[   r  r=  r   r   s        r`   test_subclassing_subclasshookz1CollectionsAbcTests.test_subclassing_subclasshookn  s    	! 	! 	! 	! 	!6? 	! 	! 	! 	c4(((c1%%%  a(((((rb   c                 ,    G d dt           j                  } G d d|          } G d d          }|                    |           |                     ||           |                     ||            G d d          }|                    |           |                     ||           |                     ||            G d	 d
          }t
          j        j                            |           |                     |t           j                   d S )Nc                       e Zd ZdS )8CollectionsAbcTests.test_subclassing_register.<locals>.ANr~   rn   rb   r`   r   r    r   rb   r   c                       e Zd ZdS )8CollectionsAbcTests.test_subclassing_register.<locals>.BNr~   rn   rb   r`   r   r    r   rb   r   c                       e Zd ZdS )8CollectionsAbcTests.test_subclassing_register.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  c                       e Zd ZdS )8CollectionsAbcTests.test_subclassing_register.<locals>.DNr~   rn   rb   r`   r@  r    r   rb   r@  c                       e Zd ZdS )8CollectionsAbcTests.test_subclassing_register.<locals>.MNr~   rn   rb   r`   r  r    r   rb   r  )	rO   rF  ru  ra   rd   r  r  r"   r  )r[   r   r   r=  r@  r  s         r`   test_subclassing_registerz-CollectionsAbcTests.test_subclassing_register  s   &&&&& &&&	

1a###  A&&&	

1a###a###&//222a00000rb   c                     G d dt           j        j                  }|                     |t          j                   |                     |t          j                    G d dt           j        j                  }|                     |t          j                   |                     |t          j                    G d dt           j        j                  }|                     |t          j                    G d dt           j        j        t          j        	          } G d
 d          }|                    |           |                     |t          j                   d S )Nc                       e Zd ZdS )7CollectionsAbcTests.test_collections_as_base.<locals>.MNr~   rn   rb   r`   r  r    r   rb   r  c                       e Zd ZdS )7CollectionsAbcTests.test_collections_as_base.<locals>.SNr~   rn   rb   r`   rw  r    r   rb   rw  c                       e Zd ZdS )7CollectionsAbcTests.test_collections_as_base.<locals>.INr~   rn   rb   r`   r{  r    r   rb   r{  c                       e Zd ZdS )7CollectionsAbcTests.test_collections_as_base.<locals>.ANr~   rn   rb   r`   r   r    r   rb   r   rm  c                       e Zd ZdS )7CollectionsAbcTests.test_collections_as_base.<locals>.BNr~   rn   rb   r`   r   r    r   rb   r   )	r  r  r  ra   rO   r  r  ABCMetaru  )r[   r  rw  r{  r   r   s         r`   test_collections_as_basez,CollectionsAbcTests.test_collections_as_base  s<   -----'---a000a11155555/555a!7888a111.....(...a111DDDDD'3;DDDD	

1a00000rb   c                 >   |                      t          j        t          j        z  t          t          j        t          j        f                    |                      t          j        t          j        z  t          t          j        t          j        f                    d S rf   )r   rO   r  r  r   r  r  r   s    r`   r  z#CollectionsAbcTests.test_or_and_ror  sh    (88%fN^@^:_```)FO;U6CSU[UdCd=efffffrb   N)7rk   rl   rm   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r   r$  r*  r/  r4  r9  r=  rB  rD  rH  rJ  rO  rQ  rU  rW  rZ  r\  rv  r  r  r  r  r  rn   rb   r`   r  r    sD       6 6 6	5 	5 	56 6 6

 
 
  "; ; ;; ; ;3 3 37 7 78 8 89 9 9A A A5 5 5< < <6 6 6= = =A A A1 1 1< < <
C C C8 8 88 8 81 1 1	H 	H 	H  
/ 
/ 
/$ $ $
/ 
/ 
/U U U
	E 	E 	EU U U
	E 	E 	E0 0 0	C 	C 	C) ) )) ) )6 6 6  ( ( ($ $ $. . .  9 9 9. . .> > >. . .C- C- C-J' ' '0) ) )"1 1 1&1 1 1$g g g g grb   r  c                       e Zd Zd Zd ZdS )OtherABCTestsc                     t           j        d             } |            }|                     |t          j                   |                     dt          j                   d S )Nc               3      K   dV  d S r   rn   rn   rb   r`   managerz2OtherABCTests.test_contextmanager.<locals>.manager        HHHHHrb   r   )
contextlibcontextmanagerr   rO   r<  r   )r[   r  r   s      r`   test_contextmanagerz!OtherABCTests.test_contextmanager  sd    		"	 	 
#	"	 WYYb&"7888  V%:;;;;;rb   c                     G d d          }|                      t                      t          j                   |                      |            t          j                   t
          j        d             } |            }|                     |t          j                   |                     t          j        t                   j	        t          f           | 
                    t                    5  t          dt          j        t                              d d d            n# 1 swxY w Y   | 
                    t                    5  t          j        t          t          f          d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )7OtherABCTests.test_async_contextmanager.<locals>.NotACMNr~   rn   rb   r`   NotACMr    r  rb   r  c               3      K   dV  d S r   rn   rn   rb   r`   r  z8OtherABCTests.test_async_contextmanager.<locals>.manager  r  rb   r   )r   r
  rO   AsyncContextManagerr   r  r  r   r   r  r   r   r   r|  )r[   r  r  r   s       r`   test_async_contextmanagerz'OtherABCTests.test_async_contextmanager  s   	 	 	 	 	 	 	 	ceeV%?@@@  6+EFFF		"	 	 
#	"	 WYY  V%?@@@3C8AC6JJJy)) 	< 	<r65c:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<y)) 	1 	1&sCx00	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s$   1&D##D'*D'E44E8;E8N)rk   rl   rm   r  r  rn   rb   r`   r  r    s2        < < <1 1 1 1 1rb   r  c                        e Zd Zd Zd Zd ZdS )	TypeTestsc                      G d d          } G d d|          } G d d|          }dt           |         d|fd	} ||           d S )
Nc                       e Zd ZdS )'TypeTests.test_type_basic.<locals>.UserNr~   rn   rb   r`   Userr    r   rb   r  c                       e Zd ZdS ),TypeTests.test_type_basic.<locals>.BasicUserNr~   rn   rb   r`   	BasicUserr    r   rb   r  c                       e Zd ZdS )*TypeTests.test_type_basic.<locals>.ProUserNr~   rn   rb   r`   ProUserr    r   rb   r  
user_classr   c                      |             S rf   rn   r  s    r`   new_userz+TypeTests.test_type_basic.<locals>.new_user      :<<rb   r4   )r[   r  r  r  r  s        r`   test_type_basiczTypeTests.test_type_basic  s    ########!!!!!d!!!	 d 	  	  	  	  	  	rb   c                      G d d          } G d d|          } G d d|          }t          d|          }d	t          |         d
|fd} ||           d S )Nc                       e Zd ZdS ))TypeTests.test_type_typevar.<locals>.UserNr~   rn   rb   r`   r  r    r   rb   r  c                       e Zd ZdS ).TypeTests.test_type_typevar.<locals>.BasicUserNr~   rn   rb   r`   r  r    r   rb   r  c                       e Zd ZdS ),TypeTests.test_type_typevar.<locals>.ProUserNr~   rn   rb   r`   r  r    r   rb   r  r  rs  r  r   c                      |             S rf   rn   r  s    r`   r  z-TypeTests.test_type_typevar.<locals>.new_user  r  rb   )r   r5   )r[   r  r  r  r  r  s         r`   test_type_typevarzTypeTests.test_type_typevar  s    ########!!!!!d!!!Ct$$$	 a 	 Q 	  	  	  	  	rb   c                     t           t          t                            }d|dt           t                   fd}|                      |t                    t                     |                      |d                      d S )Nr  r   c                     | d S  |             S rf   rn   r  s    r`   r  z)TypeTests.test_type_optional.<locals>.foo  s    ytqss
rb   )r   r5   BaseExceptionr   KeyboardInterruptassertIsNone)r[   r   r  s      r`   test_type_optionalzTypeTests.test_type_optional  s~    T-()	1 	-0 	 	 	 	 	cc"3446GHHH##d))$$$$$rb   N)rk   rl   rm   r  r  r  rn   rb   r`   r  r    sA        	 	 	  
% 
% 
% 
% 
%rb   r  c                   D    e Zd ZdgZd Z eed          d             ZdS )TestModules_idfuncc                 v    | j         D ]0}|                     t          t          |          j        d           1d S NrO   )
func_namesr   r`  	py_typingrl   r[   fnames     r`   test_py_functionszTestModules.test_py_functions  sG    _ 	M 	MEWY66A8LLLL	M 	Mrb   requires _typingc                 v    | j         D ]0}|                     t          t          |          j        d           1d S )NrP   )r  r   r`  c_typingrl   r  s     r`   test_c_functionszTestModules.test_c_functions  sG    _ 	M 	MEWXu55@)LLLL	M 	Mrb   N)rk   rl   rm   r  r  r	   r  r  rn   rb   r`   r  r    s[        JM M M Z,--M M .-M M Mrb   r  c                   v    e Zd Zd Zed             Zed             Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd ZdS )NewTypeTestsc                 8    | j         j        D ]} |             d S rf   )r	  rg   rh   s     r`   cleanupzNewTypeTests.cleanup  s-    & 	 	AACCCC	 	rb   c                     | j         t          j        d<   | j                             dt                    a| j                             | j        dz   t                    | _        d S )NrO   UserId	.UserName)	r	  r  r  NewTyper   r  rm   r|  UserNamere	  s    r`   
setUpClasszNewTypeTests.setUpClass  sL     #
H##Hc22z))#*:[*H#NNrb   c                 4    b | `t          t          j        d<   d S r  )r  r  rO   r  r  re	  s    r`   tearDownClasszNewTypeTests.tearDownClass  s     L &Hrb   c                 .    |                                   d S rf   )r  r   s    r`   tearDownzNewTypeTests.tearDown  s    rb   c                     |                      t          d          t                     |                      |                     d          t                     |                     t          d          dz   d           d S )Nr  Joerq      )r   r  r   r  r|  r   r   s    r`   r  zNewTypeTests.test_basic  sf    fQii---dmmE22C888Q*****rb   c                 *   |                      t                    5  t          t          t                     d d d            n# 1 swxY w Y   |                      t                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )#NewTypeTests.test_errors.<locals>.DNr~   rn   rb   r`   r@  r    r   rb   r@  )r   r   rX   r  r   r8  s     r`   r   zNewTypeTests.test_errors  s   y)) 	$ 	$vs###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$y)) 	 	    F   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s#   AA	A'BBBc                 P   t           | j        fD ]}|                     |          5  |                     t          |z  | j        j        t          |f                    |                     |t          z  | j        j        |t          f                    |                     | j                            t          |z            t          |f           |                     | j                            |t          z            |t          f           d d d            n# 1 swxY w Y   d S )Nre	  )r   r  rx   r   r  r	  r   r.   )r[   r\   s     r`   r  zNewTypeTests.test_or  sM   ' 	T 	TC#&& T T  #t{/@/MNNN  vt{/@f/MNNN  !5!5fsl!C!Cfc]SSS  !5!5cFl!C!Cc6]SSST T T T T T T T T T T T T T T	T 	Ts   C%DD	 D	c                 .   |                      t          j        d           |                      t          j        d           |                      t          j        t                     |                      t          j        t                     | j        }|                      |j        d           |                      |j        | j        j        dz              |                      |j        t                     |                      |j        t                     d S )Nr  r  r  )
r   r  rk   rm   rl   __supertype__r   r  r   r|  )r[   r  s     r`   test_special_attrszNewTypeTests.test_special_attrs%  s    (333,h777*H555-s333=*J777.4{B	D 	D 	D,h777/55555rb   c                     |                      t          t                    t           d           |                      t          | j                  t           d| j        j         d           d S )Nz.UserIdrD  r  )r   r   r  rk   r  r   rm   r   s    r`   r   zNewTypeTests.test_repr2  ss    f(';';';<<<dm,,$MMt~'BMMM	O 	O 	O 	O 	Orb   c                    | j                             dt                    }t          t          j        dz             D ]}|                     |          5  t	          j        t          |          }t	          j	        |          }| 
                    |t                     t	          j        | j        |          }t	          j	        |          }| 
                    || j                   |                     t          j                  5  t	          j        ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )NUserAgerq   rs   )r	  r  r  ru   rv   rw   rx   r>  r  r=  r   r  r   PicklingError)r[   r   rt   pickledr  s        r`   r  zNewTypeTests.test_pickle7  s   +%%i7762Q677 	1 	1EE** 
1 
1 ,vu55g..ff--- ,t}e<<g..fdm444&&v';<< 1 1L%0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 
1 
1 
1 
1 
1 
1 
1 
1 
1 
1 
1 
1 
1 
1	1 	1s7   B2ED*E*D..E1D.2EE	E	c                 *    d}t          |i            d S )Nz-import typing
NT = typing.NewType('NT', int)
r  r  s     r`   r  z!NewTypeTests.test_missing__name__F  s    3 	T2rb   c                     |                      t          t          j        d                    5   G d dt                    }d d d            d S # 1 swxY w Y   d S )NzpCannot subclass an instance of NewType. Perhaps you were looking for: `ProUserId = NewType('ProUserId', UserId)`c                       e Zd ZdS )CNewTypeTests.test_error_message_when_subclassing.<locals>.ProUserIdNr~   rn   rb   r`   	ProUserIdr  T  r  rb   r  )r  r   r	  r	  r  )r[   r  s     r`   #test_error_message_when_subclassingz0NewTypeTests.test_error_message_when_subclassingL  s    ##I= 
 
 	 	    F   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAN)rk   rl   rm   r  rm  r  r  r  r  r   r  r  r   r  r  r  rn   rb   r`   r  r    s           O O [O ' ' ['  + + +
  T T T6 6 6O O O
1 1 1  	 	 	 	 	rb   r  c                       e Zd ZeZdS )NewTypePythonTestsN)rk   rl   rm   r  r	  rn   rb   r`   r
  r
  X  s        FFFrb   r
  r  c                       e Zd ZeZdS )NewTypeCTestsN)rk   rl   rm   r  r	  rn   rb   r`   r  r  \  s        FFFrb   r  c                   r    e Zd Z G d d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S )NamedTupleTestsc                   $    e Zd ZU eed<   eed<   dS )NamedTupleTests.NestedEmployeer
  r
  Nr
  rn   rb   r`   NestedEmployeer  b  s"         								rb   r  c                    t          ddt          fdt          fg          }|                     |t                      |dd          } |dd          }|                     ||           |                     |t                     |                     |j        d           |                     |j        d           |                     |j        d           |                     |j        d           |                     |j	        d           |                     |j
        d           |                     |j        t          j        dt          fdt          fg                     d S )	NEmpr
  idr  r   Jimrq   r
  r  )r6   r|  r   ra   r  r   r   r
  r  rk   _fieldsr   r  r#  )r[   r  joejims       r`   r5  zNamedTupleTests.test_basicsf  sZ   &#s <==c5)))c%nncu###c3'''c5)))5)))$$$5)))###u---n555,$063-$1MNN	P 	P 	P 	P 	Prb   c                    t          dd          }|                     |t                      |                     |t                     |                     |j        d           |                     |j        d           |                     t           j        d           |                     t           j        d           |                     t           j        t          j
        t          t                               d S )NTimi(#  r
  r
  r
  )r
  r   r  r   r
  r
  rk   r  r   r  r#  r|  r   )r[   tims     r`   test_annotation_usagez%NamedTupleTests.test_annotation_usagev  s    5$''c<000c5)))5)))4(((.???-/?@@@5$0cDDD	F 	F 	F 	F 	Frb   c                 ,   t          d          }|                     |t                      |                     |t                     |                     |j        d           |                     |j        d           t          dd          }|                     |j        d           |                     t           j        d           |                     t           j        d           |                     t           j        t          t          t                               |                     t           j        t          d                     |                     t                    5   G d d	t                    }d d d            d S # 1 swxY w Y   d S )
NJeller   Sjoerdrq   r
  r  )r
  c                   (    e Zd ZU dZeed<   eed<   dS )RNamedTupleTests.test_annotation_usage_with_default.<locals>.NonDefaultAfterDefaultr  r   r   N)rk   rl   rm   r   r   r   rn   rb   r`   NonDefaultAfterDefaultr#    s&         3


rb   r$  )r
  r   r  r   r
  r
  rk   r  r   r  r|  r   _field_defaultsr   r   r6   )r[   jellecooler_employeer$  s       r`   "test_annotation_usage_with_defaultz2NamedTupleTests.test_annotation_usage_with_default  s   '00e%<===eU+++W---Q'''1(A>>-q11109;TUUU08:JKKK0@3S111	3 	3 	30@$A,,,OOOy)) 	 	       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   (F		FFc                    |                      t          d                                          d           |                      t          d          j        t          d          d                    |                      t	          t          d                    d           |                      t          dd          t          d          z   d           |                     t                    5   G d dt                    }d d d            n# 1 swxY w Y   |                     t                    5   G d	 d
t                    }d d d            d S # 1 swxY w Y   d S )Nrq   r   r   r   z42 -> 1r  c                        e Zd ZU eed<   d ZdS )DNamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBadr   c                     dS )Nzno chance for thisrn   r   s    r`   r  zLNamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBad._fields  s    //rb   N)rk   rl   rm   r   r   r  rn   rb   r`   XMethBadr+    s.         0 0 0 0 0rb   r-  c                        e Zd ZU eed<   d ZdS )ENamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBad2r   c                     dS )Nzno chance for this as wellrn   r   s    r`   _sourcezMNamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBad2._source  s    77rb   N)rk   rl   rm   r   r   r1  rn   rb   r`   	XMethBad2r/    s.         8 8 8 8 8rb   r2  )	r   r
  r
  r   r|  r
  r   r  r6   )r[   r-  r2  s      r`   "test_annotation_usage_with_methodsz2NamedTupleTests.test_annotation_usage_with_methods  s   q**A...reBiil333U2YY333q!uQxx/333~.. 	0 	00 0 0 0 0: 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 ~.. 	8 	88 8 8 8 8J 8 8 8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s$   /DDD4EEEc                     G d d          }|                      t                    5   G d dt          |          }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t                    }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t                    }d d d            n# 1 swxY w Y    G d	 d
t                    }|                      t                    5   G d dt          |          }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )4NamedTupleTests.test_multiple_inheritance.<locals>.ANr~   rn   rb   r`   r   r6    r  rb   r   c                       e Zd ZU eed<   dS )4NamedTupleTests.test_multiple_inheritance.<locals>.Xr   Nrf  rn   rb   r`   r  r8    r=
  rb   r  c                       e Zd ZU eed<   dS )4NamedTupleTests.test_multiple_inheritance.<locals>.Yr   Nrf  rn   rb   r`   r  r:    r=
  rb   r  c                       e Zd ZU eed<   dS )4NamedTupleTests.test_multiple_inheritance.<locals>.Zr   Nrf  rn   rb   r`   r  r<    r=
  rb   r  c                       e Zd ZU eed<   dS )4NamedTupleTests.test_multiple_inheritance.<locals>.Br   Nrf  rn   rb   r`   r   r>    rA  rb   r   c                       e Zd ZU eed<   dS )4NamedTupleTests.test_multiple_inheritance.<locals>.Cr   Nrk  rn   rb   r`   r=  r@    r=
  rb   r=  )r   r   r6   r  )r[   r   r  r  r  r   r=  s          r`   r  z)NamedTupleTests.test_multiple_inheritance  s   	 	 	 	 	 	 	 	y)) 	 	    J   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    J   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    J
   	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	
 	 	 	y)) 	 	    J   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sG   A		AA.BBB9CC#&C#D99D= D=c                 H    G d dt           t          t                             }|                     |j        t
          t          f           |                     |j        t           t          t                   f           |                     |j        |t
          t          t          f            G d dt          t                   t                     }|                     |j        t          t
          f           |                     |j        t          t                   t           f           |                     |j        |t          t
          t          f           ||fD ]E}| 	                    |          5  |                     |j
        t          f           |t                   }|                     |j        |           |                     |j        t          f           |                     |j
        d            |d          }|                     t          |          |           |                     |j        d           |                     t$                    5  |t          t&          f          d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   Gd S )Nc                       e Zd ZU eed<   dS )'NamedTupleTests.test_generic.<locals>.Xr   Nr
  rn   rb   r`   r  rC             DDDDDrb   r  c                       e Zd ZU eed<   dS )'NamedTupleTests.test_generic.<locals>.Yr   Nr
  rn   rb   r`   r  rF    rD  rb   r  r   rn   r  )r6   r$   r   r   r  r  r  r  rT  rx   r  r   r   r  r  r   r   r   r   r|  )r[   r  r  ry  r   r  s         r`   test_genericzNamedTupleTests.test_generic  s   	 	 	 	 	
GAJ 	 	 	ug&6777)J
+CDDDQw$?@@@	 	 	 	 	
J 	 	 	w&6777)GAJ
+CDDDQ$?@@@A 	  	 A1%%      !1A4888cFalA...  cV444  !12666AaDDd1ggq)))  a(((&&y11    c3hKK                                                          	  	 s7   4C)JI>2J>JJJJJ	J	c                     G d dt                     }|t                   }|                     |j        |           |                     |j        d           |                     |j        t          f            |ddg          }|                     t          |          |           |                     |ddgf           d S )Nc                   0    e Zd ZU eed<   ee         ed<   dS )9NamedTupleTests.test_non_generic_subscript.<locals>.GrouprO  groupN)rk   rl   rm   r   r   r  rn   rb   r`   GrouprK    s&         FFF7NNNNNrb   rM  rn   rq   r   )r6   r   r   r  r  r  r   r   )r[   rM  r   r  s       r`   r%	  z*NamedTupleTests.test_non_generic_subscript  s    	 	 	 	 	J 	 	 	 #Ju---)2...cV,,,Aa!IId1ggu%%%QH%%%%%rb   c                 :   t          dt          t                    } |dd          }|                     |t                     |                     |j        d           |                     |j        d           |                     |j        d           |                     |j	        t          t          t                               |                     t                    5  t          ddt          fgt                     d d d            d S # 1 swxY w Y   d S )NLocalEmployee)r
  ageNick   Namer   r   )r6   r|  r   r   r  r   r
  rk   r  r   r  r   r   )r[   rO  nicks      r`   test_namedtuple_keyword_usagez-NamedTupleTests.test_namedtuple_keyword_usage  s@   "?#FFF}VR((dE***F+++/AAA.@@@6#38O8O8OPPPy)) 	4 	4vc
|s3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   # DDDc                    t          dt          t          t          t                    }|                     |j        d           |                     |j        d            |t          dddt          fg          }|                     |j	        t                     |                     |j
        d           |                     |j        d           |                     |j        dt          fg           d S )Nr  )r\   r[   typenamefieldsr   r  r)  )r6   r   rT  r|  r  r   rk   r  r  r\   r[   rX  rY  )r[   r  r  s      r`   %test_namedtuple_special_keyword_namesz5NamedTupleTests.test_namedtuple_special_keyword_names  s    $Vc$OOOd+++%JKKKB3R%%8HIII$$$$$$U+++UEN#344444rb   c                    t          d          } G d dt                     }||fD ]}|                     |          5  |                     |j        d           |                     |j        i            |                     |j        i            |                      |            |           d d d            n# 1 swxY w Y   d S )Nr  c                       e Zd ZdS )2NamedTupleTests.test_empty_namedtuple.<locals>.CNTNr~   rn   rb   r`   CNTr]    r  rb   r^  )structrn   )r6   rx   r   r  r%  r   r   )r[   r  r^  r_  s       r`   test_empty_namedtuplez%NamedTupleTests.test_empty_namedtuple  s(   	 	 	 	 	* 	 	 	 3i 	8 	8FV,, 8 8  444  !7<<<  !7<<<%%ffhh777	8 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8s   A0B;;B?	B?	c                    |                      t                    5  t          j                     d d d            n# 1 swxY w Y   |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5  t          ddt          fgd            d d d            n# 1 swxY w Y   |                      t
                    5  t          ddt          fg           d d d            n# 1 swxY w Y   |                      t                    5  t          dt          t                     d d d            d S # 1 swxY w Y   d S )Nr  r
  _name)rX  r
  r  )r   r   r6   r  r|  r  r   r   s    r`   test_namedtuple_errorsz&NamedTupleTests.test_namedtuple_errors  sz   y)) 	! 	!   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!y)) 	 	LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	5 	5u}ot444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5z** 	0 	0u~.///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0y)) 	9 	9CC8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9sU   ;?? A;;A?A? CC
C
+DDD5EE#&E#c                    t          ddt          fdt          fg          at          t          | j        fD ]'}|                     |          5   |dd          }t          t          j	        dz             D ]W}t          j
        ||          }t          j        |          }|                     ||           |                     ||           Xt          |          }|                     ||           |                     ||           t          |          }|                     ||           |                     ||           d d d            n# 1 swxY w Y   )d S )Nr  r
  r
  re	  jane%   rq   )r6   r|  r   r  r
  r  rx   ru   rv   rw   r>  r=  r   r   r   r   )r[   r\   re  rt   r  jane2s         r`   test_copy_and_picklez$NamedTupleTests.test_copy_and_pickle  s   &# >??d&99 	2 	2C#&& 2 2s62"6#:Q#>?? 6 6ET511A"LOOE$$UD111))%5555T

  ---%%eS111   ---%%eS1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2s   C7EE	E	N)rk   rl   rm   r6   r  r5  r  r(  r3  r  rH  r%	  rV  rZ  r`  rc  rh  rn   rb   r`   r  r  a  s               P P P 	F 	F 	F  (8 8 8$  $     8& & &	4 	4 	45 5 58 8 8
9 
9 
92 2 2 2 2rb   r  c                       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 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TypedDictTestsc                     t          dt          t          d          }|                     |t                     |                     |t
          j                   |                     |t          j	        j
                    |dd          }|                     t          |          t                     |                     |d         d           |                     |d         d           |                     |j        d           |                     |j        t                     |                     |j        t          f           |                     |j        t          t          d           |                     |j        d           |                     |j        ddh           |                     |j        t*                     |                     |j        t/                                 |                     |j        t*                     d S Nr  r  r  rq   r
  r  T)r9   r|  r   ra   r  rO   r"   rd   r  r  rH  r   r   r   rk   rl   r  r   	__total____required_keys__r   r  __optional_keys__rC  r[   r  r  s      r`   test_basics_functional_syntaxz,TypedDictTests.test_basics_functional_syntax'  s   37788c4(((c6#8999  ko&>???cu###d3ii&&&Ve,,,TA&&&u---222000,s#.F.FGGG---.???c3Y???.666c3Y?????rb   c                 z   |                      t                    5  t          dt          t                    }d d d            n# 1 swxY w Y   |                     |t                     |                     |t          j                   | 	                    |t          j        j                    |dd          }|                     t          |          t                     |                     |d         d           |                     |d         d           |                     |j        d           |                     |j        t                      |                     |j        t          f           |                     |j        t          t          d           |                     |j        d           d S rl  )assertWarnsDeprecationWarningr9   r|  r   ra   r  rO   r"   rd   r  r  rH  r   r   r   rk   rl   r  r   rm  rp  s      r`   test_basics_keywords_syntaxz*TypedDictTests.test_basics_keywords_syntax:  s   011 	5 	5E444C	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5c4(((c6#8999  ko&>???cu###d3ii&&&Ve,,,TA&&&u---222000,s#.F.FGGG-----s   AAAc           
      J   |                      t                    5  t          dt          t          t
          t          t          t                    }d d d            n# 1 swxY w Y   | 	                    |j
        d           | 	                    |j        t          t          t
          t          t          t          d            |t
          ddddt          fgdt          h          }| 	                    |d         t
                     | 	                    |d	         d           | 	                    |d
         d           | 	                    |d         d           | 	                    |d         dt          fg           | 	                    |d         dt          h           d S )NTD)r\   r[   rX  	_typenamerY  r  r   r  5   r)  r)  r\   r[   rX  rx  rY  r  )rs  rt  r9   r   rT  r|  r   r  r  r   rk   r   r  rC  )r[   rw  r  s      r`   $test_typeddict_special_keyword_namesz3TypedDictTests.test_typeddict_special_keyword_namesJ  s   011 	p 	p4TPS\`jnoooB	p 	p 	p 	p 	p 	p 	p 	p 	p 	p 	p 	p 	p 	p 	pd++++T6WZilx|  JN  .O  .O  	P  	P  	PB3R%2u~FVafhk`lmmm53'''6B''':...;,,,8u~&67779s|44444s   5AA #A c                 D   |                      t                    5  t          j                     d d d            n# 1 swxY w Y   |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5  t          ddt          fgd            d d d            n# 1 swxY w Y   |                      t                    5  t          dt          t
                     d d d            d S # 1 swxY w Y   d S )Nr  r
  )rx  r
  r  )r   r   r9   r  r|  r   r   s    r`   test_typeddict_create_errorsz+TypedDictTests.test_typeddict_create_errorsW  s   y)) 	  	 	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 y)) 	 	KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	4 	4evsm_d333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4y)) 	9 	9CC8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9sC   ;?? A;;A?A? CC
C
+DDDc                    t          dt          t          d          }|                     t           j        d            |dd          }|                     t                    5  t          i |           d d d            n# 1 swxY w Y   |                     t                    5  t          ||           d d d            n# 1 swxY w Y   |                     t                    5  t          t          |           d d d            n# 1 swxY w Y   |                     t                    5  t          ddt          fgt                     d d d            d S # 1 swxY w Y   d S )	Nr  r  rO   r  rq   Hir   rT  )
r9   r|  r   r   rl   r   r   r   rX   r  rp  s      r`   test_typeddict_errorsz$TypedDictTests.test_typeddict_errorsa  sD   37788-x888cu###y)) 	  	 r3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 y)) 	! 	!sC   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!y)) 	" 	"tS!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"y)) 	1 	1dc3ZLC0000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1sH   %BB	B'CCC)DDD0 EE!$E!c                    |                      t          j        d           |                      t          j        t                     |                      t          j        t
          t
          t          d           |                      t          j        t          f           |                      t          j	        d           | 
                    t          t          j                   t          dd          }|                      |d         d           |                      |d         d           t          ddd	          }|                      |d
         d	           d S )Nr
  r  Tr   rq   r  r   r   hirj  )r   r
  rk   rl   r   r   r|  r  r  rm  rd   rO   rH  r
  )r[   
not_originrj  s      r`   test_py36_class_syntax_usagez+TypedDictTests.test_py36_class_syntax_usagen  s   .???0(;;;5SsUX7Y7YZZZ/$999/666  v???qA&&&
C!,,,C!,,,qAT222w.....rb   c                    t          dt          t          d          at          ddd          }t	          t
          j        dz             D ]}t          j        ||          }t          j        |          }| 	                    ||           | 	                    |ddd           t          j        t          |          }t          j        |          }| 	                     |ddd          |           d S )NEmpDr  re  rf  rq   )
r9   r|  r   r  ru   rv   rw   r>  r=  r   )r[   re  rt   r  rg  ZZEmpDnews          r`   r  zTypedDictTests.test_pickle{  s    #S!9!9::V2..//62Q677 	H 	HET5))ALOOEUD)))UV2$>$>???dE**Bl2&&GWWfB%?%?@@$GGGG	H 	Hrb   c                    t          dd          }t          t          j        dz             D ]}t          j        ||          }t          j        |          }|                     ||           |                     |ddd           t          j        t           |          }t          j        |          }|                      |ddd          |           d S )Ng      @g      @r	  rq   )r
  ru   rv   rw   r>  r=  r   )r[   pointrt   r  point2r  Point2DGenericNews          r`   test_pickle_genericz"TypedDictTests.test_pickle_generic  s    ,,,62Q677 	M 	MEUE**A\!__FVU+++V3S%9%9:::ne44B &R 0 0..Ss/C/CDDeLLLL	M 	Mrb   c                    t          dt          t          d          }|                     t          j        |         t          j        d |f                    |                     t          j        |         t          j	        |                    d S )Nr  r  )
r9   r|  r   r   rO   r   r   r   r    r   )r[   r  s     r`   r  zTypedDictTests.test_optional  sk    #S!9!9::.T4Z0HIIIFK-v|D/ABBBBBrb   c                 `   t          ddt          id          }|                      |            i            |                      |d          ddi           |                     |j        d           |                     |j        t                                 |                     |j        t
                     |                     |j        dh           |                     |j        t
                     |                     t                      i            |                     t          d          d	di           |                     t          j        d           |                     t          j        t                                 |                     t          j        d	d
h           d S )Nr@  r   Fr
  rq   r   r   )r
  r
  r
  )	r9   r   r   rm  rn  r  r   ro  r
  r8  s     r`   
test_totalzTypedDictTests.test_total  sv   cC:U333b!!!Q#q***e,,,,ikk:::a19===,se444a19===B'''1---Q/?@@@*E2222IKK@@@2[*4MNNNNNrb   c                 V    G d dt           d          }|                     |j        t          ddg                     |                     |j        t                     |                     |j        t          dg                     |                     |j        t                     d S )Nc                       e Zd ZU eed<   dS )6TypedDictTests.test_optional_keys.<locals>.Point2Dor3Dr  Nrf  rn   rb   r`   Point2Dor3Dr    rA  rb   r  Fr
  r   r   r  )r
  r   rn  r  r   ro  )r[   r  s     r`   test_optional_keysz!TypedDictTests.test_optional_keys  s    	 	 	 	 	' 	 	 	 	 	6	3*8M8MNNNk;YGGG6	3%8H8HIIIk;YGGGGGrb   c                 `    G d dt                     } G d d|d          } G d d|          }|                     |j        t          d	g                     |                     |j        t          g                      |                     |j        d	t          i           |                     |j        t          d	g                     |                     |j        t          d
dg                     |                     |j        t          t          t          d           |                     |j        t          d	dg                     |                     |j        t          d
dg                     |                     |j        t          t          t          t          d           d S )Nc                       e Zd ZU eed<   dS )8TypedDictTests.test_keys_inheritance.<locals>.BaseAnimalr
  Nrk  rn   rb   r`   
BaseAnimalr    r  rb   r  c                   $    e Zd ZU eed<   eed<   dS )4TypedDictTests.test_keys_inheritance.<locals>.AnimalvoicerW  N)rk   rl   rm   r|  r   r  rn   rb   r`   Animalr    s"         JJJJJJJJrb   r  Fr
  c                       e Zd ZU eed<   dS )1TypedDictTests.test_keys_inheritance.<locals>.Cat	fur_colorNrk  rn   rb   r`   Catr    s         NNNNNrb   r  r
  rW  r  )r
  rW  r  r  )r  r
  rW  r  )r9   r   rn  r  ro  r   r|  r  )r[   r  r  r  s       r`   test_keys_inheritancez$TypedDictTests.test_keys_inheritance  s   	 	 	 	 	 	 	 		 	 	 	 	Zu 	 	 	 		 	 	 	 	& 	 	 	 	5y&7J7JKKK5y}}EEE3fc]CCC19fX3F3FGGG19fg=N3O3OPPP/2
 2
 	 	 	 	.	6;:O0P0PQQQ.	67:K0L0LMMM,	/
 /
 	 	 	 	 	rb   c                     G d dt           d          } G d d|          }|                     |j        t                                 |                     |j        t          dg                     |                     |j        t          dg                     |                     |j        t                                  G d d	t                     } G d
 d|          }|                     |j        t          dg                     |                     |j        t          dg                     |                     |j        t          dg                     |                     |j        t          dg                     d S )Nc                       e Zd ZU eed<   dS )ETypedDictTests.test_keys_inheritance_with_same_name.<locals>.NotTotalr  Nrf  rn   rb   r`   NotTotalr    rA  rb   r  Fr
  c                       e Zd ZU eed<   dS )BTypedDictTests.test_keys_inheritance_with_same_name.<locals>.Totalr  Nrf  rn   rb   r`   Totalr    rA  rb   r  r  c                   <    e Zd ZU ee         ed<   ee         ed<   dS )ATypedDictTests.test_keys_inheritance_with_same_name.<locals>.Baser  r   N)rk   rl   rm   r7   r   r   r8   rn   rb   r`   r  r    s3         3}rb   r  c                   <    e Zd ZU ee         ed<   ee         ed<   dS )BTypedDictTests.test_keys_inheritance_with_same_name.<locals>.Childr  r   N)rk   rl   rm   r8   r   r   r7   rn   rb   r`   r.
  r    s3         }3rb   r.
  r   )r9   r   rn  r  ro  )r[   r  r  r  r.
  s        r`   $test_keys_inheritance_with_same_namez3TypedDictTests.test_keys_inheritance_with_same_name  s   	 	 	 	 	y 	 	 	 		 	 	 	 	H 	 	 	 	3Y[[AAA3Yu5E5EFFF0)SE2B2BCCC0)++>>>	 	 	 	 	9 	 	 		  	  	  	  	 D 	  	  	  	/C51A1ABBB/C51A1ABBB0)SE2B2BCCC0)SE2B2BCCCCCrb   c                 j    G d dt                     } G d dt                     } G d d||          }|                     |j        dt          t                   i           |                     |j        t          dg                     |                     |j        t                                 d S )Nc                   &    e Zd ZU ee         ed<   dS )ETypedDictTests.test_multiple_inheritance_with_same_key.<locals>.Base1r  Nr  rn   rb   r`   Base1r    s#         3rb   r  c                   &    e Zd ZU ee         ed<   dS )ETypedDictTests.test_multiple_inheritance_with_same_key.<locals>.Base2r  Nr  rn   rb   r`   Base2r    s"         }rb   r  c                       e Zd ZdS )ETypedDictTests.test_multiple_inheritance_with_same_key.<locals>.ChildNr~   rn   rb   r`   r.
  r    r  rb   r.
  r  )r9   r   r   r8   r|  rn  r  ro  )r[   r  r  r.
  s       r`   'test_multiple_inheritance_with_same_keyz6TypedDictTests.test_multiple_inheritance_with_same_key  s    	  	  	  	  	 I 	  	  	 	 	 	 	 	I 	 	 		 	 	 	 	E5 	 	 	 	.hsm0DEEE0)SE2B2BCCC0)++>>>>>rb   c                    |                      t          j        t          dh                     |                      t          j        t          dh                     |                      t
          j        t          dh                     |                      t
          j        t          dh                     |                      t          j        j        t                                 |                      t          j        j        t          dh                     |                      t          j        t          dh                     |                      t          j        t          dh                     |                      t          j        t          dh                     |                      t          j        t          dh                     |                      t          j        t          dh                     |                      t          j        t          dh                     |                      t          j        t          dh                     |                      t          j        t          dh                     d S )Nr  r  r  )r   r  rn  r  ro  r  rN   r  r  r  r
  r  r   s    r`   test_required_notrequired_keysz-TypedDictTests.test_required_notrequired_keys  sj   8"G9--	/ 	/ 	/8"F8,,	. 	. 	. 	5"G9--	/ 	/ 	/5"F8,,	. 	. 	. 	+9K"	& 	& 	&+9K"C5))	+ 	+ 	+ 	9"G9--	/ 	/ 	/9"F8,,	. 	. 	. 	+="G9--	/ 	/ 	/+="F8,,	. 	. 	. 	:"G9--	/ 	/ 	/:"F8,,	. 	. 	. 	2D"G9--	/ 	/ 	/2D"F8,,	. 	. 	. 	. 	.rb   c                 L    G d dt                     } G d dt                     } G d dt           d          }t          d	d
t          i          } G d d          } G d d||          }|                     |j        t	          g d                     |                     |j        t	          g                      |                     |j        t          t          t          d            G d d||          }|                     |j        t	          ddg                     |                     |j        t	          dg                     |                     |j        t          t          t          d            G d d||d          }|                     |j        t	          dg                     |                     |j        t	          ddg                     |                     |j        t          t          t          d            G d d||          }	|                     |	j        t	          d
dg                     |                     |	j        t	          dg                     |                     |	j        t          t          t          d           ||f||f|||f||f||fg}
|
D ]n}| 	                    |          5  | 
                    t          d          5   G d dg|R  }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   od S )Nc                       e Zd ZU eed<   dS )5TypedDictTests.test_multiple_inheritance.<locals>.Oner  Nrf  rn   rb   r`   Oner             HHHHHrb   r  c                       e Zd ZU eed<   dS )5TypedDictTests.test_multiple_inheritance.<locals>.TwotwoNrk  rn   rb   r`   Twor  !  r  rb   r  c                       e Zd ZU eed<   dS )9TypedDictTests.test_multiple_inheritance.<locals>.UntotaluntotalNrk  rn   rb   r`   Untotalr  #  s         LLLLLrb   r  Fr
  Inlineinlinec                       e Zd ZdS )9TypedDictTests.test_multiple_inheritance.<locals>.RegularNr~   rn   rb   r`   Regularr  &  r  rb   r  c                       e Zd ZU eed<   dS )7TypedDictTests.test_multiple_inheritance.<locals>.ChildchildNrk   rl   rm   r  r   rn   rb   r`   r.
  r  )           KKKKKrb   r.
  )r  r  r  c                       e Zd ZU eed<   dS )CTypedDictTests.test_multiple_inheritance.<locals>.ChildWithOptionalr  Nr  rn   rb   r`   ChildWithOptionalr  8  r  rb   r  r  r  r  )r  r  r  c                       e Zd ZU eed<   dS )ETypedDictTests.test_multiple_inheritance.<locals>.ChildWithTotalFalser  Nr  rn   rb   r`   ChildWithTotalFalser  G  r  rb   r  c                       e Zd ZU eed<   dS )LTypedDictTests.test_multiple_inheritance.<locals>.ChildWithInlineAndOptionalr  Nr  rn   rb   r`   ChildWithInlineAndOptionalr  V  r  rb   r  )r  r  r  )basesz=cannot inherit from both a TypedDict type and a non-TypedDictc                       e Zd ZdS )7TypedDictTests.test_multiple_inheritance.<locals>.WrongNr~   rn   rb   r`   Wrongr  r  r	  rb   r  )r9   r  r   rn  r  ro  r   r   r|  rx   r  r   )r[   r  r  r  r  r  r.
  r  r  r  wrong_basesr  r  s                r`   r  z(TypedDictTests.test_multiple_inheritance  s   	 	 	 	 	) 	 	 		 	 	 	 	) 	 	 		 	 	 	 	iu 	 	 	 	8h%566	 	 	 	 	 	 	 		 	 	 	 	C 	 	 	#---..	
 	
 	
 	#bMM	
 	
 	
 	!d33	
 	
 	

	 	 	 	 	W 	 	 	/ug&''	
 	
 	
 	/yk""	
 	
 	
 	-C$77	
 	
 	

	 	 	 	 	#we 	 	 	 	1ug	
 	
 	
 	1y'*++	
 	
 	
 	/C$77	
 	
 	

	 	 	 	 	& 	 	 	&8x)**	
 	
 	
 	&8yk""	
 	
 	
 	&6d;;	
 	
 	
 'NcN#wWg
 ! 	 	EE**  ++S            	                            	 	s6   L)L5LLLL	LL	L	c                    |                      t          t                    d           |                      t          t          t          t
          f                   d           |                      t          t                                d           t          ddt
          i          }|                      t          |          d           |                      t           |                      d           t          d           G fddt          t                             }|                      t          |          d           |                      t          |t
                             d           |                      t           |                      d           |                      t          t                    d           d S )NTF
call_basedr  r   c                       e Zd ZU  ed<   dS )4TypedDictTests.test_is_typeddict.<locals>.BarGenericr  Nr  r  s   r`   r
  r    s         DDDDDrb   r
  )	r   r/   r
  r   r|  r   r9   r   r$   )r[   r  r
  r   s      @r`   test_is_typeddictz TypedDictTests.test_is_typeddictu  s{   l7++T222l5c?33U;;;l799--u555|c3Z88
l:..555l::<<00%888CLL	 	 	 	 	 	 	GAJ 	 	 	l:..555l:c?33U;;;l::<<00%888 	l9--u55555rb   c                     |                      t          t                    t          j        t
                   t
          d           d S )Nr	  )r   r,   r   rO   r   r   r   s    r`   r	  z"TypedDictTests.test_get_type_hints  sA    3/#&S11	
 	
 	
 	
 	
rb   c                 X   |                      t          t                    t          j        t
                   t          d            G d dt          t                             }|                      t          |          t          j        t
                   t          t          d           d S )Nr	  c                       e Zd ZU eed<   dS )ATypedDictTests.test_get_type_hints_generic.<locals>.FooBarGenericr  Nrk  rn   rb   r`   FooBarGenericr    rA  rb   r  r  r   r  )r   r,   r
  rO   r   r   r   r|  )r[   r  s     r`   test_get_type_hints_genericz*TypedDictTests.test_get_type_hints_generic  s    :&&/!$3//	
 	
 	

	 	 	 	 	JsO 	 	 	 	=))/!$3S99	
 	
 	
 	
 	
rb   c                     G d dt           t          t                             }|                     |j        t          t
          f           |                     |j        t           t          t                   f           |                     |j        |t          t
          t          f           |                     |j	        t          f           |                     |t                   j	        d           |                     |t                   j        t          f            G d dt          t                   t                     }|                     |j        t          t
          f           |                     |j        t          t                   t           f           |                     |j        |t          t
          t          f           |                     |j	        t          f           |                     |t                   j	        d           |                     |t                   j        t          f            G d d|t                   d	          }|                     |j        t          t
          f           |                     |j        |t                   f           |                     |j        |t          t
          t          f           |                     |j	        t          f           |                     |j        d           |                     |j        t          d
g                     |                     |j        t          dg                     |                     |t                   j	        d           |                     |t                   j        t          f           |                     |t                   j        |            G d d|t$                             }|                     |j        t          t
          f           |                     |j        |t$                   f           |                     |j        |t          t
          t          f           |                     |j	        d           |                     |j        d           |                     |j        t          d
g                     |                     |j        t          ddg                     |                     |j        t          t          t$          d           |                     t*                    5  |t                    d d d            n# 1 swxY w Y    G d dt,          t                   t          t          t          f                   }|                     |j        t          t
          f           |                     |j        t,          t                   t          t          t          f         f           |                     |j        |t          t
          t          f           |                     |j	        t          t          f           |                     |j        d           |                     |j        t                                 |                     |j        t          g d                     |                     |j        t          t          t          d           |                     |t$          t          f         j        |           |                     t*                    5  |t$                    d d d            n# 1 swxY w Y   |                     t*                    5   G d dt,          t                   t          t                             }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZU eed<   dS )2TypedDictTests.test_generic_inheritance.<locals>.Ar  Nr
  rn   rb   r`   r   r    rD  rb   r   rn   c                       e Zd ZU eed<   dS )3TypedDictTests.test_generic_inheritance.<locals>.A2r  Nr
  rn   rb   r`   A2r    rD  rb   r  c                       e Zd ZU eed<   dS )2TypedDictTests.test_generic_inheritance.<locals>.Br   Nrk   rl   rm   r   r   rn   rb   r`   r   r             EEEEErb   r   Fr
  r   r  c                       e Zd ZU eed<   dS )2TypedDictTests.test_generic_inheritance.<locals>.Cr  Nrf  rn   rb   r`   r=  r    rA  rb   r=  Tr  r  c                       e Zd ZU eed<   dS 8TypedDictTests.test_generic_inheritance.<locals>.Point3Dr  Nr  rn   rb   r`   Point3Dr    r  rb   r  c                       e Zd ZU eed<   dS r  r  rn   rb   r`   r  z8TypedDictTests.test_generic_inheritance.<locals>.Point3D  s         rb   )r9   r$   r   r   r  r  r  r  rT  r  r|  r  r   rm  ro  r  rn  r  r   r   r   r   r
  )r[   r   r  r   r=  r  s         r`   test_generic_inheritancez'TypedDictTests.test_generic_inheritance  sp   	 	 	 	 		71: 	 	 	 	wo666)Iwqz+BCCCQv$>???)A40003.33333&111	 	 	 	 	Y 	 	 	 	777*WQZ,CDDDb'4%@AAA*QD111C/444C)C6222	 	 	 	 	"U 	 	 	 	 	wo666)AbE8444Qv$>???)B5111e,,,,i.>.>???,i.>.>???3.33333&1113*A...	 	 	 	 	# 	 	 	 	wo666)AcF9555Qv$>???)2...d+++,i.>.>???,ic
.C.CDDD*-
 -
 	 	 	
 y)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	nQ'B 	 	 	 	*WdO<<</.2CWQPRU^1TUUU7GT6*JKKK/!R999*D1112IKK@@@2Iooo4N4NOOO03
 3
 	 	 	
 	c*5w???y)) 	 	CLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    .+WR[   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6    UU!U<]]];0^88^<?^<c                 8    G d dt           t          t                             } G d d|t                   d          } G d d|          }|                     |j        t          t          f           |                     |j        |t          t          t          f           |                     |j	        d	           |                     |j
        d
           |                     |j        t          dg                     |                     |j        t          ddg                     |                     |j        t          t          t          d           |                     t"                    5  |t$                    d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZU eed<   dS )7TypedDictTests.test_implicit_any_inheritance.<locals>.Ar  Nr
  rn   rb   r`   r   r    rD  rb   r   c                       e Zd ZU eed<   dS )7TypedDictTests.test_implicit_any_inheritance.<locals>.Br   Nr  rn   rb   r`   r   r    r  rb   r   Fr
  c                       e Zd ZU eed<   dS )ETypedDictTests.test_implicit_any_inheritance.<locals>.WithImplicitAnyr  Nrf  rn   rb   r`   WithImplicitAnyr    rA  rb   r  rn   Tr   r  r  r  )r9   r$   r   r   r   r  r  r  rT  r  rm  ro  r  rn  r   r   r   r   r|  )r[   r   r   r  s       r`   test_implicit_any_inheritancez,TypedDictTests.test_implicit_any_inheritance  s   	 	 	 	 		71: 	 	 		 	 	 	 	"U 	 	 	 		 	 	 	 	a 	 	 	 	2Wd4DEEE0?GTSY2Z[[[7<<<2D999:Ise<L<LMMM:IsCj<Q<QRRR8;
 ;
 	 	 	
 y)) 	! 	!C  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   4FFFc                     G d dt                     }|t                   }|                     |j        |           |                     |j        d           |                     |j        t          f            |d          }|                     t          |          t                     |                     |ddi           d S )Nc                       e Zd ZU eed<   dS )5TypedDictTests.test_non_generic_subscript.<locals>.TDr  Nr
  rn   rb   r`   rw  r    rD  rb   rw  rn   rq   r  r  )	r9   r   r   r  r  r  r   r   r  )r[   rw  r   r  s       r`   r%	  z)TypedDictTests.test_non_generic_subscript  s    	 	 	 	 	 	 	 	sGr***)2...cV,,,A!HHHd1ggt$$$S!H%%%%%rb   N)rk   rl   rm   rq  ru  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r%	  rn   rb   r`   rj  rj  &  s}       @ @ @&. . . 5 5 59 9 91 1 1/ / /H H H	M 	M 	MC C CO O O H H H  @D D D2? ? ?". ". ".HU U Un6 6 6&
 
 

 
 
M M M^! ! !2& & & & &rb   rj  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )RequiredTestsc                    |                      t                    5  t          t                    d d d            n# 1 swxY w Y   |                      t                    5  t          t          t
          f          d d d            n# 1 swxY w Y   |                      t                    5  t          t                   t
                    d d d            d S # 1 swxY w Y   d S rf   )r   r   r8   r7   r   r|  r   s    r`   r5  zRequiredTests.test_basics  su   y)) 	" 	"[!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"y)) 	 	S#X	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	SM#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	1   :>>BB	B	*CCCc                 <   |                      t          t                    d           t          t                   }|                      t          |          d           t          t                   }|                      t          |          dt
           d           d S )Nztyping.Requiredztyping.Required[int]ztyping.Required[
.Employee])r   r   r8   r   r}   rk   r+	  s     r`   r   zRequiredTests.test_repr  s}    h):;;;c]b#9:::hb#Jh#J#J#JKKKKKrb   c           	         |                      t                    5   G d dt          t                              }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t          t                                       }d d d            n# 1 swxY w Y   |                      t                    5   G d dt                    }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t                             }d d d            d S # 1 swxY w Y   d S )	Nc                       e Zd ZdS )-RequiredTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   r=  r  %  r   rb   r=  c                       e Zd ZdS )-RequiredTests.test_cannot_subclass.<locals>.DNr~   rn   rb   r`   r@  r  (  r   rb   r@  c                       e Zd ZdS )-RequiredTests.test_cannot_subclass.<locals>.ENr~   rn   rb   r`   rw  r  +  r   rb   rw  c                       e Zd ZdS )-RequiredTests.test_cannot_subclass.<locals>.FNr~   rn   rb   r`   rx  r  .  r   rb   rx  )r   r   r   r8   r   r[   r=  r@  rw  rx  s        r`   r   z"RequiredTests.test_cannot_subclass#  sy   y)) 	 	    DNN   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    D#''   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    H   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    HSM   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	G   !AAA-,B%%B),B)
C**C.1C.D;;D?D?c                    |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            n# 1 swxY w Y   |                      t                    5   t          t          t          t
                                                   d d d            d S # 1 swxY w Y   d S rf   )r   r   r8   r   r   r   r   s    r`   rD  zRequiredTests.test_cannot_init1  r4	  r5	  c                 D   |                      t                    5  t          dt          t                              d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                     d d d            d S # 1 swxY w Y   d S rF  )r   r   r   r8   r   rX   r   s    r`   rG  z RequiredTests.test_no_isinstance9  r7	  r8	  Nr9	  rn   rb   r`   r
  r
    sb          L L L  , , ,& & & & &rb   r
  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )NotRequiredTestsc                    |                      t                    5  t          t                    d d d            n# 1 swxY w Y   |                      t                    5  t          t          t
          f          d d d            n# 1 swxY w Y   |                      t                    5  t          t                   t
                    d d d            d S # 1 swxY w Y   d S rf   )r   r   r7   r8   r   r|  r   s    r`   r5  zNotRequiredTests.test_basicsB  sv   y)) 	" 	"!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"y)) 	" 	"S!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"y)) 	" 	"S!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"r  c                 <   |                      t          t                    d           t          t                   }|                      t          |          d           t          t                   }|                      t          |          dt
           d           d S )Nztyping.NotRequiredztyping.NotRequired[int]ztyping.NotRequired[r  )r   r   r7   r   r}   rk   r+	  s     r`   r   zNotRequiredTests.test_reprJ  s    k**,@AAAb#<==="b#M#M#M#MNNNNNrb   c           	         |                      t                    5   G d dt          t                              }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t          t                                       }d d d            n# 1 swxY w Y   |                      t                    5   G d dt                    }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t                             }d d d            d S # 1 swxY w Y   d S )	Nc                       e Zd ZdS )0NotRequiredTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   r=  r"  S  r   rb   r=  c                       e Zd ZdS )0NotRequiredTests.test_cannot_subclass.<locals>.DNr~   rn   rb   r`   r@  r$  V  r   rb   r@  c                       e Zd ZdS )0NotRequiredTests.test_cannot_subclass.<locals>.ENr~   rn   rb   r`   rw  r&  Y  r   rb   rw  c                       e Zd ZdS )0NotRequiredTests.test_cannot_subclass.<locals>.FNr~   rn   rb   r`   rx  r(  \  r   rb   rx  )r   r   r   r7   r   r  s        r`   r   z%NotRequiredTests.test_cannot_subclassQ  s}   y)) 	 	    D%%   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    DS)**   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    K   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    K$   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                    |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            n# 1 swxY w Y   |                      t                    5   t          t          t          t
                                                   d d d            d S # 1 swxY w Y   d S rf   )r   r   r7   r   r   r   r   s    r`   rD  z!NotRequiredTests.test_cannot_init_  s   y)) 	 	MMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	  	 D	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 y)) 	/ 	/,DXc]+,,...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/r5	  c                 D   |                      t                    5  t          dt          t                              d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                     d d d            d S # 1 swxY w Y   d S rF  )r   r   r   r7   r   rX   r   s    r`   rG  z#NotRequiredTests.test_no_isinstanceg  s   y)) 	, 	,q+c*+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,y)) 	) 	)sK(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r8	  Nr9	  rn   rb   r`   r  r  @  sb        " " "O O O  / / /) ) ) ) )rb   r  c                   &    e Zd Zd Zd Zd Zd ZdS )IOTestsc                     dt           dt          fd}|j        d         }|                     |j        t          f           d S )Nr  r   c                 *    |                                  S rf   readliner  s    r`   r	  zIOTests.test_io.<locals>.stuffr      ::<<rb   )r;   r   r   r   r  r[   r	  r  s      r`   test_iozIOTests.test_iop  sT    	 R 	 F 	  	  	  	  !#&)F955555rb   c                 z    dt           dt          fd}|j        d         }|                     |j        d           d S )Nr  r   c                 *    |                                  S rf   r/  r  s    r`   r	  z"IOTests.test_textio.<locals>.stuffz  r1  rb   rn   )r<   r|  r   r   r  r2  s      r`   test_textiozIOTests.test_textiox  sR    	 V 	  	  	  	  	  !#&)2.....rb   c                 z    dt           dt          fd}|j        d         }|                     |j        d           d S )Nr  r   c                 *    |                                  S rf   r/  r  s    r`   r	  z$IOTests.test_binaryio.<locals>.stuff  r1  rb   rn   )r=   r  r   r   r  r2  s      r`   test_binaryiozIOTests.test_binaryio  sR    	 X 	 % 	  	  	  	  !#&)2.....rb   c                 J   t          j        d          5 }t          j        dt                     ddlm}m}m}m}m	} | 
                    |t          j                   | 
                    |t          j                   | 
                    |t          j                   |                     t          |          t          g d                     |                     |d           |                     t          |          d	           d d d            d S # 1 swxY w Y   d S )
NTrecordrW  categoryr   )r;   r<   r=   rb  rk   r:   z	typing.iorq   )warningscatch_warningsfilterwarningsrt  	typing.ior;   r<   r=   rb  rk   r   rO   r   rC  r  )r[   wr;   r<   r=   rb  rk   s          r`   test_io_submodulezIOTests.test_io_submodule  sW   $D111 	(Q#I8JKKKKIIIIIIIIIIIIIIMM"fi(((MM&&-000MM(FO444S\\3/K/K/K+L+LMMMX{333SVVQ'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   C5DDDN)rk   rl   rm   r3  r6  r9  rD  rn   rb   r`   r,  r,  n  sP        6 6 6/ / // / /	( 	( 	( 	( 	(rb   r,  c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	RETestsc                    t          j        dt           j                  }|                     |j        t
                     |                     t          |          t
                     |                     |t
                     |                    d          }|                     |j        t                     |                     t          |          t                     |                     |t                     t
          t          t          t          f                   t          t          t          t          f                   d S )Nz[a-z]+z12345abcde.....)r	  compiler{  ra   r   r>   r   r   searchr?   r   r|  r  )r[   r  mats      r`   r5  zRETests.test_basics  s    j24((cmW555d3ii111c7+++jj*++cmU333d3ii///c5))) 	c5j!""eE3J    rb   c                    |                      t          t                   t          t                              |                     t          t                   t          t                              |                     t          t                   t
          t                              |                     t          t                   t                     d S rf   )r   r>   r|  r   r  r?   r   s    r`   test_alias_equalityzRETests.test_alias_equality  s|    ws|444GCL'%.999GCL%*555GCL#.....rb   c                 6   t           t          t          t          f                  }|                     t
                    5  |t                    d d d            n# 1 swxY w Y   |                     t
                    5  t          dt          t                              d d d            n# 1 swxY w Y   |                     t
                    5  t          t          t                   t          t                              d d d            d S # 1 swxY w Y   d S r   )	r?   r   r|  r  r   r   r   r>   rX   )r[   r  s     r`   r   zRETests.test_errors  s   %U
#$y)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	) 	)r73<(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) y)) 	5 	5wu~ws|444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s5   AA A>!B++B/2B/1DDDc                 >   |                      t          t                    d           |                      t          t          t                             d           |                      t          t          t                             d           |                      t          t
                    d           |                      t          t
          t                             d           |                      t          t
          t                             d           d S )Nztyping.Patternztyping.Pattern[str]ztyping.Pattern[bytes]ztyping.Matchztyping.Match[str]ztyping.Match[bytes])r   r   r>   r|  r  r?   r   s    r`   r   zRETests.test_repr  s    g(8999gcl++-BCCCgen--/FGGGen555eCj))+>???eEl++-BCCCCCrb   c                    t          j        d          5 }t          j        dt                     ddlm}m}m}m} | 	                    |t          j                   | 	                    |t          j                   |                     t          |          t          ddg                     |                     |d	           |                     t          |          d
           d d d            d S # 1 swxY w Y   d S )NTr;  rW  r=  r   )r?   r>   rb  rk   r?   r>   	typing.rerq   )r?  r@  rA  rt  	typing.rer?   r>   rb  rk   r   rO   r   rC  r  )r[   rC  r?   r>   rb  rk   s         r`   test_re_submodulezRETests.test_re_submodule  s9   $D111 	(Q#I8JKKKKCCCCCCCCCCCCMM%...MM'6>222S\\3/C+D+DEEEX{333SVVQ'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   CC66C:=C:c                    t          j                    5  t          j        dt                     ddlm} |                     |j        t                     | 	                    |j
        d           |                     |j        t          j                   d d d            n# 1 swxY w Y   |                     t                    5  |j         d d d            d S # 1 swxY w Y   d S )Nerrorr=  r   )r	  rP  )r?  r@  rA  rt  rO   r	  r   r9  r|  r   rk   r  r  MappingProxyTypers  r?   )r[   r	  s     r`   test_re_submodule_access_basicsz'RETests.test_re_submodule_access_basics  sm   $&& 	G 	G#G6HIIII!!!!!!!!"*c222R[+666!!"+u/EFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 011 	 	HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   BB""B&)B&CC #C c                     |                      t                    5 } G d dt          j                  }d d d            n# 1 swxY w Y   |                     t          |j                  d           d S )Nc                       e Zd ZdS )'RETests.test_cannot_subclass.<locals>.ANr~   rn   rb   r`   r   rY    r   rb   r   z.type 're.Match' is not an acceptable base type)r   r   rO   r?   r   r|  r  )r[   exr   s      r`   r   zRETests.test_cannot_subclass  s    y)) 	R    FL   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	R\**I	K 	K 	K 	K 	Ks   A  AAN)
rk   rl   rm   r5  rL  r   r   rR  rV  r   rn   rb   r`   rF  rF    s        ! ! !/ / /	5 	5 	5D D D( ( (	 	 	K K K K Krb   rF  c                       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 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 )AnnotatedTestsc                     |                      t          d          5  t                       d d d            d S # 1 swxY w Y   d S )Nz%Type Annotated cannot be instantiatedr  r   r@   r   s    r`   test_newzAnnotatedTests.test_new  s    ##3
 
 	 	 KKK		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   8<<c                     |                      t          t          t          ddf                   d           |                      t          t          t          t                   ddf                   d           d S )Nr  r  ztyping.Annotated[int, 4, 5]z(typing.Annotated[typing.List[int], 4, 5])r   r   r@   r   r    r   s    r`   r   zAnnotatedTests.test_repr  st    319%&&)	
 	
 	
 	49a?+,,6	
 	
 	
 	
 	
rb   c                     t          t          t          t          df                             }dD ]F}|                     |          5  |                     ||           d d d            n# 1 swxY w Y   Gd S )Nr  )r  r  r  __metadata__rA  )rC  rD  r@   r   rx   rE  rF  s      r`   rH  zAnnotatedTests.test_dir  s    Ic1f-..//	
 	8 	8M M:: 8 8mY7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8		8 	8s   	A,,A0	3A0	c                    t           t           t          df         df         }|                     |t           t          ddf                    |                     |j        d           |                     |j        t                     d S )Nr  r  r  )r@   r   r   rb  r  r  s     r`   rF  zAnnotatedTests.test_flatten  sq    iQ'*+Ic1ai0111000s+++++rb   c                    |                      t          t          t          df         t          z            t          t          df         t          f           |                      t          t          t          t          df         t          f                   t          t          df         t          f           |                      t          t          t          df         t          t          df         z  t          z            t          t          df         t          t          df         t          f           |                      t          t          t          t          df         t          t          df         t          f                   t          t          df         t          t          df         t          f           |                      t          t          t          df         t          t
          df         z  t          z            t          t          df         t          t
          df         t          f           |                      t          t          t          t          df         t          t
          df         t          f                   t          t          df         t          t
          df         t          f           |                      t          t          df         t          t          df         z  t          z  t          t          df         t          z             |                      t          t          t          df         t          t          df         t          f         t          t          t          df         t          f                    |                      t          t
          t          t          i f         z  t          t          t                      f         z  t          z            t
          t          t          i f         t          t          t                      f         t          f           |                      t          t          t
          t          t          i f         t          t          t                      f         t          f                   t
          t          t          i f         t          t          t                      f         t          f           |                      t          t
          t          t          i f         z  t          t
          i f         z  t          z            t
          t          t          i f         t          t
          i f         t          f           |                      t          t          t
          t          t          i f         t          t
          i f         t          f                   t
          t          t          i f         t          t
          i f         t          f           |                      t          t          t          df         t
          z  t          t
          i f         z  t          z            t          t          df         t
          t          t
          i f         t          f           |                      t          t          t          t          df         t
          t          t
          i f         t          f                   t          t          df         t
          t          t
          i f         t          f           dd l}|j         G d d                      } |dd          }|                      t          t          t          |f         d z            t          t          |f         t          j
        f           |                      t          t          t          t          |f         d f                   t          t          |f         t          j
        f           |                      t          t          t          t          |f                            t          t          |f         t          j
        f           |                      t          t          i f         t          t          i f         z  t          z  t          t          i f         t          z             |                      t          t          i f         t          t          i f         z  t          z  t          t          t          i f         z             |                      t          t          t          i f         t          t          i f         t          f         t          t          t          i f         t          f                    |                      t          t          t          i f         t          t          i f         t          f         t          t          t          t          i f         f                    d S )Nrq   r   r   c                   $    e Zd ZU eed<   eed<   dS )>AnnotatedTests.test_deduplicate_from_union.<locals>.ValueRangelor  Nrf  rn   rb   r`   
ValueRangerf  %  s"         GGGGGGGGrb   rh  )r   r.   r@   r   r   r|  rC  dataclasses	dataclassr  NoneTyper   )r[   ri  rh  rb  s       r`   test_deduplicate_from_unionz*AnnotatedTests.test_deduplicate_from_union   sf   )CF"3c"9::#CF+S1	3 	3 	3%	#q&(93(>"?@@#CF+S1	3 	3 	3)CF"3iQ6G"G#"MNN#CF+YsAv->D	F 	F 	F%	#q&(99S!V;Lc(Q"RSS#CF+YsAv->D	F 	F 	F)CF"3iQ6G"G#"MNN#CF+YsAv->D	F 	F 	F%	#q&(99S!V;Lc(Q"RSS#CF+YsAv->D	F 	F 	F 	36*YsAv->>D"36*S0	2 	2 	2ya0)CF2CSHIya0#56	8 	8 	8 	#	#r'(:":YsCEEz=R"RUX"XYYyb19S#%%Z3H#N	P 	P 	P%YsBw-?3PSPUPU:AVX[(["\]]yb19S#%%Z3H#N	P 	P 	P#	#r'(:":YsBw=O"ORU"UVVyb19S"W3EsK	M 	M 	M%YsBw-?3PR7ASUX(X"YZZyb19S"W3EsK	M 	M 	M 	)CF"3c"9Ic2g<N"NQT"TUU#CF+S)CG2DcJ	L 	L 	L%	#q&(93	#r'@RTW(W"XYY#CF+S)CG2DcJ	L 	L 	L 				 	 	 	 	 	 	 
		 Jq!)CF"3d":;;#CF+U^<	> 	> 	>%	#q&(94(?"@AA#CF+U^<	> 	> 	>(9S!V+<"=>>#CF+U^<	> 	> 	> 	37+iR.@@3F"37+c1	3 	3 	337+iR.@@3Fyb11	3 	3 	3yb19S"W3EsJKyb1367	9 	9 	9yb19S"W3EsJKsIc2g$667	9 	9 	9 	9 	9rb   c           	         t           t          df         t          z  t           t          i f         z  t          z  }t          j        t          |                    D ]^}|                     |          5  |                     |t          t          j
        |                     d d d            n# 1 swxY w Y   _t          t           t          df         t          t           t          i f         t          f         }t          j        t          |                    D ]Q}|                     |          5  |                     |t          |                    d d d            n# 1 swxY w Y   Rd S )Nrq   r  )r@   r   r|  r  permutationsr.   rx   r   r   operatoror_r   )r[   expr1r   expr2s       r`   test_order_in_unionz"AnnotatedTests.test_order_in_union;  s   #q&!C')CG*<<sB*8E??;; 	D 	DD4(( D D  x|T(B(BCCCD D D D D D D D D D D D D D D iQ'iR.@#EF*8E??;; 	5 	5D4(( 5 5  d4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	5 	5s$   3/B..B2	5B2	2"E  E$	'E$	c                    t           t          t                   df         }t           t          t                   df         }|                     |t                   t           t          t                   df                    |                     |t                   j        d           |                     |t                   j        t          t                              |                     t                    5  |t                    d d d            n# 1 swxY w Y   |                     t                    5  |t          t          f          d d d            d S # 1 swxY w Y   d S )Nmy decoration)ru  )
r@   r    r   r   r   rb  r  r   r   r  )r[   r  LIs      r`   test_specializezAnnotatedTests.test_specializeF  s   d1g./tCy/12349o+E!FGGG3,.@AAA3*DI666y)) 	 	sGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	c5jMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   3DDD2EEEc           	      v   |                      t          t          t          ddf         t          t          ddf         h          d           |                     t          t          ddf         t          t          ddf                    |                     t          t          ddf         t          t
          ddf                    |                     t          t          df         t          t          ddf                    |                      t          t          ddf         t          t          ddf         t          t          ddf         ht          t          ddf         t          t          ddf         h           t          t          g f         }|                     t                    5  t          |           d d d            n# 1 swxY w Y    G d d          }t          t           |            f         }|                     t                    5  t          |           d d d            d S # 1 swxY w Y   d S )Nr  r  rq   c                       e Zd ZdZdS )&AnnotatedTests.test_hash_eq.<locals>.ANrg  rn   rb   r`   r   rz  _  rj  rb   r   )
r   r  r@   r   r   r|  r   r   r   rq  )r[   a1r   a2s       r`   test_hash_eqzAnnotatedTests.test_hash_eqQ  sa   iQ	2Ic1ai4HIJJANNNIc1ai0)CAI2FGGGIc1ai0)CAI2FGGGIc1f-ya/CDDDsAqy!9S!QY#71a79KLsAqy!9Q1W#56	
 	
 	

 sBwy)) 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	sAACCx y)) 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   'GG
GH..H25H2c                     G fdd          t           df         } |d          } d          }|                     ||           |                     |j        |j                   |                     |j        |j                   d S )Nc                   $    e Zd ZdZd Z fdZdS )*AnnotatedTests.test_instantiate.<locals>.Cr  c                     || _         d S rf   r   r   s     r`   r   z3AnnotatedTests.test_instantiate.<locals>.C.__init__i  r   rb   c                 R    t          |          st          S |j        | j        k    S rf   )r   NotImplementedr   )r[   rj  r=  s     r`   __eq__z1AnnotatedTests.test_instantiate.<locals>.C.__eq__l  s*    !%++ *))w$&((rb   N)rk   rl   rm   classvarr   r  r*
  s   r`   r=  r  f  sB        H  ) ) ) ) ) ) )rb   r=  a decorationr  )r@   r   r   r  )r[   r   r  r  r=  s       @r`   test_instantiatezAnnotatedTests.test_instantiatee  s    		) 		) 		) 		) 		) 		) 		) 		) 		) 		) a'(AaDDAaDDAac"""QZ00000rb   c                     t           t          j        t                   df         }|                      |g d          ddd           |                      |t
                   g d          ddd           d S )Nru  )r  r  r  r   rq   r  )r@   rO   r   r   r   r   )r[   MyCounts     r`   test_instantiate_genericz'AnnotatedTests.test_instantiate_genericx  sv    FN1->?++q\\:::iii00aA,,?????rb   c                 z     G d d          }t           |df         }|                      |            |           d S )Nc                       e Zd Zd ZdS )4AnnotatedTests.test_instantiate_immutable.<locals>.Cc                      t          d          )Nzshould be ignored)r  rU  s      r`   r  z@AnnotatedTests.test_instantiate_immutable.<locals>.C.__setattr__  s     3444rb   Nr  rn   rb   r`   r=  r  ~  s#        5 5 5 5 5rb   r=  r  )r@   r   r[   r=  r   s      r`   test_instantiate_immutablez)AnnotatedTests.test_instantiate_immutable}  s_    	5 	5 	5 	5 	5 	5 	5 	5 a'( 	aacc1%%%%%rb   c                     t           d         }|                     t                    5   |d           d d d            d S # 1 swxY w Y   d S )N)r   r  r  r  )r@   r   r   r  s     r`   test_cannot_instantiate_forwardz.AnnotatedTests.test_cannot_instantiate_forward  s    m$y)) 	 	AaDDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     t           t          df         }|                     t                    5   |d           d d d            d S # 1 swxY w Y   d S )Nr  r  )r@   r   r   r   r  s     r`    test_cannot_instantiate_type_varz/AnnotatedTests.test_cannot_instantiate_type_var  s    ai y)) 	 	AaDDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     |                      t                    5  t          t          df         j         d d d            d S # 1 swxY w Y   d S )N)r  r^
  )r   r  r@   r   r   r   s    r`   test_cannot_getattr_typevarz*AnnotatedTests.test_cannot_getattr_typevar  s    ~.. 	# 	#ai ""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   AA	Ac                      G d d          }t           |df         }|                     |j        d           d|_        |                     |j        d           d S )Nc                       e Zd ZdZdS )/AnnotatedTests.test_attr_passthrough.<locals>.Cr  N)rk   rl   rm   r  rn   rb   r`   r=  r    s        HHHrb   r=  r  r  r  )r@   r   r  r   r  s      r`   test_attr_passthroughz$AnnotatedTests.test_attr_passthrough  sx    	 	 	 	 	 	 	 	 a'(Q'''a     rb   c                 8    G d d          }|                      t          |t                                d         t          t                              |                      t          |t                                d         t
          t                              d S )Nc                   d    e Zd ZU dZeee         df         ed<   dZee	e         df         ed<   dS )7AnnotatedTests.test_special_form_containment.<locals>.Cr  r  r  r  r	  N)
rk   rl   rm   r  r@   r%   r   r   r	  r&   rn   rb   r`   r=  r    sN         ABHi~ =>BBB45E9U3Z0155555rb   r=  r  r	  )r   r,   r  r%   r   r&   r  s     r`   test_special_form_containmentz,AnnotatedTests.test_special_form_containment  s    	6 	6 	6 	6 	6 	6 	6 	6 	79955jA8C=QQQ79955g>c
KKKKKrb   c                     |                      t          d          5   G d dt                    }d d d            d S # 1 swxY w Y   d S )NzCannot subclass .*Annotatedc                       e Zd ZdS ).AnnotatedTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  r^  r  s     r`   r   z#AnnotatedTests.test_cannot_subclass  s    ##I/LMM 	 	    I   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   =AAc                     |                      t                    5  t          dt          t          df                    d d d            d S # 1 swxY w Y   d S )Nr  positive)r   r   r   r@   r   r   s    r`   test_cannot_check_instancez)AnnotatedTests.test_cannot_check_instance  s    y)) 	6 	6q)CO4555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   #AAAc                     |                      t                    5  t          t          t          t          df                    d d d            d S # 1 swxY w Y   d S )Nr  )r   r   rX   r   r@   r   s    r`   test_cannot_check_subclassz)AnnotatedTests.test_cannot_check_subclass  s    y)) 	8 	8sIc:o6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   (AAAc                     |                      t          d          5  t          t                    d d d            d S # 1 swxY w Y   d S )Nzat least two arguments)r  r   r@   r   r   s    r`   test_too_few_type_argsz%AnnotatedTests.test_too_few_type_args  s    ##I/GHH 	 	cNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   <A A c                    t           j        t           j        t          t          f         t           j        t                   t          t          df         t           j        t          gt          f         g}|D ]}t          |df         }t          t          j        dz             D ]p}|                     ||          5  t          j        ||          }t          j        |          }|                     ||           d d d            n# 1 swxY w Y   q G d dt"          t$                             at          t&          t                   df         }d|_        d	|_        t          t          j        dz             D ]|}t          j        ||          }	t          j        |	          }|                     |j        d           |                     |j        d	           |                     |j        d           }d S )
N.r  rq   )protocolr   c                       e Zd ZdZdS )_Annotated_test_Grq   Nr  rn   rb   r`   r  r    rn  rb   r  zA decorationr   r  )rO   r   r   r   r|  r   r   r#   r  r@   ru   rv   rw   rx   r>  r=  r   r$   r   r  r  r)  r   )
r[   r  rK  r   protr  restoredry  rt   r  s
             r`   r  zAnnotatedTests.test_pickle  s	   :v|CH5?3'sCx?C5%<02  	2 	2A!S&!Af59:: 2 2\\4a\88 2 2$l1d33G%|G44H$$Q1112 2 2 2 2 2 2 2 2 2 2 2 2 2 22	 	 	 	 	
 	 	 	 ',n<=62Q677 	% 	%EQ&&AQAQUB'''QUE***QS!$$$$	% 	%s   :A DD
D
c                    d}d}t           t          |f         }|                     |t                   t           t          |f                    |                     |t           t          |f                  t           t          ||f                    t           t          t                   |f         }|                     |t                   t           t          t                   |f                    |                     t                    5  |t          t          f          d d d            n# 1 swxY w Y   |                     ||t                            t           t          t                   ||f                    t           t          j        t          t          f         |f         }|                     |t          t          f         t           t          j        t          t          f         |f                    |                     t                    5  |t                    d d d            n# 1 swxY w Y   t           t          |f         }|                     t                    5  |d           d d d            n# 1 swxY w Y   |t                   }|                     t                    5  |d           d d d            d S # 1 swxY w Y   d S )Nr  zanother decoration)r@   r   r   r   r    r   r   rO   r!   r   r   r|  )r[   r%  dec2rw  r  r@  Itrv  s           r`   
test_substzAnnotatedTests.test_subst  s   #ag339!56669S#X./3T>1JKKKd1gsl#349c>!:;;;y)) 	 	c3hKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	1S6Id3id.B$CDDDfk"b&)3./38iCH0Es0J&KLLLy)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 sCx y)) 	 	tHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 sVy)) 	 	tHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   D%%D),D)H%%H),H)	I33I7:I7%	J;;J?J?c                    d}t          d          }t          d          }t          d          }t          d          }t          t          g |R          |f         }|                     |t
                   t          t          t
                   |f                    |                     |t          t
          f         t          t          t          t
          f         |f                    |                     t                    5  t          g ||R           d d d            n# 1 swxY w Y   t          t          t          |                  |f         }|                     |t
                   t          t          t
                   |f                    |                     |t          t
          f         t          t          t          t
          f         |f                    |                     t                    5  t          t          |         |f          d d d            n# 1 swxY w Y   t          t          |g|R          |f         }|                     |t
                   t          t          t
                   |f                    |                     |t
          t          f         t          t          t
          t          f         |f                    |                     |t
          t          t          f         t          t          t
          t          t          f         |f                    |                     t                    5  |d          d d d            n# 1 swxY w Y   t          t          |t          |         f         |f         }	|                     |	t
                   t          t          t
                   |f                    |                     |	t
          t          f         t          t          t
          t          f         |f                    |                     |	t
          t          t          f         t          t          t
          t          t          f         |f                    |                     t                    5  |	d          d d d            n# 1 swxY w Y   t          t          g ||R          |f         }
|                     |
t
                   t          t          t
                   |f                    |                     |
t
          t          f         t          t          t
          t          f         |f                    |                     |
t
          t          t          f         t          t          t
          t          t          f         |f                    |                     t                    5  |
d          d d d            n# 1 swxY w Y   t          t          t          |         |f         |f         }|                     |t
                   t          t          t
                   |f                    |                     |t
          t          f         t          t          t
          t          f         |f                    |                     |t
          t          t          f         t          t          t
          t          t          f         |f                    |                     t                    5  |d          d d d            n# 1 swxY w Y   t          t          |g||R          |f         }|                     |t
          t          f         t          t          t
          t          f         |f                    |                     |t
          t          t          f         t          t          t
          t          t          f         |f                    |                     |t
          t          t          t          f         t          t          t
          t          t          t          f         |f                    |                     t                    5  |t
                    d d d            n# 1 swxY w Y   t          t          |t          |         |f         |f         }|                     |t
          t          f         t          t          t
          t          f         |f                    |                     |t
          t          t          f         t          t          t
          t          t          f         |f                    |                     |t
          t          t          t          f         t          t          t
          t          t          t          f         |f                    |                     t                    5  |t
                    d d d            n# 1 swxY w Y   t          d          }t          d          }t          d	          }||g||R          }||t          |         |f         }|t          t          |g||R          |f         f|t          t          |t          |         |f         |f         f|t
          t          f         t          t          t
          t          f         |f         f|t
          t          f         t          t          t
          t          f         |f         f|t
          t          t          f         t          t          t
          t          t          f         |f         f|t
          t          t          f         t          t          t
          t          t          f         |f         f|t
          t          t          t          f         t          t          t
          t          t          t          f         |f         f|t
          t          t          t          f         t          t          t
          t          t          t          f         |f         ffD ]\  }}|                     ||           |                     t                    5  |t
                    d d d            n# 1 swxY w Y   |                     t                    5  |t
                    d d d            d S # 1 swxY w Y   d S )
Nr  r  r   r  r  rn   r  r  T4)r   r   r@   r  r   r   r|  r   r   r   r   r  r  )r[   r%  r  r   r  r  r   r   r=  r@  rw  rx  ry  rz  r  r  r  r{  r  r   r   s                        r`   test_typevar_substz!AnnotatedTests.test_typevar_subst  s   $CLLT]]T]]eCRCCj#o&35:s?!;<<<38ic3h0D&EFFFy)) 	  	 hrh3hh	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  eF2J',-35:s?!;<<<38ic3h0D&EFFFy)) 	' 	'fRj#o&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' eAFFFmS()35:s?!;<<<38ic3h0D&EFFFc3oeCeO,c12	
 	
 	
 y)) 	 	bEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 eAvbzM*C/035:s?!;<<<38ic3h0D&EFFFc3oeCeO,c12	
 	
 	
 y)) 	 	bEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 eFRFFFmS()35:s?!;<<<38ic3h0D&EFFFc3oeCeO,c12	
 	
 	
 y)) 	 	bEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 eF2JM*C/035:s?!;<<<38ic3h0D&EFFFc3oeCeO,c12	
 	
 	
 y)) 	 	bEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 eBKKRKK(#-.38ic3h0D&EFFFc3oeCeO,c12	
 	
 	
 	c3e#$eCdE12C78	
 	
 	
 y)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 eBr
B./4538ic3h0D&EFFFc3oeCeO,c12	
 	
 	
 	c3e#$eCdE12C78	
 	
 	
 y)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 5!!T]]T]] bl3lllOb&+r!" 5c2+>+C!DE5VC["1D+Es+J!KLsCx[5c?C+?!@AsCx[5c?C+?!@AsC5c5+A3+F!GHsC5c5+A3+F!GHsCu$%!*5c41F+G+L!MOsCu$%!*5c41F+G+L!MO
 	# 	#DAq Q""""y)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s    DD#&D#3HH!H?	MMM	RRR=	WWW 	\\\"a<<b b g++g/2g/'rrr&sssc                     t           t          t          df                  }|                     |t                   t           t          t          df                             d S )Nr  )r    r@   r   r   r   r  s     r`   test_annotated_in_other_typesz,AnnotatedTests.test_annotated_in_other_typese  sB    1a4!3iQ&7!899999rb   c                      G d dt           t          df                   }|                     |j        |t          t          fd           d S )Nc                       e Zd ZdS ),AnnotatedTests.test_annotated_mro.<locals>.XNr~   rn   rb   r`   r  r  j  r   rb   r  rl  z Annotated should be transparent.)r@   r   r   r  rT  r  s     r`   test_annotated_mroz!AnnotatedTests.test_annotated_mroi  sW    -----	#w,'---QV$4;	= 	= 	= 	= 	=rb   c                     G d dt                     } G d dt                     }t          t            |d          f         }t          t            |d          f         }|j        d         }|j        d         }|                     t	          |          |           |                     | |d                     |                     t	          |          |           |                     | |d                     |                     t	          |          t	          |                     t          t            |d          f         }t          t            |d          f         }|j        d         }	|j        d         }
|                     t	          |	          |           |                     |	 |d                     |                     t	          |
          |           |                     |
 |d                     |                     t	          |	          t	          |
                     t          t          df         }t          t          d	f         }t          t          d
f         }|                     t	          |j        d                   t                     |                     t	          |j        d                   t                     |                     t	          |j        d                   t                     d S )Nc                       e Zd ZdS ):AnnotatedTests.test_annotated_cached_with_types.<locals>.ANr~   rn   rb   r`   r   r  o  r   rb   r   c                       e Zd ZdS ):AnnotatedTests.test_annotated_cached_with_types.<locals>.BNr~   rn   rb   r`   r   r  p  r   rb   r   r  r   r  rq   g      ?T)
r|  r@   rb  r   r   r   r~  r   r  r  )r[   r   r   field_a1field_a2a1_metadataa2_metadatafield_b1field_b2b1_metadatab2_metadatafield_c1field_c2field_c3s                 r`    test_annotated_cached_with_typesz/AnnotatedTests.test_annotated_cached_with_typesn  s   S!!C&&[)S!!C&&[)+A.+A.d;''+++aaff---d;''+++aaff---k**D,=,=>>>S!!C&&[)S!!C&&[)+A.+A.d;''+++aaff---d;''+++aaff---k**D,=,=>>>S!V$S#X&S$Y'd80344c:::d80344e<<<d80344d;;;;;rb   N)rk   rl   rm   r_  r   rH  rF  rl  rs  rw  r}  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  rn   rb   r`   r\  r\    s         
 
 
8 8 8, , ,99 99 99v	5 	5 	5	 	 	  (1 1 1&@ @ @
	& 	& 	&  
  
# # #! ! !L L L  
6 6 68 8 8  % % %<  :p p pd: : := = =
 <  <  <  <  <rb   r\  c                   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 )TypeAliasTestsc                     t           }d S rf   r}   r[   r  s     r`   -test_canonical_usage_with_variable_annotationz<TypeAliasTests.test_canonical_usage_with_variable_annotation  s    #rb   c                     t           }d S rf   r  r  s     r`   &test_canonical_usage_with_type_commentz5TypeAliasTests.test_canonical_usage_with_type_comment  s    rb   c                     |                      t                    5  t                       d d d            d S # 1 swxY w Y   d S rf   )r   r   rD   r   s    r`   r   z&TypeAliasTests.test_cannot_instantiate  s    y)) 	 	KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rP  c                     |                      t                    5  t          dt                     d d d            d S # 1 swxY w Y   d S r   )r   r   r   rD   r   s    r`   rG  z!TypeAliasTests.test_no_isinstance  s    y)) 	& 	&r9%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&r   c                 t     G d d          }|                      t          |          dt          i           d S )Nc                       e Zd ZU ded<   dS )/TypeAliasTests.test_stringized_usage.<locals>.ArD   r  Nr  rn   rb   r`   r   r    s         NNNNNrb   r   r  )r   r,   rD   r  s     r`   test_stringized_usagez$TypeAliasTests.test_stringized_usage  sS    	 	 	 	 	 	 	 	**S),<=====rb   c                 8   |                      t                    5  t          t          t                     d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                     d d d            d S # 1 swxY w Y   d S rf   )r   r   rX   r}   rD   r   s    r`   test_no_issubclassz!TypeAliasTests.test_no_issubclass  s   y)) 	, 	,x+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, y)) 	, 	,y(+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,r   c                 6   |                      t                    5   G d dt                    }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t                              }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS ).TypeAliasTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   r=  r    r   rb   r=  c                       e Zd ZdS ).TypeAliasTests.test_cannot_subclass.<locals>.DNr~   rn   rb   r`   r@  r    r   rb   r@  )r   r   rD   r   rA  s      r`   r   z#TypeAliasTests.test_cannot_subclass  s?   y)) 	 	    I   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    DOO   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                 V    |                      t          t                    d           d S )Nztyping.TypeAlias)r   r   rD   r   s    r`   r   zTypeAliasTests.test_repr  s%    i*<=====rb   c                     |                      t                    5  t          t                    d d d            d S # 1 swxY w Y   d S rf   )r   r   rD   r   r   s    r`   r9  z$TypeAliasTests.test_cannot_subscript  s    y)) 	 	cNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   N)rk   rl   rm   r  r  r   rG  r  r  r   r   r9  rn   rb   r`   r  r    s        $ $ $    & & &> > >
, , ,  > > >    rb   r  c                   \    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 ZdS )ParamSpecTestsc                     t          d          }|                     ||           |                     |t                      |                     |j        d           d S )Nr  )rE   r   r   rk   rB  s     r`   rp  zParamSpecTests.test_basic_plain  sW    cNNAa+++S)))))rb   c                    t          d          }t          d          }t          |t          f         }|                     |j        |t          f           |                     |j        |f           t          ||f         }|                     |j        ||f           |                     |j        ||f           t          j        j        |t          f         }|                     |j        |t          f           |                     |j        |f           t          j        j        ||f         }|                     |j        ||f           |                     |j        ||f           d S Nr  r   )	rE   r   r#   r   r   r  r  r  r  r[   r  r   r  r  r  r  s          r`   test_valid_useszParamSpecTests.test_valid_uses  s?   cNNCLLafq#h///*QD111ad^q!f---*QF333_%af-q#h///*QD111_%ad+q!f---*QF33333rb   c                 .   t          d          }t          d          }|                     dt          |                     |                     dt          |                     |                     |j        t
                     |                     |j        t                     |                     |j        j	        |           |                     |j        j	        |           | 
                    |j        |j                   | 
                    |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   | 
                    t          |j                  d           | 
                    t          |j                  d           d S )Nr  P_2r   r   P.argsP.kwargs)rE   rE  rD  r   r   rG   r   rH   r   r  r   r   r   )r[   r  r  s      r`   test_args_kwargszParamSpecTests.test_args_kwargs  s   cNNfc!ff%%%hA'''afm444ah888af'+++ah)1---(((18,,,AFCH---AHcj111AFAH---AHaf---AFCJ///afx000ah44444rb   c                    t          d          } G d dt          |                   }|                     t          |t	                      t                                dt          |t          f         i           |                     t          |j        t	                      t                                |j	        |j
        d           d S )Nr  c                   2    e Zd ZU edef         ed<   d	dZdS )
)ParamSpecTests.test_stringized.<locals>.Cr  rI	  r   r  r   r  c                     d S rf   rn   r   s      r`   r  z-ParamSpecTests.test_stringized.<locals>.C.foo  r  rb   N)r   r  r   r  )rk   rl   rm   r#   r   r   r  rn   rb   r`   r=  r    s?         38$$$$     rb   r=  rI	  r  )rE   r$   r   r  r  r  r#   r   r  r   r   rt  s      r`   test_stringizedzParamSpecTests.test_stringized  s    cNN	 	 	 	 	
 	 	 	
 	Q		68844vx3?O6PQQQwyy&((++af-Q-Q	
 	
 	
 	
 	
rb   c                    t          d          t          d          t          d          } G fddt          f                   }|t          |f         }|                     |j        t          |f           |                     |j        |f           |                     t          d          5  |t                    d d d            n# 1 swxY w Y   |                     t          d          5  |t          |t          f          d d d            n# 1 swxY w Y   |t          t          t          |f         f         }|                     |j        t          t          t          |f         f           |                     |j        |f           |t          t          t          gf         }|                     |j        t          t          t          ff           |                     |j        d           |t          d	f         }|                     |j        t          t          f           |                     |j        d            G fd
dt                             }|t          t          t          g         }|                     |j        t          t          t          ff           |                     |j        d           |t          t          t          f         }	|                     |	j        t          t          t          ff           |                     |	j        d           |                     |j        |	j                   |                     |j        |	j                   |                     |j        |	j                   |                     ||	           |t                   }
|                     |
j        t          ff           |                     |
j        d           |                     t          d          5  |t          t          gt          f          d d d            n# 1 swxY w Y   |                     t          d          5  ||t          f          d d d            d S # 1 swxY w Y   d S )Nr   r  r  c                   6    e Zd ZU e ef         ed<   ed<   dS ),ParamSpecTests.test_user_generics.<locals>.Xri   r   Nrk   rl   rm   r#   r   r   )r  r   s   r`   r  r    s/         3DDDDDrb   r  r  r  rn   .c                   ,    e Zd ZU e ef         ed<   dS ),ParamSpecTests.test_user_generics.<locals>.Zri   Nr  )r  s   r`   r  r    s(         3rb   r  )r   rE   r$   r   r   r  r  r  r   r|  rF   r  r  r  )r[   r  r  rs  rv  G3G4r  G5G6G7r  r   s              @@r`   test_user_genericsz!ParamSpecTests.test_user_generics  s	   CLLcNN	 	 	 	 	 	 	 	1 	 	 	 sCx[sCj111*SF333##I/BCC 	 	cFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##I/CDD 	 	c3m	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 sKS))*sKS,A&BCCC*SF333sS$K sS$K&8999*B///sCx[sHo666*B///	  	  	  	  	  	  	 
 	  	  	  S$ S$'7&9:::*B///sC~S$'7&9:::*B/// 	bk222666*B,=>>>R   sVvi000*B///##I/CDD 	  	 sCj$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ##I/CDD 	 	c4iLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   6CCC6DDDP--P14P1Q00Q47Q4c                    t          d          t          d           G fddt          f                   }|t          t          gt          gf         }|t          gt          t          gf         }|                     ||           |                     |j        t          t          ft          ff           |                     |j        t          ft          t          ff           d S )Nr  r  c                   F    e Zd ZU e ef         ed<   eef         ed<   dS )CParamSpecTests.test_multiple_paramspecs_in_user_generics.<locals>.Xri   r  N)rk   rl   rm   r#   r   r   r|  )r  r  s   r`   r  r  /  s=         3C      rb   r  )rE   r$   r   r|  r  r   r   r  )r[   r  rs  rv  r  r  s       @@r`   )test_multiple_paramspecs_in_user_genericsz8ParamSpecTests.test_multiple_paramspecs_in_user_generics+  s    cNNt__	! 	! 	! 	! 	! 	! 	! 	!2 	! 	! 	! SzE7"#usEl"#B###SzE8&<===vU|&<=====rb   c                    t          d          t          d           G fddt          g R                    }|t          t          gf         }|                     |j        t          t          ff           |t          t          t          gf         }|                     |j        t          t          t          ff           |t          g         }|                     |j        t          ff           |g          }|                     |j        d           |                     t                    5  |d          d d d            n# 1 swxY w Y    G fddt          gR                    }|t          gt          f         }|                     |j        t          ft          f           |t          gt          t          f         }|                     |j        t          ft          t          f           |t          g         }|                     |j        t          ff           |g          }|                     |j        d           |                     t                    5  |d          d d d            d S # 1 swxY w Y   d S )	Nr  r  c                   H    e Zd ZU e ef         ed<   eg R          ed<   dS )KParamSpecTests.test_typevartuple_and_paramspecs_in_user_generics.<locals>.Xri   r  Nrk   rl   rm   r#   r   r   r   r  r  s   r`   r  r  =  9         3SbSSzMMMMMrb   r  )rn   rn   c                   H    e Zd ZU e ef         ed<   eg R          ed<   dS )KParamSpecTests.test_typevartuple_and_paramspecs_in_user_generics.<locals>.Yri   r  Nr	  r
  s   r`   r  r  L  r  rb   r  )
r   rE   r$   r   r  r   r  r|  r   r   )	r[   r  rs  rv  r  r  r  r  r  s	          @@r`   1test_typevartuple_and_paramspecs_in_user_genericsz@ParamSpecTests.test_typevartuple_and_paramspecs_in_user_generics9  s   $cNN	 	 	 	 	 	 	 	Q 	 	 	 sUG|_sUHo666sC% !sC%&:;;;wZxk222rUe,,,y)) 	 	bEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	B 	 	 	 w|_xo666wS !xc&:;;;wZxk222rUe,,,y)) 	 	bEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   5	E

EE(	I>>JJc           
      2   t          d          }t          d          }t          d          }t          t          j        j        fD ]}|                     |          5  ||t          g |R          f         }|t          t          gt          t          f         }|                     |j        t          t          t          t          t          f         f           d d d            n# 1 swxY w Y    G d dt          ||f                   }|t          g |R          |f         }|t          t          t          t          gf         }|                     |j        t          t          t          f         t          t          ff            G d dt          ||f                   }||t          g |R          f         }|t          t          gt          t          f         }|                     |j        t          t          ft          t          t          f         f           d S )	Nr  r   r  )r  c                       e Zd ZdS )MParamSpecTests.test_typevartuple_and_paramspecs_in_generic_aliases.<locals>.XNr~   rn   rb   r`   r  r  f  r  rb   r  c                       e Zd ZdS )MParamSpecTests.test_typevartuple_and_paramspecs_in_generic_aliases.<locals>.YNr~   rn   rb   r`   r  r  m  r  rb   r  )rE   r   r   r#   r  r  rx   r   r   r|  r  r  r   r  r$   )	r[   r  r   r  r=  r   r   r  r  s	            r`   3test_typevartuple_and_paramspecs_in_generic_aliaseszBParamSpecTests.test_typevartuple_and_paramspecs_in_generic_aliases[  s,   cNNCLL$;?33 	N 	NAa(( N Nasssm$sCj%./  c3eUl8K-LMMMN N N N N N N N N N N N N N N
	 	 	 	 	1 	 	 	 eCRCCj!meUS#J&'eE5L&9C;%GHHH	 	 	 	 	1 	 	 	 asssmsCj%&'sCk53F%GHHHHHs   A9C##C'	*C'	c                 l   t          d          }|j        }|                      |t          t          f          t          t          f           |                      |t          t          g          t          t          f           |                      |d g          t          d           f           |                      |d          d           |                      ||          |           |                      |t          t          |f                   t          t          |f                    d S )Nr  .)rE   r  r   r   r|  r   r   rF   )r[   r  r  s      r`   r  z$ParamSpecTests.test_var_substitutiont  s    cNN"Sz**S#J777Sz**S#J777vd666eeCjj#&&&eeAhh"""{36233[a5HIIIIIrb   c                    t          d          }t          d          }dt          d |t          t          z  t          t          t          f         f}|D ]#}|                     |          5  |                     t                    5  |                    |           d d d            n# 1 swxY w Y   |                     t                    5  t          j
        ||f         |t          f          d d d            n# 1 swxY w Y   |                     t                    5  t          j        j
        ||f         |t          f          d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   %d S )Nr   r  r   r   )r   rE   r   r|  r   rx   r   r   r  rO   r#   r  r  )r[   r   r  r  r   s        r`   r  z(ParamSpecTests.test_bad_var_substitution~  s?   CLLcNNT1c#guS#X? 	= 	=C#&& = =&&y11 , ,&&s+++, , , , , , , , , , , , , , ,&&y11 4 4OAqD)#s(334 4 4 4 4 4 4 4 4 4 4 4 4 4 4&&y11 = =O,QT238<<= = = = = = = = = = = = = = == = = = = = = = = = = = = = =	= 	=s~   +E*B(E*(B,,E*/B,0E*"C;/E*;C??E*C?E* 'EE*EE*EE**E.	1E.	c                 J   t          d          }t          d          }t          d          }t          d          }t          d          } G d dt          |                   }||         }|                     |j        |f           |                     |j        |ff           |                     |t                   |t                              ||g         }|                     |j        |f           |                     |j        |ff           |                     |t                   |t                              |t          |g         }	|                     |	j        |f           |                     |	j        t          |ff           |                     |	t                   |t          t          g                    ||t          |g         }
|                     |
j        ||f           |                     |
j        |t          |ff           |                     |
t          t          f         |t          t          t          g                    |g |t                   }|                     |j        |f           |                     |j        g |t          R f           |                     |t          t          f         |t          t          t          g                    |t          g|         }|                     |j        |f           |                     |j        t          g|R f           |                     |t          t          f         |t          t          t          g                    ||g|         }|                     |j        ||f           |                     |j        |g|R f           |                     |t          t          t          f         |t          t          t          g                    |||g         }|                     |j        |f           |                     |j        ||ff           |                     |t                   |t          t          g                    ||t          |         g         }|                     |j        |f           |                     |j        |t          |         ff           |                     |t                   |t          t          t                   g                    |t          g |R          g|         }|                     |j        |f           |                     |j        t          g |R          g|R f           |                     |t          t          f         |t          t          t          f         t          t          f                    ||         }|                     |j        |f           |                     |j        |f           |                     |t          t          g         |t          t          g                     G d d	t          ||f                   }|||f         }|                     |j        ||f           |                     |j        ||f           |                     |t          t          gt          gf         |t          t          gt          gf                    |                     |g g f         |g g f                    |t          t          g|f         }|                     |j        |f           |                     |j        t          t          f|f           |                     |t          t          g         |t          t          gt          t          gf                    |                     |g          |t          t          gg f                    ||t          t          gf         }|                     |j        |f           |                     |j        |t          t          ff           |                     |t          t          g         |t          t          gt          t          gf                    |                     |g          |g t          t          gf                    ||t          gt          |gf         }|                     |j        ||f           |                     |j        |t          ft          |ff           |                     |t          t          f         |t          t          gt          t          gf                    |g |t          t          |gf         }|                     |j        ||f           |                     |j        g |t          R t          |ff           |                     |t          t          t          f         |t          t          t          gt          t          gf                    ||t          gt          g|f         }|                     |j        ||f           |                     |j        |t          ft          g|R f           |                     |t          t          t          f         |t          t          gt          t          t          gf                     G d
 dt          ||f                   }|||f         }|                     |j        ||f           |                     |j        ||f           |                     |t          t          gt          f         |t          t          gt          f                    |t          |g|f         }|                     |j        |f           |                     |j        t          |f|f           |                     |t                   |t          t          gt          f                    |t          g||f         }|                     |j        ||f           |                     |j        t          g|R |f           |                     |t          t          t          f         |t          t          t          gt          f                    d S )Nr   r  r  r  r  c                       e Zd ZdS )DParamSpecTests.test_type_var_subst_for_other_type_vars.<locals>.BaseNr~   rn   rb   r`   r  r    r  rb   r  c                       e Zd ZdS )GParamSpecTests.test_type_var_subst_for_other_type_vars.<locals>.DoublePNr~   rn   rb   r`   DoublePr    r  rb   r  c                       e Zd ZdS )EParamSpecTests.test_type_var_subst_for_other_type_vars.<locals>.PandTNr~   rn   rb   r`   PandTr    r  rb   r  )r   rE   r   r$   r   r  r  r   r|  r  r  r   r  r  )r[   r   r  r  r  r  r  A1r  A3A4A5A5_2A6A7A8A9A10r  B1B2B3B4B5B6r  r  r  r  s                                r`   'test_type_var_subst_for_other_type_varsz6ParamSpecTests.test_type_var_subst_for_other_type_vars  s
   CLLT]]cNNt__$	 	 	 	 	71: 	 	 	 !W*QD111tg...C$s),,,1#Y*QD111tg...C$s),,,3(^*QD111Qxk222C$Sz"23331c2,*QG4443|o666CIc3-=(>???*B***RE222zzSzzm444CIc4-=(>???SJ2J,re444#666c4i$S$/?*@AAA1(r(^*QG444xBxxk222CdN+T3T2B-CDDD1a&\*QD1111vi000C$Sz"23331d1g,*QD11147|o666C$T#Y'7"89995":##$*RE222crcc
'8R'8'8&:;;;CHtE#s(OS#,E'FGGG2h+bU333u---c3Z$Sz*:;;;	 	 	 	 	gaen 	 	 	 QU^*QG444q"g...S#J./#tf9L1MNNNBFWRV_555c3Z^$*RE222Sz2&6777T4L)7C#;t3L+MNNNB#b!9:::Qt_%*QD111q4,&7888S#J#tTl1J)KLLLBdD\)9!:;;;aXbz)**QG4443x$&<===CJ#sdE]1J)KLLLZrZ3Z$+,*RH555zzSzzD":&>???C-. #uc!2T5M!AB	D 	D 	D aX{r{*+*QG4443x$&=>>>C-. #sdE5-A!AB	D 	D 	D	 	 	 	 	GAqDM 	 	 	 1a4[*QF333q!f---S#J,-uc3Z5E/FGGGC8Q;*QD111Qxm444C%c
C"8999C:":q=!*RG444zbzz1o666Cu,-uc35Eu5L/MNNNNNrb   c                    t          d          }t          d          }t          ||f         }t          |         }t          |         }t          |         t
          z  }|                     |j        ||f           |                     |j        ||f           |                     |j        ||f           t          t
          t          gt          f         }|                     |t
          t          gt          f         t          |                    |                     |t
          t          gt          f         t          |                    |                     |t
          t          gt          f         t          |         t
          z             d S )Nr   r  )
r   rE   r#   r    r  r   r   r  r|  r  )r[   r   r  r  rs  rv  r  r=  s           r`   !test_paramspec_in_nested_genericsz0ParamSpecTests.test_paramspec_in_nested_generics   s2    CLLcNNad^"X"X"X^*QF333*QF333*QF333c3Z&'S#J-.Q888S#J-.Q888S#J-.Q#>>>>>rb   c                    t          d          }t          d          }t          |t          f         }|                     |j        |f           |                     ||         j        |f           |                     |t
                   j        d           |                     |t
          t          f         j        t          f           |                     |t          t
          |f                  j        |f           |                     |t          t          |f                  j        t          |f           |                     |d         j        d           t          t          t
          |f         t          f         }|                     |j        |f           |                     ||         j        |f           |                     |t
                   j        d           |                     |t
          t          f         j        t          f           |                     |t          t
          |f                  j        |f           |                     |t          t          |f                  j        t          |f           d S )Nr  r  rn   .)rE   r#   r   r   r  r|  r   rF   )r[   r  r  r  r  s        r`   test_paramspec_gets_copiedz)ParamSpecTests.test_paramspec_gets_copied   s   cNNt__af*QD111B.666C/444CF2QD999KR01@2%HHHK2./>BHHHC/444k#q&)3./*QD111B.666C/444CF2QD999KR01@2%HHHK2./>BHHHHHrb   N)rk   rl   rm   rp  r  r  r  r  r  r  r  r  r  r0  r2  r4  rn   rb   r`   r  r    s        * * *4 4 4"5 5 5&

 

 

4 4 4l> > >     DI I I2J J J= = =wO wO wOr? ? ?$I I I I Irb   r  c                   &    e Zd Zd Zd Zd Zd ZdS )ConcatenateTestsc                     t          d          } G d d          }t          ||f         }|                     |t                     d S )Nr  c                       e Zd ZdS )-ConcatenateTests.test_basics.<locals>.MyClassNr~   rn   rb   r`   r  r9  /   r   rb   r  )rE   rF   r   )r[   r  r  r  s       r`   r5  zConcatenateTests.test_basics-   sO    cNN
#A{+++++rb   c                    t          d          }t          t          t          t          |f                             }dD ]F}|                     |          5  |                     ||           d d d            n# 1 swxY w Y   Gd S )Nr  r@  rA  )rE   rC  rD  rF   r   rx   rE  )r[   r  rG  rB  s       r`   rH  zConcatenateTests.test_dir3   s    cNNKQ/0011	
 	8 	8M M:: 8 8mY7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8s   A;;A?	A?	c                    t          d          }t          d          }t          t          t          |f         t          f         }|                     |j        t          t          |f         t          f           |                     |j        |f           t          t          t          ||f         |f         }|                     |j        t          t          ||f         |f           |                     |j        ||f           t          j	        j        t          t          |f         t          f         }|                     |j        t          t          |f         t          f           |                     |j        |f           t          j	        j        t          t          ||f         |f         }|                     |j        t          t          ||f         |f           |                     |j        ||f           d S r  )
rE   r   r#   rF   r   r   r  r  r  r  r  s          r`   r  z ConcatenateTests.test_valid_uses<   s   cNNCLLk#q&)3./{36':C&@AAA*QD111k#q!),a/0{319'=q&ABBB*QF333 _%k#q&&93&>?{36':C&@AAA*QD111_%k#q!)&<a&?@{319'=q&ABBB*QF33333rb   c                 X   t          d          }t          d          }t          d          }t          ||f         }|                     |t          |f         t          t          |f                    |                     |t          t
          t          gf         t          t
          t          f           |                     |t          g f         t          f           |                     |t          t          t
          |f         f         t          t          t
          |f                    |                     |t          df         t          t          df                    t          t          |f         }|                     ||         t          t          |f                    |                     |t
          t          g         t          t
          t          f           |                     |t
          t          f         t          t
          t          f           |                     |g          t          f           |                     |t          t
          |f                  t          t          t
          |f                    |                     |d         t          t          df                    d S )Nr   r  r  .)r   rE   rF   r   r   r|  r  )r[   r   r  r  r=  s        r`   r  z&ConcatenateTests.test_var_substitutionN   s   CLLcNNt__137[b%9:::3e,-S%/@AAA37cV,,,3CG 445$S#r\2	4 	4 	438k#s(&;<<<Q2CG 4555C<3U*;<<<3:c5(9:::2''';sBw/0+c3l2KLLL3S#X!677777rb   N)rk   rl   rm   r5  rH  r  r  rn   rb   r`   r6  r6  ,   sP        , , ,8 8 84 4 4$8 8 8 8 8rb   r6  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TypeGuardTestsc                 X   t           t                    dt           t                   fd}|                     t          |          dt           t                   i           |                     t
                    5  t           t          t          f          d d d            d S # 1 swxY w Y   d S )Nr   c                     d S rf   rn   r   s    r`   r  z'TypeGuardTests.test_basics.<locals>.foof   r   rb   )rI   r   r   r  r   r   r|  r	  s     r`   r5  zTypeGuardTests.test_basicsc   s    #+	#++++SHin#=>>>y)) 	  	 c3h	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   8BB#&B#c                    |                      t          t                    d           t          t                   }|                      t          |          d           t          t                   }|                      t          |          dt
          z             t          t          t                            }|                      t          |          d           d S )Nztyping.TypeGuardztyping.TypeGuard[int]ztyping.TypeGuard[%s.Employee]ztyping.TypeGuard[tuple[int]])r   r   rI   r   r}   rk   r  r+	  s     r`   r   zTypeGuardTests.test_reprl   s    i*<===s^b#:;;;x b#BX#MNNNuSz"b#ABBBBBrb   c           	      f   |                      t                    5   G d dt          t                              }d d d            n# 1 swxY w Y   |                      t                    5   G d dt          t          t                                       }d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS ).TypeGuardTests.test_cannot_subclass.<locals>.CNr~   rn   rb   r`   r=  rD  w   r   rb   r=  c                       e Zd ZdS ).TypeGuardTests.test_cannot_subclass.<locals>.DNr~   rn   rb   r`   r@  rF  z   r   rb   r@  )r   r   r   rI   r   rA  s      r`   r   z#TypeGuardTests.test_cannot_subclassu   sK   y)) 	 	    DOO   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 y)) 	 	    D3((   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r2	  c                    |                      t                    5  t                       d d d            n# 1 swxY w Y   |                      t                    5   t          t                                 d d d            n# 1 swxY w Y   |                      t                    5   t          t          t          t
                                                   d d d            d S # 1 swxY w Y   d S rf   )r   r   rI   r   r   r   r   s    r`   rD  zTypeGuardTests.test_cannot_init}   s   y)) 	 	KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	DOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	- 	-*D8C=)**,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-r5	  c                 D   |                      t                    5  t          dt          t                              d d d            n# 1 swxY w Y   |                      t                    5  t          t          t                     d d d            d S # 1 swxY w Y   d S rF  )r   r   r   rI   r   rX   r   s    r`   rG  z!TypeGuardTests.test_no_isinstance   s   y)) 	* 	*q)C.)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*y)) 	' 	'sI&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'r8	  Nr9	  rn   rb   r`   r>  r>  b   sb             C C C  - - -' ' ' ' 'rb   r>  SpecialAttrsPSpecialAttrsTc                   B    e Zd Zd Z ej        de          Zd Zd Z	dS )SpecialAttrsTestsc           	         i t           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j	        d	t           j
        d
t           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        di t           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j         d t           j!        d!t           j"        d"i t           j#        d#t           j$        d$t           j%        d%t           j&        d&t           j        tN                   dt           j        tN                   dt           j        tN          tN          f         dt           j        tN                   dt           j        tN                   dt           j        tN                   dt           j        g tN          f         dt           j        d'tN          f         dt           j	        tN          tN          f         d	t           j
        tN                   d
t           j        tN                   dt           j        tN                   dt           j        tN          tN          tN          f         di t           j        tN                   dt           j        tN          tN          f         dt           j        tN                   dt           j        tN          tN          f         dt           j        tN                   dt           j        tN          tN          tN          f         dt           j        tN          tN          f         dt           j        tN                   dt           j        tN                   dt           j        tN                   dt           j        tN                   dt           j        tN          tN          f         dt           j        tN                   dt           j        tN          tN          f         dt           j        tN                   dt           j        tN                   dt           j        tN          tN          f         di t           j         tN                   d t           j!        tN                   d!t           j"        tN                   d"t           j$        tN                   d$t           j$        tN          d'f         d$t           j%        tN                   d%t           j&        tN                   d&t           j(        d(t           j'        d)t           j)        d*t           j*        d+t           j+        d,t           j,        d-t           j-        d.t           j.        d/t           j/        d0t           j0        d1i t           j1        d2t           j2        d3t           j3        d4t           j4        d5t           j5        d6t           j6        d7t           j(        tN          d8f         d(t           j)        tN                   d*t           j*        tN          tn          f         d+t           j+        tN                   d,t           j-        tN                   d.t           j-        d9         d.t           j-        d:         d.t           j1        tN                   d2t           j3        tN                   d4t           j5        tN                   d)t           j5        tp          tr          f         d6}|:                                D ]\  }}| ;                    |;          5  | <                    |j=        |t}          |                     | <                    |j?        |t}          |                     | <                    |j@        d<t}          |                     t          t          jC        d=z             D ]A}t          jD        ||          }t          jE        |          }| F                    ||           B	 d d d            n# 1 swxY w Y   d S )>Nrj  r  rY  r  r
  r  r  r#   r\  r  rF  r<  r  r   r[  r
  r!   r  rT  r  	ItemsViewr  r
  KeysViewr    r  MappingViewr"   r  r  r#  r  rH  r
  r  r   r5   
ValuesView.r@   r   r%   rF   r&   rA   r   r  r   r   r   rD   rI   r   r   rB   
Annotationr  r;  re	  rO   rq   )GrO   rj  r  rY  r  r
  r  r  r#   r\  r  rF  r<  r  r   r[  r
  r!   r  rT  r  rN  r  r
  rO  r    r  rP  r"   r  r  r#  r  rH  r
  r  r   r5   rQ  r   r@   r%   rF   r&   rA   r   r  r   r   r   rD   rI   r   r   rB   rI  r   r  r  rx   r   rk   r|  rm   rl   ru   rv   rw   r>  r=  r   )r[   cls_to_checkr\   r
  rt   r   r  s          r`   r  z$SpecialAttrsTests.test_special_attrs   s	   p
p
 &(=p
 !#3	p

  /p
  /p
 kp
 |p
 OZp
 OZp
 |p
 kp
 !#3p
 kp
 NIp
  !p
" L'#p
$ K%p
 p
& k'p
( k)p
* OZ+p
, k-p
. OZ/p
0 OZ1p
2 OZ3p
4 K5p
6 NI7p
8 9p
: !#3;p
< "$5=p
> |?p
@ Ap
B |Cp
D OZEp
F JGp
 p
 p
H L'Ip
J L'Kp
L KMp
N |Op
R s#]Sp
T &s+-BUp
V !#s(+-=Wp
X  %Yp
Z  %[p
\ S!;]p
^ OBG$j_p
` OCH%zap
b OCH%zcp
d c"Lep
f S!;gp
h !#&(8ip
j S#s]+[kp
 p
 p
l N3mp
n sCx(-op
p Lwqp
r KS!6sp
t S!;up
v S#s]+[wp
x S#X&yp
z OC *{p
| OC *}p
~ OC *p
@ KfAp
B N38$iCp
D s#]Ep
F !#s(+-=Gp
H "3'):Ip
J c"LKp
L sCx(-Mp
 p
 p
N c"LOp
P OC *Qp
R JsOUSp
T LwUp
V Lc"GWp
X KfYp
Z c"L[p
^ k_p
` Jap
b OZcp
d ep
f L'gp
h |ip
j NIkp
l NImp
n OZop
p L'qp
 p
 p
r OZsp
t kup
v kwp
x NIyp
z L'{p
| K}p
@ S,./Ap
B OC *Cp
D sM12MEp
F LwGp
H N3Ip
J N4 )Kp
L N7#YMp
N OC *Op
P S!;Qp
R LuSp
T Le$gUp
 p
d &++-- 	/ 	/IC#&& / /  tSXX>>>  !14SBBB  3s88DDD"6#:Q#>?? / /ES%00A#\!__FMM#v..../	/ / / / / / / / / / / / / / /	/ 	/s   Cc  c	c	SpecialAttrsTests.TypeNamec                    t          j        d          }|                     t          |d                     |                     t          |d                     |                     |j        d           t          t          j        dz             D ]I}| 	                    t                    5  t          j        ||           d d d            n# 1 swxY w Y   J|                     t          j        j        d           |                     t          j        j        d           |                     t          j        j        t                     t          t          j        dz             D ]U}t          j        t          j        |          }t          j        |          }|                     t          j        |           V|                     t$          j        d           |                     t          t$          d                     |                     t$          j        t                     t          t          j        dz             D ]K}t          j        t$          |          }t          j        |          }|                     t$          |           L|                     t&          j        d	           |                     t          t&          d                     |                     t&          j        t                     t          t          j        dz             D ]K}t          j        t&          |          }t          j        |          }|                     t&          |           Ld S )
Nzset[Any]rk   rm   rO   rq   TypeNamerT  rJ  rI  )rO   rA   r   r  r   rl   ru   rv   rw   r   r   r>  rL  rV  rk   rm   r=  r   rJ  rI  )r[   r	  rt   r   r  s        r`   test_special_attrs2z%SpecialAttrsTests.test_special_attrs2!  s    z**Z00111^4455511162Q677 	( 	(E""9-- ( (R'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 	*3<jIII&3(	
 	
 	
 	&1	
 	
 	

 62Q677 	> 	>E.7??A\!__FMM+4f==== 	/AAA??@@@18<<<62Q677 	1 	1E]E22A\!__FMM-0000/AAA??@@@18<<<62Q677 	1 	1E]E22A\!__FMM-0000	1 	1s   .CC	C	c                 N    G d dt           t                             }t          t          |t                                       }dD ]F}|                     |          5  |                     ||           d d d            n# 1 swxY w Y   G|                     d|           d S )Nc                       e Zd Zd ZdZdZdS )4SpecialAttrsTests.test_genericalias_dir.<locals>.Fooc                     d S rf   rn   r   s    r`   r)  z8SpecialAttrsTests.test_genericalias_dir.<locals>.Foo.barE!  r  rb   r  r  N)rk   rl   rm   r)  r)  	__magic__rn   rb   r`   r   rZ  D!  s'          CIIIrb   r   )r)  r)  r  r  r  rA  r\  )r$   r   rC  rD  r   rx   rE  r	  )r[   r   rG  rB  s       r`   test_genericalias_dirz'SpecialAttrsTests.test_genericalias_dirC!  s    	 	 	 	 	'!* 	 	 	 CH&&	
 	8 	8M M:: 8 8mY7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8i00000s    BB	
B	N)
rk   rl   rm   r  rO   r  r   rV  rW  r]  rn   rb   r`   rL  rL     s\        {/ {/ {/z v~:C@@H01 01 01d1 1 1 1 1rb   rL  c                       e Zd Zd ZdS )RevealTypeTestsc                    t                      }t                      5 }|                     |t          |                     d d d            n# 1 swxY w Y   |                     |                                d           d S )NzRuntime type is 'object'
)rT  rK   r   r0   r   getvalue)r[   r  stderrs      r`   test_reveal_typez RevealTypeTests.test_reveal_typeW!  s    hh 	1&MM#{3//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1**,HIIIIIs   $AAAN)rk   rl   rm   rc  rn   rb   r`   r_  r_  V!  s(        J J J J Jrb   r_  c                        e Zd Zd Zd Zd ZdS )DataclassTransformTestsc           	      B   ddddt           dt           fd} t          dd          |          } G d d	          }|                     ||           |                     |j        dddd
i d           |                       |dd          |          |           d S )NFTfrozenkw_onlyrh  ri  c                     d S )Nc                     | S rf   rn   re	  s    r`   r  zNDataclassTransformTests.test_decorator.<locals>.create_model.<locals>.<lambda>a!  s    s rb   rn   rg  s     r`   create_modelz<DataclassTransformTests.test_decorator.<locals>.create_model`!  s
    "?"rb   )kw_only_defaultorder_defaultc                       e Zd ZU eed<   dS )=DataclassTransformTests.test_decorator.<locals>.CustomerModelr  Nrf  rn   rb   r`   CustomerModelrp  e!           GGGGGrb   rq  rn   
eq_defaultrn  rm  field_specifiersr   )r  r1   r   r   __dataclass_transform__)r[   rl  	decoratedrq  s       r`   test_decoratorz&DataclassTransformTests.test_decorator_!  s
   +0$ 	# 	# 	#D 	#4 	# 	# 	# 	# S'ERRRS_``		 	 	 	 	 	 	 	 	i...-"!&#'$& 		
 		
 		
 	1IIT5111-@@	
 	
 	
 	
 	
rb   c           	          G d d          } t          ddd          |          } G d d|d          }|                     ||           |                     |j        dddd	d
did           |                     ||           d S )Nc                        e Zd ZdddefdZdS ):DataclassTransformTests.test_base_class.<locals>.ModelBaseFrh  rh  c                    d S rf   rn   )r\   rh  s     r`   r  zLDataclassTransformTests.test_base_class.<locals>.ModelBase.__init_subclass__z!  r   rb   N)rk   rl   rm   r  r  rn   rb   r`   	ModelBaser{  y!  s*        9>DDD$DDDDDDrb   r~  T)rt  rn  make_everything_awesomec                       e Zd ZU eed<   dS )>DataclassTransformTests.test_base_class.<locals>.CustomerModelr  Nrf  rn   rb   r`   rq  r  !  rr  rb   rq  r|  Frn   r  rs  )r1   r   r   rv  ra   )r[   r~  	Decoratedrq  s       r`   test_base_classz'DataclassTransformTests.test_base_classx!  s   	E 	E 	E 	E 	E 	E 	E 	E
'$(	
 
 

  		 	 	 	 	Id 	 	 	 	 	i+++-"!%#($&4d; 		
 		
 		
 	mY77777rb   c           	      V    G d d          } G d dt                     } t          d|f          |          } G d d|	          } G d
 d|d          }|                     ||           |                     |j        ddd|fi d           |                     ||           d S )Nc                       e Zd ZdS )5DataclassTransformTests.test_metaclass.<locals>.FieldNr~   rn   rb   r`   Fieldr  !  r   rb   r  c                   *     e Zd Zdddef fdZ xZS )9DataclassTransformTests.test_metaclass.<locals>.ModelMetaTinitr  c                L    t                                          | |||          S rf   )r   r  )r\   r
  r  	namespacer  r   s        r`   r  zADataclassTransformTests.test_metaclass.<locals>.ModelMeta.__new__!  s!     wwsD%CCCrb   )rk   rl   rm   r  r  r   r   s   @r`   	ModelMetar  !  s_        =AD D D6:D D D D D D D D D Drb   r  T)rn  ru  c                       e Zd ZdS )9DataclassTransformTests.test_metaclass.<locals>.ModelBaseNr~   rn   rb   r`   r~  r  !  r   rb   r~  rm  c                       e Zd ZU eed<   dS )=DataclassTransformTests.test_metaclass.<locals>.CustomerModelr  Nrf  rn   rb   r`   rq  r  !  rr  rb   rq  Fr  rs  )r   r1   r   r   rv  r   )r[   r  r  r  r~  rq  s         r`   test_metaclassz&DataclassTransformTests.test_metaclass!  s6   	D 	D 	D 	D 	D 	D 	D 	D
'%
 
 

 	 	21111)1111	 	 	 	 	IE 	 	 	 	 	i+++-"!%#(%*H 		
 		
 		
 	mY77777rb   N)rk   rl   rm   rx  r  r  rn   rb   r`   re  re  ^!  sA        
 
 
28 8 868 8 8 8 8rb   re  c                       e Zd ZdZd Zd ZdS )AllTestszTests for __all__.c                 N   ddl m} |                     d|           |                     d|           |                     d|           |                     d|           |                     d|           |                     d|           |                     d	|           |                     d
|           |                     d|           |                     d|           |                     d|           |                     d|           |                     d|           d S )Nr   )rb  rj  rQ  r*   r   r<  r  ior	  osr  Textr  r	  )rO   rb  rE  r	  r  s     r`   test_allzAllTests.test_all!  s)   ''''''mQ'''lA&&&fa   j!$$$&***+Q///q!!!q!!!q!!!"""fa   oq)))'+++++rb   c                     t          t          j                  fdt          t                                                    D             }|                     |           d S )Nc                     h | ]p\  }}|v se|                     d           sR|dvrN|                    d          s9|                                |k    s!t          |dd          t          j        k    n|qS )r
  >   r  r	  )r  _contra_corl   N)rh  rT  upperr`  rO   rk   )r  r  rb  
actual_alls      r`   	<setcomp>z3AllTests.test_all_exported_names.<locals>.<setcomp>!  s     
 
 
!QJLL%%  %%JJ9:: & GGIINN<..&/AA  BAArb   )rC  rO   rb  varsr  assertSetEqual)r[   computed_allr  s     @r`   test_all_exported_namesz AllTests.test_all_exported_names!  sj    ((

 
 
 
v,,,,..
 
 
 	L*55555rb   N)rk   rl   rm   r9  r  r  rn   rb   r`   r  r  !  s8        , , ,,6 6 6 6 6rb   r  c                       e Zd Zeeeeef         eeef         ee	e
e
def         e
egef         eeedf         fZd Zd ZdS )TypeIterationTests.r   c                    d}| j         D ]}|                     |          5  |                     t          |          5  t	          |           d d d            n# 1 swxY w Y   |                     t          |          5  t          |           d d d            n# 1 swxY w Y   |                     t          |          5  |D ]}	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nzobject is not iterablerG  )_UNITERABLE_TYPESrx   r  r   r  r  )r[   expected_error_regex	test_typer
  s       r`   test_cannot_iteratez&TypeIterationTests.test_cannot_iterate!  s   7/ 	 	I9--  ++I7KLL $ $OOO$ $ $ $ $ $ $ $ $ $ $ $ $ $ $++I7KLL $ $OOO$ $ $ $ $ $ $ $ $ $ $ $ $ $ $++I7KLL  &                              	 	s|   C,AC,AC,!A"C, BC,B  C,#B $C,C	C,CC,CC,,C0	3C0	c                 d    | j         D ]'}|                     |t          j        j                   (d S rf   )r  r   r  r  r  )r[   type_to_tests     r`    test_is_not_instance_of_iterablez3TypeIterationTests.test_is_not_instance_of_iterable!  s@     2 	M 	ML$$\;?3KLLLL	M 	Mrb   N)rk   rl   rm   r   r   r|  r   r   r    r   r#   r@   r  r  r  rn   rb   r`   r  r  !  s        c3hc1fa!c!R%
 
 
M M M M Mrb   r  c                 h    dd l }|                    |                    t                               |S rL  )doctestaddTestsDocTestSuiterO   )loaderr  patternr  s       r`   
load_testsr  !  s0    NNN	NN7''//000Lrb   __main__)r  r  r   	functoolsr   r   r   rp	  r  rf  ro  rv   r	  r  r?  unittestr   r   r	   r
   unittest.mockr   r   r   rO   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r5   r6   r7   r8   r9   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   r  r6  r  r  test.supportrJ   rK   rL   test.typinganndatarM   rN   import_fresh_moduler  r  r  rT   r{   r}   r   r   r   r   r   r   r  r  r#  rQ  ri  r  r|  r  r  r  r  r  r;  rR  r:  rN  r  r  r  r  r  r  rK  rL  rN  r\  re  ri  rm  rp  rs  ru  rw  r}  r  r  r  r  rm  r'	  r;	  rF	  ru	  r|	  r	  r	  r	  r	  r
  r
  r
  r
  r
  r
  r
  r
  r
  r  r
  r
  r
  r
  r   r   r
  ry  r|
  r
  r
  r
  r
  r
  r
  r
  r
  r   r   
FooGenericr
  r
  r
  r  r  r  r
  r  r  r  r  r  r  r  r   r  r  r  r  r   r  r!  r'  r  r  r  r  r  r  r
  r  r  rj  r
  r  r,  rF  r\  r  r  r6  r>  rI  r  r  rJ  rL  r_  re  r  r  r  rk   rn   rb   r`   <module>r     s           # # # # # # . . . . . . . . . .      				   				 



  5 5 5 5 5 5 5 5 5 5 5 5               5 5 5 5 5 5 5 5 5 5 5 5 ; ; ; ; ; ; ; ; ; ; 8 8 8 8 8 8 8 8 8 8 8 8           + + + + + + + + + + 4 4 4 4 4 4 4 4 4 4 4 4       < < < < < < < < < < < < < < 7 7 7 7 7 7 7 7 7 7 ! ! ! ! ! ! ' ' ' ' ' ' ' '             & & & & & & 9 9 9 9 9 9 9 9       ? ? ? ? ? ? ? ? ? ? ? ? ' ' ' ' ' ' ' ' ' ' ! ! ! ! ! ! ! ! ( ( ( ( ( ( ( ( & & & & & & & &       I I I I I I I I I I I I       



     E E E E E E E E E E E E E E E E E E .M-hLLL	,=,Xi[III?     8   *	 	 		 	 	 	 	 	 	 		 	 	 	 	h 	 	 		 	 	 	 	h 	 	 		 	 	 	 	gw 	 	 	C C C C C| C C CL%% %% %% %% %% %% %% %%P- - - - -(, - - -(8 8 8 8 8%| 8 8 8 
 
 
 
 
| 
 
 
&55 55 55 55 55 55 55 55p4> 4> 4> 4> 4> 4> 4> 4>lV! V! V! V! V!< V! V! V!rA,S	 A,c49n9M A,RVW\]`WaRb A, A, A, A,H+ + + + +| + + +B@ @ @ @ @L @ @ @H    ,   @x
< x
< x
< x
< x
< x
< x
< x
<v.$ .$ .$ .$ .$ .$ .$ .$bNG NG NG NG NG NG NG NGb)' )' )' )' )' )' )' )'Xd d d d d d d dL		? 	? 	? 	? 	?+\ 	? 	? 	?( ( ( ( (0, ( ( (x= x= x= x= x=< x= x= x=v WT3WT]]	 	 	 	 	GBFO 	 	 	    mBF+   $            J          
    H       H    	 	 	 	 	ueX 	 	 	     H   
	 	 	 	 	u 	 	 	                   h   W? W? W? W? W?L W? W? W?t"r r r r r< r r rj#& #& #& #& #&L #& #& #&J(# (# (# (# (# (# (# (#VG6 G6 G6 G6 G6, G6 G6 G6T       $6 6 6 6 6l 6 6 6" + * * * * *0 0 0 0 0 0 0 0 < < < < < < < <X1 X1 X1 X1 X1l X1 X1 X1v          YC YC YC YC YCL YC YC YC|              genn    v',   % % % % %6/4 % % %                         1            
                        :       j       J   
    J    		'WcN+,,    i   	 	 	 	 	WQZ 	 	 	    

         #.q1     ( ' ' ' '7E ' ' '    iu               IU        )5        )   J J J J J J J J, , , , , : , , ,, , , , ,Y , , ,, , , , ,9 , , ,. . . . . . . .$ $ $ $ $,. $ $ $V/4    

F3355MMt   6!9?????????        vU vU vU vU vU| vU vU vUr	OT OT OT OT OT8 OT OT OTdWg Wg Wg Wg Wg, Wg Wg Wgt1 1 1 1 1L 1 1 1:$% $% $% $% $% $% $% $%N
M 
M 
M 
M 
M( 
M 
M 
M[ [ [ [ [ [ [ [|    |    H())    L,   *)B2 B2 B2 B2 B2l B2 B2 B2Ji& i& i& i& i&\ i& i& i&X+& +& +& +& +&L +& +& +&\+) +) +) +) +)| +) +) +)\#( #( #( #( #(l #( #( #(LGK GK GK GK GKl GK GK GKTp< p< p< p< p<\ p< p< p<f) ) ) ) )\ ) ) )XlI lI lI lI lI\ lI lI lI^48 48 48 48 48| 48 48 48l'' '' '' '' ''\ '' '' ''T ! 11UGDDC1 C1 C1 C1 C1 C1 C1 C1LJ J J J Jl J J JR8 R8 R8 R8 R8l R8 R8 R8j)6 )6 )6 )6 )6| )6 )6 )6XM M M M M M M M@   zDFFFFF s   &[7 7\<\\