
    0hh                       S SK r S SKrS SKrS SKJr  S SKJrJrJr  S SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKrS SKJrJrJr  S SKJr  S SKJrJr  S SKJrJrJrJr  S SKJrJrJr  S S	KJrJ r J!r!J"r"  S S
KJ#r#J$r$J%r%  S SKJ&r&J'r'J(r(  S SKJ)r)J*r*J+r+J,r,  S SKJ-r-  S SKJ.r.J/r/J0r0J1r1J2r2  S SKJ3r3J4r4J5r5  S SKJ6r6  S SKJ7r7J8r8J9r9  S SKJ:r:  S SKJ;r;J<r<  S SKJ=r=  S SKJ>r>  S SKJ?r?J@r@  S SKJArA  S SKJBrBJCrCJDrDJErEJFrF  S SKJGrGJHrHJIrI  S SKJJrJJKrK  S SKJLrLJMrM  S SKJNrNJOrO  S SKJPrP  S SKJQrQJRrRJSrSJTrT  S SKJUrUJVrVJWrW  S SKXrXS SKYrYS SKrS SKZrZS SK[r[S S K\J]r]J^r^J_r_J`r`Jara  S S!KbJcrc  S S"KdJereJfrfJgrg  S#rhS$riS%rj " S& S'\\c5      rkS( rl " S) S*5      rm " S+ S,\m5      rn " S- S.\m5      ro " S/ S0\n\o5      rp " S1 S2\k5      rq " S3 S45      rr " S5 S6\r\k5      rs " S7 S8\r\k5      rt " S9 S:\k5      ru " S; S<\k5      rv " S= S>\k5      rw " S? S@\k5      rx " SA SB\k5      rySC\z\{   SD\|\{\z\{   4   SE\z\}\{      4SF jr~ " SG SH\k5      r " SI SJ\k5      r " SK SL\k5      r " SM SN\k5      r " SO SP\k5      r " SQ SR\k5      r " SS ST\k5      r " SU SV5      r " SW SX\\k5      r " SY SZ\\k5      r " S[ S\\k5      r\" S]\{\5      r\" S^5      r " S_ S`\.\\4   5      r " Sa Sb\\\4   5      r " Sc Sd\25      r\5 " Se Sf\\25      5       r " Sg Sh5      r " Si Sj\25      r " Sk Sl\25      r\5 " Sm Sn\\\25      5       r\5 " So Sp\25      5       r " Sq Sr\5      r " Ss St5      r " Su Sv\B5      r\5 " Sw Sx\25      5       r " Sy Sz\k5      r " S{ S|\k5      r " S} S~\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      rS SKdJr  \? " S S5      5       r\? " S S5      5       r " S S\k5      r " S S\k5      r\" 5       S 5       r " S S5      r " S S\k5      rS SKdJrJrJrJrJr  \" S5      r " S S\GR`                  \   5      r " S S\GRd                  \   5      r " S S5      r " S S5      r " S S\5      r " S S\5      r " S S\.\#   5      r " S S5      r " S S5      r " S S\B5      r " S S\B5      r " S S\B5      r " S S\B5      r\F" SS\{4/5      r " S S\F5      r " S S\.\#   \F5      r " S S\gGR                  SS9r " S S\gGR                  \#   SS9r " S S\\5      r " S S\FSS9r " S S\F5      r " S S\FSS9r " S S\FSS9r " S S\5      r " S S\F5      r " S S\5      r " S S\F5      r " S S\F5      r " S S\F5      r " S S\fGRj                  5      rS\GR                  \   4S jr \" \" 5       5      GR                  S5        \6r " S S5      r " S S\k5      r " S S\5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " S S\k5      r " GS  GS\k5      r\R                  " GS5      r\R>                  " GS\\\5      r " GS GS\k5      r " GS GS\k5      r " GS GS	\k5      r " GS
 GS\k5      r " GS GS\k5      r " GS GS\k5      rGS r\GS:X  a  \" 5         gg! \ a!  r\GR                  S    S:X  d   e SrCGNSrCff = f(      N)defaultdict)	lru_cachewrapsreduce)TestCasemain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get_protocol_members)override)is_typeddictis_protocol)reveal_type)dataclass_transform)no_type_checkno_type_check_decoratorType)
NamedTupleNotRequiredRequiredReadOnly	TypedDict)IOTextIOBinaryIO)PatternMatch)	Annotated
ForwardRef)SelfLiteralString)	TypeAlias)	ParamSpecConcatenateParamSpecArgsParamSpecKwargs)	TypeGuardTypeIs	NoDefault)captured_stderrcpython_onlyinfinite_recursionrequires_docstringsimport_helper)ExtraAssertions)ann_module695mod_generics_cache_typed_dict_helperz&Cannot subclass special typing classesz/type 'typing.%s' is not an acceptable base typez!Cannot subclass an instance of %sc                       \ rS rSrS rSrg)BaseTestCase:   c                 @    [         R                   H
  nU" 5         M     g N)typing	_cleanupsselffs     9/opt/python-3.13.8/usr/lib/python3.13/test/test_typing.pyclear_cachesBaseTestCase.clear_caches<   s    !!AC "     N)__name__
__module____qualname____firstlineno__rb   __static_attributes__re   rd   ra   rX   rX   :   s    rd   rX   c                 0   ^  [        T 5      U 4S j5       nU$ )z:Runs `test_func` with various values for `proto` argument.c                    > [        [        R                  S-   5       H!  nU R                  US9   T" XS9  S S S 5        M#     g ! , (       d  f       M5  = f)N   )pickle_protoproto)rangepickleHIGHEST_PROTOCOLsubTest)r_   rp   	test_funcs     ra   wrapper%all_pickle_protocols.<locals>.wrapperD   sB    622Q67E51$, 21 811s   A
A	r   )ru   rv   s   ` ra   all_pickle_protocolsry   A   s#     9- -
 Nrd   c                       \ rS rSrSrg)EmployeeM   re   Nrf   rg   rh   ri   rj   re   rd   ra   r{   r{   M       rd   r{   c                       \ rS rSrSrg)ManagerQ   re   Nr}   re   rd   ra   r   r   Q   r~   rd   r   c                       \ rS rSrSrg)FounderU   re   Nr}   re   rd   ra   r   r   U   r~   rd   r   c                       \ rS rSrSrg)ManagingFounderY   re   Nr}   re   rd   ra   r   r   Y   r~   rd   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)AnyTests]   c                     U R                  [        5         [        S[        5        S S S 5        g ! , (       d  f       g = fN*   )assertRaises	TypeError
isinstancer   r_   s    ra   test_any_instance_type_error%AnyTests.test_any_instance_type_error_   s&    y)r3 *))   0
>c                     U R                  [        [        5      S5         " S S[        5      nU R                  [        U5      S[         S35        g )Nz
typing.Anyc                       \ rS rSrSrg)AnyTests.test_repr.<locals>.Subf   re   Nr}   re   rd   ra   Subr   f       rd   r   <class 'z".AnyTests.test_repr.<locals>.Sub'>)assertEqualreprr   rf   r_   r   s     ra   	test_reprAnyTests.test_reprc   s@    cL1#Ixj BC	
rd   c                     U R                  [        5         [        S[        5        S S S 5        U R                  [        5         [        [             S S S 5        g ! , (       d  f       N:= f! , (       d  f       g = fr   )r   r   r   r   intr   s    ra   test_errorsAnyTests.test_errorsl   sL    y)r3 *y)H *) *)))s   AA,
A),
A:c                 r    " S S[         5      nU R                  [        U[         5      5        U R                  U" 5       U5         " S S5      nU R	                  [        U[         5      5        U R                  U" 5       U5         " S SX!5      nU R                  [        U[         5      5        U R                  [        X35      5        U R                  [        X25      5        U R                  [        X15      5        U" 5       nU R                  XC5        U R                  XB5        U R                  XA5        g )Nc                       \ rS rSrSrg)(AnyTests.test_can_subclass.<locals>.Mocks   re   Nr}   re   rd   ra   Mockr   s       rd   r   c                       \ rS rSrSrg)-AnyTests.test_can_subclass.<locals>.Somethingw   re   Nr}   re   rd   ra   	Somethingr   w   r   rd   r   c                       \ rS rSrSrg)1AnyTests.test_can_subclass.<locals>.MockSomething{   re   Nr}   re   rd   ra   MockSomethingr   {       drd   r   )r   
assertTrue
issubclassassertIsInstanceassertFalseassertNotIsInstance)r_   r   r   r   mss        ra   test_can_subclassAnyTests.test_can_subclassr   s    3
4-.dfd+Is34  d32I2
=#67
=@A
=<=
=78_b0b,b'rd   c                 0     " S S[         5      nU" SSS9  g )Nc                       \ rS rSrS rSrg)>AnyTests.test_subclassing_with_custom_constructor.<locals>.Sub   c                     g r[   re   r_   argskwargss      ra   __init__GAnyTests.test_subclassing_with_custom_constructor.<locals>.Sub.__init__   s    rd   re   Nrf   rg   rh   ri   r   rj   re   rd   ra   r   r      s    5rd   r   r    )s)r   r   s     ra   (test_subclassing_with_custom_constructor1AnyTests.test_subclassing_with_custom_constructor   s    	6# 	6 	Ard   c                      " S S5      n " S S[         U5      nU" SS5      nU R                  UR                  S5        U R                  UR                  S5        g )Nc                       \ rS rSrS rSrg)HAnyTests.test_multiple_inheritance_with_custom_constructors.<locals>.Foo   c                     Xl         g r[   xr_   r   s     ra   r   QAnyTests.test_multiple_inheritance_with_custom_constructors.<locals>.Foo.__init__       rd   r   Nr   re   rd   ra   Foor          rd   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )HAnyTests.test_multiple_inheritance_with_custom_constructors.<locals>.Bar   c                 0   > X l         [        TU ]	  U5        g r[   )ysuperr   )r_   r   r   	__class__s      ra   r   QAnyTests.test_multiple_inheritance_with_custom_constructors.<locals>.Bar.__init__   s     #rd   r   rf   rg   rh   ri   r   rj   __classcell__r   s   @ra   Barr      s    $ $rd   r   rm      )r   r   r   r   )r_   r   r   bs       ra   2test_multiple_inheritance_with_custom_constructors;AnyTests.test_multiple_inheritance_with_custom_constructors   sO    	 		$#s 	$
 1Ia a rd   c                     U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr[   )r   r   r   typer   s    ra   test_cannot_instantiate AnyTests.test_cannot_instantiate   sI    y)E *y)IK *) *)))   AA-
A*-
A;c                     [         R                  [             [         R                  [             [         R                  [             g r[   )r\   rA   r   r@   r=   r   s    ra   test_any_works_with_alias"AnyTests.test_any_works_with_alias   s%    Ss		#rd   re   N)rf   rg   rh   ri   r   r   r   r   r   r   r   r   rj   re   rd   ra   r   r   ]   s*     
(&!rd   r   c                   P    \ rS rSr% \\   \S'   S rS rS r	S r
S rS rS	 rS
rg)BottomTypeTestsMixin   bottom_typec                     U R                  U R                  U R                  5        U R                  U R                  U R                  5        U R                  U R                  S 5        g r[   )r   r   assertIsassertNotEqualr   s    ra   test_equality"BottomTypeTestsMixin.test_equality   sN    ))4+;+;<d&&(8(89D,,d3rd   c                 N    U R                  [        U R                  5      S 5        g r[   )r   r,   r   r   s    ra   test_get_origin$BottomTypeTestsMixin.test_get_origin   s    j!1!12D9rd   c                     U R                  [        5         [        SU R                  5        S S S 5        g ! , (       d  f       g = fr   )r   r   r   r   r   s    ra   test_instance_type_error-BottomTypeTestsMixin.test_instance_type_error   s,    y)r4++, *))	   6
Ac                 (   U R                  [        5         [        [        U R                  5        S S S 5        U R                  [        5         [        [
        U R                  5        S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = fr[   )r   r   r   r{   r   r   r   s    ra   test_subclass_type_error-BottomTypeTestsMixin.test_subclass_type_error   s[    y)x!1!12 *y)x!1!12 *) *)))s   A2B2
B 
Bc                     U R                  [        5         U R                  [             S S S 5        g ! , (       d  f       g = fr[   )r   r   r   r   r   s    ra   test_not_generic%BottomTypeTestsMixin.test_not_generic   s*    y)S! *))	   3
Ac           	         U R                  [        S[        R                  " [	        U R
                  5      5      -   5          " S SU R
                  5      nS S S 5        U R                  [        [        5          " S S[        U R
                  5      5      nS S S 5        g ! , (       d  f       NP= f! , (       d  f       g = f)NCannot subclass c                       \ rS rSrSrg)4BottomTypeTestsMixin.test_cannot_subclass.<locals>.A   re   Nr}   re   rd   ra   Ar
         rd   r  c                       \ rS rSrSrg)4BottomTypeTestsMixin.test_cannot_subclass.<locals>.B   re   Nr}   re   rd   ra   Br     r  rd   r  )assertRaisesRegexr   reescapestrr   CANNOT_SUBCLASS_TYPEr   r_   r  r  s      ra   test_cannot_subclass)BottomTypeTestsMixin.test_cannot_subclass   s    ##I"RYYs43C3C/D%EEGD$$ G ##I/CDD))*  ED	G G EDs   B!9B2!
B/2
C c                    U R                  [        5         U R                  5         S S S 5        U R                  [        5         [        U R                  5      " 5         S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = fr[   )r   r   r   r   r   s    ra   r   ,BottomTypeTestsMixin.test_cannot_instantiate   sX    y) *y)!!"$ *) *)))s   A(A9(
A69
Bre   N)rf   rg   rh   ri   r$   r   __annotations__r   r   r   r  r  r  r   rj   re   rd   ra   r   r      s/    #4
:-3"%rd   r   c                   *    \ rS rSr\rS rS rS rSr	g)NoReturnTests   c                 B    U R                  [        [        5      S5        g )Ntyping.NoReturn)r   r   r   r   s    ra   r   NoReturnTests.test_repr   s    h):;rd   c                     S[         S[         4S jnSS jn[         [         S.nX4 H6  nU R                  US9   U R                  [        U5      U5        S S S 5        M8     g ! , (       d  f       MJ  = f)Nargreturnc                     g r[   re   r$  s    ra   some/NoReturnTests.test_get_type_hints.<locals>.some   s    Srd   c                     g r[   re   r'  s    ra   some_str3NoReturnTests.test_get_type_hints.<locals>.some_str       Crd   r$  r%  target)r$  r   r%  r!  )r   rt   r   gthr_   r(  r+  expectedr0  s        ra   test_get_type_hints!NoReturnTests.test_get_type_hints   sZ    0h080?#x8&FV,  Vh7 -, ',,   A""
A1	c                 l    U R                  [        [        5        U R                  [        [        5        g r[   )r   r   r   r   s    ra   test_not_equalityNoReturnTests.test_not_equality   s"    He,E8,rd   re   N)
rf   rg   rh   ri   r   r   r   r4  r8  rj   re   rd   ra   r  r     s    K<8-rd   r  c                   $    \ rS rSr\rS rS rSrg)
NeverTests   c                 B    U R                  [        [        5      S5        g )Ntyping.Never)r   r   r   r   s    ra   r   NeverTests.test_repr   s    en5rd   c                     S[         S[         4S jnSS jn[         [         S.nX4 H6  nU R                  US9   U R                  [        U5      U5        S S S 5        M8     g ! , (       d  f       MJ  = f)Nr$  r%  c                     g r[   re   r'  s    ra   r(  ,NeverTests.test_get_type_hints.<locals>.some   s    srd   c                     g r[   re   r'  s    ra   r+  0NeverTests.test_get_type_hints.<locals>.some_str       crd   r.  r/  )r$  r   r%  r>  )r   rt   r   r1  r2  s        ra   r4  NeverTests.test_get_type_hints   sZ    *e**9 E2&FV,  Vh7 -, ',,r6  re   N)	rf   rg   rh   ri   r   r   r   r4  rj   re   rd   ra   r;  r;     s    K68rd   r;  c                       \ rS rSrS rSrg)AssertNeverTests   c                    U R                  [        5         [        S 5        S S S 5        SnU R                  [        U5         [        U5        S S S 5        SS-  nU R                  [        5       n[        U5        S S S 5        U R	                  [        WR                  R                  S   5      [        R                  S-  5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nt= f)N
some valueai'  r   r   )
r   AssertionErrorr   r  
assertLesslen	exceptionr   r\   _ASSERT_NEVER_REPR_MAX_LENGTH)r_   value
huge_valuecms       ra   test_exceptionAssertNeverTests.test_exception   s    ~. / ##NE: ; 5[
~."$ /!!!$%0014	
 /. ;:
 /.s#   CC0C*
C
C'*
C8re   N)rf   rg   rh   ri   rU  rj   re   rd   ra   rH  rH     s    
rd   rH  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)	SelfTestsi  c                     U R                  [        [        5        U R                  [        [        5        U R                  [        S 5        g r[   )r   rD   r   r   r   s    ra   r   SelfTests.test_equality  s0    t$dD!D$'rd   c                 >    " S S5      n " S S5      n " S S5      nXU4 HF  nU R                  US9   U R                  [        UR                  5      S[        05        S S S 5        MH     U R                  [        [        5      S 5        g ! , (       d  f       My  = f)	Nc                   "    \ rS rSrS\4S jrSrg)"SelfTests.test_basics.<locals>.Fooi  r%  c                     g r[   re   r   s    ra   bar&SelfTests.test_basics.<locals>.Foo.bar      3rd   re   N)rf   rg   rh   ri   rD   r_  rj   re   rd   ra   r   r]    s
    &T&rd   r   c                       \ rS rSrSS jrSrg)%SelfTests.test_basics.<locals>.FooStri  c                     g r[   re   r   s    ra   r_  )SelfTests.test_basics.<locals>.FooStr.bar      Srd   re   N)r%  rD   rf   rg   rh   ri   r_  rj   re   rd   ra   FooStrrc    s    (rd   rh  c                       \ rS rSrSS jrSrg)+SelfTests.test_basics.<locals>.FooStrTypingi  c                     g r[   re   r   s    ra   r_  /SelfTests.test_basics.<locals>.FooStrTyping.bar      Crd   re   N)r%  typing.Selfrg  re   rd   ra   FooStrTypingrj    s    /rd   ro  r/  r%  )rt   r   r1  r_  rD   r   r,   r_   r   rh  ro  r0  s        ra   test_basicsSelfTests.test_basics  s    	' 	'	) 	)	0 	0 L1FV,  VZZ8T2BC -, 2 	j&- -,   ,B
B	c                 B    U R                  [        [        5      S5        g )Nrn  )r   r   rD   r   s    ra   r   SelfTests.test_repr  s    d]3rd   c                 |    U R                  [        5         [        [             S S S 5        g ! , (       d  f       g = fr[   )r   r   rD   r   r   s    ra   test_cannot_subscriptSelfTests.test_cannot_subscript  s#    y)I *))   -
;c                    U R                  [        [        5          " S S[        [        5      5      nS S S 5        U R                  [        S5          " S S[        5      nS S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)Nc                       \ rS rSrSrg))SelfTests.test_cannot_subclass.<locals>.Ci"  re   Nr}   re   rd   ra   Cr|  "  r  rd   r}  zCannot subclass typing\.Selfc                       \ rS rSrSrg))SelfTests.test_cannot_subclass.<locals>.Di&  re   Nr}   re   rd   ra   Dr  &  r  rd   r  )r  r   r  r   rD   r_   r}  r  s      ra   r  SelfTests.test_cannot_subclass   si    ##I/CDDJ  E ##I/1D 1 1 ED1 1   A+A<+
A9<
B
c                     U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr[   )r   r   rD   r   r   s    ra   test_cannot_initSelfTests.test_cannot_init)  sI    y)F *y)JL *) *)))r   c                    U R                  [        5         [        S[        5        S S S 5        U R                  [        5         [	        [
        [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fNrm   )r   r   r   rD   r   r   r   s    ra   test_no_isinstanceSelfTests.test_no_isinstance/  sO    y)q$ *y)sD! *) *)))   A"A3"
A03
Bc                 (   [         [        [        4   n[        [           n[        [           nU R	                  [        U5      [        [        45        U R	                  [        U5      [        45        U R	                  [        U5      [        45        g r[   )r   rD   r   r$   r   r-   r_   alias_1alias_2alias_3s       ra   
test_aliasSelfTests.test_alias5  si    d
#t*4.'*T4L9'*TG4'*TG4rd   re   Nrf   rg   rh   ri   r   rq  r   rw  r  r  r  r  rj   re   rd   ra   rX  rX    s*    (
.4"5rd   rX  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)LiteralStringTestsi?  c                     U R                  [        [        5        U R                  [        [        5        U R                  [        S 5        g r[   )r   rE   r   r   r   s    ra   r    LiteralStringTests.test_equality@  s0    6m]3M40rd   c                 >    " S S5      n " S S5      n " S S5      nXU4 HF  nU R                  US9   U R                  [        UR                  5      S[        05        S S S 5        MH     U R                  [        [        5      S 5        g ! , (       d  f       My  = f)	Nc                   "    \ rS rSrS\4S jrSrg)+LiteralStringTests.test_basics.<locals>.FooiF  r%  c                     g r[   re   r   s    ra   r_  /LiteralStringTests.test_basics.<locals>.Foo.barG  rm  rd   re   N)rf   rg   rh   ri   rE   r_  rj   re   rd   ra   r   r  F  s
    /]/rd   r   c                       \ rS rSrSS jrSrg).LiteralStringTests.test_basics.<locals>.FooStriH  c                     g r[   re   r   s    ra   r_  2LiteralStringTests.test_basics.<locals>.FooStr.barI      crd   re   N)r%  rE   rg  re   rd   ra   rh  r  H  s    1rd   rh  c                       \ rS rSrSS jrSrg)4LiteralStringTests.test_basics.<locals>.FooStrTypingiJ  c                     g r[   re   r   s    ra   r_  8LiteralStringTests.test_basics.<locals>.FooStrTyping.barK      Srd   re   N)r%  typing.LiteralStringrg  re   rd   ra   ro  r  J  s    8rd   ro  r/  r%  )rt   r   r1  r_  rE   r   r,   rp  s        ra   rq  LiteralStringTests.test_basicsE  s    	0 	0	2 	2	9 	9 L1FV,  VZZ8]2KL -, 2 	j/6 -,rs  c                 B    U R                  [        [        5      S5        g )Nr  )r   r   rE   r   s    ra   r   LiteralStringTests.test_reprR  s    m,.DErd   c                 |    U R                  [        5         [        [             S S S 5        g ! , (       d  f       g = fr[   )r   r   rE   r   r   s    ra   rw  (LiteralStringTests.test_cannot_subscriptU  s$    y)# *))ry  c                    U R                  [        [        5          " S S[        [        5      5      nS S S 5        U R                  [        S5          " S S[        5      nS S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)Nc                       \ rS rSrSrg)2LiteralStringTests.test_cannot_subclass.<locals>.Ci[  re   Nr}   re   rd   ra   r}  r  [  r  rd   r}  z%Cannot subclass typing\.LiteralStringc                       \ rS rSrSrg)2LiteralStringTests.test_cannot_subclass.<locals>.Di_  re   Nr}   re   rd   ra   r  r  _  r  rd   r  )r  r   r  r   rE   r  s      ra   r  'LiteralStringTests.test_cannot_subclassY  sj    ##I/CDD'  E ##I8:M : : ED: :r  c                     U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr[   )r   r   rE   r   r   s    ra   r  #LiteralStringTests.test_cannot_initb  sK    y)O *y)! *) *)))r   c                    U R                  [        5         [        S[        5        S S S 5        U R                  [        5         [	        [
        [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr  )r   r   r   rE   r   r   r   s    ra   r  %LiteralStringTests.test_no_isinstanceh  sO    y)q-( *y)sM* *) *)))r  c                 (   [         [        [        4   n[        [           n[        [           nU R	                  [        U5      [        [        45        U R	                  [        U5      [        45        U R	                  [        U5      [        45        g r[   )r   rE   r   r$   r   r-   r  s       ra   r  LiteralStringTests.test_aliasn  so    }45}%=)'*]M,JK'*],<='*],<=rd   re   Nr  re   rd   ra   r  r  ?  s+    1
7F"+>rd   r  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TypeVarTestsiv  c                    [        S5      nU R                  X5        U R                  U[         5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S 5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  [        5        g )Nr   re   F)r   r   r   rf   __constraints__r   	__bound____covariant____contravariant____infer_variance__rg   r_   r   s     ra   test_basic_plainTypeVarTests.test_basic_plainw  s    CLa)S)**B/akk4(aoou-a))51a**E2x0rd   c                    0 n[        SX5        US   nU R                  U[        5        U R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  [        5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S 5        g )Nz9from typing import TypeVar; T = TypeVar("T", bound=float)r   re   F)execr   r   r   rf   r  r   r  floatr  r  r  rg   )r_   nsr   s      ra   test_basic_with_exec!TypeVarTests.test_basic_with_exec  s    H"QsGa)S)**B/akk5)aoou-a))51a**E2allD)rd   c                    [        S[        S9nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  [        5        [        S[        [        5      nU R                  UR                  S5        U R                  UR                  [        [        45        U R                  UR                  S 5        [        SSS9nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        [        S	SS
9nU R                  UR                  S	5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        [        SSS9nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g )NT_boundboundre   T_constraintsT_coT	covariantFT_contracontravariantT_infer)infer_variance)r   r   r   rf   r  r   r  r  r  r  r  )r_   r  r  r  r  r  s         ra   test_attributesTypeVarTests.test_attributes  s   )3/))9500"5g''-c://A66c
Cm--t4v./d(($/d,,e4d--u5:T:**J7h,,e4h00$7h1159)D9))95g++U3g//7g00$7rd   c                     [        S5      nU R                  [        5         [        SU5        S S S 5        g ! , (       d  f       g = f)Nr   r   )r   r   r   r   r  s     ra    test_typevar_instance_type_error-TypeVarTests.test_typevar_instance_type_error  s/    CLy)r1 *))s	   7
Ac                    [        S5      nU R                  [        5         [        [        U5        S S S 5        U R                  [        5         [        U[        5        S S S 5        g ! , (       d  f       N== f! , (       d  f       g = fNr   )r   r   r   r   r   r  s     ra    test_typevar_subclass_type_error-TypeVarTests.test_typevar_subclass_type_error  sX    CLy)sA *y)q# *) *)))s   A)A:)
A7:
Bc                     U R                  [        5         [        S[        5      nU  S S S 5        g ! , (       d  f       g = f)NX)r   r   r   r   r_   r  s     ra   test_constrained_error#TypeVarTests.test_constrained_error  s+    y)S!A *))s	   2
A c                    [        S5      n[        S5      nU R                  X5        U R                  [        U   U5        U R                  [        U   [        X4   5        U R                  [        X4   U5        U R                  [        U[        4   [        U   5        U R                  [        U[        4   [        [           5        U R                  [        U[        4   R
                  U[        45        U R                  [        U[        4   R                  U45        U R                  [        U[        4   R                  [        5        g )Nr  Y)	r   r   r   r   r   __args____parameters__r   
__origin__)r_   r  r  s      ra   test_union_uniqueTypeVarTests.test_union_unique  s    CLCLA!q1%E!HeADk2qta(E!S&M584E!S&M5:6q#v//!S:q#v55t<eAsFm..6rd   c                 6   [        S5      nU R                  US-  [        US4   5        U R                  SU-  [        SU4   5        U R                  [        US-  5      U[	        S5      45        U R                  [        SU-  5      [	        S5      U45        g Nr  r   )r   r   r   r-   rC   r  s     ra   test_orTypeVarTests.test_or  s    CL 	S%3-0q%Q-0!c'*Q
3,@A#'*Z_a,@Ard   c                 z    [        S[        [        5      nU R                  [        U[        4   [        U   5        g Nr  )r   r  bytesr   r   r_   r  s     ra   test_union_constrained#TypeVarTests.test_union_constrained  s,    Ce$E!S&M584rd   c                    U R                  [        [        5      S5        U R                  [        [        5      S5        U R                  [        [        5      S5        U R                  [        [
        5      S5        [        SSS9nU R                  [        U5      S5        [        S	SS
9nU R                  [        U5      S5        g )Nz~Tz~KTz~VTz~AnyStrr  Tr  z+T_cor  r  z	-T_contra)r   r   r   r   r   r   r   )r_   r  r  s      ra   r   TypeVarTests.test_repr  s    a$'b5)b5)fy1v.dW-:T:h5rd   c                     U R                  [        S5      [        S5      5        U R                  [        S[        [        5      [        S[        [        5      5        g r  )r   r   r   r  r   s    ra   test_no_redefinition!TypeVarTests.test_no_redefinition  s<    GCL'#,7GCc2GCc4JKrd   c                 *   U R                  [        [        S-  5          " S S[        5      nS S S 5        [        S5      nU R                  [        [        S-  5          " S SU5      nS S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)Nr   c                       \ rS rSrSrg),TypeVarTests.test_cannot_subclass.<locals>.Vi  re   Nr}   re   rd   ra   Vr        drd   r  r   c                       \ rS rSrSrg),TypeVarTests.test_cannot_subclass.<locals>.Wi  re   Nr}   re   rd   ra   Wr    r   rd   r  )r  r   NOT_A_BASE_TYPEr   CANNOT_SUBCLASS_INSTANCE)r_   r  r   r  s       ra   r  !TypeVarTests.test_cannot_subclass  sm    ##I/JK"G" LCL##I(946A6 6 LK6 6s   A3B3
B
Bc                     U R                  [        5         [        S5      " 5         S S S 5        g ! , (       d  f       g = fr  )r   r   r   r   s    ra   test_cannot_instantiate_vars)TypeVarTests.test_cannot_instantiate_vars  s%    y)CLN *))r   c                    U R                  [        5         [        S[        S9  S S S 5        U R                  [        5         [        S[        [
        [        S9  S S S 5        U R                  [        S5         [        SSS9  S S S 5        g ! , (       d  f       Nn= f! , (       d  f       NI= f! , (       d  f       g = f)Nr  r  z%Bound must be a type\. Got \(1, 2\)\.rm   r   )r   r   r   r   r  r  r{   r  r   s    ra   test_bound_errorsTypeVarTests.test_bound_errors  s    y)Cu% *y)Ce84 *##I$LNCv&N N	 *)))N Ns#   BB9B/
B
B,/
B=c                      Sn[        U0 5        g )Nz&import typing
T = typing.TypeVar('T')
r  r_   codes     ra   test_missing__name__!TypeVarTests.test_missing__name__  s    , 	T2rd   c                 x    U R                  [        5         [        SSSS9  S S S 5        g ! , (       d  f       g = f)Nr   T)r  r  r   
ValueErrorr   r   s    ra   test_no_bivariantTypeVarTests.test_no_bivariant  s(    z*C4t< +**s   +
9c                     U R                  [        5         [        SSSS9  S S S 5        U R                  [        5         [        SSSS9  S S S 5        g ! , (       d  f       N8= f! , (       d  f       g = f)Nr   T)r  r  )r  r  r  r   s    ra   &test_cannot_combine_explicit_and_infer3TypeVarTests.test_cannot_combine_explicit_and_infer	  sS    z*C4= +z*CtDA +* +***s   AA%
A"%
A3c                    [        S5      nUR                  nU R                  U" [        5      [        5        U R	                  U" [
        [           5      [
        [           5        U R	                  U" [        [           5      [        [           5        U R	                  U" [        5      [        5        U R                  U" [        5      [        5        U R                  U" S 5      [        S 5      5        U R                  U" U5      U5        U R	                  U" [        [        -  5      [        [        -  5        U R	                  U" [        [        [        4   5      [        [        [        4   5        g r  )r   __typing_subst__r   r   r   listr   r   r   r  r   )r_   r   substs      ra   test_var_substitution"TypeVarTests.test_var_substitution  s    CL""eCj#&tCy)495tCy)495td+eCj#&eDk4:.eAh"s3wS1uS#X/sCxArd   c                    [        S5      nS[        [        4[        [        [        U   [
        [
        U   [        [        [           [        [        [           4nU H  nU R                  US9   U R                  [        5         UR                  " U5        S S S 5        U R                  [        5         [        U   U     S S S 5        U R                  [        5         [        U   U     S S S 5        S S S 5        M     g ! , (       d  f       No= f! , (       d  f       NV= f! , (       d  f       N== f! , (       d  f       M  = f)Nr   re   r'  )r   r   r  r   r#   r'   r%   r$   rt   r   r   r  r   r  )r_   r   bad_argsr$  s       ra   test_bad_var_substitution&TypeVarTests.test_bad_var_substitution  s    CLc
EWQZ8A;5:x#

 C#&&&y1&&s+ 2&&y1GCL 2&&y1GCL 2 '& 111111 '&sT   /D4DD45DD4D#,D4
DD4
D D4#
D1-D44
E	c                     [         [        [        4 HV  nU R                  US9   [        R
                  " 5       n[        S5       H  nU" [        U5      5      X#'   M     AS S S 5        MX     g ! , (       d  f       Mj  = f)Ncls
   )rG   r   r   rt   weakrefWeakValueDictionaryrq   r  )r_   r'  valsr   s       ra   test_many_weakrefsTypeVarTests.test_many_weakrefs,  s^    |W5C#&224rA!#a&kDG # '& 6&&s   <A--
A<	c                 F
   [        SS9nU R                  UR                  S5        U R                  UR                  S5        U R	                  UR
                  S 5        U R	                  UR                  [        R                  5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        [        S[        S9nU R                  UR                  S5        U R                  UR                  S5        U R	                  UR
                  [        5        U R	                  UR                  [        R                  5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        [        SSS9nU R                  UR                  S5        U R                  UR                  S5        U R	                  UR
                  S 5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        [        SSS9nU R                  UR                  S5        U R                  UR                  S5        U R	                  UR
                  S 5        U R	                  UR                  [        R                  5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        [        SSS	9nU R                  UR                  S5        U R                  UR                  S5        U R	                  UR
                  S 5        U R	                  UR                  [        R                  5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        [        SSS
9nU R                  UR                  S5        U R                  UR                  S5        U R	                  UR
                  S 5        U R	                  UR                  [        R                  5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        g )Nr   namere   F)r0  r  )r0  defaultT)r0  r  )r0  r  )r0  r  )r   r   rf   r  r   r  __default__r\   rM   r  r  r  r   r  s     ra   test_constructorTypeVarTests.test_constructor6  s   S)**B/akk4(ammV%5%56aoou-a))51a**E2D)S)**B/akk4(ammV%5%56aoou-a))51a**E2b)S)**B/akk4(ammR(aoou-a))51a**E2-S)**B/akk4(ammV%5%56aoot,a))51a**E2D1S)**B/akk4(ammV%5%56aoou-a))40a**E2T2S)**B/akk4(ammV%5%56aoou-a))51a**D1rd   re   N)rf   rg   rh   ri   r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r#  r,  r3  rj   re   rd   ra   r  r  v  so    1*8:

7B56L'=BB! 52rd   r  c                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)TypeParameterDefaultsTestsin  c                    [        S[        S9nU R                  UR                  [        5        U R	                  UR
                  " 5       5        U R                  U[         5         " S S[        U   5      n[        U   ng )Nr   r1  c                       \ rS rSrSrg)2TypeParameterDefaultsTests.test_typevar.<locals>.Aiu  re   Nr}   re   rd   ra   r  r:  u      Srd   r  )	r   r   r   r2  r   has_defaultr   r#   r   )r_   r   r  Aliass       ra   test_typevar'TypeParameterDefaultsTests.test_typevaro  sY    C%,(a) 
 rd   c                    [        S5      n[        SS S9nU R                  UR                  [        5        U R	                  UR                  5       5        U R                  UR                  S 5        U R                  UR                  5       5        S " 5       nUR                  u  nU R                  UR                  [        5        U R	                  UR
                  " 5       5        g )NUU_Noner8  c                  0   ^ S 7=n 4m " U4S jST7
o5      $ )r   c                      > \ rS rSr Y rSrg)7TypeParameterDefaultsTests.test_typevar_none.<locals>.Xi  re   Nrf   rg   rh   ri   __type_params__rj   .type_paramss   ra   r  rE    s     Crd   r  re   r   .generic_baserI  s     @ra   <generic parameters of X>OTypeParameterDefaultsTests.test_typevar_none.<locals>.<generic parameters of X>  s    rd   )r   r   r2  rM   r   r<  r   rG  )r_   rA  rB  r  r   s        ra   test_typevar_none,TypeParameterDefaultsTests.test_typevar_nonex  s    CL40ammY/)f(($/**,-ammY/)rd   c                 |   [        S[        [        4S9nU R                  UR                  [        [        45        U R                  UR                  5       5        U R                  U[         5         " S S[        U   5      n[        R                  US 4   n[        SSS9nU R                  UR                  S5        g )NPr8  c                       \ rS rSrSrg)4TypeParameterDefaultsTests.test_paramspec.<locals>.Ai  re   Nr}   re   rd   ra   r  rS    r;  rd   r  	P_default.)rG   r  r   r   r2  r   r<  r   r#   r\   r"   r   )r_   rQ  r  r=  rT  s        ra   test_paramspec)TypeParameterDefaultsTests.test_paramspec  s    cC:.c
3(a+ 
 4(k37	i++S1rd   c                    [        S5      n[        SS S9nU R                  UR                  [        5        U R	                  UR                  5       5        U R                  UR                  S 5        U R                  UR                  5       5        S " 5       nUR                  u  nU R                  UR                  [        5        U R	                  UR                  5       5        g )NrA  rB  r8  c                  0   ^ S 7=n 4m " U4S jST7
o5      $ )rQ  c                      > \ rS rSr Y rSrg)9TypeParameterDefaultsTests.test_paramspec_none.<locals>.Xi  re   NrF  rH  s   ra   r  rZ    s     crd   r  re   )rQ  rK  rI  s     @ra   rL  QTypeParameterDefaultsTests.test_paramspec_none.<locals>.<generic parameters of X>  s    rd   )rG   r   r2  rM   r   r<  r   rG  )r_   rA  rB  r  rQ  s        ra   test_paramspec_none.TypeParameterDefaultsTests.test_paramspec_none  s    cN8T2ammY/)f(($/**,-ammY/)rd   c                 l   [        S[        [        [        [        4      S9nU R                  UR                  [        [        [        [        4      5        U R                  UR                  5       5        U R                  U[         5         " S S[        [        U      5      n[        [        U      ng )NTsr8  c                       \ rS rSrSrg)7TypeParameterDefaultsTests.test_typevartuple.<locals>.Ai  re   Nr}   re   rd   ra   r  ra        crd   r  )r   r   r   r  r   r   r2  r   r<  r   r#   r   )r_   r_  r  r=  s       ra   test_typevartuple,TypeParameterDefaultsTests.test_typevartuple  s~    $uS#X(?@c3h)@A()b,/)r
#)$rd   c                 X   [        S5      n[        S[        [        [        [
        4      S9nU R                  UR                  [        [        [        [
        4      5         " S S[        U[        U   4   5      nU R                  U[           R                  [        [        [
        45        U R                  U[        [        4   R                  [        [        45        U R                  U[        /[        [
        S4   Q7   R                  [        /[        [
        S4   Q75        g )Nr   r_  r8  c                       \ rS rSrSrg)FTypeParameterDefaultsTests.test_typevartuple_specialization.<locals>.Ai  re   Nr}   re   rd   ra   r  rg        rd   r  .)r   r   r   r   r  r   r   r2  r#   r  r  rq   tuple)r_   r   r_  r  s       ra    test_typevartuple_specialization;TypeParameterDefaultsTests.test_typevartuple_specialization  s    CL$uS#X(?@c3h)@A,6":&,5**UC,=>5%<11E5>B525c?23<<u>WuSRUX>WXrd   c           	          [        S5      n[        S[        S9n[        S[        [        [
        [        4      S9nU R                  UR                  [        [        [
        [        4      5         " S S[        X[        U   4   5      nU R                  U[           R                  [        [        [
        [        45        U R                  U[        [
        4   R                  [        [
        [
        [        45        U R                  U[        [
        [        4   R                  [        [
        [        45        U R                  U[        [
        /[        [        S4   Q7   R                  [        [
        /[        [        S4   Q75        g )Nr   rA  r8  r_  c                       \ rS rSrSrg)RTypeParameterDefaultsTests.test_typevar_and_typevartuple_specialization.<locals>.Ai  re   Nr}   re   rd   ra   r  rn    s    Crd   r  .)r   r  r   r   r   r  r   r   r2  r#   r  rq   ri  )r_   r   rA  r_  r  s        ra   ,test_typevar_and_typevartuple_specializationGTypeParameterDefaultsTests.test_typevar_and_typevartuple_specialization  s   CLC'$uS#X(?@c3h)@A/fRj()/33sC*@A38--S#s/CD3U?+44sC6GH35eCHo56??#sA]USVX[S[_A]^rd   c                    [        S[        S9n[        S5      n[        S[        [        [
        [        4      S9nU R                  [        5          " S S[        / UQUP7   5      nS S S 5        U R                  [        5          " S S[        / UQUP7   5      nS S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)	Nr   r8  r_  
Ts_defaultc                       \ rS rSrSrg)ITypeParameterDefaultsTests.test_no_default_after_typevar_tuple.<locals>.Xi  re   Nr}   re   rd   ra   r  rt    rb  rd   r  c                       \ rS rSrSrg)ITypeParameterDefaultsTests.test_no_default_after_typevar_tuple.<locals>.Yi  re   Nr}   re   rd   ra   r  rv        crd   r  )	r   r   r   r   r   r  r   r   r#   )r_   r   r_  rr  r  r  s         ra   #test_no_default_after_typevar_tuple>TypeParameterDefaultsTests.test_no_default_after_typevar_tuple  s    C%$!,uS#X8OP
y))GFRFFO) * y)1GNZNN+1 *) *) *)s   B'B8'
B58
Cc                    [        S[        S9n[        S5      n[        S5      n[        U/U4   nU R	                  UR
                  X45        [        X4   nU R	                  UR
                  X45        [        R                  X4   nU R	                  UR
                  X45        [        / UQUP7   nU R	                  UR
                  / UQUP75        g )N	T_defaultr8  r   r_  )	r   r   r   r"   r   r  dictr\   r    )r_   r{  r   r_  a1a2a3a4s           ra   -test_allow_default_after_non_default_in_aliasHTypeParameterDefaultsTests.test_allow_default_after_non_default_in_alias  s    K5	CL$yk1n%yn5),yn5[[&yn5frf1fhhAh/rd   c                    [        S5      n[        S[        [        /S9nU R	                  UR
                  [        [        /5         " S S[        X4   5      nU R	                  U[           R                  [        [        [        445        U R	                  U[        [        /4   R                  [        [        445        g )Nr   rQ  r8  c                       \ rS rSrSrg)CTypeParameterDefaultsTests.test_paramspec_specialization.<locals>.Ai  re   Nr}   re   rd   ra   r  r        rd   r  )
r   rG   r  r   r   r2  r#   r  r  rq   )r_   r   rQ  r  s       ra   test_paramspec_specialization8TypeParameterDefaultsTests.test_paramspec_specialization  s    CLcC:.c
3##5**US#J,?@55'>*33eeX5FGrd   c                 <   [        S5      n[        S[        S9n[        S[        [        /S9nU R                  UR                  [        [        /5         " S S[        XU4   5      nU R                  U[           R                  [        [        [        [        445        U R                  U[        [        4   R                  [        [        [        [        445        U R                  U[        [        [        /4   R                  [        [        [        445        g )Nr   rA  r8  rQ  c                       \ rS rSrSrg)OTypeParameterDefaultsTests.test_typevar_and_paramspec_specialization.<locals>.Ai  re   Nr}   re   rd   ra   r  r        3rd   r  )
r   r  rG   r  r   r   r2  r#   r  rq   )r_   r   rA  rQ  r  s        ra   )test_typevar_and_paramspec_specializationDTypeParameterDefaultsTests.test_typevar_and_paramspec_specialization  s    CLC'cC:.c
3&a &5**UEC:,FG5#://%sCj1IJ5#w./885#x:PQrd   c                 4   [        S5      n[        S[        [        /S9n[        S[        S9nU R                  UR                  [        [        /5         " S S[        XU4   5      nU R                  U[           R                  [        [        [        4[        45        U R                  U[        [        /4   R                  [        [        4[        45        U R                  U[        [        /[        4   R                  [        [        4[        45        g )Nr   rQ  r8  rA  c                       \ rS rSrSrg)OTypeParameterDefaultsTests.test_paramspec_and_typevar_specialization.<locals>.Ai  re   Nr}   re   rd   ra   r  r    r  rd   r  )
r   rG   r  r   r  r   r2  r#   r  rq   )r_   r   rQ  rA  r  s        ra   )test_paramspec_and_typevar_specializationDTypeParameterDefaultsTests.test_paramspec_and_typevar_specialization  s    CLcC:.C'c
3&a &5**US#J,FG55'>*33eeXu5MN55'3./8855(C:PQrd   c                    [        S5      n[        SS S9nU R                  UR                  [        5        U R	                  UR                  5       5        U R                  UR                  S 5        U R                  UR                  5       5        S " 5       nUR                  u  nU R                  UR                  [        5        U R	                  UR                  5       5        g )NrA  rB  r8  c                  0   ^ S 7=n 4m " U4S jST7
o5      $ )r_  c                      > \ rS rSr Y rSrg)<TypeParameterDefaultsTests.test_typevartuple_none.<locals>.Xi  re   NrF  rH  s   ra   r  r    s     srd   r  re   r_  rK  rI  s     @ra   rL  TTypeParameterDefaultsTests.test_typevartuple_none.<locals>.<generic parameters of X>  s    rd   )r   r   r2  rM   r   r<  r   rG  )r_   rA  rB  r  r_  s        ra   test_typevartuple_none1TypeParameterDefaultsTests.test_typevartuple_none  s    h5ammY/)f(($/**,-bnni0)*rd   c                     [        S[        S9n[        S5      nU R                  [        S5         [        X4   nS S S 5        g ! , (       d  f       g = f)NDefaultStrTr8  r   zIType parameter ~T without a default follows type parameter with a default)r   r  r  r   r#   )r_   r  r   Tests       ra   !test_no_default_after_non_default<TypeParameterDefaultsTests.test_no_default_after_non_default   sI    mS9CL##c
 ;>*D
 
 
s   A
Ac                 ,   [        S[        S9n[        S5      n[        S5      n " S S[        X#U4   5      nU[        [        4     U[        [        [        4     U R                  [        S5         U[           nS S S 5        g ! , (       d  f       g = f)Nr  r8  r   rA  c                       \ rS rSrSrg);TypeParameterDefaultsTests.test_need_more_params.<locals>.Ai  re   Nr}   re   rd   ra   r  r        Srd   r  z7Too few arguments for .+; actual 1, expected at least 2)r   r  r#   r   boolr  r   )r_   r  r   rA  r  r  s         ra   test_need_more_params0TypeParameterDefaultsTests.test_need_more_params	  sz    mS9CLCL0k)*0	#t)	#tS.##Q
 S6D
 
 
s   2
B
Bc                    [        S5      q[        SSS9q[        SSS9q[        S[        S9q[        [        R                  5       GH	  n[        [        [        [
        4 H  n[        R                  " [        R                  " X!5      5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                   UR                   5        M     GM     g )	NrA  U_coTr  U_contrar  	U_defaultr8  )r   rA  r  r  r   r  rq   rr   rs   loadsdumpsr   rf   r  r  r  r2  )r_   rp   typevarzs       ra   test_pickle&TypeParameterDefaultsTests.test_pickle  s    CLv.:T:K5	6223EtXy9LLg!=>  W-=-=>  '2G2GH  !4!4g6O6OP  g.?.?@  0C0CD : 4rd   re   N)rf   rg   rh   ri   r>  rN  rU  r\  rc  rj  ro  rx  r  r  r  r  r  r  r  r  rj   re   rd   ra   r6  r6  n  sX    *
2*%Y	_	20"HRR++Erd   r6  	templatesreplacementsr%  c                    / nUR                  5        H3  u  p4/ nU H  nUR                  X645        M     UR                  U5        M5     / n[        R                  " U6  HU  n/ n	U  H0  n
U H  u  p6U
R	                  X65      n
M     U	R                  U
5        M2     UR                  [        U	5      5        MW     / nU H  nX;  d  M
  UR                  U5        M     U$ )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replaceri  )r  r  replacement_combosoriginalpossible_replacementsoriginal_replacement_tuplesreplacementrendered_templatesreplacement_combotemplates_with_replacementstemplate rendered_templates_no_duplicatesr   s                ra   template_replacer  '  s    N +7+=+=+?'&(#0K'../FG 1!!"=>	 ,@ &..0BC ')#!H):%#++HB *;'..x8 " 	!!%(C"DE D (*$4,33A6  
 ,+rd   c                        \ rS rSrS rS rSrg)TemplateReplacementTestsik  c                 T    [        SS/SS/SS/S.S9n/ S	QnU R                  X5        g )
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_   actualr3  s      ra   :test_two_templates_two_replacements_yields_correct_rendersSTemplateReplacementTests.test_two_templates_two_replacements_yields_correct_rendersm  sA    !+-=>%v.#X.

 	*rd   c                 T    [        SS/SS/SS/S.S9nS	S
/nU R                  X5        g )Nr  Dogs!r  r  r  r  r  r  )r  r  )r  r  r  r  s      ra   2test_no_duplicates_if_replacement_not_in_templatesKTemplateReplacementTests.test_no_duplicates_if_replacement_not_in_templates}  sH    !+W5%v.#X.
 (&
 	*rd   re   N)rf   rg   rh   ri   r  r  rj   re   rd   ra   r  r  k  s    + +rd   r  c                   0    \ rS rSrSrS rS rS rS rSr	g)	GenericAliasSubstitutionTestsi  a7  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           	         [        S5      n[        S5      n[        S5      n " S S[        U   5      n/ SQnSS/n/ S	QnU H  u  pn
[        XU
/XVS
.S9nU Hw  u  pnU R	                  XUS9   US:X  a,  U R                  [        5         [        X-   5        S S S 5        O&U R                  [        X-   5      [        U5      5        S S S 5        My     M     g ! , (       d  f       N= f! , (       d  f       M  = f)Nr   r_  Ts2c                       \ rS rSrSrg);GenericAliasSubstitutionTests.test_one_parameter.<locals>.Ci  re   Nr}   re   rd   ra   r}  r        Trd   r}  )r}  r  r   ri  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   r3  r   	r   r   r#   r  rt   r   r   evalr   )r_   r   r_  r  r}  genericstuple_typestestsalias_templateargs_templateexpected_templater  	alias_strargs_strexpected_strs                  ra   test_one_parameter0GenericAliasSubstitutionTests.test_one_parameter  s    CL$5!!
!((
. AF<N+<!1->OP-5!Q" 6H1	\\\	<\X#{2!..y9 !56 :9 (( !56 . YX 6H AF :9 YXs$   .C)
C	/C)
C&"C))
C8c           	         [        S5      n[        S5      n[        S5      n " S S[        X4   5      n/ SQnSS/n/ S	QnU H  u  pn
[        XU
/XVS
.S9nU Hw  u  pnU R	                  XUS9   US:X  a,  U R                  [        5         [        X-   5        S S S 5        O&U R                  [        X-   5      [        U5      5        S S S 5        My     M     g ! , (       d  f       N= f! , (       d  f       M  = f)NT1T2r_  c                       \ rS rSrSrg)<GenericAliasSubstitutionTests.test_two_parameters.<locals>.Ci  re   Nr}   re   rd   ra   r}  r        $rd   r}  )r}  r|  r    ri  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                  ra   test_two_parameters1GenericAliasSubstitutionTests.test_two_parameters  s    T]T]$&&((%
N AF<N+<!1->OP-5!Q" 6H1	\\\	<\X#{2!..y9 !56 :9 (( !56 . YX 6H AF :9 YX$   /C*C	/C*
C'#C**
C9c           	         [        S5      n[        S5      n[        S5      n " S S[        XU4   5      nS/nSS/nSS	/nU H  u  pn
[        XU
/XVS
.S9nU Hw  u  pnU R                  XUS9   US:X  a,  U R	                  [
        5         [        X-   5        S S S 5        O&U R                  [        X-   5      [        U5      5        S S S 5        My     M     g ! , (       d  f       N= f! , (       d  f       M  = f)Nr  r  T3c                       \ rS rSrSrg)>GenericAliasSubstitutionTests.test_three_parameters.<locals>.Ci  re   Nr}   re   rd   ra   r}  r        drd   r}  ri  r   )generic[T1, bool, T2]r  generic[int, bool, str])r  r  r  r  r  r  r   )r   r#   r  rt   r   r   r  r   )r_   r  r  r  r}  r  r  r  r  r  r  r  r  r   r  s                  ra   test_three_parameters3GenericAliasSubstitutionTests.test_three_parameters  s   T]T]T]*
#*5( G G
 AF<N+<!1):KL)1M" 6H1	\\\	<\X#{2!..y9 !56 :9 (( !56 . YX 6H AF :9 YXr  c           	         [        S5      n[        S5      n[        S5      n " S S[        / UQ7   5      n/ SQnSS/n/ S	QnU H  u  pn
[        XU
/XVS
.S9nU Hw  u  pnU R	                  XUS9   US:X  a,  U R                  [        5         [        X-   5        S S S 5        O&U R                  [        X-   5      [        U5      5        S S S 5        My     M     g ! , (       d  f       N= f! , (       d  f       M  = f)Nr  r  r_  c                       \ rS rSrSrg)AGenericAliasSubstitutionTests.test_variadic_parameters.<locals>.Ci-  re   Nr}   re   rd   ra   r}  r"  -      trd   r}  )r}  ri  r   ri  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   )r/  r  r   )r/  r  r  )r/  r  r(  )r/  r-  r.  )generic[T1, *Ts, T2]r  r   )r0  r  r   )r0  r  r  )r0  r  r(  )r0  r-  r.  )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'  r1  z(generic[str, *tuple_type[int, ...], int])r'  r  #generic[*tuple_type[int, ...], str])r0  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]r3  r%  )r4  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  r2  )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                  ra   test_variadic_parameters6GenericAliasSubstitutionTests.test_variadic_parameters(  s   T]T]$##*(J
X AF<N+<!1->OP-5!Q" 6H1	\\\	<\X#{2!..y9 !56 :9 (( !56 . YX 6H AF :9 YXs$   1C,C	/C,
C)%C,,
C;re   N)
rf   rg   rh   ri   __doc__r  r  r  r5  rj   re   rd   ra   r  r    s    /d?B@drd   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)UnpackTestsi  c                 L    / [         [           Q7  [        [        [                g r[   )ri  r   r   r   r   s    ra   test_accepts_single_type$UnpackTests.test_accepts_single_type  s    %*uSzrd   c                     [        [        [        [        [              5      5      nS H,  nU R                  US9   U R                  X!5        S S S 5        M.     g ! , (       d  f       M@  = fNr  r  r  required_item)setdirr   r   r   rt   assertInr_   	dir_itemsrA  s      ra   test_dirUnpackTests.test_dir  sS    F5:./0	
M M:m7 ;:
 ;:s   A
A)	c                     U R                  [        5         [        [        [           [        [
           4     S S S 5        g ! , (       d  f       g = fr[   )r   r   r   r   r   r  r   s    ra   test_rejects_multiple_types'UnpackTests.test_rejects_multiple_types  s1    y)5:uSz)* *))s   "A
Ac                 F   U R                  [        5         / [        [           Q7S   [        [                S S S 5        U R                  [        5         [        [
        [              [
        [                S S S 5        g ! , (       d  f       NO= f! , (       d  f       g = fNr   )r   r   ri  r   r   r   r   s    ra   &test_rejects_multiple_parameterization2UnpackTests.test_rejects_multiple_parameterization  si    y)eCjN1eCj) *y)5:uSz* *) *)))s   "B#B
B
B c                 v    U R                  [        5         [        5         S S S 5        g ! , (       d  f       g = fr[   )r   r   r   r   s    ra   test_cannot_be_called!UnpackTests.test_cannot_be_called  s!    y)H *))   *
8c                     [        S[        [        S.5      nS[        U   4S jnU R	                  [        UR                  S   5      S[         S35        g )NMovie)r0  yearr   c                      g r[   re   )r   s    ra   foo/UnpackTests.test_usage_with_kwargs.<locals>.foo      #rd   ztyping.Unpack[z.Movie])r<   r  r   r   r   r   r  rf   )r_   rU  rX  s      ra   test_usage_with_kwargs"UnpackTests.test_usage_with_kwargs  sK    'C#=>-&--c11(;<)(7;	=rd   c                    [        S5      n " S S[        / UQ7   5      nS " 5       nU[        /UQ7   nU R                  U[           R
                  [        [        45        U R                  U/ [        [           Q7   R
                  [        [        45        U R                  U/ [        [           Q7   R
                  [        [        45        U R                  U[        [        [                 R
                  [        [        45        U R                  U[        [        [                 R
                  [        [        45        U[        /UQ7   nU R                  U[           R
                  [        [        45        U R                  U/ [        [           Q7   R
                  [        [        45        U R                  U/ [        [           Q7   R
                  [        [        45        U R                  U[        [        [                 R
                  [        [        45        U R                  U[        [        [                 R
                  [        [        45        g )Nr_  c                       \ rS rSrSrg)+UnpackTests.test_builtin_tuple.<locals>.Oldi  re   Nr}   re   rd   ra   Oldr_        rd   r`  c                  0   ^ S 7	=n 4m " U4S jST7
o5      $ )r_  c                      > \ rS rSr Y rSrg)+UnpackTests.test_builtin_tuple.<locals>.Newi  re   NrF  rH  s   ra   Newrd         rd   re  re   r  s     @ra   <generic parameters of New>CUnpackTests.test_builtin_tuple.<locals>.<generic parameters of New>      #rd   )	r   r#   r   r   r  r  ri  r   r   )r_   r_  r`  re  PartOldPartNews         ra   test_builtin_tupleUnpackTests.test_builtin_tuple  s   $$'#2#,$chBh-..c
;%*-66c
C%*-66c
Cc
!34==SzJc
!34==SzJchBh-..c
;%*-66c
C%*-66c
Cc
!34==SzJc
!34==SzJrd   c                    [        S5      nS " 5       nU[        /UQ7   n[        R                  " S5      nU R	                  [
        U5         U[        [        [                   S S S 5        U R	                  [
        U5         U[        [        [                   S S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)Nr_  c                  0   ^ S 7	=n 4m " U4S jST7
o5      $ )r_  c                      > \ rS rSr Y rSrg)/UnpackTests.test_unpack_wrong_type.<locals>.Geni  re   NrF  rH  s   ra   Genrq    rf  rd   rr  re   r  s     @ra   <generic parameters of Gen>GUnpackTests.test_unpack_wrong_type.<locals>.<generic parameters of Gen>  ri  rd   z*Unpack[...] must be used with a tuple type)	r   r   r  r  r  r   r   r  r   )r_   r_  rr  PartGenbad_unpack_params        ra   test_unpack_wrong_type"UnpackTests.test_unpack_wrong_type  s    $chBh-99%QR##I/?@F49%& A##I/?@F49%& A@ A@@@s   B$B5$
B25
Cre   N)rf   rg   rh   ri   r;  rG  rJ  rN  rQ  r[  rl  rw  rj   re   rd   ra   r9  r9    s+    8++=K(	'rd   r9  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S%r'g&)'TypeVarTupleTestsi  c                     [        S5      nU R                  UR                  S5        [        S5      nU R                  UR                  S5        g )Nr_  r  )r   r   rf   )r_   r_  r  s      ra   	test_nameTypeVarTupleTests.test_name  s>    $d+5!u-rd   c                 Z    [        S5      nU R                  UR                  [        5        g Nr_  )r   r   rg   rf   r_   r_  s     ra   test_moduleTypeVarTupleTests.test_module  s     $1rd   c                     0 n[        SU5        US   nU R                  UR                  S5        U R                  UR                  S 5        g )Nz8from typing import TypeVarTuple; Ts = TypeVarTuple("Ts")r_  )r  r   rf   r   rg   )r_   r  r_  s      ra   	test_execTypeVarTupleTests.test_exec  sA    GLXd+bmmT*rd   c                 <    [        S5      nU R                  X5        g r  )r   r   r  s     ra    test_instance_is_equal_to_itself2TypeVarTupleTests.test_instance_is_equal_to_itself  s    $ rd   c                 L    U R                  [        S5      [        S5      5        g r  )r   r   r   s    ra   &test_different_instances_are_different8TypeVarTupleTests.test_different_instances_are_different  s    L.T0BCrd   c                 F    [        S5      nU R                  U[         5        g r  )r   r   r  s     ra   (test_instance_isinstance_of_typevartuple:TypeVarTupleTests.test_instance_isinstance_of_typevartuple  s    $b,/rd   c                     [        S5      nU R                  [        5         U" 5         S S S 5        g ! , (       d  f       g = fr  )r   r   r   r  s     ra   test_cannot_call_instance+TypeVarTupleTests.test_cannot_call_instance  s+    $y)D *))s	   2
A c                     [        S5      nU R                  / UQ7S   / UQ7S   5        U R                  [        U   [        U   5        g )Nr_  r   )r   r   r   r  s     ra   -test_unpacked_typevartuple_is_equal_to_itself?TypeVarTupleTests.test_unpacked_typevartuple_is_equal_to_itself  sD    $2FbF1I.VBZ0rd   c                     [        S5      nU R                  [        / UQ7   [        / UQ7   5        U R                  [        [        U      [        [        U      5        g r  )r   r   ri  r   r   r  s     ra   +test_parameterised_tuple_is_equal_to_itself=TypeVarTupleTests.test_parameterised_tuple_is_equal_to_itself  sN    $ssU3B3Z0vbz*E&*,=>rd   c                    [        S5      n[        S5      nU R                  [        / UQUQ7   [        / UQUQ7   5        U R                  [        [        U   [        U   4   [        [        U   [        U   4   5        g )NTs1r  )r   r   ri  r   r   )r_   r  r  s      ra    tests_tuple_arg_ordering_matters2TypeVarTupleTests.tests_tuple_arg_ordering_matters  s~    5!5!*3***3**	
 	&+vc{*+&+vc{*+	
rd   c                 L   [        S5      n[        / UQ7   nU R                  UR                  / UQ75        U R                  UR                  U45        [
        [        U      nU R                  UR                  [        U   45        U R                  UR                  U45        g r  )r   ri  r   r  r  r   r   )r_   r_  t1t2s       ra   *test_tuple_args_and_parameters_are_correct<TypeVarTupleTests.test_tuple_args_and_parameters_are_correct  s    $3B3Zff-**RE26":vbzm4**RE2rd   c           	         [        S5      n[        S5      n[        S5      n " S S[        / UQ7   5      n " S S[        [        U      5      nXE[        [
        4 GH  nU/ UQ7   nU R                  US   US   5        U R                  U[           U[           5        U R                  U[        [        4   U[        [        4   5        U[        U      nU R                  US   US   5        U R                  U[           U[           5        U R                  U[        [        4   U[        [        4   5        [        U/ UQ7      n	U R                  U	S   [        US      5        U R                  U	[           [        U[              5        U R                  U	[        [        4   [        U[        [        4      5        [        U[        U         n
U R                  U
S   [        US      5        U R                  U
[           [        U[              5        U R                  U
[        [        4   [        U[        [        4      5        Xb/UQUP7   nU R                  [        5         US     S S S 5        U R                  [        5         U[             S S S 5        U R                  U[        [        4   U[        [        4   5        U R                  U[        [        [        4   U[        [        [        4   5        U R                  U[        [        [        [        4   U[        [        [        [        4   5        Xb[        U   U4   nU R                  [        5         US     S S S 5        U R                  [        5         U[             S S S 5        U R                  U[        [        4   U[        [        4   5        U R                  U[        [        [        4   U[        [        [        4   5        U R                  U[        [        [        [        4   U[        [        [        [        4   5        [
        [        U   U/ UQ7   [        U   4   nU R                  [        5         US     S S S 5        U R                  [        5         U[             S S S 5        U[        :w  aB  U R                  U[        [        4   [
        [        [           US   [        [           4   5        U R                  U[        [        [        4   [
        [        [           U[           [        [           4   5        U R                  U[        [        [        [        4   [
        [        [           U[        [        4   [        [           4   5        [        [        U   U[        U      [        U   4   nU R                  [        5         US     S S S 5        U R                  [        5         U[             S S S 5        U[        :w  aB  U R                  U[        [        4   [        [        [           US   [        [           4   5        U R                  U[        [        [        4   [        [        [           U[           [        [           4   5        U R                  U[        [        [        [        4   [        [        [           U[        [        4   [        [           4   5        GM     g ! , (       d  f       GN= f! , (       d  f       GNu= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f)	Nr_  r   r  c                       \ rS rSrSrg)3TypeVarTupleTests.test_var_substitution.<locals>.G1i  re   Nr}   re   rd   ra   G1r        rd   r  c                       \ rS rSrSrg)3TypeVarTupleTests.test_var_substitution.<locals>.G2i  re   Nr}   re   rd   ra   G2r        trd   r  re   )r   r   r#   r   r   ri  r   r  r  r  r   r   r   r   r  )r_   r_  r   r  r  r  r  r  r}  r  EFGHIs                  ra   r  'TypeVarTupleTests.test_var_substitution  s   $CLT]$"$+$+%A#2#AQrUAbE*QuXqx0Qucz]AeSjM:&*AQrUAbE*QuXqx0Qucz]AeSjM:QssVAQrUD2K0QuXtAeH~6Qucz]D5#:,?@Qvbz]#AQrUD2K0QuXtAeH~6Qucz]D5#:,?@*b*"*A""9-" .""9-% .Qucz]AeSjM:Quc3/5#s?1CDQuc356%c5:P8QRVBZ#$A""9-" .""9-% .Qucz]AeSjM:Quc3/5#s?1CDQuc356%c5:P8QRd1gq"vtBx/0A""9-" .""9-% .Ez  5#:!&tE{AbE49'D!EGQuc3/"4;#S	#ABDQuc356"4;#s(T%[#HIK d1gq}d2h67A""9-" .""9-% .Ez  5#:!&tE{AbE49'D!EGQuc3/"4;#S	#ABDQuc356"4;#s(T%[#HIK} &, .--- .--- .--- .---s`   0[9
\*\
\/6]
]]%4
]79
\	
\	
\,	/
\>	
]	
]"	%
]4	7
^	c                    [        S5      n[        S5      n[        S5      n " S S[        / UQ7   5      n " S S[        [        U      5      nXE[        [
        4 GHn  nXa   nU R                  [        5         U[        [        4     S S S 5        XbU4   nU R                  [        5         U/ UQ7     S S S 5        U R                  [        5         U[        U        S S S 5        Xb/UQ[        PUP7   nU R                  [        5         U[        /UQ7     S S S 5        U R                  [        5         U[        /UQUQ7     S S S 5        Xb[        U   [        U4   nU R                  [        5         U[        [        U   4     S S S 5        U R                  [        5         U[        [        U   [        U   4     S S S 5        GMq     g ! , (       d  f       GNN= f! , (       d  f       GN4= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       GM  = f)Nr_  r   r  c                       \ rS rSrSrg)7TypeVarTupleTests.test_bad_var_substitution.<locals>.G1ic  re   Nr}   re   rd   ra   r  r  c  r  rd   r  c                       \ rS rSrSrg)7TypeVarTupleTests.test_bad_var_substitution.<locals>.G2id  re   Nr}   re   rd   ra   r  r  d  r  rd   r  )
r   r   r#   r   r   ri  r   r   r   r  )	r_   r_  r   r  r  r  r  r  r}  s	            ra   r#  +TypeVarTupleTests.test_bad_var_substitution_  s   $CLT]$"$+$+%AA""9-#s( . R%A""9-#2# .""9-&* . /b/#/r/"A""9-#(( .""9-#--R-  . VBZb()A""9-#vbz/" .""9-#vbz6":-. .-) &-- .--- .--- .---sT   :G-	G#G5H8H8H)(H:
G 	#
G2	5
H	
H	
H&	)
H7	:
I
	c                 r   [        S5      n " S S[        / UQ7   5      n " S S[        [        U      5      nU R                  [	        U5      S5        U R                  [	        / UQ7S   5      S5        U R                  [	        [        U   5      S5        U R                  [	        [
        / UQ7   5      S5        U R                  [	        [        [        U      5      S	5        U R                  [	        [
        / UQ7   6 S
5        U R                  [	        [        [        [        U         5      S5        g )Nr_  c                       \ rS rSrSrg)2TypeVarTupleTests.test_repr_is_correct.<locals>.G1i  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)2TypeVarTupleTests.test_repr_is_correct.<locals>.G2i  re   Nr}   re   rd   ra   r  r    r  rd   r  r   ztyping.Unpack[Ts]ztuple[typing.Unpack[Ts]]ztyping.Tuple[typing.Unpack[Ts]]z*tuple[typing.Unpack[Ts]]z.typing.Unpack[typing.Tuple[typing.Unpack[Ts]]])r   r#   r   r   r   ri  r   )r_   r_  r  r  s       ra   test_repr_is_correct&TypeVarTupleTests.test_repr_is_correct}  s    $$"$+$+b4(ffQi*=>fRj)+>?eCRCj)+EFeF2J/02STuSbSz*,GHfU6":%678:jkrd   c           
      p   [        S5      n " S S[        / UQ7   5      n " S S[        [        U      5      nU R                  [	        US   5      S5        U R                  [	        US   5      S5        U R                  [	        U[
           5      S	5        U R                  [	        U[
           5      S
5        U R                  [	        U[
        [        4   5      S5        U R                  [	        U[
        [        4   5      S5        U R                  [	        U/ [        [        S4   Q7   5      S5        U R                  [	        U[        [        [        S4         5      S5        U R                  [	        U[
        /[        [        S4   Q7   5      S5        U R                  [	        U[
        [        [        [        S4      4   5      S5        U R                  [	        U/ [        [        S4   Q[        P7   5      S5        U R                  [	        U[        [        [        S4      [        4   5      S5        U R                  [	        U[
        /[        [        S4   Q[        P7   5      S5        U R                  [	        U[
        [        [        [        S4      [        4   5      S5        g )Nr_  c                       \ rS rSrSrg)@TypeVarTupleTests.test_variadic_class_repr_is_correct.<locals>.Ai  re   Nr}   re   rd   ra   r  r    r#  rd   r  c                       \ rS rSrSrg)@TypeVarTupleTests.test_variadic_class_repr_is_correct.<locals>.Bi  re   Nr}   re   rd   ra   r  r    r  rd   r  re   A[()]zB[()]A[float]zB[float]A[float, str]zB[float, str].zA[*tuple[int, ...]]z(B[typing.Unpack[typing.Tuple[int, ...]]]zA[float, *tuple[int, ...]]z/A[float, typing.Unpack[typing.Tuple[int, ...]]]zA[*tuple[int, ...], str]z-B[typing.Unpack[typing.Tuple[int, ...]], str]zA[float, *tuple[int, ...], str]z4B[float, typing.Unpack[typing.Tuple[int, ...]], str])
r   r#   r   assertEndsWithr   r  r  ri  r   r   )r_   r_  r  r  s       ra   #test_variadic_class_repr_is_correct5TypeVarTupleTests.test_variadic_class_repr_is_correct  sD   $##*r
#*D2K1D2K1D5NJ7D5NJ7D5#:/AD5#:/AD#3E#s(O#3!451	3D6%S/#:!;<F	H 	D5#:5c?#:!;<8	:D5&sCx*A#A!BCM	O 	D#8E#s(O#8S#8!9:6	8D6%S/#:C#?!@AK	M 	D5#?5c?#?C#?!@A=	?D5&sCx*A3#F!GHR	Trd   c                    [        S5      n " S S[        [        U      5      nU/ UQ7   nU R                  [	        U5      S5        U R                  [	        US   5      S5        U R                  [	        U[
           5      S5        U R                  [	        U[
        [        4   5      S5        U[        U      nU R                  [	        U5      S5        U R                  [	        US   5      S5        U R                  [	        U[
           5      S5        U R                  [	        U[
        [        4   5      S5        U/ UQ[        P7   nU R                  [	        U5      S	5        U R                  [	        US   5      S
5        U R                  [	        U[
           5      S5        U R                  [	        U[
        [        4   5      S5        U[        U   [        4   nU R                  [	        U5      S	5        U R                  [	        US   5      S
5        U R                  [	        U[
           5      S5        U R                  [	        U[
        [        4   5      S5        U[        /UQ7   nU R                  [	        U5      S5        U R                  [	        US   5      S
5        U R                  [	        U[
           5      S5        U R                  [	        U[
        [        4   5      S5        U[        [        U   4   nU R                  [	        U5      S5        U R                  [	        US   5      S
5        U R                  [	        U[
           5      S5        U R                  [	        U[
        [        4   5      S5        U[        /UQ[        P7   n	U R                  [	        U	5      S5        U R                  [	        U	S   5      S5        U R                  [	        U	[
           5      S5        U R                  [	        U	[
        [        4   5      S5        U[        [        U   [        4   n
U R                  [	        U
5      S5        U R                  [	        U
S   5      S5        U R                  [	        U
[
           5      S5        U R                  [	        U
[
        [        4   5      S5        U/ UQ[        [        S4   Q7   nU R                  [	        U5      S5        U R                  [	        US   5      S5        U R                  [	        U[
           5      S5        U R                  [	        U[
        [        4   5      S5        U[        U   [        [        [        S4      4   nU R                  [	        U5      S5        U R                  [	        US   5      S5        U R                  [	        U[
           5      S5        U R                  [	        U[
        [        4   5      S5        g )Nr_  c                       \ rS rSrSrg)FTypeVarTupleTests.test_variadic_class_alias_repr_is_correct.<locals>.Ai  re   Nr}   re   rd   ra   r  r    r  rd   r  zA[typing.Unpack[Ts]]re   r  r  r  zA[typing.Unpack[Ts], int]zA[int]zA[float, int]zA[float, str, int]zA[int, typing.Unpack[Ts]]zA[int, float]zA[int, float, str]zA[int, typing.Unpack[Ts], str]zA[int, str]zA[int, float, str, str].z&A[typing.Unpack[Ts], *tuple[str, ...]]zA[*tuple[str, ...]]zA[float, *tuple[str, ...]]zA[float, str, *tuple[str, ...]]z;A[typing.Unpack[Ts], typing.Unpack[typing.Tuple[str, ...]]]z(A[typing.Unpack[typing.Tuple[str, ...]]]z/A[float, typing.Unpack[typing.Tuple[str, ...]]]z4A[float, str, typing.Unpack[typing.Tuple[str, ...]]])
r   r#   r   r  r   r  r  r   ri  r   )r_   r_  r  r  r}  r  r  r  r  r  r  JKs                ra   )test_variadic_class_alias_repr_is_correct;TypeVarTupleTests.test_variadic_class_alias_repr_is_correct  s   $*r
#*crcFDG%;<D2K1D5NJ7D5#:/AfRjMDG%;<D2K1D5NJ7D5#:/Ahrh3hKDG%@AD2K2D5NO<D5#:/1EFfRj#oDG%@AD2K2D5NO<D5#:/1EFchBhKDG%@AD2K2D5NO<D5#:/1EFc6":oDG%@AD2K2D5NO<D5#:/1EFcmBmmDG%EFD2K7D5N,@AD5#:/1JKc6":s"#DG%EFD2K7D5N,@AD5#:/1JK#r#E#s(O#$DG%MND2K)>?D5N,HID5#:/1RSfRj&sCx112DG%bcD2K)STD5N,]^D5#:/1ghrd   c           	      j   U R                  [        [        S-  5          " S S[        5      nS S S 5        [        S5      nU R                  [        [        S-  5          " S SU5      nS S S 5        U R                  [        [
        5          " S S[        [        5      5      nS S S 5        U R                  [        [
        5          " S	 S
[        U6 5      nS S S 5        U R                  [        [
        5          " S S[        [        U   5      5      nS S S 5        U R                  [        S5          " S S[        5      nS S S 5        U R                  [        S5          " S S/UQ76 nS S S 5        U R                  [        S5          " S S[        U   5      n	S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNX= f! , (       d  f       GN/= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   c                       \ rS rSrSrg)1TypeVarTupleTests.test_cannot_subclass.<locals>.Ci  re   Nr}   re   rd   ra   r}  r        4rd   r}  r_  c                       \ rS rSrSrg)1TypeVarTupleTests.test_cannot_subclass.<locals>.Di  re   Nr}   re   rd   ra   r  r    r   rd   r  c                       \ rS rSrSrg)1TypeVarTupleTests.test_cannot_subclass.<locals>.Ei  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)1TypeVarTupleTests.test_cannot_subclass.<locals>.Fi  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)1TypeVarTupleTests.test_cannot_subclass.<locals>.Gi  re   Nr}   re   rd   ra   r  r    r  rd   r  zCannot subclass typing\.Unpackc                       \ rS rSrSrg)1TypeVarTupleTests.test_cannot_subclass.<locals>.Hi  re   Nr}   re   rd   ra   r  r    r  rd   r  z#Cannot subclass typing.Unpack\[Ts\]c                       \ rS rSrSrg)1TypeVarTupleTests.test_cannot_subclass.<locals>.Ii  re   Nr}   re   rd   ra   r  r        $rd   r  c                       \ rS rSrSrg)1TypeVarTupleTests.test_cannot_subclass.<locals>.Ji  re   Nr}   re   rd   ra   r  r        rd   r  )r  r   r  r   r  r  r   r   )
r_   r}  r_  r  r  r  r  r  r  r  s
             ra   r  &TypeVarTupleTests.test_cannot_subclass  sx   ##I/OP'L' Q$##I(>9;B; ##I/CD'DL' E##I/CD$D"I$ E##I/CD+D$+ E##I$EG!F!G ##I/UVR W##I/UV%F2J% WV# QP; ; EDDDDDG G WVVVs_   F)F;GG;G15H#HH$)
F8;
G

G
G.1
G?
H
H!$
H2c                 .   [        S5      n[        S5      n " S S[        / UQ7   5      n " S S[        [        U      5      nUS   nUS   nU R	                  UR
                  S5        U R	                  UR
                  S5        U[           nU[           nU R	                  UR
                  [        45        U R	                  UR
                  [        45        U[        [        4   n	U[        [        4   n
U R	                  U	R
                  [        [        45        U R	                  U
R
                  [        [        45        X1   nXA   nU R	                  UR
                  U45        U R	                  UR
                  U45        U/ UQ7   nU[        U      nU R	                  UR
                  / UQ75        U R	                  UR
                  [        U   45        X1/UQ7   nXA[        U   4   nU R	                  UR
                  U/UQ75        U R	                  UR
                  U[        U   45        U/ UQUP7   nU[        U   U4   nU R	                  UR
                  / UQUP75        U R	                  UR
                  [        U   U45        g )Nr   r_  c                       \ rS rSrSrg)ATypeVarTupleTests.test_variadic_class_args_are_correct.<locals>.Ai  re   Nr}   re   rd   ra   r  r    r#  rd   r  c                       \ rS rSrSrg)ATypeVarTupleTests.test_variadic_class_args_are_correct.<locals>.Bi  re   Nr}   re   rd   ra   r  r    r  rd   r  re   )r   r   r#   r   r   r  r   r  )r_   r   r_  r  r  r}  r  r  r  r  r  r  r  r  LMNOrQ  s                      ra   $test_variadic_class_args_are_correct6TypeVarTupleTests.test_variadic_class_args_are_correct  s,   CL$##*r
#*bEbER(R(cFcFcV,cV,c3hKc3hKc3Z0c3Z0DDaT*aT*crcFfRjMVrV,fRj]3f"fImaX"X.a_5frf1fIfRj!mXrX1X.fRj!_5rd   c                 &   [        S5      n " S S[        / UQ7   5      nU R                  U[           R                  U5        U R                  U[
           R                  U5        U R                  U[        U      R                  U5         " S S[        [        U      5      nU R                  U[           R                  U5        U R                  U[
           R                  U5        U R                  U[        U      R                  U5        g )Nr_  c                       \ rS rSrSrg)BTypeVarTupleTests.test_variadic_class_origin_is_correct.<locals>.Ci/  re   Nr}   re   rd   ra   r}  r  /  r#  rd   r}  c                       \ rS rSrSrg)BTypeVarTupleTests.test_variadic_class_origin_is_correct.<locals>.Di4  re   Nr}   re   rd   ra   r  r  4  r  rd   r  )r   r#   r   r   r  r   r   )r_   r_  r}  r  s       ra   %test_variadic_class_origin_is_correct7TypeVarTupleTests.test_variadic_class_origin_is_correct,  s    $##af''+adooq)ar
m..2*r
#*af''+adooq)ar
m..2rd   c                    [        S5      nSUu  4S jnU R                  [        U5      S[        U   05        S[        [
        [        4   u  4S jnU R                  [        U5      S[        [        [
        [        4      05         " S S[        / UQ7   5      nSU[
        [        4   u  4S jnU R                  [        U5      S[        U[
        [        4      05        g )Nr_  r   c                      g r[   re   r   s    ra   func1CTypeVarTupleTests.test_get_type_hints_on_unpack_args.<locals>.func1<      trd   c                      g r[   re   r  s    ra   func2CTypeVarTupleTests.test_get_type_hints_on_unpack_args.<locals>.func2?  s    Drd   c                       \ rS rSrSrg)LTypeVarTupleTests.test_get_type_hints_on_unpack_args.<locals>.CustomVariadiciB  re   Nr}   re   rd   ra   CustomVariadicr   B      Drd   r  c                      g r[   re   r  s    ra   func3CTypeVarTupleTests.test_get_type_hints_on_unpack_args.<locals>.func3D  s    Trd   r   r   r1  r   ri  r   r  r#   r_   r_  r  r  r  r  s         ra   "test_get_type_hints_on_unpack_args4TypeVarTupleTests.test_get_type_hints_on_unpack_args9  s    $#"#UffRj%9:0%S/0UffU38_.E%FG0WSbS\09.c29Uff^CH5M.N%OPrd   c                 z   [        S5      nS	S jnU R                  [        USU0S9S[        U   05        S
S jnU R                  [        U5      S[        [        [
        [        4      05         " S S[        / UQ7   5      nSS jnU R                  [        USU0S9S[        U[
        [        4      05        g )Nr_  r   c                      g r[   re   r  s    ra   r  JTypeVarTupleTests.test_get_type_hints_on_unpack_args_string.<locals>.func1J  s    rd   )localnsc                      g r[   re   r  s    ra   r  JTypeVarTupleTests.test_get_type_hints_on_unpack_args_string.<locals>.func2N  s    drd   c                       \ rS rSrSrg)STypeVarTupleTests.test_get_type_hints_on_unpack_args_string.<locals>.CustomVariadiciQ  re   Nr}   re   rd   ra   r  r  Q  r  rd   r  c                      g r[   re   r  s    ra   r  JTypeVarTupleTests.test_get_type_hints_on_unpack_args_string.<locals>.func3S  s    trd   )r   z*Ts)r   z*tuple[int, str])r   z*CustomVariadic[int, str]r  r  s         ra   )test_get_type_hints_on_unpack_args_string;TypeVarTupleTests.test_get_type_hints_on_unpack_args_stringG  s    $%UT2J7,	. 	3UffU38_.E%FG0WSbS\0;U-=~,NO &S)A"BC	Erd   c                 n   [        S5      nU R                  [        / UQ7   R                  / UQ75        U R                  [        [
        U      R                  [
        U   45        U R                  [        / UQ[        P7   R                  / UQ[        P75        U R                  [        [
        U   [        4   R                  [
        U   [        45        U R                  [        [        /UQ7   R                  [        /UQ75        U R                  [        [        [
        U   4   R                  [        [
        U   45        U R                  [        [        /UQ[        P7   R                  [        /UQ[        P75        U R                  [        [        [
        U   [        4   R                  [        [
        U   [        45        U R                  [        / UQ[        P7   R                  / UQ[        P75        U R                  [        [
        U      R                  [
        U   45        g r  )r   r   ri  r  r   r   r   r  r  s     ra   test_tuple_args_are_correct-TypeVarTupleTests.test_tuple_args_are_correctW  s   $ss,,ff5vbz*33fRj]CxxCx11:R::>vbz3/886":s:KLsxRx11C:":>sF2J/883r
:KLs}R}}-66C	*sF2J34==vbz3/	1 	xxCx11:R::>vbz*33fRj]Crd   c           	         [        S5      n[        S5      n[        S5      n[        / UQS 4   n[        [        U   /S 4   nU R                  UR                  / UQ[        S 5      P75        U R                  UR                  [        U   [        S 5      45        [        [        /UQS 4   n[        [        [        U   /S 4   nU R                  UR                  [        /UQ[        S 5      P75        U R                  UR                  [        [        U   [        S 5      45        [        / UQ[        PS 4   n[        [        U   [        /S 4   n	U R                  UR                  / UQ[        P[        S 5      P75        U R                  U	R                  [        U   [        [        S 5      45        [        [        /UQ[        PS 4   n
[        [        [        U   [        /S 4   nU R                  U
R                  [        /UQ[        P[        S 5      P75        U R                  UR                  [        [        U   [        [        S 5      45        [        S //UQ7   n[        S /[        U   4   nU R                  UR                  [        S 5      /UQ75        U R                  UR                  [        S 5      [        U   45        [        S /[        [        /UQ7   4   n[        S /[        [        [        U   4   4   nU R                  UR                  [        S 5      [        [        /UQ7   45        U R                  UR                  [        S 5      [        [        [        U   4   45        [        S /[        / UQ[        P7   4   n[        S /[        [        U   [        4   4   nU R                  UR                  [        S 5      [        / UQ[        P7   45        U R                  UR                  [        S 5      [        [        U   [        4   45        [        S /[        [        /UQ[        P7   4   n[        S /[        [        [        U   [        4   4   nU R                  UR                  [        S 5      [        [        /UQ[        P7   45        U R                  UR                  [        S 5      [        [        [        U   [        4   45        [        / UQ/UQ7   n[        [        U   /[        U   4   nU R                  UR                  / UQUQ75        U R                  UR                  [        U   [        U   45        [        / UQ/UQ7   n[        [        U   /[        U   4   nU R                  UR                  / UQUQ75        U R                  UR                  [        U   [        U   45        g )Nr_  r  r  )
r   r"   r   r   r  r   r   r  ri  r   )r_   r_  r  r  rL  r   cder`   ghijklmnopqrr   us                           ra   test_callable_args_are_correct0TypeVarTupleTests.test_callable_args_are_correctk  s   $5!5! UrUD[!fRj\4'(%6r%64:%67fRj$t*%=>cZBZ%&c6":&,-c%;B%;T
%;<c6":tDz%BCZrZ3Z%&fRj#&,-%;r%;3%;T
%;<fRj#tDz%BCc_B__d*+c6":s+T12c%@B%@%@T$Z%@Ac6":sDJ%GH dV[b[!dVVBZ'(d4j%62%67d4j&*%=>dVU388_,-dVU3r
?334d4j%b/%BCd4j%VBZ2H%IJdVU8B88_,-dVU6":s?334d4j%S/%BCd4j%r
C2H%IJdVU3==S=112dVU3r
C#7889d4j%b#2F%GHd4j%VBZ8L2M%NO UrUZRZ fRj\6":-.ZrZBZ0fRj&*%=>VsV\c\"fSk]F3K/0\s\S\2fSk6#;%?@rd   c           
         [        S5      n[        S5      nU R                  [        5          " S S[        / UQUQ7   5      nS S S 5        U R                  [        5          " S S[        [        U   [        U   4   5      nS S S 5        U R                  [        5          " S S[        / UQUQUQ7   5      nS S S 5        U R                  [        5          " S	 S
[        [        U   [        U   [        U   4   5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ny= f! , (       d  f       g = f)Nr  r  c                       \ rS rSrSrg)STypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_fails.<locals>.Ci  re   Nr}   re   rd   ra   r}  r.        $rd   r}  c                       \ rS rSrSrg)STypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_fails.<locals>.Di  re   Nr}   re   rd   ra   r  r1        rd   r  c                       \ rS rSrSrg)STypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_fails.<locals>.Ei  re   Nr}   re   rd   ra   r  r4    s    rd   r  c                       \ rS rSrSrg)STypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_fails.<locals>.Fi  re   Nr}   re   rd   ra   r  r6    s    Trd   r  )r   r   r   r#   r   )r_   r  r  r}  r  r  r  s          ra   6test_variadic_class_with_duplicate_typevartuples_failsHTypeVarTupleTests.test_variadic_class_with_duplicate_typevartuples_fails  s    5!5!y).GJSJ3J'. *y)<GF3K45< * y)4G,S,3,,-4 *y)IGF3KfSkABI *) *))) *)))s/   D!#D!D.+D?
D
D+.
D<?
Ec                    [        S5      n " S S[        [        U      5      nU[        /UQ7     U[        [        U   4     U/ UQ[        P7     U[        U   [        4     U[        /UQ[        P7     U[        [        U   [        4     U[        [
        /UQ[        P[        P7     U[        [
        [        U   [        [        4     g )Nr_  c                       \ rS rSrSrg)]TypeVarTupleTests.test_type_concatenation_in_variadic_class_argument_list_succeeds.<locals>.Ci  re   Nr}   re   rd   ra   r}  r;    r  rd   r}  )r   r#   r   r   r  r  r  r_   r_  r}  s      ra   @test_type_concatenation_in_variadic_class_argument_list_succeedsRTypeVarTupleTests.test_type_concatenation_in_variadic_class_argument_list_succeeds  s    $*r
#*	#((	#vbz/	(2(s(	&*c/	#--C-	#vbz3
	#t
$b
$%
$
$%	#tVBZ
+,rd   c                    [        S5      n[        [        /UQ7     [        / UQ[        P7     [        [        /UQ[        P7     [        [        [        /UQ[
        P[        P7     [        [        [        U   4     [        [        U   [        4     [        [        [        U   [        4     [        [        [        [        U   [
        [        4     g r  )r   ri  r   r  r  r  r   r   r  s     ra   7test_type_concatenation_in_tuple_argument_list_succeedsITypeVarTupleTests.test_type_concatenation_in_tuple_argument_list_succeeds  s    $chBhhrh3hcmBmmc4("(e(S()c6":ofRj#oc6":s"#c4UC/0rd   c                     [        S5      nU R                  [        5          " S S[        U   5      nS S S 5        g ! , (       d  f       g = f)Nr_  c                       \ rS rSrSrg)[TypeVarTupleTests.test_variadic_class_definition_using_packed_typevartuple_fails.<locals>.Ci  re   Nr}   re   rd   ra   r}  rD    r	  rd   r}  )r   r   r   r#   r<  s      ra   >test_variadic_class_definition_using_packed_typevartuple_failsPTypeVarTupleTests.test_variadic_class_definition_using_packed_typevartuple_fails  s2    $y)&GBK& *))s	   =
Ac                 J   [        S5      nU R                  [        5          " S S[        / UQ[        P7   5      nS S S 5        U R                  [        5          " S S[        [
        U   [        4   5      nS S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)Nr_  c                       \ rS rSrSrg)VTypeVarTupleTests.test_variadic_class_definition_using_concrete_types_fails.<locals>.Fi  re   Nr}   re   rd   ra   r  rI    s    rd   r  c                       \ rS rSrSrg)VTypeVarTupleTests.test_variadic_class_definition_using_concrete_types_fails.<locals>.Ei  re   Nr}   re   rd   ra   r  rK        trd   r  )r   r   r   r#   r   r   )r_   r_  r  r  s       ra   9test_variadic_class_definition_using_concrete_types_failsKTypeVarTupleTests.test_variadic_class_definition_using_concrete_types_fails  so    $y),GHRHH%, *y)3GF2JO,3 *) *)))s   B B
B
B"c           	      H   [        S5      n[        S5      n[        S5      n " S S[        X#/UQ7   5      nU[        [        4     U[        [        [
        4     U[        [        [
        [        4      " S S[        X#[        U   4   5      nU[        [        4     U[        [        [
        4     U[        [        [
        [        4      " S S	[        U/UQUP7   5      nU[        [        4     U[        [        [
        4     U[        [        [
        [        4      " S
 S[        U[        U   U4   5      nU[        [        4     U[        [        [
        4     U[        [        [
        [        4      " S S[        / UQUPUP7   5      nU[        [        4     U[        [        [
        4     U[        [        [
        [        4      " S S[        [        U   X#4   5      n	U	[        [        4     U	[        [        [
        4     U	[        [        [
        [        4     g )Nr_  r  r  c                       \ rS rSrSrg)WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.Ai  re   Nr}   re   rd   ra   r  rQ    r  rd   r  c                       \ rS rSrSrg)WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.Bi  re   Nr}   re   rd   ra   r  rS    r   rd   r  c                       \ rS rSrSrg)WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.Ci  re   Nr}   re   rd   ra   r}  rU    r  rd   r}  c                       \ rS rSrSrg)WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.Di  re   Nr}   re   rd   ra   r  rW    r   rd   r  c                       \ rS rSrSrg)WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.Ei  re   Nr}   re   rd   ra   r  rY    r  rd   r  c                       \ rS rSrSrg)WTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args.<locals>.Fi  re   Nr}   re   rd   ra   r  r[    r   rd   r  )r   r   r#   r   r  r  r  r   )
r_   r_  r  r  r  r  r}  r  r  r  s
             ra   :test_variadic_class_with_2_typevars_accepts_2_or_more_argsLTypeVarTupleTests.test_variadic_class_with_2_typevars_accepts_2_or_more_args  s   $T]T]+$+	#s(	#sE/	#sE4
 2r
*+2	#s(	#sE/	#sE4
 +R$+	#s(	#sE/	#sE4
 2F2J*+2	#s(	#sE/	#sE4
 +R$+	#s(	#sE/	#sE4
 2r
B*+2	#s(	#sE/	#sE4
 rd   c                     [        S5      nS[        U   4S jnSUu  4S jnU R                  UR                  S[        U   05        U R                  UR                  S/ UQ7S   05        g )Nr_  r   c                      g r[   re   r  s    ra   r`   GTypeVarTupleTests.test_variadic_args_annotations_are_correct.<locals>.f  s    $rd   c                      g r[   re   r  s    ra   r  GTypeVarTupleTests.test_variadic_args_annotations_are_correct.<locals>.g      4rd   r   )r   r   r   r  )r_   r_  r`   r  s       ra   *test_variadic_args_annotations_are_correct<TypeVarTupleTests.test_variadic_args_annotations_are_correct  sb    $&VBZ&b**VVBZ,@A**VVrVAY,?@rd   c                 ,   S[         [        S4   u  4S jnU R                  UR                  S/ [         [        S4   Q7S   05        S[        [
        [        S4      4S jnU R                  UR                  S[        [
        [        S4      05        g )Nr   .c                      g r[   re   r  s    ra   rL  UTypeVarTupleTests.test_variadic_args_with_ellipsis_annotations_are_correct.<locals>.a      rd   r   c                      g r[   re   r  s    ra   r   UTypeVarTupleTests.test_variadic_args_with_ellipsis_annotations_are_correct.<locals>.b  s    trd   )ri  r   r   r  r   r   )r_   rL  r   s      ra   8test_variadic_args_with_ellipsis_annotations_are_correctJTypeVarTupleTests.test_variadic_args_with_ellipsis_annotations_are_correct
  s    ,eCHo,** "5E#s(O"5a"89	; 	4VE#s(O,3** &sCx"9:	<rd   c                    [        S5      nS[        [        /UQ7   u  4S jnU R                  UR                  S/ [        [        /UQ7   Q7S   05        S[        / UQ[        P7   u  4S jnU R                  UR                  S/ [        / UQ[        P7   Q7S   05        S[        [
        /UQ[        P7   u  4S jnU R                  UR                  S/ [        [
        /UQ[        P7   Q7S   05        S[        [        [        /UQ[        P[
        P7   u  4S jnU R                  UR                  S/ [        [        [        /UQ[        P[
        P7   Q7S   05        S[        [        [        [        U   4      4S jnU R                  UR                  S[        [        [        [        U   4      05        S[        [        [        U   [        4      4S	 jnU R                  UR                  S[        [        [        U   [        4      05        S[        [        [
        [        U   [        4      4S
 jnU R                  UR                  S[        [        [
        [        U   [        4      05        S[        [        [        [        [        U   [        [
        4      4S jn	U R                  U	R                  S[        [        [        [        [        U   [        [
        4      05        g )Nr_  r   c                      g r[   re   r  s    ra   rL  XTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.a  ri  rd   r   c                      g r[   re   r  s    ra   r   XTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.b  ri  rd   c                      g r[   re   r  s    ra   r  XTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.c$  s    Trd   c                      g r[   re   r  s    ra   r  XTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.d*  s    $rd   c                      g r[   re   r  s    ra   r  XTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.e2      drd   c                      g r[   re   r  s    ra   r`   XTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.f8  ry  rd   c                      g r[   re   r  s    ra   r  XTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.g>  s    4rd   c                      g r[   re   r  s    ra   r  XTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct.<locals>.hD  s    rd   )
r   ri  r   r   r  r  r  r  r   r   )
r_   r_  rL  r   r  r  r  r`   r  r  s
             ra   ;test_concatenation_in_variadic_args_annotations_are_correctMTypeVarTupleTests.test_concatenation_in_variadic_args_annotations_are_correct  s   $ 	-eCH"Ho,(uSX2X(+,	

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

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

 	?eC66E6367>:uS$77U7C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VE#tVBZ"CDEF	
rd   c                 :   [        S5      n " S S[        / UQ7   5      n " S S[        [        U      5      nU R                  U[           U[           5        U R                  U[           U[           5        [        S5      n[        S5      nU R                  U/ UQ7   U/ UQ7   5        U R                  U[        U      U[        U      5        U R                  U/ UQUQ7   U/ UQUQ7   5        U R                  U[        U   [        U   4   U[        U   [        U   4   5        U R                  U[        /UQUQ7   U[        /UQUQ7   5        U R                  U[        [        U   [        U   4   U[        [        U   [        U   4   5        g )Nr_  c                       \ rS rSrSrg)MTypeVarTupleTests.test_variadic_class_same_args_results_in_equalty.<locals>.CiL  re   Nr}   re   rd   ra   r}  r  L  r#  rd   r}  c                       \ rS rSrSrg)MTypeVarTupleTests.test_variadic_class_same_args_results_in_equalty.<locals>.DiM  re   Nr}   re   rd   ra   r  r  M  r  rd   r  r  r  )r   r#   r   r   r   r_   r_  r}  r  r  r  s         ra   0test_variadic_class_same_args_results_in_equaltyBTypeVarTupleTests.test_variadic_class_same_args_results_in_equaltyJ  s   $##*r
#*33(33(5!5!dsdGdsdG	
 	fSkNfSkN	

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

 	coCo#ocoCo#o	
 	c6#;s+,c6#;s+,	
rd   c                    [        S5      n " S S[        / UQ7   5      n " S S[        [        U      5      nU R                  U[        [
        4   U[
        [        4   5        U R                  U[        [
        4   U[
        [        4   5        [        S5      n[        S5      nU R                  U/ UQUQ7   U/ UQUQ7   5        U R                  U[        U   [        U   4   U[        U   [        U   4   5        g )Nr_  c                       \ rS rSrSrg)ETypeVarTupleTests.test_variadic_class_arg_ordering_matters.<locals>.Cir  re   Nr}   re   rd   ra   r}  r  r  r#  rd   r}  c                       \ rS rSrSrg)ETypeVarTupleTests.test_variadic_class_arg_ordering_matters.<locals>.Dis  re   Nr}   re   rd   ra   r  r  s  r  rd   r  r  r  )r   r#   r   r   r   r  r  s         ra   (test_variadic_class_arg_ordering_matters:TypeVarTupleTests.test_variadic_class_arg_ordering_mattersp  s    $##*r
#*c3hKc3hK	
 	c3hKc3hK	

 5!5!jsjSjMjsjSjM	
 	fSk6#;&'fSk6#;&'	
rd   c                 *   [        S5      n[        S5      n[        S5      n " S S[        / UQ7   5      n " S S[        [        U      5      nU R                  U/ UQ7   U/ UQ7   5        U R                  U[        U      U[        U      5        g )Nr_  r  r  c                       \ rS rSrSrg)RTypeVarTupleTests.test_variadic_class_arg_typevartuple_identity_matters.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    r#  rd   r}  c                       \ rS rSrSrg)RTypeVarTupleTests.test_variadic_class_arg_typevartuple_identity_matters.<locals>.Di  re   Nr}   re   rd   ra   r  r    r  rd   r  )r   r#   r   r   )r_   r_  r  r  r}  r  s         ra   5test_variadic_class_arg_typevartuple_identity_mattersGTypeVarTupleTests.test_variadic_class_arg_typevartuple_identity_matters  s    $5!5!##*r
#*AdsdGQttW-AfSkNAfSkN;rd   re   N)(rf   rg   rh   ri   r|  r  r  r  r  r  r  r  r  r  r  r  r#  r  r  r  r  r  r  r  r  r  r*  r7  r=  r@  rE  rM  r\  rd  rl  r  r  r  r  rj   re   rd   ra   rz  rz    s    .2+!D0
1
?


3FKP/<l"T@>i@&*'6R3QE D(;AzJ- 1'
4!!FA<5
n$
L
4	<rd   rz  c                   D    \ rS rSr\S 5       r\S 5       r\S 5       rSrg)TypeVarTuplePicklingTestsi  c                     [        S5      q[        R                  " [        R                  " [        U5      5      nU R                  [        U5        g )N
global_Ts1)r   r  rr   r  r  r   )r_   rp   
global_Ts2s      ra   6test_pickling_then_unpickling_results_in_same_identityPTypeVarTuplePicklingTests.test_pickling_then_unpickling_results_in_same_identity  s5     ",/
\\&,,z5"AB
j*-rd   c                 8   [        S5      q/ [        Q7S   n[        R                  " [        R                  " X!5      5      nU R                  X#5        [        [           n[        R                  " [        R                  " XA5      5      nU R                  XE5        g )N	global_Tsr   )r   r  rr   r  r  r   r   )r_   rp   	unpacked1	unpacked2	unpacked3	unpacked4s         ra   ?test_pickling_then_unpickling_unpacked_results_in_same_identityYTypeVarTuplePicklingTests.test_pickling_then_unpickling_unpacked_results_in_same_identity  sl     !-	!iM!$	LLi!?@	i+9%	LLi!?@	i+rd   c           	         [        S5      q[        S5      q[        / [        Q7   [
        [        [              [        [        /[        Q7   [
        [        [        [           4   [        [        /[        Q7   [
        [        [        [           4   /nU H>  n[        R                  " [        R                  " X15      5      nU R                  X45        M@     g )Nglobal_Tr  )r   r  r   r  ri  r   r   r   r   rr   r  r  r   )r_   rp   tuplestr  s        ra   >test_pickling_then_unpickling_tuple_with_typevartuple_equalityXTypeVarTuplePicklingTests.test_pickling_then_unpickling_tuple_with_typevartuple_equality  s    
 :& -	 *9*&#$!-i- !VI&&'#/	/"#vi(()	
 Afll145BQ# rd   re   N)	rf   rg   rh   ri   ry   r  r  r  rj   re   rd   ra   r  r    s>     . . 
, 
, $ $rd   r  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r Sr!g )!
UnionTestsi  c                 V    [         [        [        4   nU R                  U[         5        g r[   )r   r   r  r   r_   r)  s     ra   rq  UnionTests.test_basics  s     #u*Au%rd   c           	         U R                  [        S[        [        [        4   5      5        U R                  [        S[        [        [        4   5      5        U R                  [        S[        [        [        4   5      5        U R                  [        S[        [        [        [           4   5      5        U R                  [        S[        [        [        4   5      5        g )Nr   abcgQ	@)r   r   r   r   r  r   r  r   r   s    ra   test_union_isinstance UnionTests.test_union_isinstance  s    
2uS#X78
5%S/:;D%S/:;
2uS$s)^'<=>
2uS#X78rd   c                    U R                  [        5         [        S[        [        [
        [           4   5        S S S 5        U R                  [        5         [        S[        [
        [           [        4   5        S S S 5        U R                  [        5         [        S[        [
        [           [        4   5        S S S 5        U R                  [        5         [        S[        [        [        4   5        S S S 5        U R                  [        5         [        S[        [        [        4   5        S S S 5        U R                  [        5         [        S[        [        [        4   5        S S S 5        g ! , (       d  f       GNE= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = fr   )r   r   r   r   r  r  r   r   r   s    ra    test_union_isinstance_type_error+UnionTests.test_union_isinstance_type_error  s   y)r5d3i01 *y)r5cC01 *y)r5cC01 *y)r5c?+ *y)r5c?+ *y)r5c?+ *) *)))))))))))sG   %E9%F%FF.F?G9
F
F
F+.
F<?
G
Gc                     U R                  [        S[        [           5      5        U R                  [        S [        [           5      5        U R	                  [        S[        [           5      5        g )Nr   r  )r   r   r   r   r   r   s    ra   test_optional_isinstance#UnionTests.test_optional_isinstance  sI    
2x}56
4#78E8C=9:rd   c                 P   U R                  [        5         [        S[        [        [
              5        S S S 5        U R                  [        5         [        S [        [        [
              5        S S S 5        U R                  [        5         [        S[        [           5        S S S 5        U R                  [        5         [        S [        [           5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = fr   )r   r   r   r   r  r   r   r   s    ra   #test_optional_isinstance_type_error.UnionTests.test_optional_isinstance_type_error  s    y)r8DI./ *y)tXd3i01 *y)r8C=) *y)tXc]+ *) *)))))))s/   C$C5DD$
C25
D
D
D%c           	         U R                  [        [        [        [        [        4   5      5        U R                  [        [        [        [        [        4   5      5        U R                  [        [        [        [        [        4   5      5        U R                  [        [        [        [        [        [           4   5      5        U R                  [        [        [        [        [        4   5      5        U R                  [        [        [        [        [        4   5      5        U R                  [        [        [        [        [        4   5      5        U R                  [        [        [        [        [        4   5      5        g r[   )	r   r   r   r   r  r   r  r  r   r   s    ra   test_union_issubclass UnionTests.test_union_issubclass  s    
3c3h89
3c3h89E5c?;<
3c49n(=>?
3c3h89CsCx9:
3c3h89CsCx9:rd   c                    U R                  [        5         [        [        [        5        S S S 5        U R                  [        5         [        [        [        5        S S S 5        U R                  [        5         [        [        [        [
        4   [        5        S S S 5        U R                  [        5         [        [        [        [
        [        [           4   5        S S S 5        U R                  [        5         [        [        [        [        [           [        4   5        S S S 5        U R                  [        5         [        [        [        [        [           [
        4   5        S S S 5        g ! , (       d  f       GNS= f! , (       d  f       GN3= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = fr[   )r   r   r   r   r   r  r  r   s    ra    test_union_issubclass_type_error+UnionTests.test_union_issubclass_type_error  s   y)sE" *y)uc" *y)uS#X, *y)sE#tCy.12 *y)sE$s)S.12 *y)sE$s)S.12 *) *)))))))))))sG   E7F	:"F9)F-?)F>)G7
F	
F
F*-
F;>
G
Gc                    U R                  [        [        [        [           5      5        U R                  [        [	        S 5      [        [           5      5        U R                  [        [        [        [           5      5        U R                  [        [        [        [           5      5        U R                  [        [	        S 5      [        [           5      5        U R                  [        [        [        [           5      5        g r[   )r   r   r   r   r   r   r  r   r   s    ra   test_optional_issubclass#UnionTests.test_optional_issubclass	  s    
367
4:x}=>C#78
367
4:x}=>C#78rd   c                    U R                  [        5         [        [        [           [
        [        [              5        S S S 5        U R                  [        5         [        [        S 5      [
        [        [              5        S S S 5        U R                  [        5         [        [        [
        [        [              5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr[   )r   r   r   r  r   r   r   r   s    ra   #test_optional_issubclass_type_error.UnionTests.test_optional_issubclass_type_error  s    y)tCy(49"56 *y)tDz8DI#67 *y)sHT#Y/0 *)	 *)))))s#   *C(C"#C0
C
C-0
C>c                 b   [         [           nU R                  U[        5        [         [        [        4   n[         [        [        4   n[         [        [        4   nU R                  X#5        U R                  U[        5        U R                  U[        5        U R                  U[        5        g r[   )r   r   r   r   objectr   )r_   r)  u1u2u3s        ra   test_union_anyUnionTests.test_union_any  s    #JC 38_38_3; B$B$B$rd   c                    [         [           nU R                  U[        5        [         [        [        4   n[         [        [        4   nU R                  X#5        U R	                  U[        5        U R	                  U[        5        g r[   )r   r  r   r   r   )r_   r)  r  r  s       ra   test_union_objectUnionTests.test_union_object$  se    &MF#3;63; B'B'rd   c                 r    [         [        [        4   n[         [        [        4   nU R                  X5        g r[   )r   r   r  r   )r_   r  r  s      ra   test_unorderedUnionTests.test_unordered-  s,    3:5#: rd   c                 J    [         [           nU R                  U[        5        g r[   )r   r{   r   )r_   r  s     ra   test_single_class_disappears'UnionTests.test_single_class_disappears2  s    (Oa"rd   c                     [         [        [        4   nU R                  U[        5        U R	                  [        UR
                  5        U R	                  [        UR
                  5        g r[   )r   r{   r   r   rD  r  r  s     ra   test_base_class_keptUnionTests.test_base_class_kept6  sE    (G#$Ax(h

+gqzz*rd   c                     [         [        [        4   n[         U[        4   nU R	                  U[         [        [        [        4   5        g r[   )r   r   r  r{   r   )r_   r)  vs      ra   test_union_unionUnionTests.test_union_union<  s:    #u*!X+E#uh"678rd   c                 <    " S S[         5      n " S SUS9n " S SUS9nU R                  [        X#4   R                  X#45        [        X#4   nU R	                  [
        5         [        U5        S S S 5        [        [        U4   nU R	                  [
        5         [        U5        S S S 5        [        U[        4   nU R	                  [
        5         [        U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       NX= f! , (       d  f       g = f)Nc                       \ rS rSrSrSrg);UnionTests.test_union_of_unhashable.<locals>.UnhashableMetaiB  Nre   rf   rg   rh   ri   __hash__rj   re   rd   ra   UnhashableMetar  B      Hrd   r  c                       \ rS rSrSrg).UnionTests.test_union_of_unhashable.<locals>.AiE  re   Nr}   re   rd   ra   r  r  E      3rd   r  	metaclassc                       \ rS rSrSrg).UnionTests.test_union_of_unhashable.<locals>.BiF  re   Nr}   re   rd   ra   r  r  F  r  rd   r  )r   r   r   r  r   r   hashr   )r_   r  r  r  union1union2union3s          ra   test_union_of_unhashable#UnionTests.test_union_of_unhashableA  s    	T 	 	/.....qt--v6qty)L * sAvy)L * q#vy)L *) *) *) *)s$   &C+C<D+
C9<
D

Dc                 J   U R                  [        [        5      S5        [        [        [        4   nU R                  [        U5      S[
        -  5        [        [        [        4   nU R                  [        U5      S[
        -  5        [        S5      n[        U[        4   [           nU R                  [        U5      [        [        5      5        [        [        [           [        4   nU R                  [        U5      S5        [        [        [           [        [        [        4   4   nU R                  [        U5      S5        [        [        [        -     nU R                  [        U5      S5        [        S [        4   nU R                  [        U5      S5        [        [        S 4   nU R                  [        U5      S5        [        S [        [        4   nU R                  [        U5      S	5        [        [           nU R                  [        U5      S5        g )
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   rf   r   r   r  r|  r  r  r   )r_   r)  r   s      ra   r   UnionTests.test_reprU  s   en5(C- a"BX"MN#x- a"BX"MNCL!S&M#a$s),$s)S.!a"GH$s)T#u*--.a"MN#+a"<=$)a"89#t)a"89$S.!a"DESMa"89rd   c                     [        [        [        [        [        4   5      5      nS H,  nU R                  US9   U R                  X!5        S S S 5        M.     g ! , (       d  f       M@  = fr>  )rB  rC  r   r  r   rt   rD  rE  s      ra   rG  UnionTests.test_dirn  sR    E#s(O,-	
M M:m7 ;:
 ;:s   A
A(	c                    U R                  [        S5          " S S[        5      nS S S 5        U R                  [        [        5          " S S[	        [        5      5      nS S S 5        U R                  [        S5          " S S[        [
        [        4   5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N[= f! , (       d  f       g = f)	NzCannot subclass typing\.Unionc                       \ rS rSrSrg)*UnionTests.test_cannot_subclass.<locals>.Ciy  re   Nr}   re   rd   ra   r}  r  y  r  rd   r}  c                       \ rS rSrSrg)*UnionTests.test_cannot_subclass.<locals>.Di|  re   Nr}   re   rd   ra   r  r  |  r  rd   r  z)Cannot subclass typing\.Union\[int, str\]c                       \ rS rSrSrg)*UnionTests.test_cannot_subclass.<locals>.Ei  re   Nr}   re   rd   ra   r  r     r  rd   r  )r  r   r   r  r   r   r  )r_   r}  r  r  s       ra   r  UnionTests.test_cannot_subclassv  s    ##I02E 2 ##I/CDDK  E ##I<>E#s(O > >2 2 ED> >s#   B&	B7 C&
B47
C
Cc                    U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        [        [        [
        4   nU R                  [        5         U" 5         S S S 5        U R                  [        5         [        U5      " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N_= f! , (       d  f       g = fr[   )r   r   r   r   r   r  r  s     ra   r   "UnionTests.test_cannot_instantiate  s    y)G *y)KM *#u*y)C *y)GI *) *))) *)))s.   CCC$(C5
C
C!$
C25
Dc                 8   U R                  [        [        [        R                  [
           4   [        :H  5        U R                  [        [        [        R                  [
           4   [        R                  [
           :H  5        U R                  [        [        [        [        R                  [
           4   R                  5        U R                  [        R                  [
           [        [        [        R                  [
           4   R                  5        g r[   )r   r   r  r\   Iterabler   rD  r  r   s    ra   test_union_generalization$UnionTests.test_union_generalization  s    sFOOC$889S@AsFOOC$889V__S=QQRc5fooc&:!:;DDEfooc*E#vs7K2K,L,U,UVrd   c                    U R                  [        [        5        U R                  [        [        5        U R                  [        [        5        U R                  [
        [        5        U R                  S /[
        5        U R                  [
        [        R                  5        U R                  [
        [        R                     [        5        g r[   )	r   r   r  r   r$   r   r\   Mappingr!   r   s    ra   test_union_compare_other#UnionTests.test_union_compare_other  s    E6*E3'He,He,TFH-Hfnn5HV%:%:;UCrd   c                 ^    [         [           n[        [        S 4   nU R                  X5        g r[   )r   r   r   r   )r_   r%  r)  s      ra   test_optionalUnionTests.test_optional  s'    SM#t)rd   c                 t    U R                  [        5         [        S     S S S 5        g ! , (       d  f       g = fNre   )r   r   r   r   s    ra   
test_emptyUnionTests.test_empty  s#    y)"I *))   
)
7c                 t    [         [        [        4   nSU4S jnU R                  [	        U5      S   U5        g )Nr   c                     g r[   re   r   s    ra   r`   (UnionTests.test_no_eval_union.<locals>.f      Srd   )r   r   r  r   r+   )r_   r)  r`   s      ra   test_no_eval_unionUnionTests.test_no_eval_union  s/    #s(OnQ',a0rd   c                 j    S[         4S jnU R                  [        [        U[         4   5      S5        g )Nr%  c                      g r[   re   re   rd   ra   fun0UnionTests.test_function_repr_union.<locals>.fun  s    #rd   ztyping.Union[fun, int])r   r   r   r   )r_   r  s     ra   test_function_repr_union#UnionTests.test_function_repr_union  s(    SeCHo.0HIrd   c                 .    [         [        [        4   nU  g r[   )r   r  r@   r  s     ra   test_union_str_pattern!UnionTests.test_union_str_pattern  s    #w,	rd   c                 Z   ^ SSK Jm  [        T[        4     U4S jn[        U[        4     g )Nr   )Elementc                     > T" U 6 $ r[   re   )r   r$  s    ra   Elem#UnionTests.test_etree.<locals>.Elem  s    D>!rd   )xml.etree.ElementTreer$  r   r  )r_   r&  r$  s     @ra   
test_etreeUnionTests.test_etree  s'     	2gsl	" 	dCird   c                    U R                  [        [        S   [        S   4   R                  [        S   [        S   45        U R                  [        [        S   [        S   4   [        S   5        U R                  [        [        S   [        S   4   R                  [        S   [        S   45        U R                  [        [        S   [        S   4   R                  [        S   [        S   45        SS Kn " S SUR
                  5      nU R                  [        [        UR                     [        UR                     4   [        UR                     5        U R                  [        [        UR                     [        UR                     4   [        UR                     5        U R                  [        [        UR                     [        UR                     4   R                  [        UR                     [        UR                     45        U R                  [        [        S   [        UR                     [        S   4   R                  [        S   [        UR                     [        S   45        U R                  [        [        S   [        UR                     [        S   4   R                  [        S   [        UR                     [        S   45        g )Nrm   r   Fr   Tc                       \ rS rSrSrSrSrg)/UnionTests.test_union_of_literals.<locals>.Intsi  r   rm   re   Nrf   rg   rh   ri   r  r  rj   re   rd   ra   Intsr-        AArd   r/  )r   r   r   r  enumIntEnumr  r  )r_   r1  r/  s      ra   test_union_of_literals!UnionTests.test_union_of_literals  s<   wqz71:56??!!*gaj1	3wqz71:56 	% 	wu~wqz9:CC!%.'!*5	7wt}gaj89BB!$-4	6 		4<< 	 	wtvv?@ 	*wtvv?@ 	* 	wtvv?@II!$&&/7466?;	= 	wqz7466?GENJKTT!!*gdffowu~F	Hwqz7466?GDMIJSS!!*gdffowt}E	Grd   re   N)"rf   rg   rh   ri   rq  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rG  r  r   r  r
  r  r  r  r  r!  r)  r3  rj   re   rd   ra   r  r    s    &9,;
,;391	%(!
#+9
(:28	WD
1
J


Grd   r  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)

TupleTestsi  c                    U R                  [        5         [        [        [        [        [
        4   5        S S S 5        U R                  [        5         [        [        [        [        [
        4   5        S S S 5         " S S[        5      nU R                  [        [        5        U R                  U[        5        g ! , (       d  f       N= f! , (       d  f       N_= f)Nc                       \ rS rSrSrg)"TupleTests.test_basics.<locals>.TPi  re   Nr}   re   rd   ra   TPr9    s    rd   r:  )r   r   r   r   r   r  ri  assertIsSubclass)r_   r:  s     ra   rq  TupleTests.test_basics  s    y)ueCHo. *y)ueCHo. * 	eU+b%( *)))s   "B?"C?
C
Cc                 \   U R                  [        [           [        [           5        U R                  [        [        S4   [        [        S4   5        U R                  [        [           [        [        [        4   5        U R                  [        [           [        [        S4   5        g N.)r   r   r   r   r   s    ra   r   TupleTests.test_equality  sr    sU3Z0sCx%S/:E#Jc3h8E#Jc3h8rd   c                      " S S[         5      nU R                  U[        5        U R                  [        [        5        U R                  [         [        5        g )Nc                       \ rS rSrSrg)/TupleTests.test_tuple_subclass.<locals>.MyTuplei  re   Nr}   re   rd   ra   MyTuplerB        rd   rC  )ri  r;  r   )r_   rC  s     ra   test_tuple_subclassTupleTests.test_tuple_subclass  s>    	e 	gu-eU+eU+rd   c                     U R                  [        5         [        S[        [        [        4   5        S S S 5        U R                  S[        5        g ! , (       d  f       N%= f)N)r   r   )r   r   r   r   r   r   r   s    ra   test_tuple_instance_type_error)TupleTests.test_tuple_instance_type_error  s@    y)vuS#X/ *fe, *)s   A
A!c                    U R                  [        [        5      S5        U R                  [        [        S   5      S5        U R                  [        [        [        [        4   5      S5        U R                  [        [        [        S4   5      S5        U R                  [        [        [
        [              5      S5        g )Nztyping.Tuplere   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    ra   r   TupleTests.test_repr  s    en5eBi*<=eCJ/02LMeCHo.0HIeDI./1JKrd   c                    U R                  [        5         [        S[        5        S S S 5        U R                  [        5         [        S[        [           5        S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = fr   )r   r   r   r   r   r   s    ra   r   TupleTests.test_errors	  sS    y)r5! *y)r5:& *) *)))s   A%A6%
A36
Bre   N)rf   rg   rh   ri   rq  r   rE  rH  r   r   rj   re   rd   ra   r6  r6    s!    )9,-
L'rd   r6  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rSrg)BaseCallableTestsi
	  c                 ,   U R                   nU R                  [        5         [        [        R
                  U[        /[        4   5        S S S 5        U R                  [        R
                  U5        U R                  X5        g ! , (       d  f       N@= fr[   )r"   r   r   r   typesFunctionTyper   r;  r_   r"   s     ra   test_self_subclass$BaseCallableTests.test_self_subclass	  sf    ==y)u))8SE3J+?@ *e00(;h1 *)s   )B
Bc                    U R                   nU[        /[        4   nU R                  X![        /[        4   5        U R                  [        X![        /[        4   15      S5        U R	                  X![        /[
        4   5        U R	                  X![
        /[        4   5        U R	                  X![        [        /[        4   5        U R	                  X!/ [        4   5        U R	                  X!S[        4   5        U R	                  X!5        g )Nrm   .)r"   r   r   rO  r   r  )r_   r"   r}  s      ra   test_eq_hashBaseCallableTests.test_eq_hash	  s    ==cUCZ cUCZ01a3%*!567;As
34As
34Ac
C89AC01AS12A(rd   c                     U R                   n[        [        US[        4   5      5      nS H,  nU R	                  US9   U R                  X25        S S S 5        M.     g ! , (       d  f       M@  = f)N.r?  r@  )r"   rB  rC  r   rt   rD  )r_   r"   rF  rA  s       ra   rG  BaseCallableTests.test_dir	  s\    ==HS#X./0	
M M:m7 ;:
 ;:s   A
A,	c                    U R                   nU R                  [        5         U" 5         S S S 5        U R                  [        5         [        U5      " 5         S S S 5        U[        /[
        4   nU R                  [        5         U" 5         S S S 5        U R                  [        5         [        U5      " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N_= f! , (       d  f       g = fr[   )r"   r   r   r   r   r  )r_   r"   r  s      ra   r   )BaseCallableTests.test_cannot_instantiate(	  s    ==y)J *y)N *cUCZ y)C *y)GI *) *))) *)))s/   CCC&*C7
C
C#&
C47
Dc                     U R                   nU R                  [        5         U[             S S S 5        g ! , (       d  f       g = fr[   )r"   r   r   r   rS  s     ra   test_callable_wrong_forms+BaseCallableTests.test_callable_wrong_forms4	  s,    ==y)SM *))s	   
5
Ac                 h    U R                   nS nU R                  X!5        U R                  S U5        g )Nc                      g r[   re   re   rd   ra   r`   9BaseCallableTests.test_callable_instance_works.<locals>.f;	      rd   )r"   r   r   r_   r"   r`   s      ra   test_callable_instance_works.BaseCallableTests.test_callable_instance_works9	  s.    ==	a*  x0rd   c                 .   U R                   nS nU R                  [        5         [        X!/ S 4   5        S S S 5        U R                  [        5         [        X!/ [        4   5        S S S 5        U R                  [        5         [        S U/ S 4   5        S S S 5        U R                  [        5         [        S U/ [        4   5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       g = f)Nc                      g r[   re   re   rd   ra   r`   >BaseCallableTests.test_callable_instance_type_error.<locals>.fB	  rc  rd   )r"   r   r   r   r   rd  s      ra   !test_callable_instance_type_error3BaseCallableTests.test_callable_instance_type_error@	  s    ==	y)q2t8,- *y)q2s7+, *y)tXb$h/0 *y)tXb#g./ *) *)))))))s/   CC$C54D
C!$
C25
D
Dc                    U R                   nUR                   S3nU/ [        4   nU R                  [	        U5      U S35        U[
        [        /[        4   nU R                  [	        U5      U S35        US[
        4   nU R                  [	        U5      U S35        U[
        [        /[        [           4   nU R                  [	        U5      U S35        g )N	.Callablez
[[], bool]z[[str, float], int].z
[..., str]z[[str, float], list[int]])	r"   rg   r  r   r   r  r  r   r  )r_   r"   fullnamect0ct2ctvct3s          ra   r   BaseCallableTests.test_reprM	  s    ==))*)4r4x cxj
$;<U|S()cxj0C$DEsCx cxj
$;<U|T#Y./cxj0I$JKrd   c                     U R                   nSUS[        4   4S jnU R                  [        U[	        5       [        5       5      SUS[        4   05        g )NrL  .c                     g r[   re   rL  s    ra   rX  :BaseCallableTests.test_callable_with_ellipsis.<locals>.foo[	  rc  rd   )r"   r   r   r+   globalslocals)r_   r"   rX  s      ra   test_callable_with_ellipsis-BaseCallableTests.test_callable_with_ellipsisY	  sP    ==	8CF# 	 	WYAxQ/0	2rd   c                 T    U R                   n[        R                  US[        4        g r>  )r"   r\   r   r  rS  s     ra   test_ellipsis_in_generic*BaseCallableTests.test_ellipsis_in_generica	  s     ==HS#X&'rd   c                     U R                   nU R                  U[        -  [        U[        4   5        U R                  [        U-  [        [        U4   5        g r[   )r"   r   r   r   rS  s     ra   test_or_and_ror!BaseCallableTests.test_or_and_rorf	  sG    ==E)55+AB)5+ABrd   c                    U R                   nU[        [        /[        4   nU[        R
                  R                   L a   U R                  U[        R                  5        U R                  UR                  [        R
                  R                   5        U R                  UR                  [        [        [        45        U R                  UR                  S5        g r  )r"   r   r  r  collectionsr  r   rQ  GenericAliasr   r  r   r  r  r_   r"   r  s      ra   
test_basicBaseCallableTests.test_basick	  s    ==#sU*+{///!!%););<e&&(@(@A#sE):;--r2rd   c                     U R                   nU[        [        /[        4   nU R	                  [
        R                  " U5      " 5       U5        g r[   )r"   r   r  r  r   r)  refr  s      ra   test_weakrefBaseCallableTests.test_weakreft	  s:    ==#sU*+U+-u5rd   c                 "   U R                   n[        S5      q[        S5      q[        S5      qU[        [        /[        4   U[        [        4   U[        [        4   U[        [        [        4   [        4   U[        / [        Q[        P7   [        4   /nU H  n[        [        R                  S-   5       H  nU R                  X4S9   [        R                  " X45      n[        R                   " U5      nU R#                  UR$                  UR$                  5        U R#                  UR&                  UR&                  5        U R#                  UR(                  UR(                  5        S S S 5        M     M     BBBg ! , (       d  f       M  = f)NT_pickleP_pickle	TS_picklerm   )r  rp   )r"   r   r  rG   r  r   r  r   r  r  rH   rq   rr   rs   rt   r  r  r   r  r  r  )r_   r"   samplesr  rp   r   loadeds          ra   r  BaseCallableTests.test_pickley	  sH   ==:&Z( -	 c3Z&'Xs]#Xx'([h/45[!5)!5X!56;<
 Ev66:;\\\;U2A#\\!_F$$U%5%5v7H7HI$$U^^V__E$$U%9%96;P;PQ <; <  h	 <;s   BE??
Fc                    U R                   nUR                   S3nU[        [        /[        4   nU[        [        /[
        4   nUS[        4   nU R                  U[           U[        [        /[        4   5        U R                  US    U[        [        S 5      /[        S 5      4   5        U R                  U[        [        [        4   U[        [        /[        4   5        U R                  U[           US[        4   5        U R                  U[           US[        4   5        U[        [
        [        4   nU R                  [        U5      U S35        U R                  [        U[           5      U S35        U R                  U[           U[        [        /[        4   5        U[        R                  [           [        [        [        4   [
        /[        4   nU R                  U[        [        [        4   U[        R                  [           [        [        [        4   [        /[        4   5        g )Nrm  .z[[int, ~VT], str]z[[int, dict], str])r"   rg   r   r   r   r   r   r  r   r  r   r   r|  r\   r   ri  )r_   r"   rn  C1C2C3C4C5s           ra   r  'BaseCallableTests.test_var_substitution	  s   ==))*)4sAhk"r1grk"c1fC(C:s?";<D8S$t*,=tDz,I#JKCO,hU|S7H.IJC(38"45HxX'>? RbhZ/@#ABbhH:5G)HID8S$K,<#=> v{{1~uRU|R8#=>CeO,!6;;s#3U38_e"Lc"QR	Trd   c                     U R                   n[        S5      n[        S5      nSnU R                  [        U5         XU4   S[
        4     S S S 5        g ! , (       d  f       g = f)NrQ  r   zAExpected a list of types, an ellipsis, ParamSpec, or Concatenate.r   )r"   rG   r   r  r   r   )r_   r"   rQ  r   pats        ra   test_type_subst_error'BaseCallableTests.test_type_subst_error	  sP    ==cNCLQ##Is3TN1c6" 433s   A
A"c                     U R                   n " S SU5      nU[        /[        4   nU R                  U" 5       R                  U5        U R                  U" 5       R                  U[        /[        4   5        g )Nc                       \ rS rSrS rSrg)/BaseCallableTests.test_type_erasure.<locals>.C1i	  c                     g r[   re   r   s    ra   __call__8BaseCallableTests.test_type_erasure.<locals>.C1.__call__	      rd   re   Nrf   rg   rh   ri   r  rj   re   rd   ra   r  r  	      rd   r  )r"   r   r   r   r   r   __orig_class__)r_   r"   r  rL  s       ra   test_type_erasure#BaseCallableTests.test_type_erasure	  s^    ==	 	 uaxLacmmR(++Rq\:rd   c                    U R                   nUR                   S3n[        S5      n[        S5      nX[        4   nU R	                  U[
        /[        4   U[
        /[        4   5        U R	                  U[
        [        /[        4   U[
        [        /[        4   5        U R	                  U/ [        4   U/ [        4   5        U R	                  US[        4   US[        4   5        U R	                  XT[        4   X[        4   5        U R	                  U[        [
        U4   [        4   U[        [
        U4   [        4   5        U R	                  [        U5      U S35        U R	                  [        U[
        [        /[        4   5      U S35        U R                  [        5         U[
        [        4     S S S 5        X[
        4   nU R	                  U[
        /   U[
        /[
        4   5        U R	                  U[
        [        /   U[
        [        /[
        4   5        U R	                  U/    U/ [
        4   5        U R	                  US   US[
        4   5        U R	                  Xd   X[
        4   5        U R	                  U[        [
        U4      U[        [
        U4   [
        4   5        U R	                  U[
           U[
        /[
        4   5        U R	                  U[
        [        4   U[
        [        /[
        4   5        U R	                  [        U5      U S35        U R	                  [        U[
        [        4   5      U S35        g ! , (       d  f       GN= f)	Nrm  rQ  P2.z[~P, ~T]z[[int, str], str]z	[~P, int]z[[int, str], int])r"   rg   rG   r   r   r   r  rH   r   r   r   )r_   r"   rn  rQ  r  r  r  s          ra   rU   BaseCallableTests.test_paramspec	  s   ==))*)4cNt_d^SE3J3%*)=>S#JO,hSz3.GHBGhr3w&78CHxS'9:Gh3w&78KR0#56!+c2g"6";<	>bhZx#89b#sS12xj@Q4RSy)sCxL * fSEHcUCZ$89S#J3*c/)BCB"c'!23C(38"45c'!23KR01!+c2g"6";<	> 	C(C5#:"67CHxc
C'@AbhZy#9:bcl+z9J-KL! *)s   .M
M,c                    U R                   nUR                   S3n[        S5      n[        S5      n[        S5      nU[        [
        U4   U4   nU R                  [        U5      U S35        U R                  Xe[
        4   U[        [
        U4   [
        4   5        U R                  U[        [        /[
        4   U[
        [        [        /[
        4   5        U R                  U/ [
        4   U[
        /[
        4   5        U R                  U[        [        U4   [
        4   U[        [
        [        U4   [
        4   5        U R                  US[
        4   U[        [
        S4   [
        4   5        U[        [
        U4   [
        4   nU R                  [        U5      U S35        U R                  Xe   U[        [
        U4   [
        4   5        U R                  U[        [        /   U[
        [        [        /[
        4   5        U R                  U[        [        4   U[
        [        [        /[
        4   5        U R                  U/    U[
        /[
        4   5        U R                  U[        [        U4      U[        [
        [        U4   [
        4   5        U R                  US   U[        [
        S4   [
        4   5        g )Nrm  r   rQ  r  z![typing.Concatenate[int, ~P], ~T].z"[typing.Concatenate[int, ~P], int])
r"   rg   r   rG   rH   r   r   r   r  r  )r_   r"   rn  r   rQ  r  r}  s          ra   test_concatenate"BaseCallableTests.test_concatenate	  s   ==))*)4CLcNt_[a(!+,a$:%FG	Is7Xk#r'.BC.G%HIC<,-xc58I38N/OP2s7XseSj%9:;sBw/45!+c3l";S"@A	C38h{38/Dc/I&JK[a(#-.a$:%GH	JS"W)=s)B CDC<(Ce3Dc3I*JK3:#sE1BC1G(HI2# 45;sBw/0!+c3l";S"@A	C3+c3h*?*D!EFrd   c           	      J   U R                   n[        S5      n[        S5      n[        S5      n[        S5      n[        S5      n " S S[        X$4   5      nU R                  UR                  X$45        U[        U/XU4   4   nU R                  UR                  [        U4XU4   45        U R                  UR                  XS45        U R                  U[        [        [           [        /4   U[        [        /U[        [           [        /[        4   4   5        XqU/[        4   [        U   /[        4   n	U R                  U	R                  X/[        4   [        U   4[        45        U R                  U	R                  U45        U R                  U	[        [              Xq[        [           /[        4   [        [        [              /[        4   5        XqX54   U/U4   n
U R                  U
R                  XU4   U4U45        U R                  U
R                  X545        U R                  U
/ [        4   Xq/ [        4   [        /[        4   5        U R                  U
[        [        /[        4   Xq[        [        /[        4   [        /[        4   5        U R                  U
[        [        /U4   [           Xq[        [        /[        4   [        /[        4   5        Xq[        /UQ[        PU4   U/U4   nU R                  UR                  U[        /UQ[        PU4   U4U45        U R                  UR                  Xe45        U R                  U[        [        [        4   Xq[        [        [        [        /[        4   [        /[        4   5        g )NrQ  r  r   r  r_  c                       \ rS rSrSrg)3BaseCallableTests.test_nested_paramspec.<locals>.Myi
  re   Nr}   re   rd   ra   Myr  
  rD  rd   r  )r"   rG   r   r   r#   r   r  r   r  r  r  r  r  r  )r_   r"   rQ  r  r   r  r_  r  r  r  r  r  s               ra   test_nested_paramspec'BaseCallableTests.test_nested_paramspec	  se    ==cNt_CLT]$	 	 	**QF3b	8F++,Ry(r62B&CD**RH5C$s)U!334S#J$s)U1CS1H(IIJ	L 2$)$d2h/45s(;T"X'F&LM**RE2DItCyk3&67d3iI3NO	Q "&!2&*+R(8"'=r&BC**RH5BGb#g.4c9:	<S$K,-sDk3&67=sBC	ES$KN+C0sDk3&67=sBC	E 3//S/2-.3R78#C"1D(Er'JB&OP**RH5D%./sD%&=u&DEuMuTU	Wrd   c                    U R                   nU[        [        /[        4   nU R	                  [
        S5         U[             S S S 5        [        S5      nX[        4   nU R	                  [
        S5         U[        [        [        4     S S S 5        U R	                  [
        S5         U[             S S S 5        g ! , (       d  f       N= f! , (       d  f       NH= f! , (       d  f       g = f)Nzis not a generic classrQ  many arguments forfew arguments for)r"   r   r  r  r  r   rG   r   )r_   r"   r  rQ  r  s        ra   r   BaseCallableTests.test_errors$
  s    ==#sU*+##I/GH#J IcNd^##I/CDsC} E##I/BCsG DC IH EDCCs#   
B;5C(
C;
C	
C
C+re   N)rf   rg   rh   ri   rT  rW  rG  r   r^  re  rj  r   rz  r}  r  r  r  r  r  r  r  rU  r  r  r   rj   re   rd   ra   rO  rO  
	  ss    2
)8

10
L2(
C
36
*2T0#; MDG6(WT
rd   rO  c                   2    \ rS rSr\R
                  rS rSrg)TypingCallableTestsi0
  c                 `   [         R                  [        [        /[        4   n[
        R                  R                  [        [        /[        4   nU R                  UR                  UR                  5        U R                  [        UR                  5      [        UR                  5      5        g r[   )
r\   r"   r   r  r|  r  r  r   r  r  )r_   c1c2s      ra   test_consistency$TypingCallableTests.test_consistency3
  sr     __c3Z-.__%%sCj$&67bkk2bkk*D,=>rd   re   N)rf   rg   rh   ri   r\   r"   r  rj   re   rd   ra   r  r  0
  s    H?rd   r  c                   @    \ rS rSr\R
                  R                  rSrg)CollectionsCallableTestsi<
  re   N)rf   rg   rh   ri   r  r  r"   rj   re   rd   ra   r  r  <
  s    ''Hrd   r  c                   n    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rSrg)LiteralTestsi@
  c                     [         S     [         S     [         S     [         S      [         S     [         S     [         [         S   [         S   4     [         S     g )	Nrm   rm   r      r   r   r  T)rm   2Fr
        )s   foor_  )r   r   s    ra   rq  LiteralTests.test_basicsA
  sL    
wt},-rd   c                     SS K n " S SUR                  5      nU R                  [        UR                     R
                  UR                  45        g )Nr   c                       \ rS rSrSrSrg)"LiteralTests.test_enum.<locals>.MyiN
  r  re   N)rf   rg   rh   ri   r  rj   re   rd   ra   r  r  N
  s    Ard   r  )r1  Enumr   r   r  r  )r_   r1  r  s      ra   	test_enumLiteralTests.test_enumL
  s;    	 	 	//"$$9rd   c                 b    [         [             [         S     [         SSS.     [         [             g )N)y       @      @.re   r  r  rX  r_  )r   r   r   r   s    ra   3test_illegal_parameters_do_not_raise_runtime_errors@LiteralTests.test_illegal_parameters_do_not_raise_runtime_errorsS
  s'     	 !$%
rd   c                 D    [         [        S        [         [        S        g )Nr  )rX  r_  baz)r   r   r   s    ra    test_literals_inside_other_types-LiteralTests.test_literals_inside_other_types[
  s    WWW*+,rd   c                    U R                  [        [        S   5      S5        U R                  [        [        S   5      S5        U R                  [        [        [           5      S5        U R                  [        [        5      S5        U R                  [        [        S    5      S5        U R                  [        [        S   5      S	5        g )
Nrm   ztyping.Literal[1])rm   TrX  ztyping.Literal[1, True, 'foo']ztyping.Literal[int]ztyping.Literalztyping.Literal[None]rm   r   r  r  ztyping.Literal[1, 2, 3])r   r   r   r   r   s    ra   r   LiteralTests.test_repr_
  s    gaj)+>?gn568XYgcl+-BCg(89gdm,.DEgj124MNrd   c                     [        [        [        S   5      5      nS H,  nU R                  US9   U R	                  X!5        S S S 5        M.     g ! , (       d  f       M@  = f)Nr  r?  r@  )rB  rC  r   rt   rD  rE  s      ra   rG  LiteralTests.test_dirg
  sO    GG,-.	
M M:m7 ;:
 ;:s   A
A	c                    U R                  [        5         [        5         S S S 5        U R                  [        5         [        S   " 5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        U R                  [        5         [        [        S   5      " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = fr  )r   r   r   r   r   s    ra   r  LiteralTests.test_cannot_inito
  s    y)I *y)AJL *y)MO *y) *) *)))))))s.   B=C*CC0=
C
C
C-0
C>c                 $   U R                  [        5         [        S[        S   5        S S S 5        U R                  [        5         [        [        [        S   5        S S S 5        U R                  [        5         [        S[        S   5        S S S 5        U R                  [        5         [        [        [        S   5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = fr  )r   r   r   r   r   r   r   s    ra    test_no_isinstance_or_issubclass-LiteralTests.test_no_isinstance_or_issubclassy
  s    y)q'!*% *y)sGAJ' *y)q'!*% *y)sGAJ' *) *)))))))s/   CC<C0-D
C
C-0
C>
Dc                    U R                  [        5          " S S[        S   5      nS S S 5        U R                  [        5          " S S[        5      nS S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)-LiteralTests.test_no_subclassing.<locals>.Fooi
  re   Nr}   re   rd   ra   r   r  
  r  rd   r   rm   c                       \ rS rSrSrg)-LiteralTests.test_no_subclassing.<locals>.Bari
  re   Nr}   re   rd   ra   r   r  
  r  rd   r   r   r   r   r_   r   r   s      ra   test_no_subclassing LiteralTests.test_no_subclassing
  sO    y)'gaj' *y)$g$ *) *)))s   AA0
A-0
A>c                 z    U R                  [        5         [        S   S     S S S 5        g ! , (       d  f       g = fr  r  r   s    ra   test_no_multiple_subscripts(LiteralTests.test_no_multiple_subscripts
  s'    y)AJqM *))s   ,
:c                 D   U R                  [        S   [        S   5        U R                  [        S   [        S   5        U R                  [        S   [        S   5        U R                  [        S   [        S   5        U R                  [        S   [        S   5        U R                  [        S   [        S	   5        U R                  [        S   [        S   5        U R                  [        S   [        S
   5        U R                  [        S   [        S   5        g )Nr   FTrm   r   )rm   T)rm   rm   r
  Tr   r   rm   r  r  )r   r   r   r   s    ra   
test_equalLiteralTests.test_equal
  s    GAJ7GDM71:6GAJ
3GG,gaj9GG,gdm<GDM77+;<WQZ06)7:+>?rd   c                 0   U R                  [        [        S   5      [        [        S   5      5        U R                  [        [        S   5      [        [        S   5      5        U R                  [        [        S   5      [        [        S   5      5        g )Nrm   r
  r  r  r  )r   r  r   r   s    ra   	test_hashLiteralTests.test_hash
  sj    gaj)4
+;<gdm,d74=.ABgg./gj6I1JKrd   c                 F   U R                  [        S   R                  S5        U R                  [        S   R                  S5        U R                  [        S[        S   [        S   4   R                  S5        U R                  [        / / 4   R                  / / 45        g )Nr  r  rm   r   )r  r  )rm   r   r  r  )r   r   r  r   s    ra   	test_argsLiteralTests.test_args
  s    )22I>,55yAGAJ!=>GGVR11B8<rd   c                 
   [         [         S   [         S   [         S   4   n[         [         S   S4   n[         [         S      nXU4 H8  nU R                  U[         S   5        U R                  UR                  S5        M:     g )Nrm   r   r  r
  r  )r   r   r  )r_   l1l2l3r"  s        ra   test_flattenLiteralTests.test_flatten
  sx    WQZWQZ78WT]A%&WW%&AQ 01QZZ3 rd   c                    SS K n " S SUR                  5      n[        [        UR                     [        UR                     [        S   [        S   4   nU R                  UR                  UR                  UR                  SS45        g )Nr   c                       \ rS rSrSrSrSrg)5LiteralTests.test_does_not_flatten_enum.<locals>.Intsi
  rm   r   re   Nr.  re   rd   ra   r/  r  
  r0  rd   r/  rm   r   )r1  r2  r   r  r  r   r  )r_   r1  r/  r"  s       ra   test_does_not_flatten_enum'LiteralTests.test_does_not_flatten_enum
  sq    	4<< 	 DFFODFFOAJAJ
 	dffdffa%;<rd   re   N)rf   rg   rh   ri   rq  r  r  r  r   rG  r  r  r  r  r  r  r  r  r  rj   re   rd   ra   r  r  @
  sP    	 :-O8(%	@L
=4=rd   r  XKXVc                   R    \ rS rSrS\S\4S jrS\S\4S jrSS\S\S\4S	 jjrS
r	g)SimpleMappingi
  keyr%  c                     g r[   re   r_   r  s     ra   __getitem__SimpleMapping.__getitem__
      rd   rR  c                     g r[   re   r_   r  rR  s      ra   __setitem__SimpleMapping.__setitem__
  r  rd   Nr1  c                     g r[   re   r_   r  r1  s      ra   getSimpleMapping.get
  r  rd   re   r[   )
rf   rg   rh   ri   r  r	  r  r  r  rj   re   rd   ra   r  r  
  sG    r b r " r B "  rd   r  c                   H    \ rS rSrS rS\4S jrS\4S jrS	S\4S jjrSr	g)
MySimpleMappingi
  c                     0 U l         g r[   storer   s    ra   r   MySimpleMapping.__init__
  s	    
rd   r  c                      U R                   U   $ r[   r  r  s     ra   r  MySimpleMapping.__getitem__
  s    zz#rd   c                      X R                   U'   g r[   r  r  s      ra   r  MySimpleMapping.__setitem__
  s    

3rd   Nc                 F     U R                   U   $ ! [         a    Us $ f = fr[   )r  KeyErrorr  s      ra   r  MySimpleMapping.get
  s)    	::c?" 	N	s      r  r[   )
rf   rg   rh   ri   r   r  r  r  r  rj   re   rd   ra   r  r  
  s0    s  s  s  rd   r  c                   *    \ rS rSr% \\S'   \\S'   Srg)
Coordinatei
  r   r   re   Nrf   rg   rh   ri   r   r  rj   re   rd   ra   r(  r(  
      
F
Frd   r(  c                        \ rS rSr% \\S'   Srg)Pointi
  labelre   Nrf   rg   rh   ri   r  r  rj   re   rd   ra   r,  r,  
  s    Jrd   r,  c                   4    \ rS rSr% \\S'   \\S'   \\S'   Srg)MyPointi
  r   r   r-  re   Nrf   rg   rh   ri   r   r  r  rj   re   rd   ra   r0  r0  
  s    
F
FJrd   r0  c                        \ rS rSr% \\S'   Srg)XAxisi
  r   re   Nr)  re   rd   ra   r3  r3  
      
Frd   r3  c                        \ rS rSr% \\S'   Srg)YAxisi
  r   re   Nr)  re   rd   ra   r6  r6  
  r4  rd   r6  c                       \ rS rSrSrg)Positioni
  re   Nr}   re   rd   ra   r8  r8  
  s    rd   r8  c                   2    \ rS rSr% \\S'   S\S\4S jrSrg)Protoi
  attrr$  r%  c                     g r[   re   r_   r$  s     ra   meth
Proto.meth
  r  rd   re   N)	rf   rg   rh   ri   r   r  r  r>  rj   re   rd   ra   r:  r:  
  s    
I  rd   r:  c                       \ rS rSrSrg)Concretei
  re   Nr}   re   rd   ra   rA  rA  
  r~   rd   rA  c                   6    \ rS rSr% Sr\\S'   S\S\4S jrSr	g)	Otheri
  rm   r;  r$  r%  c                     US:X  a  gg)Nthisrm   r   re   r=  s     ra   r>  
Other.meth
  s    &=rd   re   N)
rf   rg   rh   ri   r;  r   r  r  r>  rj   re   rd   ra   rC  rC  
  s    D#M  rd   rC  c                   *    \ rS rSr% \\S'   \\S'   Srg)NTi  r   r   re   Nr)  re   rd   ra   rH  rH    r*  rd   rH  c                   4    \ rS rSr% \R
                  \S'   Srg)HasCallProtocoli  r  re   N)rf   rg   rh   ri   r\   r"   r  rj   re   rd   ra   rJ  rJ    s    oord   rJ  c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSI rKSJ rLSK rMSL rNSM rOSN rPSO rQSPrRgQ)RProtocolTestsi  c                 d   [          " S S[        5      5       n " S S5      n " S S5      nS nU R                  X15        U R                  U" 5       U5        U R	                  X!5        U R                  U" 5       U5        U R	                  [        R                  U5        U R                  XA5        g )Nc                       \ rS rSrS rSrg),ProtocolTests.test_basic_protocol.<locals>.Pi  c                     g r[   re   r   s    ra   r>  1ProtocolTests.test_basic_protocol.<locals>.P.meth      rd   re   Nrf   rg   rh   ri   r>  rj   re   rd   ra   rQ  rO        rd   rQ  c                       \ rS rSrSrg),ProtocolTests.test_basic_protocol.<locals>.Ci  re   Nr}   re   rd   ra   r}  rV        rd   r}  c                       \ rS rSrS rSrg),ProtocolTests.test_basic_protocol.<locals>.Di  c                     g r[   re   r   s    ra   r>  1ProtocolTests.test_basic_protocol.<locals>.D.meth  rR  rd   re   NrS  re   rd   ra   r  rY        rd   r  c                      g r[   re   re   rd   ra   r`   ,ProtocolTests.test_basic_protocol.<locals>.f  rc  rd   )r*   r'   r;  r   assertNotIsSubclassr   rQ  rR  )r_   rQ  r}  r  r`   s        ra   test_basic_protocol!ProtocolTests.test_basic_protocol  s    		 	 
	 		 		 	a#ac1%  &  a(  !3!3Q7  &rd   c                     U R                  [        S5         [        S " 5       5       nS S S 5        g ! , (       d  f       g = f)Nz:@runtime_checkable can be only applied to protocol classesc                  0   ^ S 7=n 4m " U4S jST7
o5      $ )r   c                      > \ rS rSr Y rSrg)FProtocolTests.test_runtime_checkable_generic_non_protocol.<locals>.Fooi*  re   NrF  rH  s   ra   r   re  *  s     rd   r   re   rJ  s     @ra   <generic parameters of Foo>^ProtocolTests.test_runtime_checkable_generic_non_protocol.<locals>.<generic parameters of Foo>*  s    rd   )r  r   r*   r_   r   s     ra   +test_runtime_checkable_generic_non_protocol9ProtocolTests.test_runtime_checkable_generic_non_protocol$  s6    ##H
  
 
 
s	   2
A c                     [         S " 5       5       n " S S5      nU R                  X!5         " S S5      nU R                  X15        g )Nc                  @   ^^ S 7=m4m " UU4S jST7
n [         U 5      $ )r   c                   ,   > \ rS rSr Y rS Y4S jrSrg)9ProtocolTests.test_runtime_checkable_generic.<locals>.Fooi.  r%  c                     g r[   re   r   s    ra   r>  >ProtocolTests.test_runtime_checkable_generic.<locals>.Foo.meth0      rd   re   Nrf   rg   rh   ri   rG  r>  rj   rI  r   s   ra   r   rn  .  s     $a$rd   r   r'   rK  rI  r   s    @@ra   rf  QProtocolTests.test_runtime_checkable_generic.<locals>.<generic parameters of Foo>.  s     	% 	%X 	%rd   c                   "    \ rS rSrS\4S jrSrg):ProtocolTests.test_runtime_checkable_generic.<locals>.Impli2  r%  c                     g r[   re   r   s    ra   r>  ?ProtocolTests.test_runtime_checkable_generic.<locals>.Impl.meth3  ra  rd   re   Nrf   rg   rh   ri   r   r>  rj   re   rd   ra   Implrx  2  s
    &c&rd   r|  c                   "    \ rS rSrS\4S jrSrg)=ProtocolTests.test_runtime_checkable_generic.<locals>.NotImpli7  r%  c                     g r[   re   r   s    ra   methodDProtocolTests.test_runtime_checkable_generic.<locals>.NotImpl.method8  rf  rd   re   N)rf   rg   rh   ri   r   r  rj   re   rd   ra   NotImplr~  7  s
    ((rd   r  )r*   r;  r_  )r_   r   r|  r  s       ra   test_runtime_checkable_generic,ProtocolTests.test_runtime_checkable_generic-  sH    		% 
	%	' 	' 	d(	) 	) 	  .rd   c                     [          " S S[        5      5       nS " 5       nS " 5       nU R                  U" S5      U5        U R                  U" S5      U5        g )Nc                        \ rS rSr% \\S'   Srg)IProtocolTests.test_pep695_generics_can_be_runtime_checkable.<locals>.HasXi=  r   re   Nr)  re   rd   ra   HasXr  =      Frd   r  c                  4   ^^ S 7=m4m " UU4S jST7
o 5      $ )r   c                   0   > \ rS rSr Y r%  Y\S'   S rSrg)HProtocolTests.test_pep695_generics_can_be_runtime_checkable.<locals>.BariA  r   c                     Xl         g r[   r   r   s     ra   r   QProtocolTests.test_pep695_generics_can_be_runtime_checkable.<locals>.Bar.__init__C  r   rd   r   N)rf   rg   rh   ri   rG  r  r   rj   rs  s   ra   r   r  A  s     Drd   r   re   ru  s    @@ra   <generic parameters of Bar>`ProtocolTests.test_pep695_generics_can_be_runtime_checkable.<locals>.<generic parameters of Bar>A  s    ! 	 	 	rd   c                  0   ^ S 7=n 4m " U4S jST7
o5      $ )r   c                   .   > \ rS rSr Y r% \\S'   S rSrg)MProtocolTests.test_pep695_generics_can_be_runtime_checkable.<locals>.CapybaraiF  r   c                     Xl         g r[   r   )r_   r   s     ra   r   VProtocolTests.test_pep695_generics_can_be_runtime_checkable.<locals>.Capybara.__init__H  r   rd   r   N)	rf   rg   rh   ri   rG  r  r  r   rj   rH  s   ra   Capybarar  F  s     Frd   r  re   rJ  s     @ra    <generic parameters of Capybara>eProtocolTests.test_pep695_generics_can_be_runtime_checkable.<locals>.<generic parameters of Capybara>F  s    q 	 	 	rd   rm   rL  r*   r'   r   r   )r_   r  r   r  s       ra   -test_pep695_generics_can_be_runtime_checkable;ProtocolTests.test_pep695_generics_can_be_runtime_checkable<  sO    		8 	 
		
	
 	c!fd+  #5rd   c                    [          " S S[        5      5       n " S S5      nS n[        [        [        U[
        R                  4 H  nU R                  XA5        M     [        5       SS[        U4 H  nU R                  XA5        M     g )Nc                       \ rS rSrSrg)FProtocolTests.test_everything_implements_empty_protocol.<locals>.EmptyiO  re   Nr}   re   rd   ra   Emptyr  O      rd   r  c                       \ rS rSrSrg)BProtocolTests.test_everything_implements_empty_protocol.<locals>.CiS  re   Nr}   re   rd   ra   r}  r  S  rD  rd   r}  c                      g r[   re   re   rd   ra   r`   BProtocolTests.test_everything_implements_empty_protocol.<locals>.fV  rc  rd   rm   re   )
r*   r'   r  r   ri  rQ  rR  r;  r\   r   )r_   r  r}  r`   things        ra   )test_everything_implements_empty_protocol7ProtocolTests.test_everything_implements_empty_protocolN  s{    		H 	 
		 		 dE1e.@.@AE!!%/ Bh2vq1E!!%/ 2rd   c                 6    S nU R                  U[        5        g )Nc                      g r[   re   re   rd   ra   r`   :ProtocolTests.test_function_implements_protocol.<locals>.f_  rc  rd   )r   rJ  r^   s     ra   !test_function_implements_protocol/ProtocolTests.test_function_implements_protocol^  s    	 	a1rd   c                 8    " S S5      n " S S[         5      nU R                  [        5          " S SU[         5      nS S S 5        U R                  [        5          " S S[         U5      nS S S 5        U R                  [        5          " S	 S
X![         5      nS S S 5         " S SX!5      n " S SX5      nU R                  U" 5       U5        U R                  U" 5       U5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nu= f)Nc                       \ rS rSrSrg)9ProtocolTests.test_no_inheritance_from_nominal.<locals>.Cie  re   Nr}   re   rd   ra   r}  r  e  rW  rd   r}  c                       \ rS rSrSrg):ProtocolTests.test_no_inheritance_from_nominal.<locals>.BPig  re   Nr}   re   rd   ra   BPr  g  s    Drd   r  c                       \ rS rSrSrg)9ProtocolTests.test_no_inheritance_from_nominal.<locals>.Pij  re   Nr}   re   rd   ra   rQ  r  j  r  rd   rQ  c                       \ rS rSrSrg)9ProtocolTests.test_no_inheritance_from_nominal.<locals>.Qim  re   Nr}   re   rd   ra   Qr  m  r  rd   r  c                       \ rS rSrSrg)9ProtocolTests.test_no_inheritance_from_nominal.<locals>.Rip  re   Nr}   re   rd   ra   Rr  p  r  rd   r  c                       \ rS rSrSrg)9ProtocolTests.test_no_inheritance_from_nominal.<locals>.Dis  re   Nr}   re   rd   ra   r  r  s  r   rd   r  c                       \ rS rSrSrg)9ProtocolTests.test_no_inheritance_from_nominal.<locals>.Eiu  re   Nr}   re   rd   ra   r  r  u  r   rd   r  )r'   r   r   r   )r_   r}  r  rQ  r  r  r  r  s           ra    test_no_inheritance_from_nominal.ProtocolTests.test_no_inheritance_from_nominald  s      y)Ax  * y)Ha  * y)B8  * 	  a(  a( *) *) *)s#   C)C:D)
C7:
D
Dc                 f    " S S[         [        5      nU R                  [        R                  " U5      S15         " S S[         [
        [           [        5      nU R                  [        R                  " U5      S15        S " 5       nU R                  [        R                  " U5      S15        g )	Nc                        \ rS rSr% \\S'   Srg)5ProtocolTests.test_inheritance_from_object.<locals>.Pi|  r   re   Nr)  re   rd   ra   rQ  r  |      Frd   rQ  r   c                        \ rS rSr% \\S'   Srg)>ProtocolTests.test_inheritance_from_object.<locals>.OldGenerici  r   re   Nrf   rg   rh   ri   r   r  rj   re   rd   ra   
OldGenericr        Drd   r  r   c                  J   ^^ S 7=m4m " UU4S jST7
n [         [        U 5      $ )r   c                   *   > \ rS rSr Y r%  Y\S'   Srg)>ProtocolTests.test_inheritance_from_object.<locals>.NewGenerici  r  re   Nrf   rg   rh   ri   rG  r  rj   rs  s   ra   
NewGenericr    
     Drd   r  )r'   r  ru  s    @@ra   "<generic parameters of NewGeneric>VProtocolTests.test_inheritance_from_object.<locals>.<generic parameters of NewGeneric>  s     	 	Hf 	rd   r  )r'   r  r   r\   r.   r#   r   )r_   rQ  r  r  s       ra   test_inheritance_from_object*ProtocolTests.test_inheritance_from_objectz  s    	& 	 	44Q7#?	71:v 	 	44Z@3%H	 	44Z@3%Hrd   c                     " S S[         5      nU R                  [        5         U" 5         S S S 5         " S SU5      nU R                  U" 5       U5        U R                  [        5         U" S5        S S S 5        [	        S5      n " S S[         U   5      nU R                  [        5         U" 5         S S S 5        U R                  [        5         U[
           " 5         S S S 5        U R                  [        5         XC   " 5         S S S 5         " S	 S
XC   5      nU R                  U[
           " 5       U5        U R                  [        5         U[
           " S5        S S S 5        g ! , (       d  f       GNE= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrSrg).ProtocolTests.test_no_instantiation.<locals>.Pi  re   Nr}   re   rd   ra   rQ  r    s    4rd   rQ  c                       \ rS rSrSrg).ProtocolTests.test_no_instantiation.<locals>.Ci  re   Nr}   re   rd   ra   r}  r        Drd   r}  r   r   c                       \ rS rSrSrg)/ProtocolTests.test_no_instantiation.<locals>.PGi  re   Nr}   re   rd   ra   PGr    r#  rd   r  c                       \ rS rSrSrg)/ProtocolTests.test_no_instantiation.<locals>.CGi  re   Nr}   re   rd   ra   CGr    r   rd   r  )r'   r   r   r   r   r   )r_   rQ  r}  r   r  r  s         ra   test_no_instantiation#ProtocolTests.test_no_instantiation  s2   y)C * 	ac1%y)bE * CL#!#y)D *y)sGI *y)EG * 	bgi,y)sGBK *)/ *) *) *))))) *)sG   E+,	E=/FF  
F1G+
E:=
F
F 
F.1
F?
Gc                      " S S[         5      n " S S5      nU" 5       nUR                  US5        U R                  UR                  S5        g )Nc                   2    \ rS rSr% \\S'   S\SS4S jrSrg)LProtocolTests.test_protocol_defining_init_does_not_get_overridden.<locals>.Pi  r   r%  Nc                     Xl         g r[   r   r   s     ra   r   UProtocolTests.test_protocol_defining_init_does_not_get_overridden.<locals>.P.__init__  r   rd   r   rf   rg   rh   ri   r   r  r   rj   re   rd   ra   rQ  r        F# $ rd   rQ  c                       \ rS rSrSrg)LProtocolTests.test_protocol_defining_init_does_not_get_overridden.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    rW  rd   r}  rm   )r'   r   r   r   r_   rQ  r}  r  s       ra   3test_protocol_defining_init_does_not_get_overriddenAProtocolTests.test_protocol_defining_init_does_not_get_overridden  s>    	 	 	C	

1aa rd   c                      " S S[         5      n " S SU5      nU" S5      nU R                  X25        U R                  UR                  S5        g )Nc                   2    \ rS rSr% \\S'   S\SS4S jrSrg)JProtocolTests.test_concrete_class_inheriting_init_from_protocol.<locals>.Pi  r   r%  Nc                     Xl         g r[   r   r   s     ra   r   SProtocolTests.test_concrete_class_inheriting_init_from_protocol.<locals>.P.__init__  r   rd   r   r  re   rd   ra   rQ  r    r  rd   rQ  c                       \ rS rSrSrg)JProtocolTests.test_concrete_class_inheriting_init_from_protocol.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    r  rd   r}  rm   )r'   r   r   r   r  s       ra   1test_concrete_class_inheriting_init_from_protocol?ProtocolTests.test_concrete_class_inheriting_init_from_protocol  sC    	 	
 	aDa#a rd   c                     [          " S S[        5      5       n " S SU5      n " S SU5      nU R                  [        5         U" 5         S S S 5        U R	                  U" 5       U5        g ! , (       d  f       N&= f)Nc                   @    \ rS rSr\R
                  S\4S j5       rSrg)9ProtocolTests.test_cannot_instantiate_abstract.<locals>.Pi  r%  c                     [         er[   )NotImplementedErrorr   s    ra   ameth?ProtocolTests.test_cannot_instantiate_abstract.<locals>.P.ameth  s    ))rd   re   N)	rf   rg   rh   ri   r  abstractmethodr   r  rj   re   rd   ra   rQ  r    s!    *s *  *rd   rQ  c                       \ rS rSrSrg)9ProtocolTests.test_cannot_instantiate_abstract.<locals>.Bi  re   Nr}   re   rd   ra   r  r     rD  rd   r  c                   "    \ rS rSrS\4S jrSrg)9ProtocolTests.test_cannot_instantiate_abstract.<locals>.Ci  r%  c                     g)N   re   r   s    ra   r  ?ProtocolTests.test_cannot_instantiate_abstract.<locals>.C.ameth      rd   re   N)rf   rg   rh   ri   r   r  rj   re   rd   ra   r}  r    s    s rd   r}  )r*   r'   r   r   r   )r_   rQ  r  r}  s       ra    test_cannot_instantiate_abstract.ProtocolTests.test_cannot_instantiate_abstract  sh    		* 	* 
	*
	 		 	 y)C *ac1% *)s   A,,
A:c                     " S S[         5      n[         " S SU[         5      5       n " S S5      n " S S5      n " S	 S
5      nU R                  U" 5       U5        U R                  U" 5       U5        U R                  XB5        U R                  XR5        U R	                  U" 5       U5        U R                  X25        g )Nc                       \ rS rSrS rSrg)5ProtocolTests.test_subprotocols_extending.<locals>.P1i  c                     g r[   re   r   s    ra   meth1;ProtocolTests.test_subprotocols_extending.<locals>.P1.meth1  rR  rd   re   Nrf   rg   rh   ri   r  rj   re   rd   ra   P1r    r\  rd   r  c                       \ rS rSrS rSrg)5ProtocolTests.test_subprotocols_extending.<locals>.P2i  c                     g r[   re   r   s    ra   meth2;ProtocolTests.test_subprotocols_extending.<locals>.P2.meth2  rR  rd   re   Nrf   rg   rh   ri   r  rj   re   rd   ra   r  r    rT  rd   r  c                        \ rS rSrS rS rSrg)4ProtocolTests.test_subprotocols_extending.<locals>.Ci  c                     g r[   re   r   s    ra   r  :ProtocolTests.test_subprotocols_extending.<locals>.C.meth1  rR  rd   c                     g r[   re   r   s    ra   r  :ProtocolTests.test_subprotocols_extending.<locals>.C.meth2  rR  rd   re   Nrf   rg   rh   ri   r  r  rj   re   rd   ra   r}  r        rd   r}  c                       \ rS rSrS rSrg)5ProtocolTests.test_subprotocols_extending.<locals>.C1i  c                     g r[   re   r   s    ra   r  ;ProtocolTests.test_subprotocols_extending.<locals>.C1.meth1  rR  rd   re   Nr  re   rd   ra   r  r     r\  rd   r  c                       \ rS rSrS rSrg)5ProtocolTests.test_subprotocols_extending.<locals>.C2i  c                     g r[   re   r   s    ra   r  ;ProtocolTests.test_subprotocols_extending.<locals>.C2.meth2  rR  rd   re   Nr  re   rd   ra   r  r$    r\  rd   r  r'   r*   r   r_  r   r;  )r_   r  r  r}  r  r  s         ra   test_subprotocols_extending)ProtocolTests.test_subprotocols_extending  s    	 	 
	X 	 
		 		 		 	 	  r*  r*  (  (ac2&a$rd   c                     " S S[         5      n " S S[         5      n[         " S SX[         5      5       n " S S5      n " S	 S
5      n " S S5      nU R                  U" 5       U5        U R                  U" 5       U5        U R                  XS5        U R                  Xc5        U R	                  U" 5       U5        U R                  XC5        g )Nc                       \ rS rSrS rSrg)3ProtocolTests.test_subprotocols_merging.<locals>.P1i  c                     g r[   re   r   s    ra   r  9ProtocolTests.test_subprotocols_merging.<locals>.P1.meth1  rR  rd   re   Nr  re   rd   ra   r  r,    r\  rd   r  c                       \ rS rSrS rSrg)3ProtocolTests.test_subprotocols_merging.<locals>.P2i  c                     g r[   re   r   s    ra   r  9ProtocolTests.test_subprotocols_merging.<locals>.P2.meth2  rR  rd   re   Nr  re   rd   ra   r  r0    r\  rd   r  c                       \ rS rSrSrg)2ProtocolTests.test_subprotocols_merging.<locals>.Pi  re   Nr}   re   rd   ra   rQ  r4    r  rd   rQ  c                        \ rS rSrS rS rSrg)2ProtocolTests.test_subprotocols_merging.<locals>.Ci  c                     g r[   re   r   s    ra   r  8ProtocolTests.test_subprotocols_merging.<locals>.C.meth1  rR  rd   c                     g r[   re   r   s    ra   r  8ProtocolTests.test_subprotocols_merging.<locals>.C.meth2  rR  rd   re   Nr  re   rd   ra   r}  r6    r  rd   r}  c                       \ rS rSrS rSrg)3ProtocolTests.test_subprotocols_merging.<locals>.C1i  c                     g r[   re   r   s    ra   r  9ProtocolTests.test_subprotocols_merging.<locals>.C1.meth1	  rR  rd   re   Nr  re   rd   ra   r  r<    r\  rd   r  c                       \ rS rSrS rSrg)3ProtocolTests.test_subprotocols_merging.<locals>.C2i  c                     g r[   re   r   s    ra   r  9ProtocolTests.test_subprotocols_merging.<locals>.C2.meth2  rR  rd   re   Nr  re   rd   ra   r  r@    r\  rd   r  r'  )r_   r  r  rQ  r}  r  r  s          ra   test_subprotocols_merging'ProtocolTests.test_subprotocols_merging  s    	 		 	 
	 	 
		 		 		 	 	  q)  q)  '  'ac1%a#rd   c                    [        S5      n[         " S S[        5      5       n[         " S S[        U   5      5       n " S S[        5      n " S S	[        U   5      n " S
 S5      nU R                  Xb5        U R                  Xc5        U R                  XC5        SnU R	                  [
        U5         [        XcU   5        S S S 5        U R	                  [
        U5         [        XcU   5        S S S 5        SnU R	                  [
        U5         [        Xd5        S S S 5        U R	                  [
        U5         [        Xe5        S S S 5        U R	                  [
        U5         [        X#U   5        S S S 5        U R	                  [
        U5         [        X3[           5        S S S 5        Sn	U R	                  [
        U	5         [        SU5        S S S 5        U R	                  [
        U	5         [        SU5        S S S 5        U R	                  [
        U	5         [        SU5        S S S 5        U R	                  [
        U	5         [        SU5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNj= f! , (       d  f       GNR= f! , (       d  f       GN7= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   c                       \ rS rSrS rSrg)2ProtocolTests.test_protocols_issubclass.<locals>.Pi  c                     g r[   re   r   s    ra   r   4ProtocolTests.test_protocols_issubclass.<locals>.P.x      rd   re   Nrf   rg   rh   ri   r   rj   re   rd   ra   rQ  rG        rd   rQ  c                       \ rS rSrS rSrg)3ProtocolTests.test_protocols_issubclass.<locals>.PGi  c                     g r[   re   r   s    ra   r   5ProtocolTests.test_protocols_issubclass.<locals>.PG.x   rJ  rd   re   NrK  re   rd   ra   r  rN    rL  rd   r  c                       \ rS rSrS rSrg)5ProtocolTests.test_protocols_issubclass.<locals>.BadPi"  c                     g r[   re   r   s    ra   r   7ProtocolTests.test_protocols_issubclass.<locals>.BadP.x#  rJ  rd   re   NrK  re   rd   ra   BadPrR  "      rd   rU  c                       \ rS rSrS rSrg)6ProtocolTests.test_protocols_issubclass.<locals>.BadPGi%  c                     g r[   re   r   s    ra   r   8ProtocolTests.test_protocols_issubclass.<locals>.BadPG.x&  rJ  rd   re   NrK  re   rd   ra   BadPGrX  %  rV  rd   r[  c                       \ rS rSrS rSrg)2ProtocolTests.test_protocols_issubclass.<locals>.Ci(  c                     g r[   re   r   s    ra   r   4ProtocolTests.test_protocols_issubclass.<locals>.C.x)  rJ  rd   re   NrK  re   rd   ra   r}  r]  (  rV  rd   r}  BSubscripted generics cannot be used with class and instance checksLInstance and class checks can only be used with @runtime_checkable protocols$issubclass\(\) arg 1 must be a classrm   )r   r*   r'   r;  r  r   r   r   )
r_   r   rQ  r  rU  r[  r}  no_subscripted_generics only_runtime_checkable_protocolsonly_classes_alloweds
             ra   test_protocols_issubclass'ProtocolTests.test_protocols_issubclass  s\   CL		 	 
	 
	! 	 
		8 		HQK 		 	 	a#a$d' Q 	  ##I/FGqQ%  H##I/FGqQ%  H+ 	)
 ##I/OPq Q##I/OPq  Q ##I/FGqQ%  H##I/FGrc7# H  G##I/CDq! E##I/CDq" E##I/CDq$ E##I/CDq%  ED9 HGGG QPPP HGGG
 EDDDDDDDsx   5I"I.J ;J%J$J6K0KK*K;
I+.
I= 
J
J!$
J36
K
K
K'*
K8;
L	c                    [          " S S[        5      5       n " S S[        5      n " S S[        5      n " S S[        5      n " S	 S
[        5      n " S S[        5      n " S S[        5      nX#UXVU4 H6  nU R                  UR                  S9   U R	                  X5        S S S 5        M8      " S S[        5      n	 " S S[        5      n
U R                  X5        U R                  X5         " S S5      n " S S5      n " S S5      n " S S5      nU R                  X5        U R	                  X5        U R	                  X5        U R	                  X5        g ! , (       d  f       M  = f)Nc                       \ rS rSrS rSrg)ZProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.CallableMembersProtoiS  c                     g r[   re   r   s    ra   r>  _ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.CallableMembersProto.methU      Crd   re   NrS  re   rd   ra   CallableMembersProtorj  S      rd   rn  c                       \ rS rSrS rSrg)TProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.IdenticalProtoi[  c                     g r[   re   r   s    ra   r>  YProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.IdenticalProto.meth\  rm  rd   re   NrS  re   rd   ra   IdenticalProtorq  [  s    rd   rt  c                        \ rS rSrS rS rSrg)SProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.SupersetProtoi^  c                     g r[   re   r   s    ra   r>  XProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.SupersetProto.meth_  rm  rd   c                     g r[   re   r   s    ra   r  YProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.SupersetProto.meth2`      Srd   re   N)rf   rg   rh   ri   r>  r  rj   re   rd   ra   SupersetProtorv  ^  s     rd   r|  c                   *    \ rS rSr% \/ S4   \S'   Srg)]ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NonCallableMembersProtoib  Nr>  re   rf   rg   rh   ri   r"   r  rj   re   rd   ra   NonCallableMembersProtor~  b      2t8$$rd   r  c                   B    \ rS rSr% \/ S4   \S'   \\\/\4   \S'   Sr	g)eProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NonCallableMembersSupersetProtoie  Nr>  r  re   )
rf   rg   rh   ri   r"   r  r  r   r  rj   re   rd   ra   NonCallableMembersSupersetProtor  e  s%    2t8$$S#J,--rd   r  c                   0    \ rS rSr% \/ S4   \S'   S rSrg)XProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.MixedMembersProto1ii  Nr>  c                     g r[   re   r   s    ra   r  ^ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.MixedMembersProto1.meth2k  r{  rd   re   )rf   rg   rh   ri   r"   r  r  rj   re   rd   ra   MixedMembersProto1r  i      2t8$$ rd   r  c                   4    \ rS rSr% S r\\\/\4   \	S'   Sr
g)XProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.MixedMembersProto2im  c                     g r[   re   r   s    ra   r>  ]ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.MixedMembersProto2.methn  rm  rd   r  re   N)rf   rg   rh   ri   r>  r"   r  r   r  r  rj   re   rd   ra   MixedMembersProto2r  m  s    S#J,--rd   r  ro   c                       \ rS rSrSrg)SProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.EmptyProtocoli{  re   Nr}   re   rd   ra   EmptyProtocolr  {      srd   r  c                       \ rS rSrS rSrg)WProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.UnrelatedProtocoli|  c                     g r[   re   r   s    ra   wut[ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.UnrelatedProtocol.wut}      3rd   re   N)rf   rg   rh   ri   r  rj   re   rd   ra   UnrelatedProtocolr  |  s    rd   r  c                   *    \ rS rSr% \/ S4   \S'   Srg)^ProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.AnnotatedButNotAProtocoli  Nr>  re   r  re   rd   ra   AnnotatedButNotAProtocolr    r  rd   r  c                       \ rS rSrS rSrg)gProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclassi  c                     g r[   re   r   s    ra   r>  lProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass.meth      Drd   re   NrS  re   rd   ra   !NotAProtocolButAnImplicitSubclassr         rd   r  c                   0    \ rS rSr% \/ S4   \S'   S rSrg)hProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass2i  Nr>  c                     g r[   re   r   s    ra   r>  mProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass2.meth  r  rd   re   )rf   rg   rh   ri   r"   r  r>  rj   re   rd   ra   "NotAProtocolButAnImplicitSubclass2r    r  rd   r  c                   N    \ rS rSr% \/ S4   \S'   \\\/\4   \S'   S r	S r
Srg)hProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass3i  Nr>  r  c                     g r[   re   r   s    ra   r>  mProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass3.meth  r  rd   c                     g)NTre   r_   r   r   s      ra   r  nProtocolTests.test_implicit_issubclass_between_two_protocols.<locals>.NotAProtocolButAnImplicitSubclass3.meth2  s    $rd   re   )rf   rg   rh   ri   r"   r  r   r  r  r>  r  rj   re   rd   ra   "NotAProtocolButAnImplicitSubclass3r    s+    2t8$$S#J,-- .rd   r  )r*   r'   rt   rf   r;  r_  )r_   rn  rt  r|  r  r  r  r  rp   r  r  r  r  r  r  s                  ra   .test_implicit_issubclass_between_two_protocols<ProtocolTests.test_implicit_issubclass_between_two_protocolsR  sL   		 8 	  
	 	 X 	 	!H 	!	%h 	%	.h 	.	! 	!	. 	.
 +B+AS
E ENN3%%eB 43	
 	+H*	 	 	  E  !2I	% 	%	! 	!	! 	!	/ 	/ 	  !9P?V@W@WK 43s   E  
E/	c                 p   U R                  [        R                  5        [        R                  " 5         U R	                  [
        S5          " S S[        R                  R                  [        5      nS S S 5        U R                  / [        R                  R                  5        g ! , (       d  f       N9= f)Nz/Protocols can only inherit from other protocolsc                       \ rS rSrSrg)CProtocolTests.test_isinstance_checks_not_at_whim_of_gc.<locals>.Fooi  re   Nr}   re   rd   ra   r   r    r  rd   r   )
addCleanupgcenabledisabler  r   r  r  r	  r'   r   rh  s     ra   (test_isinstance_checks_not_at_whim_of_gc6ProtocolTests.test_isinstance_checks_not_at_whim_of_gc  ss    		"


##=
koo--x 	
 	  [__%<%<=
 
s   )B''
B5c                 h    " S S5      nU R                  [        [        5        U R                  [        5       [        5        U R                  [        [        5        U R                  S[        5        U R                  U[        5        U R                  U" 5       [        5        SnU R                  [        U5         [        S[        5        S S S 5        U R                  [        U5         [        S[        5        S S S 5        U R                  [        U5         [        U" 5       [        5        S S S 5        [        S5      n[         " S S[        5      5       n[         " S	 S
[        5      5       n[         " S S[        U   5      5       nXEU4 H;  nU R                  UR                  S9   U R                  U[        5        S S S 5        M=     U R                  [        U5        U R                  [        5       U5        U R                  [        [        5        U R                  [        5       [        5        U R                  [        U5        U R                  SU5        U R                  [        [        5        U R                  S[        5        U R                  X5        U R                  U" 5       U5        U R                  U[        5        U R                  U" 5       [        5        g ! , (       d  f       GN%= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GM  = f)Nc                       \ rS rSrS rSrg)JProtocolTests.test_issubclass_and_isinstance_on_Protocol_itself.<locals>.Ci  c                     g r[   re   r   s    ra   r   LProtocolTests.test_issubclass_and_isinstance_on_Protocol_itself.<locals>.C.x  s    rd   re   NrK  re   rd   ra   r}  r    s    rd   r}  rX  rb  rm   r   c                       \ rS rSrSrg)VProtocolTests.test_issubclass_and_isinstance_on_Protocol_itself.<locals>.EmptyProtocoli  re   Nr}   re   rd   ra   r  r    s    '+rd   r  c                   &    \ rS rSrS\S\4S jrSrg)[ProtocolTests.test_issubclass_and_isinstance_on_Protocol_itself.<locals>.SupportsStartsWithi  r   r%  c                     g r[   re   r   s     ra   
startswithfProtocolTests.test_issubclass_and_isinstance_on_Protocol_itself.<locals>.SupportsStartsWith.startswith  s    #rd   re   Nrf   rg   rh   ri   r  r  r  rj   re   rd   ra   SupportsStartsWithr    s    5C5D5rd   r  c                       \ rS rSrS rSrg)RProtocolTests.test_issubclass_and_isinstance_on_Protocol_itself.<locals>.SupportsXi  c                     g r[   re   r   s    ra   r   TProtocolTests.test_issubclass_and_isinstance_on_Protocol_itself.<locals>.SupportsX.x  rJ  rd   re   NrK  re   rd   ra   	SupportsXr    rL  rd   r  ro   )r_  r  r'   r   r  r  r   r   r   r*   rt   rf   r;  r   )r_   r}  re  r   r  r  r  rp   s           ra   1test_issubclass_and_isinstance_on_Protocol_itself?ProtocolTests.test_issubclass_and_isinstance_on_Protocol_itself  s[   	 	 	  2  84  h/  1  H-  h/F##I/CDq(# E##I/CDuh' E##I/CDqsH% E CL	+H+ 
+		6 	6 
	6 
	 	 
	 #	AEENN3%%eX6 43 B 	fm4fh6  2  84c#56e%78  h/  1a+ac9-  H-  h/U EDDDDD" 43s0   <K++K=L.L!+
K:=
L
L!
L1	c                     " S S5      n[          " S S[        5      5       nSnU R                  [        U5         [	        X5        S S S 5        U R                  U" 5       U5        UR                  U5        U R                  [        U5         [	        X5        S S S 5        U R                  U" 5       U5         " S SU5      nU R                  X5        U R                  U" 5       U5        UR                  U5        U R                  X5        U R                  U" 5       U5        U R                  [        U5         [	        XB5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)Nc                       \ rS rSrSrSrg)?ProtocolTests.test_protocols_issubclass_non_callable.<locals>.Ci  rm   re   NrK  re   rd   ra   r}  r        Ard   r}  c                       \ rS rSrSrSrg)FProtocolTests.test_protocols_issubclass_non_callable.<locals>.PNonCalli  rm   re   NrK  re   rd   ra   PNonCallr        Ard   r  <Protocols with non-method members don't support issubclass()c                       \ rS rSrSrg)?ProtocolTests.test_protocols_issubclass_non_callable.<locals>.Di  re   Nr}   re   rd   ra   r  r    s    3rd   r  )
r*   r'   r  r   r   r   registerr_  r   r;  )r_   r}  r  non_callable_members_illegalr  s        ra   &test_protocols_issubclass_non_callable4ProtocolTests.test_protocols_issubclass_non_callable  s=   	 	 
	x 	 
	 K 	% ##I/KLq# M 	ac8,!##I/KLq# M 	ac8, 	  &  a(	

1a#ac1%##I/KLq# ML) ML ML MLs#   EE!:E2
E!
E/2
F c                     [          " S S[        5      5       n " S S5      nU R                  U" 5       U5        U R                  [        S5         [        X!5        S S S 5        g ! , (       d  f       g = f)Nc                        \ rS rSr% \\S'   Srg)RProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance.<locals>.Spami  r   re   Nr)  re   rd   ra   Spamr    r  rd   r  c                       \ rS rSrSS jrSrg)RProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance.<locals>.Eggsi  Nc                     SU l         g r   r   r   s    ra   r   [ProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance.<locals>.Eggs.__init__  s	    rd   r   r%  Nr   re   rd   ra   Eggsr    s    rd   r  r  )r*   r'   r   r  r   r   r_   r  r  s      ra   6test_no_weird_caching_with_issubclass_after_isinstanceDProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance  si    		8 	 
		 	 	dfd+ ##J
 t"	
 
 
   A%%
A3c                     [          " S S[        5      5       n " S S5      nU R                  U" 5       U5        U R                  [        S5         [        X!5        S S S 5        g ! , (       d  f       g = f)Nc                        \ rS rSr% \\S'   Srg)TProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_2.<locals>.Spami  r   re   Nr)  re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)TProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_2.<locals>.Eggsi"  re   Nr}   re   rd   ra   r  r  "      Crd   r  r  r*   r'   r   r  r   r   r  s      ra   8test_no_weird_caching_with_issubclass_after_isinstance_2FProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_2  sd    		8 	 
	 	  . ##J
 t"	
 
 
r  c                     [          " S S[        5      5       n " S S5      nU R                  U" 5       U5        U R                  [        S5         [        X!5        S S S 5        g ! , (       d  f       g = f)Nc                        \ rS rSr% \\S'   Srg)TProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_3.<locals>.Spami2  r   re   Nr)  re   rd   ra   r  r  2  r  rd   r  c                       \ rS rSrS rSrg)TProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_3.<locals>.Eggsi6  c                 &    US:X  a  g[        U5      e)Nr   r   AttributeErrorr_   r;  s     ra   __getattr__`ProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_3.<locals>.Eggs.__getattr__7  s    3;$T**rd   re   Nrf   rg   rh   ri   r  rj   re   rd   ra   r  r  6  s    +rd   r  r  r  r  s      ra   8test_no_weird_caching_with_issubclass_after_isinstance_3FProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_31  si    		8 	 
		+ 	+ 	  . ##J
 t"	
 
 
r  c                     [         S " 5       5       nS " 5       nU R                  U" S5      U5        U R                  [        S5         [	        X!5        S S S 5        g ! , (       d  f       g = f)Nc                  @   ^^ S 7=m4m " UU4S jST7
n [         U 5      $ )r   c                   *   > \ rS rSr Y r%  Y\S'   Srg)YProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_pep695.<locals>.SpamiJ  r   re   Nr  rs  s   ra   r  r	  J  s
     Drd   r  rt  ru  s    @@ra   <generic parameters of Spam>qProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_pep695.<locals>.<generic parameters of Spam>J  s     	 	h 	rd   c                  4   ^^ S 7=m4m " UU4S jST7
o 5      $ )r   c                   0   > \ rS rSr Y rS YSS4S jrSrg)YProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_pep695.<locals>.EggsiN  r   r%  Nc                     Xl         g r[   r   r   s     ra   r   bProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_pep695.<locals>.Eggs.__init__O  r   rd   r   )rf   rg   rh   ri   rG  r   rj   rs  s   ra   r  r  N  s     !  rd   r  re   ru  s    @@ra   <generic parameters of Eggs>qProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_pep695.<locals>.<generic parameters of Eggs>N  s    1 	 	 	rd   r   r  )r*   r   r  r   r   r  s      ra   =test_no_weird_caching_with_issubclass_after_isinstance_pep695KProtocolTests.test_no_weird_caching_with_issubclass_after_isinstance_pep695I  s_    		 
		 	d2h- ##J
 t"	
 
 
s   A
A+c                   ^ [        S5      n[         " S S[        5      5       n[         " S S[        U   5      5       n[         " S S[        5      5       n[         " S S	[        5      5       n " S
 S5      m[         " U4S jS[        5      5       n " S S[        5      n " S S[        U   5      n " S S5      n	 " S S5      n
X4 HS  nX#XEU4 HG  nU R                  UR                  UR                  S9   U R                  U" 5       U5        S S S 5        MI     MU     SnU R                  [        U5         [        U	" 5       X1   5        S S S 5        U R                  [        U5         [        U	" 5       X9   5        S S S 5        SnU R                  [        U5         [        U	" 5       U5        S S S 5        U R                  [        U5         [        U	" 5       U5        S S S 5        g ! , (       d  f       GM(  = f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nt= f! , (       d  f       g = f)Nr   c                       \ rS rSrS rSrg)2ProtocolTests.test_protocols_isinstance.<locals>.Pib  c                     g r[   re   r   s    ra   r>  7ProtocolTests.test_protocols_isinstance.<locals>.P.methd  rJ  rd   re   NrS  re   rd   ra   rQ  r  b  rL  rd   rQ  c                       \ rS rSrS rSrg)3ProtocolTests.test_protocols_isinstance.<locals>.PGif  c                     g r[   re   r   s    ra   r>  8ProtocolTests.test_protocols_isinstance.<locals>.PG.methh  rJ  rd   re   NrS  re   rd   ra   r  r  f  rL  rd   r  c                   ,    \ rS rSr\R
                  rSrg);ProtocolTests.test_protocols_isinstance.<locals>.WeirdProtoij  re   N)rf   rg   rh   ri   r  	maketransr>  rj   re   rd   ra   
WeirdProtor  j  s    ==Drd   r!  c                       \ rS rSrS rSrg)<ProtocolTests.test_protocols_isinstance.<locals>.WeirdProto2in  c                      g r[   re   r   r   s     ra   <lambda>EProtocolTests.test_protocols_isinstance.<locals>.WeirdProto2.<lambda>p  s    4rd   re   NrS  re   rd   ra   WeirdProto2r#  n  s    /Drd   r(  c                       \ rS rSrS rSrg)?ProtocolTests.test_protocols_isinstance.<locals>.CustomCallableir  c                     g r[   re   r   s      ra   r  HProtocolTests.test_protocols_isinstance.<locals>.CustomCallable.__call__s  rR  rd   re   Nr  re   rd   ra   CustomCallabler*  r  r\  rd   r-  c                   &   > \ rS rSr Y " 5       rSrg)=ProtocolTests.test_protocols_isinstance.<locals>.WeirderProtoiv  re   NrS  )r-  s   ra   WeirderProtor/  v  s    !#Drd   r0  c                       \ rS rSrS rSrg)5ProtocolTests.test_protocols_isinstance.<locals>.BadPiz  c                     g r[   re   r   s    ra   r>  :ProtocolTests.test_protocols_isinstance.<locals>.BadP.meth{  rJ  rd   re   NrS  re   rd   ra   rU  r2  z  rV  rd   rU  c                       \ rS rSrS rSrg)6ProtocolTests.test_protocols_isinstance.<locals>.BadPGi}  c                     g r[   re   r   s    ra   r>  ;ProtocolTests.test_protocols_isinstance.<locals>.BadPG.meth~  rJ  rd   re   NrS  re   rd   ra   r[  r6  }  rV  rd   r[  c                       \ rS rSrS rSrg)2ProtocolTests.test_protocols_isinstance.<locals>.Ci  c                     g r[   re   r   s    ra   r>  7ProtocolTests.test_protocols_isinstance.<locals>.C.meth  rJ  rd   re   NrS  re   rd   ra   r}  r:    rV  rd   r}  c                       \ rS rSrS rSrg)3ProtocolTests.test_protocols_isinstance.<locals>.C2i  c                     S U l         g )Nc                      g r[   re   re   rd   ra   r&  NProtocolTests.test_protocols_isinstance.<locals>.C2.__init__.<locals>.<lambda>  s    Drd   r>  r   s    ra   r   <ProtocolTests.test_protocols_isinstance.<locals>.C2.__init__  s	    (	rd   rB  Nr   re   rd   ra   r  r>        )rd   r  )klassrp   r`  ra  )	r   r*   r'   rt   rf   r   r  r   r   )r_   r   rQ  r  r!  r(  r0  rU  r[  r}  r  rE  rp   rc  only_runtime_checkable_msgr-  s                  @ra   test_protocols_isinstance'ProtocolTests.test_protocols_isinstance_  s   CL		 	 
	 
	! 	 
	 
	! 	! 
	! 
	0( 	0 
	0	 	 
	$8 	$ 
	$	8 		HQK 		 		) 	) UE
E\\enn\M))%'59 NM F 
 #g##I/FGqsBE" H##I/FGqsBE" H0 	#
 ##I/IJqsD! K##I/IJqsE" KJ# NM
 HGGG KJJJs<   <G-<H .H"H"H3-
G= 
H
H"
H03
Ic           
      &  ^^  " S S5      n " S S5      m " U4S jS5      n " S SU5      n " S	 S
U5      n " S S5      n[        S5      m[         " S S[        5      5       n[         " S S[        5      5       n[         " S S[        T   5      5       n[         " U4S jS[        T   5      5       n	[         " S S[        5      5       n
[         " U4S jS[        T   5      5       nXgXX4 H  nXX44 HG  nU R                  UR                  UR                  S9   U R                  U" 5       U5        S S S 5        MI     U R                  SUR                  S9   U R                  U" 5       U5        S S S 5        M      " S S[        5      n " S S[        5      n " S S [        T   5      n " U4S! jS"[        T   5      nUT   X   U	T   X   UT   X   XUU4
nU Ha  nXX4U4 HU  nU R                  UR                  US#9   U R                  [        5         [        U" 5       U5        S S S 5        S S S 5        MW     Mc     g ! , (       d  f       GM`  = f! , (       d  f       GMz  = f! , (       d  f       NE= f! , (       d  f       M  = f)$Nc                   $    \ rS rSr\S 5       rSrg)MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.Ci  c                     gr   re   r   s    ra   r;  RProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.C.attr      rd   re   Nrf   rg   rh   ri   propertyr;  rj   re   rd   ra   r}  rK    s     rd   r}  c                       \ rS rSrSS jrSrg)\ProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.CustomDescriptori  Nc                     gr   re   r_   objobjtypes      ra   __get__dProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.CustomDescriptor.__get__  r  rd   re   r[   rf   rg   rh   ri   rW  rj   re   rd   ra   CustomDescriptorrR    s    rd   rZ  c                   &   > \ rS rSr Y " 5       rSrg)MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.Di  re   Nrf   rg   rh   ri   r;  rj   rZ  s   ra   r  r\        #%Drd   r  c                       \ rS rSrSrg)MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.Ei  re   Nr}   re   rd   ra   r  ra    r  rd   r  c                       \ rS rSrSrg)MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.Fi  re   Nr}   re   rd   ra   r  rc    r  rd   r  c                       \ rS rSrSrg)QProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.Emptyi  re   Nr}   re   rd   ra   r  re        Srd   r  r   c                   $    \ rS rSr\S 5       rSrg)MProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.Pi  c                     g r[   re   r   s    ra   r;  RProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.P.attr      rd   re   NrO  re   rd   ra   rQ  rh         rd   rQ  c                        \ rS rSr% \\S'   Srg)NProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.P1i  r;  re   Nr)  re   rd   ra   r  rn        Ird   r  c                   $    \ rS rSr\S 5       rSrg)NProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PGi  c                     g r[   re   r   s    ra   r;  SProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PG.attr  rk  rd   re   NrO  re   rd   ra   r  rq    rl  rd   r  c                   $   > \ rS rSr%  Y \S'   Srg)OProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PG1i  r;  re   Nrf   rg   rh   ri   r  rj   r   s   ra   PG1ru        Grd   rx  c                       \ rS rSrS rSrg)SProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.MethodPi  c                     g r[   re   r   s    ra   r;  XProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.MethodP.attr  rm  rd   re   Nr]  re   rd   ra   MethodPr{    ro  rd   r~  c                   &   > \ rS rSrS Y 4S jrSrg)TProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.MethodPGi  r%  c                     g r[   re   r   s    ra   r;  YProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.MethodPG.attr  rq  rd   re   Nr]  rw  s   ra   MethodPGr        $a$rd   r  rE  protocol_classc                   $    \ rS rSr\S 5       rSrg)PProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPi  c                     g r[   re   r   s    ra   r;  UProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadP.attr  rk  rd   re   NrO  re   rd   ra   rU  r         rd   rU  c                        \ rS rSr% \\S'   Srg)QProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadP1i  r;  re   Nr)  re   rd   ra   BadP1r        Ird   r  c                   $    \ rS rSr\S 5       rSrg)QProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPGi  c                     g r[   re   r   s    ra   r;  VProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPG.attr  rk  rd   re   NrO  re   rd   ra   r[  r    r  rd   r[  c                   $   > \ rS rSr%  Y \S'   Srg)RProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPG1i  r;  re   Nrv  rw  s   ra   BadPG1r    s    Grd   r  )rE  rU  )
r   r*   r'   rt   rf   r   r   r   r   r   )r_   r}  r  r  r  r  rQ  r  r  rx  r~  r  r  rE  rU  r  r[  r  casesrU  rZ  r   s                       @@ra   4test_protocols_isinstance_properties_and_descriptorsBProtocolTests.test_protocols_isinstance_properties_and_descriptors  sh   	 	
	 		& 	&
 	CL		  	  
	  
	 	 
	 
	 ! 	  
	  
	(1+ 	 
	 
	 h 	  
	  
	%x{ 	% 
	%  Rg?Nq\\..#1#:#: "  ))%'>B	  $ GN<S<ST((.A UT @	 8 	 	H 		 HQK 	 	Xa[ 	 qE25#a&#&(1+KeV

 CqU*\\C\@**95"57C0 6 A@ + 9  UT2 65 A@s<   !I
I	JI0	1J

I
I-	0
I>:J
Jc                     [          " S S[        5      5       n " S S5      n " S S5      nU R                  U" 5       U5        U R                  U" 5       U5        g )Nc                        \ rS rSr% \\S'   Srg)NProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.HasXi  r   re   Nr)  re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrS rSrg)XProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithXi  r(  c                     / $ r[   re   r   s    ra   __dir__`ProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithX.__dir__      	rd   re   N)rf   rg   rh   ri   r   r  rj   re   rd   ra   CustomDirWithXr    s    Ard   r  c                       \ rS rSrS rSrg)[ProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithoutXi  c                     S/$ Nr   re   r   s    ra   r  cProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithoutX.__dir__  s	    urd   re   N)rf   rg   rh   ri   r  rj   re   rd   ra   CustomDirWithoutXr        rd   r  r  )r_   r  r  r  s       ra   2test_protocols_isinstance_not_fooled_by_custom_dir@ProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir  sX    		8 	 
		 	
	 	 	n.5  !2!4d;rd   c                 P  ^^  " S S5      n " S S5      m " U4S jS5      n " S SU5      n " S	 S
U5      n " S S5      n[        S5      m[         " S S[        5      5       n[         " S S[        5      5       n[         " S S[        T   5      5       n[         " U4S jS[        T   5      5       n	[         " S S[        5      5       n
[         " U4S jS[        T   5      5       nXgXX4 H  nXX44 HG  nU R                  UR                  UR                  S9   U R                  U" 5       U5        S S S 5        MI     U R                  SUR                  S9   U R                  U" 5       U5        S S S 5        M     g ! , (       d  f       M  = f! , (       d  f       M  = f)Nc                   $    \ rS rSr\S 5       rSrg)UProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.Ci  c                     [        S5      e)Nnor  r   s    ra   r;  ZProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.C.attr  s    $T**rd   re   NrO  re   rd   ra   r}  r    s    + +rd   r}  c                       \ rS rSrSS jrSrg)dProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.CustomDescriptori  Nc                     [        S5      eNNORuntimeErrorrT  s      ra   rW  lProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.CustomDescriptor.__get__	      "4((rd   re   r[   rY  re   rd   ra   rZ  r    s    )rd   rZ  c                   &   > \ rS rSr Y " 5       rSrg)UProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.Di  re   Nr]  r^  s   ra   r  r    r_  rd   r  c                       \ rS rSrSrg)UProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.Ei  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)UProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.Fi  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrS rSrg)eProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.WhyWouldYouDoThisi  c                     [        S5      e)Nr  r  )r_   r0  s     ra   r  qProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.WhyWouldYouDoThis.__getattr__  s    "5))rd   re   Nr  re   rd   ra   WhyWouldYouDoThisr    s    *rd   r  r   c                   $    \ rS rSr\S 5       rSrg)UProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.Pi  c                     g r[   re   r   s    ra   r;  ZProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.P.attr  rk  rd   re   NrO  re   rd   ra   rQ  r    rl  rd   rQ  c                        \ rS rSr% \\S'   Srg)VProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.P1i  r;  re   Nr)  re   rd   ra   r  r    ro  rd   r  c                   $    \ rS rSr\S 5       rSrg)VProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.PGi#  c                     g r[   re   r   s    ra   r;  [ProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.PG.attr%  rk  rd   re   NrO  re   rd   ra   r  r  #  rl  rd   r  c                   $   > \ rS rSr%  Y \S'   Srg)WProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.PG1i(  r;  re   Nrv  rw  s   ra   rx  r  (  ry  rd   rx  c                       \ rS rSrS rSrg)[ProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.MethodPi,  c                     g r[   re   r   s    ra   r;  `ProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.MethodP.attr.  rm  rd   re   Nr]  re   rd   ra   r~  r  ,  ro  rd   r~  c                   &   > \ rS rSrS Y 4S jrSrg)\ProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.MethodPGi0  r%  c                     g r[   re   r   s    ra   r;  aProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects.<locals>.MethodPG.attr2  rq  rd   re   Nr]  rw  s   ra   r  r  0  r  rd   r  r  )r   r*   r'   rt   rf   r   r   )r_   r}  r  r  r  r  rQ  r  r  rx  r~  r  r  rE  rZ  r   s                 @@ra   <test_protocols_isinstance_attribute_access_with_side_effectsJProtocolTests.test_protocols_isinstance_attribute_access_with_side_effects  s   	+ 	+
	) 	)	& 	&
 		* 	* CL		  	  
	  
	 	 
	 
	 ! 	  
	  
	(1+ 	 
	 
	 h 	  
	  
	%x{ 	% 
	%  Rg?Nq\\..#1#:#: "  ))%'>B	  $ )-66   (():)<nM	  @  s   !FF
F
F%	c                 v    [          " S S[        5      5       n " S S5      nU R                  U" 5       U5        g )Nc                        \ rS rSr% \\S'   Srg)?ProtocolTests.test_protocols_isinstance___slots__.<locals>.HasXiE  r   re   Nr)  re   rd   ra   r  r  E  r  rd   r  c                       \ rS rSrSrSrg)MProtocolTests.test_protocols_isinstance___slots__.<locals>.HasNothingButSlotsiI  r   re   Nrf   rg   rh   ri   	__slots__rj   re   rd   ra   HasNothingButSlotsr  I  s    Ird   r  r*   r'   r   )r_   r  r  s      ra   #test_protocols_isinstance___slots__1ProtocolTests.test_protocols_isinstance___slots__B  s=     
	8 	 
		 	 	02D9rd   c                 D    " S S5      n " S S5      n " S S5      n " S S5      nU R                  U" S	S
S5      [        5        U R                  U" S	S
5      [        5        U R                  [        5       [        5        U R                  U" S	S
5      [        5        U R                  [        5       [        5        U R                  [        5       [        5        U R                  U" S5      [        5        U R                  U" 5       [        5        U R                  U" 5       [        5        U R                  U" 5       [        5        U R                  U" 5       [        5        U R                  [        5       [        5        U R                  [        S	S
5      [        5        g )Nc                       \ rS rSrS rSrg)<ProtocolTests.test_protocols_isinstance_py36.<locals>.APointiO  c                 (    Xl         X l        X0l        g r[   r   r   r-  )r_   r   r   r-  s       ra   r   EProtocolTests.test_protocols_isinstance_py36.<locals>.APoint.__init__P  s    "
rd   )r-  r   r   Nr   re   rd   ra   APointr  O  s    #rd   r  c                       \ rS rSrSrS rSrg)<ProtocolTests.test_protocols_isinstance_py36.<locals>.BPointiU  r  c                     Xl         X l        g r[   r   r   r  s      ra   r   EProtocolTests.test_protocols_isinstance_py36.<locals>.BPoint.__init__X      rd   r  N)rf   rg   rh   ri   r-  r   rj   re   rd   ra   BPointr  U  s    Erd   r  c                        \ rS rSrS rS rSrg)7ProtocolTests.test_protocols_isinstance_py36.<locals>.Ci\  c                     Xl         g r[   r;  r   s     ra   r   @ProtocolTests.test_protocols_isinstance_py36.<locals>.C.__init__]       	rd   c                     grM  re   r=  s     ra   r>  <ProtocolTests.test_protocols_isinstance_py36.<locals>.C.meth`      rd   r  N)rf   rg   rh   ri   r   r>  rj   re   rd   ra   r}  r  \  s    !rd   r}  c                       \ rS rSrSrg)9ProtocolTests.test_protocols_isinstance_py36.<locals>.Badic  re   Nr}   re   rd   ra   Badr 	  c  s    4rd   r	  rm   r   r  r   )	r   r,  r   r0  r8  rC  r:  rA  rH  )r_   r  r  r}  r	  s        ra   test_protocols_isinstance_py36,ProtocolTests.test_protocols_isinstance_py36N  s&   	# 	#	 		 	 	fQ3/7fQlE2  E2fQlH5egu-hj%0aeU+  .  .  1  1  (3bAh1rd   c                     [        S5      n[         " S S[        5      5       n[         " S S[        U   5      5       n " S S5      nU R                  U" S5      U5        U R                  U" S5      U5        g )	Nr   c                       \ rS rSrSrSrg)7ProtocolTests.test_protocols_isinstance_init.<locals>.Piv  rm   re   NrK  re   rd   ra   rQ  r	  v  r  rd   rQ  c                       \ rS rSrSrSrg)8ProtocolTests.test_protocols_isinstance_init.<locals>.PGiz  rm   re   NrK  re   rd   ra   r  r	  z  r  rd   r  c                       \ rS rSrS rSrg)7ProtocolTests.test_protocols_isinstance_init.<locals>.Ci~  c                     Xl         g r[   r   r   s     ra   r   @ProtocolTests.test_protocols_isinstance_init.<locals>.C.__init__  r   rd   r   Nr   re   rd   ra   r}  r
	  ~  r   rd   r}  rm   )r   r*   r'   r   )r_   r   rQ  r  r}  s        ra   test_protocols_isinstance_init,ProtocolTests.test_protocols_isinstance_inits  sw    CL		 	 
	 
	! 	 
		 	 	adA&adB'rd   c                     [          " S S[        5      5       n " S S5      nU" 5       nU R                  X15        SUl        U R	                  X15        U?U R                  X15        g )Nc                        \ rS rSr% \\S'   Srg)DProtocolTests.test_protocols_isinstance_monkeypatching.<locals>.HasXi  r   re   Nr)  re   rd   ra   r  r	    r  rd   r  c                       \ rS rSrSrg)CProtocolTests.test_protocols_isinstance_monkeypatching.<locals>.Fooi  re   Nr}   re   rd   ra   r   r	        3rd   r   r   )r*   r'   r   r   r   )r_   r  r   r`   s       ra   (test_protocols_isinstance_monkeypatching6ProtocolTests.test_protocols_isinstance_monkeypatching  s_    		8 	 
	 	E  )a&C  )rd   c                     " S S[         [           5      n " S SU[           5      n " S S5      n " S S5      nU[           nU R                  U" 5       U5        U R	                  XB5         " S	 S
U[           5      n " S SU[           5      nU[
           nU R                  U" 5       U5        U R                  Xr5        g )Nc                       \ rS rSrSrg)=ProtocolTests.test_protocol_checks_after_subscript.<locals>.Pi  re   Nr}   re   rd   ra   rQ  r	    r  rd   rQ  c                       \ rS rSrSrg)=ProtocolTests.test_protocol_checks_after_subscript.<locals>.Ci  re   Nr}   re   rd   ra   r}  r	        trd   r}  c                       \ rS rSrSrg)BProtocolTests.test_protocol_checks_after_subscript.<locals>.Other1i  re   Nr}   re   rd   ra   Other1r	        drd   r	  c                       \ rS rSrSrg)BProtocolTests.test_protocol_checks_after_subscript.<locals>.Other2i  re   Nr}   re   rd   ra   Other2r"	    r 	  rd   r#	  c                       \ rS rSrSrg)>ProtocolTests.test_protocol_checks_after_subscript.<locals>.D1i  re   Nr}   re   rd   ra   D1r%	    r  rd   r&	  c                       \ rS rSrSrg)>ProtocolTests.test_protocol_checks_after_subscript.<locals>.D2i  re   Nr}   re   rd   ra   D2r(	    r  rd   r)	  )r'   r   r   r   r_  r   r   r;  )	r_   rQ  r}  r	  r#	  CAr&	  r)	  CIs	            ra   $test_protocol_checks_after_subscript2ProtocolTests.test_protocol_checks_after_subscript  s    ""!sV  1-  +33sVbdA&b$rd   c                    [          " S S[        5      5       n " S S[        5      n " S SU5      n " S S5      nUR                  U5        UR                  U5        U R                  U" 5       U5        U R                  U" 5       U5        g )	Nc                       \ rS rSrSrSrg)8ProtocolTests.test_protocols_support_register.<locals>.Pi  rm   re   NrK  re   rd   ra   rQ  r0	    r  rd   rQ  c                       \ rS rSrS rSrg)9ProtocolTests.test_protocols_support_register.<locals>.PMi  c                     g r[   re   r   s    ra   r>  >ProtocolTests.test_protocols_support_register.<locals>.PM.meth  r  rd   re   NrS  re   rd   ra   PMr2	    r  rd   r5	  c                       \ rS rSrSrg)8ProtocolTests.test_protocols_support_register.<locals>.Di  re   Nr}   re   rd   ra   r  r7	        Trd   r  c                       \ rS rSrSrg)8ProtocolTests.test_protocols_support_register.<locals>.Ci  re   Nr}   re   rd   ra   r}  r:	    rW  rd   r}  )r*   r'   r  r   )r_   rQ  r5	  r  r}  s        ra   test_protocols_support_register-ProtocolTests.test_protocols_support_register  sp    		 	 
		! 	! 		

1	

1ac1%ac1%rd   c                     [          " S S[        5      5       n " S S5      n " S SU5      n " S S5      nU R                  U" 5       U5        U R                  U" 5       U5        g )	Nc                       \ rS rSrSrSrg)NProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.Pi  rm   re   NrK  re   rd   ra   rQ  r?	    r  rd   rQ  c                       \ rS rSrSrSrg)NProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.Ai  rm   re   NrK  re   rd   ra   r  rA	    r  rd   r  c                       \ rS rSrSrSrg)NProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.Bi  Nre   rK  re   rd   ra   r  rC	        Ard   r  c                       \ rS rSrS rSrg)NProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.Ci  c                     S U l         g r[   r   r   s    ra   r   WProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.C.__init__  	    rd   r   Nr   re   rd   ra   r}  rF	        rd   r}  r  r_   rQ  r  r  r}  s        ra   5test_none_on_non_callable_doesnt_block_implementationCProtocolTests.test_none_on_non_callable_doesnt_block_implementation  sa    		 	 
		 		 		 	 	ac1%ac1%rd   c                     [          " S S[        5      5       n " S S5      n " S SU5      n " S S5      nU R                  U" 5       U5        U R                  U" 5       U5        g )	Nc                       \ rS rSrS rSrg)DProtocolTests.test_none_on_callable_blocks_implementation.<locals>.Pi  c                     g r[   re   r   s    ra   r   FProtocolTests.test_none_on_callable_blocks_implementation.<locals>.P.x  rJ  rd   re   NrK  re   rd   ra   rQ  rP	    rL  rd   rQ  c                       \ rS rSrS rSrg)DProtocolTests.test_none_on_callable_blocks_implementation.<locals>.Ai  c                     g r[   re   r   s    ra   r   FProtocolTests.test_none_on_callable_blocks_implementation.<locals>.A.x  rJ  rd   re   NrK  re   rd   ra   r  rT	    rV  rd   r  c                       \ rS rSrSrSrg)DProtocolTests.test_none_on_callable_blocks_implementation.<locals>.Bi  Nre   rK  re   rd   ra   r  rX	    rD	  rd   r  c                       \ rS rSrS rSrg)DProtocolTests.test_none_on_callable_blocks_implementation.<locals>.Ci  c                     S U l         g r[   r   r   s    ra   r   MProtocolTests.test_none_on_callable_blocks_implementation.<locals>.C.__init__  rI	  rd   r   Nr   re   rd   ra   r}  rZ	    rJ	  rd   r}  )r*   r'   r   rK	  s        ra   +test_none_on_callable_blocks_implementation9ProtocolTests.test_none_on_callable_blocks_implementation  sa    		 	 
		 		 		 	 	  a(  a(rd   c                 6    " S S[         5      n[         " S S[         5      5       n " S SU5      n " S SU5      n " S	 S
[        R                  S9n " S S[        R                  S9nU R	                  U" 5       U5        U R	                  U" 5       U5        U R                  XS5        U R                  Xd5        U R                  U" 5       U5        U R                  XB5        U R                  S[        U5      5        U R                  S[        U5      5        U R                  S[        U5      5        U R                  S[        U5      5        U R                  [        U5      S15        U R                  [        U5      S15        U R                  [        U5      [        5        U R                  [        U5      UR                  5        U R                  [        U5      [        5        U R                  [        U5      UR                  5        1 SknU R                  [        U5      R!                  5       [        U5      R!                  5       U-  5        U R                  [        U5      R!                  5       [        U5      R!                  5       U-  5        g )Nc                       \ rS rSrSrSrg)5ProtocolTests.test_non_protocol_subclasses.<locals>.Pi  rm   re   NrK  re   rd   ra   rQ  ra	    r  rd   rQ  c                       \ rS rSrS rSrg)6ProtocolTests.test_non_protocol_subclasses.<locals>.PRi  c                     g r[   re   r   s    ra   r>  ;ProtocolTests.test_non_protocol_subclasses.<locals>.PR.meth  r  rd   re   NrS  re   rd   ra   PRrc	         rd   rf	  c                       \ rS rSrSrSrg)8ProtocolTests.test_non_protocol_subclasses.<locals>.NonPi  rm   re   NrK  re   rd   ra   NonPri	    r  rd   rj	  c                       \ rS rSrSrg)9ProtocolTests.test_non_protocol_subclasses.<locals>.NonPRi  re   Nr}   re   rd   ra   NonPRrl	    r   rd   rm	  c                       \ rS rSrSrSrg)5ProtocolTests.test_non_protocol_subclasses.<locals>.Ci  rm   re   NrK  re   rd   ra   r}  ro	    r  rd   r}  r  c                       \ rS rSrS rSrg)5ProtocolTests.test_non_protocol_subclasses.<locals>.Di  c                     g r[   re   r   s    ra   r>  :ProtocolTests.test_non_protocol_subclasses.<locals>.D.meth  r  rd   re   NrS  re   rd   ra   r  rq	    r  rd   r  __protocol_attrs____non_callable_proto_members__r   r>  >   r   _is_protocolr  r  __subclasshook___is_runtime_protocol)r'   r*   r  ABCMetar   r_  r   r;  assertNotInvarsr   r.   	frozensetassertIsNotrt	  assertLessEqualkeys)r_   rQ  rf	  rj	  rm	  r}  r  acceptable_extra_attrss           ra   test_non_protocol_subclasses*ProtocolTests.test_non_protocol_subclasses  s   	 	 
	! 	! 
	!	1 	 	B	#++ 		!#++ 	! 	  d+  e,  )  *egr*e(-tDz:-tE{;94:F94;G-a03%8-b1F8< 	215yA-a0!2F2FG226	B-b113G3GH"
 	T$Z__.QAW0WXKQ1G G	
rd   c                      " S S[         5      n " S S5      n " S S5      n " S SU5      nU R                  U" 5       U5        U R                  U" 5       U5        U R                  X$5        U R	                  X45        g )	Nc                       \ rS rSrSrSrg)1ProtocolTests.test_custom_subclasshook.<locals>.Pi  rm   re   NrK  re   rd   ra   rQ  r	    r  rd   rQ  c                       \ rS rSrSrg)7ProtocolTests.test_custom_subclasshook.<locals>.OKClassi  re   Nr}   re   rd   ra   OKClassr	    r	  rd   r	  c                       \ rS rSrSrSrg)8ProtocolTests.test_custom_subclasshook.<locals>.BadClassi  rm   re   NrK  re   rd   ra   BadClassr	    r  rd   r	  c                   $    \ rS rSr\S 5       rSrg)1ProtocolTests.test_custom_subclasshook.<locals>.Ci  c                 8    UR                   R                  S5      $ NOK)rf   r  r'  others     ra   rw	  BProtocolTests.test_custom_subclasshook.<locals>.C.__subclasshook__  s    ~~0066rd   re   Nrf   rg   rh   ri   classmethodrw	  rj   re   rd   ra   r}  r	    s    7 7rd   r}  )r'   r   r   r;  r_  )r_   rQ  r	  r	  r}  s        ra   test_custom_subclasshook&ProtocolTests.test_custom_subclasshook  sn    	 	 		 		7 	7
 	gi+  Q/g)  -rd   c                 &   [          " S S[        5      5       n " S S5      n " S S5      nU R                  U" 5       U5        U R                  U" 5       U5        U R	                  X15        U R                  X!5         " S S[        5      nS	nU R                  [        U5         [        [        U5        S S S 5        U R                  [        U5         [        [        5       U5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)
Nc                   (    \ rS rSrSr\S 5       rSrg)6ProtocolTests.test_custom_subclasshook_2.<locals>.HasXi!  rm   c                     [        US5      $ r  hasattrr	  s     ra   rw	  GProtocolTests.test_custom_subclasshook_2.<locals>.HasX.__subclasshook__(      uc**rd   re   N)rf   rg   rh   ri   r   r	  rw	  rj   re   rd   ra   r  r	  !  s    
 A+ +rd   r  c                       \ rS rSrSrg)7ProtocolTests.test_custom_subclasshook_2.<locals>.Emptyi,  re   Nr}   re   rd   ra   r  r	  ,  r8	  rd   r  c                       \ rS rSrSrSrg)@ProtocolTests.test_custom_subclasshook_2.<locals>.ImplementsHasXi.  rm   re   NrK  re   rd   ra   ImplementsHasXr	  .  r  rd   r	  c                   $    \ rS rSr\S 5       rSrg)EProtocolTests.test_custom_subclasshook_2.<locals>.NotRuntimeCheckablei9  c                     [        US5      $ r  r	  r	  s     ra   rw	  VProtocolTests.test_custom_subclasshook_2.<locals>.NotRuntimeCheckable.__subclasshook__:  r	  rd   re   Nr	  re   rd   ra   NotRuntimeCheckabler	  9  s    + +rd   r	  ra  )r*   r'   r   r   r;  r_  r  r   r   r  r   )r_   r  r  r	  r	  must_be_runtime_checkables         ra   test_custom_subclasshook_2(ProtocolTests.test_custom_subclasshook_2   s    		+8 	+ 
	+ 		 	 	n.5  $/n3  -
	+( 	+0 	"
 ##I/HIv23 J##I/HIvx!45 JI JIIIs   $C1D1
C?
Dc                    [          " S S[        5      5       n " S S[        5      n[          " S S[        5      5       n " S S5      nXU4 HU  nU R                  UR                  S	9   U R	                  [
        S
5         [        U" 5       U5        S S S 5        S S S 5        MW     g ! , (       d  f       N= f! , (       d  f       Mz  = f)Nc                       \ rS rSrSrSrg)IProtocolTests.test_issubclass_fails_correctly.<locals>.NonCallableMembersiI  rm   re   NrK  re   rd   ra   NonCallableMembersr	  I  r  rd   r	  c                   "    \ rS rSrS\4S jrSrg)JProtocolTests.test_issubclass_fails_correctly.<locals>.NotRuntimeCheckableiM  r%  c                     g r[   re   r   s    ra   callable_memberZProtocolTests.test_issubclass_fails_correctly.<locals>.NotRuntimeCheckable.callable_memberN  r  rd   re   Nrf   rg   rh   ri   r   r	  rj   re   rd   ra   r	  r	  M  s
    11rd   r	  c                   "    \ rS rSrS\4S jrSrg)GProtocolTests.test_issubclass_fails_correctly.<locals>.RuntimeCheckableiP  r%  c                     g r[   re   r   s    ra   r	  WProtocolTests.test_issubclass_fails_correctly.<locals>.RuntimeCheckable.callable_memberR  r  rd   re   Nr	  re   rd   ra   RuntimeCheckabler	  P  s
    11rd   r	  c                       \ rS rSrSrg)8ProtocolTests.test_issubclass_fails_correctly.<locals>.CiT  re   Nr}   re   rd   ra   r}  r	  T  rW  rd   r}  )
proto_namerb  )r*   r'   rt   rf   r  r   r   )r_   r	  r	  r	  r}  protocols         ra   test_issubclass_fails_correctly-ProtocolTests.test_issubclass_fails_correctlyH  s    		 	 
		2( 	2 
	2x 	2 
	2 	 +AQQH):):;++F qsH- <; R  <;s$   *B9B(B9(
B62B99
C	c                    [        S5      n[        S5      n[         " S S[        X4   5      5       n " S SU[        U4   [        U   5      nU R	                  [
        5         U[             S S S 5        U R	                  [
        5         U[        [        4     S S S 5         " S SU[        U4   5      nU R                  U[           " 5       U5        g ! , (       d  f       Nn= f! , (       d  f       NR= f)	Nr   Sc                       \ rS rSrS rSrg)9ProtocolTests.test_defining_generic_protocols.<locals>.PRic  c                     g r[   re   r   s    ra   r>  >ProtocolTests.test_defining_generic_protocols.<locals>.PR.methe  r  rd   re   NrS  re   rd   ra   rf	  r	  c  rg	  rd   rf	  c                       \ rS rSrSrSrg)8ProtocolTests.test_defining_generic_protocols.<locals>.Pig  rm   re   Nrf   rg   rh   ri   r   rj   re   rd   ra   rQ  r	  g  r  rd   rQ  c                       \ rS rSrSrg)8ProtocolTests.test_defining_generic_protocols.<locals>.Cio  re   Nr}   re   rd   ra   r}  r	  o  r  rd   r}  )r   r*   r'   r   r   r   r  r   )r_   r   r	  rf	  rQ  r}  s         ra   test_defining_generic_protocols-ProtocolTests.test_defining_generic_protocols_  s    CLCL		!!$ 	! 
	!	36
HQK 	 y)sG *y)c3hK * 	"36
!afh* *)))s   $
CC'
C$'
C5c           	        ^ [        S5      m[        S5      n[         " S S[        [        TU4   5      5       n " S SU[        [
        4   [        5      nU R                  [        5         [        U[        [
        4   U5        S S S 5        U R                  X25        U R                  [        5         U[             S S S 5         " U4S jS[        [        T   5      n " U4S	 jS
[        T   [        5      n[         " S SU[
           [        5      5       n " S S5      nU R                  U" 5       U5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   r	  c                       \ rS rSrS rSrg)CProtocolTests.test_defining_generic_protocols_old_style.<locals>.PRiw  c                     g r[   re   r   s    ra   r>  HProtocolTests.test_defining_generic_protocols_old_style.<locals>.PR.methy  r  rd   re   NrS  re   rd   ra   rf	  r	  w  rg	  rd   rf	  c                       \ rS rSrSrSrg)BProtocolTests.test_defining_generic_protocols_old_style.<locals>.Pi{  rm   re   Nr	  re   rd   ra   rQ  r	  {  r  rd   rQ  c                   *   > \ rS rSrS Y S\4S jrSrg)CProtocolTests.test_defining_generic_protocols_old_style.<locals>.P1i  r   r%  c                     g r[   re   r   s     ra   r_  GProtocolTests.test_defining_generic_protocols_old_style.<locals>.P1.bar      rd   re   Nrf   rg   rh   ri   r  r_  rj   rw  s   ra   r  r	        +Q+3+rd   r  c                   *   > \ rS rSrS Y S\4S jrSrg)CProtocolTests.test_defining_generic_protocols_old_style.<locals>.P2i  r   r%  c                     g r[   re   r   s     ra   r_  GProtocolTests.test_defining_generic_protocols_old_style.<locals>.P2.bar  r	  rd   re   Nr	  rw  s   ra   r  r	    r	  rd   r  c                       \ rS rSrSrSrg)EProtocolTests.test_defining_generic_protocols_old_style.<locals>.PSubi  rm   re   NrK  re   rd   ra   PSubr	    r  rd   r	  c                   *    \ rS rSrSrS\S\4S jrSrg)EProtocolTests.test_defining_generic_protocols_old_style.<locals>.Testi  rm   r   r%  c                     U$ r[   re   r   s     ra   r_  IProtocolTests.test_defining_generic_protocols_old_style.<locals>.Test.bar  s    rd   re   N)rf   rg   rh   ri   r   r  r_  rj   re   rd   ra   r  r	    s    AS S rd   r  )r   r*   r'   r#   r   r  r   r   r   r;  r   )	r_   r	  rf	  rQ  r  r  r	  r  r   s	           @ra   )test_defining_generic_protocols_old_style7ProtocolTests.test_defining_generic_protocols_old_styles  s   CLCL		!71a4= 	! 
	!	38h 	 y)r#s(|R( *a$y)sG *	,71: 	,	,X 	, 
	2c7H 	 
		 	 	dfd+- *) *)s   ,D<4
E<
E

Ec                     [         S " 5       5       nS " 5       nU R                  U" 5       U5        U R                  X!5        [         S " 5       5       nU R                  SU5        U R                  [        U5        g )Nc                  @   ^^ S 7=m4m " UU4S jST7
n [         U 5      $ )r   c                   0   > \ rS rSr Y rS YSS4S jrSrg)HProtocolTests.test_pep695_generic_protocol_callable_members.<locals>.Fooi  r   r%  Nc                     g r[   re   r   s     ra   r>  MProtocolTests.test_pep695_generic_protocol_callable_members.<locals>.Foo.meth  rZ  rd   re   rr  rs  s   ra   r   r	    s     -a-D-rd   r   rt  ru  s    @@ra   rf  `ProtocolTests.test_pep695_generic_protocol_callable_members.<locals>.<generic parameters of Foo>  s     	. 	.X 	.rd   c                  4   ^^ S 7=m4m " UU4S jST7
o 5      $ )r   c                   0   > \ rS rSr Y rS YSS4S jrSrg)HProtocolTests.test_pep695_generic_protocol_callable_members.<locals>.Bari  r   r%  Nc                     g r[   re   r   s     ra   r>  MProtocolTests.test_pep695_generic_protocol_callable_members.<locals>.Bar.meth  rZ  rd   re   rr  rs  s   ra   r   r	    s     -a-D-rd   r   re   ru  s    @@ra   r  `ProtocolTests.test_pep695_generic_protocol_callable_members.<locals>.<generic parameters of Bar>  s    ! 	. 	. 	.rd   c                  @   ^^ S 7=m4m " UU4S jST7
n [         U 5      $ )r   c                   ,   > \ rS rSr Y rS Y4S jrSrg)RProtocolTests.test_pep695_generic_protocol_callable_members.<locals>.SupportsTrunci  r%  c                     g r[   re   r   s    ra   	__trunc__\ProtocolTests.test_pep695_generic_protocol_callable_members.<locals>.SupportsTrunc.__trunc__      crd   re   N)rf   rg   rh   ri   rG  r	  rj   rs  s   ra   SupportsTruncr	    s     )1)rd   r	  rt  ru  s    @@ra   %<generic parameters of SupportsTrunc>jProtocolTests.test_pep695_generic_protocol_callable_members.<locals>.<generic parameters of SupportsTrunc>  s     	* 	*x 	*rd   g        )r*   r   r;  r  )r_   r   r   r	  s       ra   -test_pep695_generic_protocol_callable_members;ProtocolTests.test_pep695_generic_protocol_callable_members  so    		. 
	.	. 	ceS)c'		* 
	* 	c=1e]3rd   c                    [        S5      n " S S[        U   5      n " S SX!   5      nU R                  U[           " 5       R                  S5         " S S5      n " S	 S
XBU   5      nU R                  U[           " 5       R                  S5         " S SX!   U5      nU R                  U[           " 5       R                  S5        g )Nr   c                       \ rS rSrSrg))ProtocolTests.test_init_called.<locals>.Pi  re   Nr}   re   rd   ra   rQ  r
    r  rd   rQ  c                       \ rS rSrS rSrg))ProtocolTests.test_init_called.<locals>.Ci  c                     SU l         g r	  testr   s    ra   r   2ProtocolTests.test_init_called.<locals>.C.__init__  	     	rd   r	
  Nr   re   rd   ra   r}  r
        !rd   r}  r	  c                       \ rS rSrS rSrg))ProtocolTests.test_init_called.<locals>.Bi  c                     SU l         g r	  r	
  r   s    ra   r   2ProtocolTests.test_init_called.<locals>.B.__init__  r
  rd   r	
  Nr   re   rd   ra   r  r
    r
  rd   r  c                       \ rS rSrSrg)*ProtocolTests.test_init_called.<locals>.D1i  re   Nr}   re   rd   ra   r&	  r
    rD  rd   r&	  c                       \ rS rSrSrg)*ProtocolTests.test_init_called.<locals>.D2i  re   Nr}   re   rd   ra   r)	  r
    rD  rd   r)	  )r   r'   r   r   r

  )r_   r   rQ  r}  r  r&	  r)	  s          ra   test_init_calledProtocolTests.test_init_called  s    CL""	! 	! 	3-	! 	!	aD 	 	C.	q 	 	C.rd   c                    [        S5      n " S S[        U   5      n " S SX!   5      nU R                  U[           " 5       R                  S5        U R                  [        5         U[           " S5        S S S 5        U R                  [        5         U[           " SS9  S S S 5        g ! , (       d  f       N:= f! , (       d  f       g = f)	Nr   c                       \ rS rSrSrg)(ProtocolTests.test_new_called.<locals>.Pi  re   Nr}   re   rd   ra   rQ  r
    r  rd   rQ  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )(ProtocolTests.test_new_called.<locals>.Ci  c                 8   > [         TU ]  " U /UQ76 nSUl        U$ r	  )r   __new__r

  )r'  r   r_   r   s      ra   r
  0ProtocolTests.test_new_called.<locals>.C.__new__  s"    ws2T2 	rd   r	
  rf   rg   rh   ri   r
  rj   r   r   s   @ra   r}  r
    s     rd   r}  r	  r   rv  )r   r'   r   r   r

  r   r   )r_   r   rQ  r}  s       ra   test_new_calledProtocolTests.test_new_called  s    CL""	 	 	3-y)cF2J *y)cFRL *) *)))s   (B,B=,
B:=
Cc                 x   [        S5      n[        S5      nU R                  [        5          " S S[        X4   5      nS S S 5        U R                  [        5          " S S[        [           5      nS S S 5        U R                  [        5          " S S[        U   [        U   5      nS S S 5        U R                  [        5          " S	 S[
        R                  X4   [        U   5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nt= f! , (       d  f       g = f)
Nr   r	  c                       \ rS rSrSrg)6ProtocolTests.test_protocols_bad_subscripts.<locals>.Pi  re   Nr}   re   rd   ra   rQ  r%
    s    Trd   rQ  c                       \ rS rSrSrg)6ProtocolTests.test_protocols_bad_subscripts.<locals>.Qi  re   Nr}   re   rd   ra   r  r'
        Drd   r  c                       \ rS rSrSrg)6ProtocolTests.test_protocols_bad_subscripts.<locals>.Ri  re   Nr}   re   rd   ra   r  r*
    rL  rd   r  c                       \ rS rSrSrg)6ProtocolTests.test_protocols_bad_subscripts.<locals>.Si  re   Nr}   re   rd   ra   r	  r,
    r2  rd   )r   r   r   r'   r   r\   r	  )r_   r   r	  rQ  r  r  s         ra   test_protocols_bad_subscripts+ProtocolTests.test_protocols_bad_subscripts  s    CLCLy))HQTN) *y)(HSM( *y)3HQK!3 *y)<FNN14((1+< *) *)))))))s/   C8D	D	&D+8
D	
D
D(+
D9c                    [        S5      n[        S5      n " S S[        X4   5      nU R                  [        X1U4   5      R	                  S5      5        U R                  [        U[
        [        4   5      R	                  S5      5        g )Nr   r	  c                       \ rS rSrSrg)4ProtocolTests.test_generic_protocols_repr.<locals>.Pi  re   Nr}   re   rd   ra   rQ  r1
    r  rd   rQ  z	P[~T, ~S]zP[int, str])r   r'   r   r   endswithr   r  r_   r   r	  rQ  s       ra   test_generic_protocols_repr)ProtocolTests.test_generic_protocols_repr  sg    CLCL%%Q!tW..{;<QsCx[)22=ABrd   c                 j   [        S5      n[        S5      n " S S[        X4   5      nU R                  X35        U R                  U[        U4   U[        U4   5        U R                  X1U4   [        X4      [        [
        4   U[        [        [
        4   [        [        [
        4   4   5        g )Nr   r	  c                       \ rS rSrSrg)2ProtocolTests.test_generic_protocols_eq.<locals>.Pi  re   Nr}   re   rd   ra   rQ  r8
    r  rd   rQ  )r   r'   r   r   r   r  r3
  s       ra   test_generic_protocols_eq'ProtocolTests.test_generic_protocols_eq  s    CLCL%%36Ac1fI.a4qt-c3h75c?E#s(O;<	>rd   c                 T   [        S5      n " S S[        U   5      nU R                  UR                  U45        U R                  U[           R                  S5        U R                  U[           R
                  [        45        U R                  U[           R                  U5        g )Nr   c                       \ rS rSrSrg)DProtocolTests.test_generic_protocols_special_from_generic.<locals>.Pi  re   Nr}   re   rd   ra   rQ  r=
    r  rd   rQ  re   )r   r'   r   r  r   r  r   r  )r_   r   rQ  s      ra   +test_generic_protocols_special_from_generic9ProtocolTests.test_generic_protocols_special_from_generic  s{    CL""))A403..333&1af''+rd   c                    [          " S S[        5      5       n " S S[        5      n[        S5      n " S S[        U   5      nU R                  UR                  5        U R                  UR                  5        U R                  UR                  5        U R                  UR                  5        U R                  UR                  5        U R                  U[           R                  5        U R                  [        R                  " U5      S15        U R                  [        R                  " U5      S	15        U R                  [        [        R                  " U5      5      [        S	S15      5        g )
Nc                       \ rS rSrSrSrg)FProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PRi  rm   re   NrK  re   rd   ra   rf	  rB
    r  rd   rf	  c                       \ rS rSrS rSrg)EProtocolTests.test_generic_protocols_special_from_protocol.<locals>.Pi  c                     g r[   re   r   s    ra   r>  JProtocolTests.test_generic_protocols_special_from_protocol.<locals>.P.meth  rR  rd   re   NrS  re   rd   ra   rQ  rD
    r\  rd   rQ  r   c                       \ rS rSrSrS rSrg)FProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PGi  rm   c                     g r[   re   r   s    ra   r>  KProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PG.meth
  rR  rd   re   N)rf   rg   rh   ri   r   r>  rj   re   rd   ra   r  rH
    s    Ard   r  r>  r   )r*   r'   r   r   rv	  r   rx	  r   r   r\   _get_protocol_attrsr|	  )r_   rf	  rQ  r   r  s        ra   ,test_generic_protocols_special_from_protocol:ProtocolTests.test_generic_protocols_special_from_protocol  s   		 	 
		 	 CL	! 	 	'((//0//03,,-33A6A33B7#?6#=#=b#AB"C=1	3rd   c                 ,   U R                  [        5         [         " S S5      5       nS S S 5         " S S[        5      nU R                  [        5         [         " S SU5      5       nS S S 5        g ! , (       d  f       NP= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)8ProtocolTests.test_no_runtime_deco_on_nominal.<locals>.Ci  re   Nr}   re   rd   ra   r}  rP
    s    rd   r}  c                       \ rS rSrSrSrg)<ProtocolTests.test_no_runtime_deco_on_nominal.<locals>.Protoi  rm   re   NrK  re   rd   ra   r:  rR
    r  rd   r:  c                       \ rS rSrSrg)?ProtocolTests.test_no_runtime_deco_on_nominal.<locals>.Concretei!  re   Nr}   re   rd   ra   rA  rT
  !  s    rd   rA  )r   r   r*   r'   )r_   r}  r:  rA  s       ra   test_no_runtime_deco_on_nominal-ProtocolTests.test_no_runtime_deco_on_nominal  st    y)M  *	H 	 y)5   *) *) *)s   A4B4
B
Bc                    [          " S S[        5      5       n " S S[        5      nU R                  U" 5       U5         " S S5      n " S S5      nU R	                  U" 5       U5        U R	                  U" 5       U5         " S	 S
5      n " S S5      nU R	                  U" 5       U5        U R	                  U" 5       U5        g )Nc                       \ rS rSrSrSrg)4ProtocolTests.test_none_treated_correctly.<locals>.Pi&  Nre   rK  re   rd   ra   rQ  rY
  &  s    Ard   rQ  c                       \ rS rSrSrg)4ProtocolTests.test_none_treated_correctly.<locals>.Bi*  re   Nr}   re   rd   ra   r  r[
  *  r   rd   r  c                       \ rS rSrSrSrg)4ProtocolTests.test_none_treated_correctly.<locals>.Ci.  rm   re   NrK  re   rd   ra   r}  r]
  .  r  rd   r}  c                       \ rS rSrSrSrg)4ProtocolTests.test_none_treated_correctly.<locals>.Di1  Nre   rK  re   rd   ra   r  r_
  1  rD	  rd   r  c                       \ rS rSrS rSrg)5ProtocolTests.test_none_treated_correctly.<locals>.CIi7  c                     SU l         g r  r   r   s    ra   r   >ProtocolTests.test_none_treated_correctly.<locals>.CI.__init__8  s	    rd   r   Nr   re   rd   ra   r+	  ra
  7  r   rd   r+	  c                       \ rS rSrS rSrg)5ProtocolTests.test_none_treated_correctly.<locals>.DIi;  c                     S U l         g r[   r   r   s    ra   r   >ProtocolTests.test_none_treated_correctly.<locals>.DI.__init__<  rI	  rd   r   Nr   re   rd   ra   DIre
  ;  rJ	  rd   rh
  )r*   r'   r  r   r   )r_   rQ  r  r}  r  r+	  rh
  s          ra   test_none_treated_correctly)ProtocolTests.test_none_treated_correctly%  s    		 	 
	 	  a(	 		 	 	ac1%ac1%	 		 	 	bdA&bdA&rd   c                      " S S[         5      n[        R                  [        R                  U4   n[        R                  U[        R                  4   nU R	                  X#5        g )Nc                       \ rS rSrSrSrg)1ProtocolTests.test_protocols_in_unions.<locals>.PiC  Nre   rK  re   rd   ra   rQ  rm
  C  rD	  rd   rQ  )r'   r\   r   r  r   )r_   rQ  r=  Alias2s       ra   test_protocols_in_unions&ProtocolTests.test_protocols_in_unionsB  sL    	 	 V__a/0a01'rd   c                    [        S5      n[         " S S[        U   5      5       q " S S[        [           5      q[        5       nSUl        SUl        [        [        R                  S-   5       H  n[        R                  " X#5      n[        R                  " U5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  SSS	.5        [        R                  " [        U5      n[        R                  " U5      n " S
 S5      nU R!                  U" 5       U5        M     g )Nr   c                       \ rS rSrSrSrg)rQ  iN  rm   re   NrK  re   rd   ra   rQ  rQ  N  r  rd   rQ  c                       \ rS rSrSrg)CPiR  re   Nr}   re   rd   ra   rt
  rt
  R  rD  rd   rt
  r   r  rm   r  c                       \ rS rSrSrSrg)2ProtocolTests.test_protocols_pickleable.<locals>.Eib  rm   re   NrK  re   rd   ra   r  rv
  b  s    rd   r  )r   r*   r'   rQ  r   rt
  rX  r_  rq   rr   rs   r  r  r   r   __dict__r   )	r_   r   r  rp   r  r   r   r  r  s	            ra   test_protocols_pickleable'ProtocolTests.test_protocols_pickleableJ  s   CL		 	 
		3 	 D622Q67EQ&AQAQUUB'QUUE*QSS!$QZZE)BCQ&AQA  !!!#q) 8rd   c                    [          " S S[        5      5       n[          " S S[        5      5       n " S S5      n " S S5      n " S	 S
5      nU R                  U" SS5      U5        U R                  U" SS5      U5        U R                  U" SSS5      U5        U R                  U" SSS5      U5        U R                  U" 5       U5        U R                  U" 5       U5        g )Nc                   *    \ rS rSr% \\S'   \\S'   Srg)GProtocolTests.test_runtime_checkable_with_match_args.<locals>.P_regularih  r   r   re   Nr)  re   rd   ra   	P_regularr|
  h  s    FFrd   r}
  c                   .    \ rS rSr% Sr\\S'   \\S'   Srg)EProtocolTests.test_runtime_checkable_with_match_args.<locals>.P_matchim  r  r   r   re   N)rf   rg   rh   ri   __match_args__r   r  rj   re   rd   ra   P_matchr
  m  s    'NFFrd   r
  c                   &    \ rS rSrS\S\4S jrSrg)EProtocolTests.test_runtime_checkable_with_match_args.<locals>.Regularis  r   r   c                     Xl         X l        g r[   r  r  s      ra   r   NProtocolTests.test_runtime_checkable_with_match_args.<locals>.Regular.__init__t  r  rd   r  N)rf   rg   rh   ri   r   r   rj   re   rd   ra   Regularr
  s  s    # # rd   r
  c                   .    \ rS rSrSrS\S\S\4S jrSrg)GProtocolTests.test_runtime_checkable_with_match_args.<locals>.WithMatchix  r  r   r   r  c                 (    Xl         X l        X0l        g r[   r  )r_   r   r   r  s       ra   r   PProtocolTests.test_runtime_checkable_with_match_args.<locals>.WithMatch.__init__z  s    rd   N)rf   rg   rh   ri   r
  r   r   rj   re   rd   ra   	WithMatchr
  x  s!    ,N# # # rd   r
  c                       \ rS rSrSrg)BProtocolTests.test_runtime_checkable_with_match_args.<locals>.Nopei  re   Nr}   re   rd   ra   Noper
    r  rd   r
  rm   r   r  r  )r_   r}
  r
  r
  r
  r
  s         ra   &test_runtime_checkable_with_match_args4ProtocolTests.test_runtime_checkable_with_match_argsg  s    		 	 
	 
	h 	 
	
	 	
	 	 	gamY7gamW5i1a0)<i1a0':  3  1rd   c                     U R                  [        [        R                  5        U R	                  [
        [        R                  5        g r[   )r;  r   r\   SupportsIntr_  r  r   s    ra   test_supports_intProtocolTests.test_supports_int  s.    c6#5#56  f&8&89rd   c                     U R                  [        [        R                  5        U R	                  [
        [        R                  5        g r[   )r;  r  r\   SupportsFloatr_  r  r   s    ra   test_supports_float!ProtocolTests.test_supports_float  s.    eV%9%9:  f&:&:;rd   c                      " S S5      nU R                  [        [        R                  5        U R                  U[        R                  5        U R	                  [
        [        R                  5        g )Nc                       \ rS rSrS rSrg).ProtocolTests.test_supports_complex.<locals>.Ci  c                     g)Ny                re   r   s    ra   __complex__:ProtocolTests.test_supports_complex.<locals>.C.__complex__  r  rd   re   N)rf   rg   rh   ri   r
  rj   re   rd   ra   r}  r
    s    rd   r}  )r;  complexr\   SupportsComplexr_  r  r_   r}  s     ra   test_supports_complex#ProtocolTests.test_supports_complex  sP    	 	 	gv'='=>a!7!78  f&<&<=rd   c                      " S S5      nU R                  [        [        R                  5        U R                  U[        R                  5        U R	                  [
        [        R                  5        g )Nc                       \ rS rSrS rSrg),ProtocolTests.test_supports_bytes.<locals>.Bi  c                     gNrd   re   r   s    ra   	__bytes__6ProtocolTests.test_supports_bytes.<locals>.B.__bytes__  s    rd   re   N)rf   rg   rh   ri   r
  rj   re   rd   ra   r  r
    r   rd   r  )r;  r  r\   SupportsBytesr_  r  )r_   r  s     ra   test_supports_bytes!ProtocolTests.test_supports_bytes  sP    	 	 	eV%9%9:a!5!56  f&:&:;rd   c                     U R                  [        [        R                  5        U R                  [        [        R                  5        U R                  [        [        R                  5        g r[   )r;  r  r\   SupportsAbsr   r_  r  r   s    ra   test_supports_absProtocolTests.test_supports_abs  sD    eV%7%78c6#5#56  f&8&89rd   c                    [        [        [        R                  5        U R	                  [        [        R                  5        U R	                  [
        [        R                  5        U R                  [        [        R                  5        g r[   )r   r  r\   SupportsRoundr;  r   r_  r  r   s    ra   test_supports_round!ProtocolTests.test_supports_round  sT    5&../eV%9%9:c6#7#78  f&:&:;rd   c                     U R                  [        [        R                  5        U R	                  [
        [        R                  5        g r[   )r;  r  r\   
Reversibler_  r   r   s    ra   test_reversibleProtocolTests.test_reversible  s.    dF$5$56  f&7&78rd   c                     U R                  [        [        R                  5        U R	                  [
        [        R                  5        g r[   )r;  r   r\   SupportsIndexr_  r  r   s    ra   test_supports_index!ProtocolTests.test_supports_index  s.    c6#7#78  f&:&:;rd   c                     U R                  S[        R                  5         " S S[        R                  5      n " S SU5      nU" 5       nU R                  X15        g )Nr   c                   "    \ rS rSrS\4S jrSrg)>ProtocolTests.test_bundled_protocol_instance_works.<locals>.C1i  r%  c                     gr   re   r   s    ra   __int__FProtocolTests.test_bundled_protocol_instance_works.<locals>.C1.__int__  r  rd   re   N)rf   rg   rh   ri   r   r
  rj   re   rd   ra   r  r
    s     rd   r  c                       \ rS rSrSrg)>ProtocolTests.test_bundled_protocol_instance_works.<locals>.C2i  re   Nr}   re   rd   ra   r  r
    rD  rd   r  )r   r\   r
  r
  )r_   r  r  r  s       ra   $test_bundled_protocol_instance_works2ProtocolTests.test_bundled_protocol_instance_works  sK    a!3!34	## 		 	Da$rd   c                    [          " S S[        R                  R                  [        5      5       n " S S5      n " S S5      nU R                  X15        U R                  X!5        [          " S S[        R                  R                  [        5      5       n " S	 S
5      n " S S5      nU R                  Xd5        U R                  U" 5       U5        U R                  XT5        U R                  U" 5       U5        g )Nc                       \ rS rSrS rSrg)@ProtocolTests.test_collections_protocols_allowed.<locals>.Customi  c                     g r[   re   r   s    ra   closeFProtocolTests.test_collections_protocols_allowed.<locals>.Custom.close  r{  rd   re   N)rf   rg   rh   ri   r
  rj   re   rd   ra   Customr
    rg	  rd   r
  c                       \ rS rSrSrg);ProtocolTests.test_collections_protocols_allowed.<locals>.Ai  re   Nr}   re   rd   ra   r  r
    rW  rd   r  c                        \ rS rSrS rS rSrg);ProtocolTests.test_collections_protocols_allowed.<locals>.Bi  c                     / $ r[   re   r   s    ra   __iter__DProtocolTests.test_collections_protocols_allowed.<locals>.B.__iter__  r  rd   c                     grM  re   r   s    ra   r
  AProtocolTests.test_collections_protocols_allowed.<locals>.B.close  r  rd   re   N)rf   rg   rh   ri   r
  r
  rj   re   rd   ra   r  r
    s    rd   r  c                   &    \ rS rSrS\SS4S jrSrg)JProtocolTests.test_collections_protocols_allowed.<locals>.ReleasableBufferi  mvr%  Nc                     g r[   re   r_   r
  s     ra   __release_buffer__]ProtocolTests.test_collections_protocols_allowed.<locals>.ReleasableBuffer.__release_buffer__  s    #rd   re   )rf   rg   rh   ri   
memoryviewr
  rj   re   rd   ra   ReleasableBufferr
    s    EZEDErd   r
  c                       \ rS rSrSrg);ProtocolTests.test_collections_protocols_allowed.<locals>.Ci  re   Nr}   re   rd   ra   r}  r
    rW  rd   r}  c                   8    \ rS rSrS\S\4S jrS\SS4S jrSrg)	;ProtocolTests.test_collections_protocols_allowed.<locals>.Di  flagsr%  c                     [        S5      $ r
  )r
  )r_   r
  s     ra   
__buffer__FProtocolTests.test_collections_protocols_allowed.<locals>.D.__buffer__  s    !#&rd   r
  Nc                     g r[   re   r
  s     ra   r
  NProtocolTests.test_collections_protocols_allowed.<locals>.D.__release_buffer__  rR  rd   re   )	rf   rg   rh   ri   r   r
  r
  r
  rj   re   rd   ra   r  r
    s(    ' '
 'Z D rd   r  )
r*   r  r  r  r'   r;  r_  Bufferr   r   )r_   r
  r  r  r
  r}  r  s          ra   "test_collections_protocols_allowed0ProtocolTests.test_collections_protocols_allowed  s    		![__--x 	! 
	! 		 	 	a(  +		F{55x 	F 
	F 		 	 	a2ac#34  5  &67rd   c                    U R                  [        5          " S S[        [        5      nS S S 5         " S S[        R
                  [        5      n " S S[        R                  [        5      ng ! , (       d  f       NK= f)Nc                       \ rS rSrSrg)EProtocolTests.test_builtin_protocol_allowlist.<locals>.CustomProtocoli  re   Nr}   re   rd   ra   CustomProtocolr
    r  rd   r
  c                       \ rS rSrSrg)KProtocolTests.test_builtin_protocol_allowlist.<locals>.CustomContextManageri  re   Nr}   re   rd   ra   CustomContextManagerr
    rD  rd   r
  c                       \ rS rSrSrg)JProtocolTests.test_builtin_protocol_allowlist.<locals>.CustomAsyncIteratori  re   Nr}   re   rd   ra   CustomAsyncIteratorr
    rD  rd   r
  )r   r   r   r'   r\   ContextManagerAsyncIterator)r_   r
  r
  r
  s       ra   test_builtin_protocol_allowlist-ProtocolTests.test_builtin_protocol_allowlist  sT    y)8  *	6#8#8( 		&"6"6 	 *)s   A00
A>c                      " S S[         5      nU R                  [        S5         [        SU5        S S S 5        g ! , (       d  f       g = f)Nc                        \ rS rSr% \\S'   Srg)CProtocolTests.test_non_runtime_protocol_isinstance_check.<locals>.Pi  r   re   Nr)  re   rd   ra   rQ  r
    r  rd   rQ  z@runtime_checkablerm   )r'   r  r   r   r_   rQ  s     ra   *test_non_runtime_protocol_isinstance_check8ProtocolTests.test_non_runtime_protocol_isinstance_check  s8    	 	 ##I/CDq! EDDs	   <
A
c                 F     " S S[         5      n " S SU5      nU" 5         g )Nc                        \ rS rSr% \\S'   Srg)-ProtocolTests.test_super_call_init.<locals>.Pi  r   re   Nr)  re   rd   ra   rQ  r    r  rd   rQ  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )/ProtocolTests.test_super_call_init.<locals>.Fooi  c                 "   > [         TU ]  5         g r[   )r   r   )r_   r   s    ra   r   8ProtocolTests.test_super_call_init.<locals>.Foo.__init__  s     "rd   re   r   r   s   @ra   r   r    s    # #rd   r   rt  )r_   rQ  r   s      ra   test_super_call_init"ProtocolTests.test_super_call_init  s!    	 		#! 	# 	rd   c                    U R                  [        S5         [        [        5        S S S 5        U R                  [        S5         [        [        5       5        S S S 5        U R                  [        S5         [        [        5        S S S 5        U R                  [        S5         [        [
        5        S S S 5         " S S[        5      nU R                  [        U5      1 Sk5        U R                  [        U5      [        5        U R                  [        U5      UR                  5         " S S5      nU R                  [        S5         [        U5        S S S 5        U R                  [        S5         [        U" 5       5        S S S 5         " S SU5      nU R                  [        S5         [        U5        S S S 5        U R                  [        S5         [        U" 5       5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN}= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)	Nznot a Protocolc                   F    \ rS rSr% \\S'   S\4S jr\S\4S j5       r	Sr
g)2ProtocolTests.test_get_protocol_members.<locals>.Pi  rL  r%  c                     g r[   re   r   s    ra   r   4ProtocolTests.test_get_protocol_members.<locals>.P.b  s    rd   c                     g r[   re   r   s    ra   r  4ProtocolTests.test_get_protocol_members.<locals>.P.c	  s     #rd   re   Nrf   rg   rh   ri   r   r  r  r   rP  r  rj   re   rd   ra   rQ  r    s"    F#3##3# #rd   rQ     rL  r   r  c                   F    \ rS rSr% \\S'   S\4S jr\S\4S j5       r	Sr
g)9ProtocolTests.test_get_protocol_members.<locals>.Concretei  rL  r%  c                     gNcapybarare   r   s    ra   r   ;ProtocolTests.test_get_protocol_members.<locals>.Concrete.b      zrd   c                     gNr  re   r   s    ra   r  ;ProtocolTests.test_get_protocol_members.<locals>.Concrete.c      '(rd   re   Nr  re   rd   ra   rA  r    s"    F131(3( (rd   rA  c                   J    \ rS rSr% Sr\\S'   S\4S jr\	S\4S j5       r
Srg)	@ProtocolTests.test_get_protocol_members.<locals>.ConcreteInheriti  r   rL  r%  c                     gr  re   r   s    ra   r   BProtocolTests.test_get_protocol_members.<locals>.ConcreteInherit.b  r  rd   c                     gr  re   r   s    ra   r  BProtocolTests.test_get_protocol_members.<locals>.ConcreteInherit.c  r  rd   re   N)rf   rg   rh   ri   rL  r   r  r  r   rP  r  rj   re   rd   ra   ConcreteInheritr     s&    AsK131(3( (rd   r%  )r  r   r.   r  r'   r#   r   r   r|	  r}	  rt	  )r_   rQ  rA  r%  s       ra   test_get_protocol_members'ProtocolTests.test_get_protocol_members  s   ##I/?@ ( A##I/?@ * A##I/?@ * A##I/?@ ) A	$ 	$ 	-a0/B215yA-a0!2F2FG	) 	) ##I/?@ * A##I/?@ , A	)a 	) ##I/?@ 1 A##I/?@ !23 A@M A@@@@@@@& A@@@ A@@@s_   G5H7H%H+H=7I1II05
H
H
H(+
H:=
I
I
I-0
I>c                    U R                  [        [        5      5        U R                  [        [        5      5        U R	                  [        [
        5      5        U R	                  [        [        5       5      5        U R	                  [        [        5      5        U R	                  [        [        5      5        U R	                  [        [        5      5        g r[   )	r   r1   r:  r,  r   rA  r#   r  r'   r   s    ra   test_is_protocolProtocolTests.test_is_protocol&  s    E*+E*+X./XZ01W-.V,- 	X./rd   c                     [         R                  R                  R                  5          " S S[         R                  R                  [        5      nU R                  S[         R                  R                  5        g )Nc                       \ rS rSrSrg)_ProtocolTests.test_interaction_with_isinstance_checks_on_superclasses_with_ABCMeta.<locals>.Fooi5  re   Nr}   re   rd   ra   r   r-  5  s    Drd   r   rm   )r  r  Sized_abc_registry_clearr'   r   rh  s     ra   Dtest_interaction_with_isinstance_checks_on_superclasses_with_ABCMetaRProtocolTests.test_interaction_with_isinstance_checks_on_superclasses_with_ABCMeta1  sH    1138+//''8
 	  KOO$9$9:rd   c                     [         R                  R                  R                  5          " S S[        R                  [
        5      nU R                  S[        R                  5        g )Nc                       \ rS rSrSrg)aProtocolTests.test_interaction_with_isinstance_checks_on_superclasses_with_ABCMeta_2.<locals>.Fooi@  re   Nr}   re   rd   ra   r   r4  @  s    4rd   r   rm   )r  r  r.  r/  r\   r'   r   rh  s     ra   Ftest_interaction_with_isinstance_checks_on_superclasses_with_ABCMeta_2TProtocolTests.test_interaction_with_isinstance_checks_on_superclasses_with_ABCMeta_2<  s<    113/&,,/
 	  FLL1rd   c                     [         [         " S S[        5      5       5       nU R                  [        U5        U R                  [	        5       U5        g )Nc                       \ rS rSrSrg)MProtocolTests.test_empty_protocol_decorated_with_final.<locals>.EmptyProtocoliH  re   Nr}   re   rd   ra   r  r9  H  s    '*rd   r  )r&   r*   r'   r;  r  r   )r_   r  s     ra   (test_empty_protocol_decorated_with_final6ProtocolTests.test_empty_protocol_decorated_with_finalG  s?    		*H* 
 
*fm4fh6rd   c                     [         [         " S S[        5      5       5       nU R                  [        U5        U R                  [        U5        U R                  SU5        U R                  SU5        g )Nc                   &    \ rS rSrS\S\4S jrSrg)]ProtocolTests.test_protocol_decorated_with_final_callable_members.<locals>.ProtocolWithMethodiP  stringr%  c                     g r[   re   )r_   r?  s     ra   r  hProtocolTests.test_protocol_decorated_with_final_callable_members.<locals>.ProtocolWithMethod.startswithS  s    srd   re   Nr  re   rd   ra   ProtocolWithMethodr>  P  s     ;::rd   rB  rX  r   )	r&   r*   r'   r;  r  r_  r   r   r   )r_   rB  s     ra   3test_protocol_decorated_with_final_callable_membersAProtocolTests.test_protocol_decorated_with_final_callable_membersO  si    			; 	; 
 
	; 	c#56  &89e%78  %78rd   c                    [         [         " S S[        5      5       5       n " S S5      nSnU R                  [        U5         [        X!5        S S S 5        U R                  [        U5         [        [        U5        S S S 5        U R                  U" 5       U5        U R                  SU5        g ! , (       d  f       Ng= f! , (       d  f       NI= f)Nc                        \ rS rSr% \\S'   Srg)kProtocolTests.test_protocol_decorated_with_final_noncallable_members.<locals>.ProtocolWithNonCallableMemberi[  r   re   Nr)  re   rd   ra   ProtocolWithNonCallableMemberrG  [  s	     Frd   rH  c                       \ rS rSrSrSrg)QProtocolTests.test_protocol_decorated_with_final_noncallable_members.<locals>.Fooi`  r   re   NrK  re   rd   ra   r   rJ  `  s    Ard   r   r  r   	r&   r*   r'   r  r   r   r   r   r   )r_   rH  r   only_callable_members_pleases       ra   6test_protocol_decorated_with_final_noncallable_membersDProtocolTests.test_protocol_decorated_with_final_noncallable_membersZ  s    			H 	 
 
		 	 L 	% ##I/KLs: M ##I/KLs9: M 	ce%BC  %BC ML ML   B1.C1
B?
Cc                    [         [         " S S[        5      5       5       n " S S5      nSnU R                  [        U5         [        X!5        S S S 5        U R                  [        U5         [        [        U5        S S S 5        U R                  U" 5       U5        U R                  SU5        g ! , (       d  f       Ng= f! , (       d  f       NI= f)Nc                   *    \ rS rSr% \\S'   SS jrSrg)`ProtocolTests.test_protocol_decorated_with_final_mixed_members.<locals>.ProtocolWithMixedMembersiq  r   Nc                     g r[   re   r   s    ra   r  gProtocolTests.test_protocol_decorated_with_final_mixed_members.<locals>.ProtocolWithMixedMembers.methodu  r	  rd   re   r  )rf   rg   rh   ri   r   r  r  rj   re   rd   ra   ProtocolWithMixedMembersrR  q  s     F)rd   rU  c                   "    \ rS rSrSrSS jrSrg)KProtocolTests.test_protocol_decorated_with_final_mixed_members.<locals>.Fooiw  r   Nc                     g r[   re   r   s    ra   r  RProtocolTests.test_protocol_decorated_with_final_mixed_members.<locals>.Foo.methody  r	  rd   re   r  )rf   rg   rh   ri   r   r  rj   re   rd   ra   r   rW  w  s
    A)rd   r   r  r   rK  )r_   rU  r   rL  s       ra   0test_protocol_decorated_with_final_mixed_members>ProtocolTests.test_protocol_decorated_with_final_mixed_membersp  s    			*x 	* 
 
	*	* 	*
 L 	% ##I/KLs5 M ##I/KLs45 M 	ce%=>  %=> ML MLrO  c                    [          " S S[        5      5       nU R                  UR                  1 Sk5        SnU R	                  [
        [        R                  " U5      5         [        [        U5        S S S 5        g ! , (       d  f       g = f)Nc                   8    \ rS rSr% \\S'   \\S'   S\4S jrSrg)CProtocolTests.test_protocol_issubclass_error_message.<locals>.Vec2Di  r   r   r%  c                 @    U R                   S-  U R                  S-  -   $ Nr   r  r   s    ra   square_normOProtocolTests.test_protocol_issubclass_error_message.<locals>.Vec2D.square_norm  s    vv{TVVq[00rd   re   N)rf   rg   rh   ri   r  r  ra  rj   re   rd   ra   Vec2Dr^    s    HH1U 1rd   rc  >   r   r   ra  z[Protocols with non-method members don't support issubclass(). Non-method members: 'x', 'y'.)
r*   r'   r   rt	  r  r   r  r  r   r   )r_   rc  expected_error_messages      ra   &test_protocol_issubclass_error_message4ProtocolTests.test_protocol_issubclass_error_message  sq    		1H 	1 
	1 	113LM- 	 ##Iryy9O/PQsE" RQQs   #A==
Bc                 v   ^  " S S5      m " U4S jS[         5      nU R                  [        U5      S15        g )Nc                       \ rS rSrS rSrg)aProtocolTests.test_nonruntime_protocol_interaction_with_evil_classproperty.<locals>.classpropertyi  c                     [        S5      er  r  )r_   instancer   s      ra   rW  iProtocolTests.test_nonruntime_protocol_interaction_with_evil_classproperty.<locals>.classproperty.__get__  r  rd   re   NrY  re   rd   ra   classpropertyri    rD  rd   rm  c                   &   > \ rS rSr Y " 5       rSrg)_ProtocolTests.test_nonruntime_protocol_interaction_with_evil_classproperty.<locals>.Commentablei  re   Nrf   rg   rh   ri   evilrj   rm  s   ra   Commentablero    s
     ?Drd   rs  rq  )r'   r   r.   )r_   rs  rm  s     @ra   <test_nonruntime_protocol_interaction_with_evil_classpropertyJProtocolTests.test_nonruntime_protocol_interaction_with_evil_classproperty  s3    	) 	)	#( 	# 	-k:VHErd   c                 t  ^^  " S S[         5      m " U4S jS5      mU R                  [        5       n[         " U4S jS[        5      5       nS S S 5        WR
                  nU R                  UR                  S   S5        U R                  [        UR                  5      T5        g ! , (       d  f       N_= f)	Nc                       \ rS rSrSrg)\ProtocolTests.test_runtime_protocol_interaction_with_evil_classproperty.<locals>.CustomErrori  re   Nr}   re   rd   ra   CustomErrorrx    r  rd   ry  c                   "   > \ rS rSrU 4S jrSrg)^ProtocolTests.test_runtime_protocol_interaction_with_evil_classproperty.<locals>.classpropertyi  c                    > Ter[   re   )r_   rk  r   ry  s      ra   rW  fProtocolTests.test_runtime_protocol_interaction_with_evil_classproperty.<locals>.classproperty.__get__  s	    !!rd   re   NrY  )ry  s   ra   rm  r{    s    " "rd   rm  c                   &   > \ rS rSr Y " 5       rSrg)\ProtocolTests.test_runtime_protocol_interaction_with_evil_classproperty.<locals>.Commentablei  re   Nrp  rr  s   ra   rs  r    s
    $rd   rs  r   zEFailed to determine whether protocol member 'evil' is a method member)	Exceptionr   r   r*   r'   rP  r   r   r   r   	__cause__)r_   rT  rs  excry  rm  s       @@ra   9test_runtime_protocol_interaction_with_evil_classpropertyGProtocolTests.test_runtime_protocol_interaction_with_evil_classproperty  s    *)*	" 	" y)R'h ' ' *
 llHHQKS	
 	d3==);7 *)s   B))
B7re   N)Srf   rg   rh   ri   r`  ri  r  r  r  r  r  r  r  r  r  r  r(  rC  rf  r  r  r  r  r  r  r  r  rG  r  r  r  r  r	  r	  r	  r,	  r;	  rL	  r]	  r	  r	  r	  r	  r	  r	  r
  r
  r!
  r-
  r4
  r9
  r>
  rL
  rU
  ri
  ro
  rx
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r   r	  r&  r)  r0  r5  r:  rC  rM  rZ  re  rt  r  rj   re   rd   ra   rL  rL    s   ',/6$0 2),I":!
!&$%@!$F9!vHXT>90v!$F#,#(#0#,<#|R1h<">N@
:#2J($*%"&"&$)$2
h.&&6P..+(!,F4$/2"
=C	>,38':(*:2B:<><:
<9<%8>	(4T	0	;	27	9D,?0#"F8rd   rL  c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSIrKgJ)KGenericTestsi  c                    [         [        [        4   nU R                  UR                  S5        U R                  [        5         U[             S S S 5        U R                  [        5         U[        [        4     S S S 5        [         [        [        4   nU R                  UR                  [        45        U[             U R                  [        5         U[        [        4     S S S 5        [         [        [        4   nU R                  [        5         [        U[         5        S S S 5        U R                  U" 5       [         5        [        S5      nU R                  [        [        U   [        -     R                  U45        g ! , (       d  f       GN@= f! , (       d  f       GN%= f! , (       d  f       N= f! , (       d  f       N= f)Nre   r   )r  r  r   r   r  r   r   r  r   r   r   r   r   r  r  )r_   r  r  SM1r   s        ra   rq  GenericTests.test_basics  s6   #s(#))2.y)cF *y)c3hK *"c'"))B51	#y)c3hK *CH%y)sM* *ce]3CLd1go.==tD *)))
 *) *)s0   
F,FF,F=
F
F),
F:=
Gc                 x   [        S5      n[        S5      nU R                  [        5         [        U   U     S S S 5        U R                  [        5         [        U   U     S S S 5        U R                  [        5          " S S[        U   [        U   5      nS S S 5        U R                  [        5         [	        / [
        [           5        S S S 5        U R                  [        5         [        [        [
        [           5        S S S 5        U R                  [        5          " S S[        5      nS S S 5        U R                  [        5          " S S[        U   [        U   5      nS S S 5        U R                  [        5          " S	 S
[
        U   [        U   5      nS S S 5        U R                  [        5         [        S     S S S 5         " S S[        U   5      nU R                  [        5         US     S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNx= f! , (       d  f       GNQ= f! , (       d  f       GN6= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r	  c                       \ rS rSrSrg)+GenericTests.test_generic_errors.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    r  rd   r}  c                       \ rS rSrSrg)4GenericTests.test_generic_errors.<locals>.NewGenerici  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)3GenericTests.test_generic_errors.<locals>.MyGenerici  re   Nr}   re   rd   ra   	MyGenericr    s    Srd   r  c                       \ rS rSrSrg)4GenericTests.test_generic_errors.<locals>.MyGeneric2i  re   Nr}   re   rd   ra   
MyGeneric2r    s    3rd   r  re   c                       \ rS rSrSrg)+GenericTests.test_generic_errors.<locals>.Di  re   Nr}   re   rd   ra   r  r    r  rd   r  )	r   r   r   r#   r   r   r   r   r  )r_   r   r	  r}  r  r  r  r  s           ra   test_generic_errors GenericTests.test_generic_errors  s   CLCLy)AJqM *y)AJqM *y)0GAJ
0 *y)r49% *y)tT#Y' *y)*W* *y)8GAJ
8 *y)6T!Wgaj6 *y)BK *!
!y)bE *)' *))))))))))))))))) *)sw   HH H/8I-I&I%I7J	
J<J+
H
H,/
H>
I
I"%
I47
J	
J
J(+
J9c                    [         [           [        [           [        [        [        4   [
        [        [        4   [        R                  S   [        R                  R                  S   4 H  nU R                  US9   U R                  [        [        U[        5        U R                  [        [        U[        5        U R                  [        [        X5        U R                  [        [        [        U5        U R!                  [#        U[        5      5        U R                  [        ["        X5        S S S 5        M     g ! , (       d  f       M  = f)N).N)typ)r  r   r   ri  r  r   r\   r"   r  r  rt   r   r   r   r  r   r   r   )r_   r  s     ra   test_generic_subclass_checks)GenericTests.test_generic_subclass_checks  s    ItCy#s(OU38_OOI.OO,,Y79C #&!!)ZfE!!)ZdC!!)ZB!!)ZE 
3 78!!)ZB '&	9 '&s   ?B6E
E	c                    [        S5      n[        S5      nU R                  [        5         [        X4     S S S 5        U R                  [        5         [        XU4     S S S 5        g ! , (       d  f       N8= f! , (       d  f       g = f)Nr   r	  )r   r   r   r#   )r_   r   r	  s      ra   	test_initGenericTests.test_init  sb    CLCLy)ADM *y)A!G *) *)))s   A)A:)
A7:
Bc                     " S S[         R                  [           5      n " S SU5      nU R                  UR                  S5        U R                  [        5         UR                    S S S 5        SUl        SUl         " S S	U5      n " S
 SU[           5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g ! , (       d  f       N= f)Nc                   (   ^  \ rS rSrU 4S jrSrU =r$ )*GenericTests.test_init_subclass.<locals>.Xi  c                 4   > [         TU ]  " S0 UD6  SU l        g )Nr   re   )r   __init_subclass__r;  )r'  r   r   s     ra   r  <GenericTests.test_init_subclass.<locals>.X.__init_subclass__  s    )3F3rd   re   rf   rg   rh   ri   r  rj   r   r   s   @ra   r  r    s     rd   r  c                       \ rS rSrSrg)*GenericTests.test_init_subclass.<locals>.Yi  re   Nr}   re   rd   ra   r  r    rD  rd   r  r   rm   r   c                       \ rS rSrSrg)*GenericTests.test_init_subclass.<locals>.Zi  re   Nr}   re   rd   ra   Zr    rD  rd   r  c                       \ rS rSrSrg)*GenericTests.test_init_subclass.<locals>.Wi  re   Nr}   re   rd   ra   r  r    rD  rd   r  )r\   r#   r   r   r;  r   r  r   )r_   r  r  r  r  s        ra   test_init_subclassGenericTests.test_init_subclass  s    	q! 		 	$~.FF /	 		# 	#$$ /.s   C22
D c                     U R                  [        [        5      S[         S35        U R                  [        [        5      S[         S35        g )Nr   z.SimpleMapping'>z.MySimpleMapping'>)r   r   r  rf   r  r   s    ra   r   GenericTests.test_repr  sH    m,#H:-=>	@o.#H:-?@	Brd   c                 z   [        S5      n[        S5      n " S S[        U   5      nU[        X!4      nU R                  XC[        X!4      5        U R	                  XC[        X4      5        XA[
        4   nU R                  XTU[
        4   5        U R	                  XTU[
        4   5        U R	                  XTU[        4   5        U[           nU R                  Xe[           5        U R	                  Xe[
           5        U R	                  XeU   5        U R                  [        U5      R                  S5      5        g )Nr   r	  c                       \ rS rSrSrg)'GenericTests.test_chain_repr.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    rD  rd   r}  z.C[typing.Tuple[str, int]])	r   r#   r   r   r   r   r  r   r2
  )r_   r   r	  r}  r  r  r  s          ra   test_chain_reprGenericTests.test_chain_repr  s   CLCL	
 	 eADkNeADkN+Aqt~.fIafI&ACy)ACy)cFcF#Av&At$A(* 	+rd   c                    [        S5      n[        SSS9n[        S5      nU R                  [        [        5      S5        U R                  [        [        U   5      S5        U R                  [        [        U   5      S5        U R                  [        [        U   U   [           5      S	5        U R                  [        [        [           5      S	5        g )
Nr   rA  Tr  r	  ztyping.Listztyping.List[~T]ztyping.List[+U]ztyping.List[int])r   r   r   r   r   )r_   r   rA  r	  s       ra   test_new_reprGenericTests.test_new_repr3  s    CLC4(CLd]3d1g(9:d1g(9:d1gajo.0BCd3i*<=rd   c                 h   [        S5      n[        S5      nU R                  [        [        R                  X4   X!4   5      S5        U R                  [        [
        [        X4      [        U4   5      S5        U R                  [        [
        [        X4      [
        [              5      S5        g )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   r\   r	  r   r   r   )r_   r   r  s      ra   test_new_repr_complex"GenericTests.test_new_repr_complex>  s    CLT]fnnQU3BE:;=VWd5<0a89=	?eADk"49-.K	
rd   c                 ,   [        S5      nU R                  [        [        U   5      S5        U R                  [        [        R
                  U   5      S5         " S S[        R                  [        [        4   5      n[        UR                  5        g )Nr   ztyping.Generic[~T]ztyping.Protocol[~T]c                       \ rS rSrSrg)*GenericTests.test_new_repr_bare.<locals>.CiN  re   Nr}   re   rd   ra   r}  r  N  s    rd   r}  )	r   r   r   r#   r\   r'   r    r   __mro__r_   r   r}  s      ra   test_new_repr_bareGenericTests.test_new_repr_bareJ  sd    CLgaj)+?@fooa013HI+CH%+QYYrd   c                    [        S5      n " S S[        U   5      nU" 5       nSUl        U R                  UR                  SS05         " S SU[
           5      nU" 5       nSUl        U R                  UR                  S	S05        g )
Nr   c                       \ rS rSrSrg)!GenericTests.test_dict.<locals>.BiU  re   Nr}   re   rd   ra   r  r  U  rD  rd   r  r   rX  c                       \ rS rSrSrg)!GenericTests.test_dict.<locals>.Ci\  re   Nr}   re   rd   ra   r}  r  \  rD  rd   r}  r  r_  )r   r#   rX  r   rw
  r   r_  )r_   r   r  r   r}  r  s         ra   	test_dictGenericTests.test_dictR  s{    CL	
 	 CeR[1	# 	 CeU^4rd   c                 P    S " 5       nU R                  U[           " 5       U5        g )Nc                  0   ^ S 7=n 4m " U4S jST7
o5      $ )r   c                   "   > \ rS rSr Y rS rSrg)7GenericTests.test_setattr_exceptions.<locals>.Immutableid  c                     [        S5      e)N	immutabler  r  s      ra   __setattr__CGenericTests.test_setattr_exceptions.<locals>.Immutable.__setattr__e  s    ";//rd   re   N)rf   rg   rh   ri   rG  r  rj   rH  s   ra   	Immutabler  d  s
     0rd   r  re   rJ  s     @ra   !<generic parameters of Immutable>OGenericTests.test_setattr_exceptions.<locals>.<generic parameters of Immutable>d  s     	0 	0 	0rd   )r   r   )r_   r  s     ra   test_setattr_exceptions$GenericTests.test_setattr_exceptionsc  s     	0 	in.	:rd   c                    [        S5      n " S S[        U   5      nU R                  U[           R                  S5        U R                  X"[              R                  S5        SX"[              l        U R                  UR                  S5        U R                  U[
           R                  S5        SU[        [
              l        U R                  UR                  S5        U R                  U[        [              R                  S5        U R                  U" 5       R                  S5        U R                  U[        [
              " 5       R                  S5         " S SX!   5      nU R                  U[           R                  S5        U R                  UR                  S5        S	Ul        S
U[           l        U R                  UR                  S5        U R                  U[           R                  S5        U R                  UR                  S
5        U R                  U[
           R                  S	5        g )Nr   c                       \ rS rSrSrSrg)<GenericTests.test_subscripted_generics_as_proxies.<locals>.Cio  defre   NrK  re   rd   ra   r}  r  o  s    Ard   r}  r  changednewc                       \ rS rSrSrg)<GenericTests.test_subscripted_generics_as_proxies.<locals>.Di}  re   Nr}   re   rd   ra   r  r  }  rD  rd   r  zfrom derived zzfrom derived x)	r   r#   r   r   r   r  r   r  r   r_   r   r}  r  s       ra   $test_subscripted_generics_as_proxies1GenericTests.test_subscripted_generics_as_proxiesm  s   CL	
 	35)S6e,C&	i(39-$s)e$5:%0	*5:**E2	 	39-e$##i(35)./3#34rd   c                 4   [        S5      n " S S[        R                  R                  [        U   5      nUR                  [        5        U R                  SU5        U[             U R                  SU5        UR                  5         UR                  5         g )Nr   c                       \ rS rSrSrg).GenericTests.test_abc_registry_kept.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    s    crd   r}  rm   )
r   r  r  r	  r#   r  r   r   r/  _abc_caches_clearr  s      ra   test_abc_registry_kept#GenericTests.test_abc_registry_kept  sm    CL9''9	

3a#	#a#		rd   c                      " S S[         [        [        4   5      nU R                  0 U5        U R                  [        U5        g )Nc                       \ rS rSrSrg)5GenericTests.test_false_subclasses.<locals>.MyMappingi  re   Nr}   re   rd   ra   	MyMappingr    s    4rd   r  )r!   r  r   r_  r|  )r_   r  s     ra   test_false_subclasses"GenericTests.test_false_subclasses  s3    7sCx07  Y/  y1rd   c                 T    " S S[         [        [        4   5      nU" 5       R                  5         U R                  U" 5       [        R
                  R                   5        U R                  U" 5       [         5        U R                  U" 5       [        5        U R                  0 U5        g )Nc                   2    \ rS rSrS rS rS rS rS rSr	g)	'GenericTests.test_abc_bases.<locals>.MMi  c                     g r[   re   r_   r!  s     ra   r  3GenericTests.test_abc_bases.<locals>.MM.__getitem__  r  rd   c                     g r[   re   r_   r!  r  s      ra   r  3GenericTests.test_abc_bases.<locals>.MM.__setitem__  rR  rd   c                     g r[   re   r  s     ra   __delitem__3GenericTests.test_abc_bases.<locals>.MM.__delitem__  rR  rd   c                     [        S5      $ r  iterr   s    ra   r
  0GenericTests.test_abc_bases.<locals>.MM.__iter__      Bxrd   c                     grM  re   r   s    ra   __len__/GenericTests.test_abc_bases.<locals>.MM.__len__  r  rd   re   N
rf   rg   rh   ri   r  r  r  r
  r  rj   re   rd   ra   MMr         rd   r  )r!   r  updater   r  r  r   r   )r_   r  s     ra   test_abc_basesGenericTests.test_abc_bases  st    
	S) 
	 	bdKOO$B$BCbdN3  t,  R(rd   c                 L    " S S[         [        [        4   [        R                  R                   5      n " S S[        R                  R                   [         [        [        4   5      nU R	                  UR
                  [        R                  R                   [        45        g )Nc                       \ rS rSrSrg)-GenericTests.test_multiple_bases.<locals>.MM1i  re   Nr}   re   rd   ra   MM1r    rD  rd   r  c                       \ rS rSrSrg)-GenericTests.test_multiple_bases.<locals>.MM2i  re   Nr}   re   rd   ra   MM2r    rD  rd   r  )r!   r  r  r  r   	__bases__r#   )r_   r  r  s      ra   test_multiple_bases GenericTests.test_multiple_bases  sg    	.c*KOO,J,J 		+//00.c2J 	)G)G(QRrd   c                     [        S5      n " S S[        R                  [        U4   5      nU R	                  UR
                  [        R                  [        U4   45        g )Nr   c                       \ rS rSrSrg)'GenericTests.test_orig_bases.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    rb  rd   r}  )r   r\   r    r  r   __orig_bases__r  s      ra   test_orig_basesGenericTests.test_orig_bases  sF    CL)CF#)))FKKQ,?+ABrd   c                    S nU R                  U" SS0[        R                  [        [        4   5      5        U R                  U" SS0[        R                  [        [        4   5      5        U R                  [        5         U" SS0[        R                  [        [        4   5        S S S 5        S n " S S[        [           5      nU R                  U" U[           " 5       U[           5      5        U R                  U" U[           " 5       U[           5      5        U R                  U" U[           " 5       [        5      5        U R                  [        5         U" / SQU[           5        S S S 5        S n " S	 S
[        [           5      nU R                  U" / SQU5      5        U R                  U" SS/U5      5        g ! , (       d  f       GN$= f! , (       d  f       Nn= f)Nc                    ^^ [        UR                  5      S:  a  [        eUR                  (       a3  UR                  u  mm[	        UU4S jU R                  5        5       5      $ g )Nr   c              3   f   >#    U  H&  u  p[        UT5      =(       a    [        UT5      v   M(     g 7fr[   )r   ).0r!  r  r   r   s      ra   	<genexpr>SGenericTests.test_naive_runtime_checks.<locals>.naive_dict_check.<locals>.<genexpr>  s0       + q"%;*Q*;; +s   .1)rO  r  r  r  allr  )rU  tpr   r   s     @@ra   naive_dict_check@GenericTests.test_naive_runtime_checks.<locals>.naive_dict_check  sU    2$$%))){{B  #		   rd   r   rm   c                 N    [        U S5      (       d  [        eU R                  U:H  $ )Nr  )r	  r  r  rU  r!  s     ra   naive_generic_checkCGenericTests.test_naive_runtime_checks.<locals>.naive_generic_check  s'    3 011))%%++rd   c                       \ rS rSrSrg)4GenericTests.test_naive_runtime_checks.<locals>.Nodei  re   Nr}   re   rd   ra   Noder)    r  rd   r*  r  c                 .   ^ [        U4S jU  5       5      $ )Nc              3   p   >#    U  H+  n[        UTR                  S    R                  S    5      v   M-     g7f)r   N)r   r  r  )r  r   r!  s     ra   r  XGenericTests.test_naive_runtime_checks.<locals>.naive_list_base_check.<locals>.<genexpr>  s8      % #1 "!R%6%6q%9%B%B1%EFF #s   36)r   r%  s    `ra   naive_list_base_checkEGenericTests.test_naive_runtime_checks.<locals>.naive_list_base_check  s     % #% % %rd   c                       \ rS rSrSrg)1GenericTests.test_naive_runtime_checks.<locals>.Ci  re   Nr}   re   rd   ra   r}  r1    s    Crd   r}  rL  r   )r   r\   r    r  r   r   r   r  r   r#   r   )r_   r"  r&  r*  r.  r}  s         ra   test_naive_runtime_checks&GenericTests.test_naive_runtime_checks  sf   		 	(#q6;;sCx3HIJ)1c(FKKS4IJK23aXv{{36':; 4	,
 	$71:#+DIKcCD,T#Y[$s)DE,T#Y[$?@23	495 4	% 	 S	-i;<.Sz1=>+ 43 43s   'GG
G
G'c                    [        S5      n[        S5      n[        S5      n " S S[        U   U   U   5      n " S SU[        U   U   U   5      nU R                  UR                  U45        U R                  UR                  U45        U R                  U[           R                  S5        U R                  U[           R                  S5        U R                  U[           R
                  [        45        U R                  U[           R
                  [        45        U R                  UR                  [        [        45        U R                  UR                  U[        [        45        U R                  UR                  [        U   U   U   45        U R                  UR                  U[        U   U   U   45        g )	Nr   rA  r  c                       \ rS rSrSrg).GenericTests.test_multi_subscr_base.<locals>.Ci  re   Nr}   re   rd   ra   r}  r6    r  rd   r}  c                       \ rS rSrSrg).GenericTests.test_multi_subscr_base.<locals>.Di  re   Nr}   re   rd   ra   r  r8    r  rd   r  re   )
r   r   r   r  r   r  r  r  r#   r  )r_   r   rA  r  r}  r  s         ra   test_multi_subscr_base#GenericTests.test_multi_subscr_base  s^   CLCLCL#Q
1#&471:a=&))A40))A403..33..333&133&1tWo6q$&89))DGAJqM+;<))AtAwqz!}+=>rd   c                 ,   [        S5      n " S S[        5      nU R                  [        U   [        U   5        U R                  [        U[
        4   U   [        U[
        4   5        U R                  [        SU4   R                  [        U45        g )Nr   c                       \ rS rSrSrg).GenericTests.test_subscript_meta.<locals>.Metai  re   Nr}   re   rd   ra   Metar=    s    #rd   r>  .)	r   r   r   r7   r   r   r"   r  Ellipsis)r_   r   r>  s      ra   test_subscript_meta GenericTests.test_subscript_meta  su    CL4dT$Z0q#vt,eD#I.>?#t),55$7GHrd   c                 0    " S S[         [           5      n " S S[         [           5      nU R                  X5        U R                  [        R                  [
           [        R                  [
           5        U R                  UR                  UR                  5        U R                  [        R                  R                  UR                  [
              [        R                  R                  UR                  [
              5        U R                  XR                  5        U R                  U[        R                  5        U R                  U[        R                  R                  5        U R                  UR                  [        R                  5        U R                  UR                  [        R                  R                  5        U R                  U[
           UR                  [
           5        U R                  U[        [              UR                  [        [              5        U R                  U[
           [        R                  [
           5        U R                  U[
           [        R                  R                  [
           5        U R                  UR                  [           [        R                  [           5        U R                  UR                  [        [              [        R                  R                  [        [              5        U R                  [        U[
              [        UR                  [
              5        U R                  [        U[        [                 [        UR                  [        [                 5        U R                  [        [
        U[
           4   [        [
        [        R                  [
           4   5        U R                  [        U[
           U[
           4   [        U[
           [        R                  [
           4   5        U R                  [        R                  U[
              [        R                  [        R                  R                  [
              5        U R                  [!        [        U[
              5      R#                  S5      5        U R                  [!        [        UR                  [
              5      R#                  S5      5        U R                  [!        [        [        R                  [
              5      R#                  S5      5        U R                  [!        [        [        R                  R                  [
              5      R#                  S5      5        g )	Nc                       \ rS rSrSrg)+GenericTests.test_generic_hashes.<locals>.Ai  re   Nr}   re   rd   ra   r  rD        rd   r  c                   0    \ rS rSr " S S\\   5      rSrg)+GenericTests.test_generic_hashes.<locals>.Bi  c                       \ rS rSrSrg)-GenericTests.test_generic_hashes.<locals>.B.Ai  re   Nr}   re   rd   ra   r  rI        rd   r  re   N)rf   rg   rh   ri   r#   r   r  rj   re   rd   ra   r  rG    s    GAJ rd   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   rU   r  r  r  r   r   r   r   r   r   r\   	FrozenSetr   r   r2
  r  s      ra   test_generic_hashes GenericTests.test_generic_hashes  s   	
 		
 	 	+--c24F4H4H4MNacc"+--//C9+--//C9	; 	Ass#A1334A133556ACC!3!5!56ACC!3!5!5!7!78AcFACCH-Ad3iL!##d3i.9AcF$6$8$8$=>AcF$6$8$8$:$:3$?@ACCH&8&:&:3&?@ACCS	N,>,@,@,B,B49,MNE!C&M5S?;E!DI,/qss49~1FGE#qv+.c;M;O;OPS;T6T0UVE!C&!C&.1!!C&*<*>*>s*C"CD	FF,,QsV4",,-?-A-A-C-CC-HI	K 	U1S6]+445GHIU133s8_-667KLMU#5#7#7#<=>!">?	AU#5#7#7#9#9##>?@!"@A	Crd   c                    [        S5      n[        S5      nU R                  [        X4   [           [        [        [        4   5        U R                  [        R
                  [        X4      U   [        R
                  [        X4      5        U R                  [        5         [        U[        4   S     S S S 5        U R                  [        U[        4   [           [        5        U R                  [        X4   [        [        [        [        4   4   [        [        [        4   5         " S S5      n " S SU5      nU R                  [        X4   [        X44      [        X44   5        U R                  [        U/U4   [           [        [        /[        4   5        U R                  [        S[        U   4   [           [        S[        [           4   5        g ! , (       d  f       GN3= f)	Nr   rA  re   c                       \ rS rSrSrg)9GenericTests.test_extended_generic_rules_eq.<locals>.Basei&  re   Nr}   re   rd   ra   BaserP  &  r  rd   rQ  c                       \ rS rSrSrg)<GenericTests.test_extended_generic_rules_eq.<locals>.Derivedi'  re   Nr}   re   rd   ra   DerivedrS  '  r;  rd   rT  .)r   r   r   r   r\   r  r   r   r   r  r"   r   r   )r_   r   rA  rQ  rT  s        ra   test_extended_generic_rules_eq+GenericTests.test_extended_generic_rules_eq  sw   CLCLqtS)5c?;qt5a8&//%PQPT+:VWy)!S&M" * 	q#vs+S1qtS%S/%9:E#s(OL d qwdm(<=uT]?ST1#q&)"-xb/AB#tAw,/4hsDI~6NO *)s   %G$$
G3c                     [        S5      nU R                  [        [        [        [
        4   5      R                  SS5      S5        U R                  [        [        [        [        [           4   5      R                  SS5      S5        U R                  [        [
        S[        U   4   [           5      R                  SS5      S5        U R                  [        [
        / [        U   4   [           5      R                  SS5      S5        g )	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   r  s     ra    test_extended_generic_rules_repr-GenericTests.test_extended_generic_rules_repr,  s    CLeE8O45==iL1	3eE5:$567??	2N3	5hsHQK'78=>FFyRTU7	9hr47{3C89AA)RP2	4rd   c                 b   S[         [         S      4S jnS[        [        [        S5            4S jnS[        [        S5         [        -  4S jn " S S5      nU R	                  [        U[        5       [        5       5      S[         [         U      05        U R	                  [        U[        5       [        5       5      S[        [        U      05        U R	                  [        U[        5       [        5       5      S[        U[        -     [        -  05        [        S5      n[        US	4   nSU4S
 jnU R                  [        U[        5       [        5       5      S   U5        [        S	[         U   4   nSU4S jn	U R                  [        U	[        5       [        5       5      S   U5        g )Nr   CCc                     g r[   re   r   s    ra   foobar5GenericTests.test_generic_forward_ref.<locals>.foobar8  s    rd   c                     g r[   re   r   s    ra   foobar26GenericTests.test_generic_forward_ref.<locals>.foobar29  rE  rd   zCC | intc                     g r[   re   r   s    ra   foobar36GenericTests.test_generic_forward_ref.<locals>.foobar3:  r-  rd   c                       \ rS rSrSrg)1GenericTests.test_generic_forward_ref.<locals>.CCi;  re   Nr}   re   rd   ra   r[  rf  ;  s    #rd   r   .c                     g r[   re   r   s    ra   barfoo5GenericTests.test_generic_forward_ref.<locals>.barfooK  r  rd   c                     g r[   re   r   s    ra   barfoo26GenericTests.test_generic_forward_ref.<locals>.barfoo2N  rm  rd   )r   r  rC   r   r   r+   rx  ry  r   r   r   r"   )
r_   r]  r`  rc  r[  r   ATrh  CTrk  s
             ra   test_generic_forward_ref%GenericTests.test_generic_forward_ref7  sS   ,d4:&,9tDD!1239?tJz23c9?679fh7$tBx.!	
 	7GIvx8$tBx.!	
 	7GIvx8$rCx.3&'	

 CL1c6]bnVWYA#FKc47l#rnWgiB3GLrd   c           
          " S S5      nU R                  [        U[        5       [        5       5      S[        U   05         " S S5      nU R                  [        U[        5       [        5       5      S[
        U[        [        [        U         4   05        0 n[        [        R                  " S5      U5        US   nU R                  UR                  S   S5        U R                  [        U[        5       [        5       5      S[        [        U      05        [        S	   nS
U4S jnU R                  [        U[        5       [        5       5      S
[        [        [        S	5            05        g )Nc                   &    \ rS rSr% \S   \S'   Srg)8GenericTests.test_generic_pep585_forward_ref.<locals>.C1iT  r  rL  re   Nrf   rg   rh   ri   r  r  rj   re   rd   ra   r  rs  T  s    DzMrd   r  rL  c                   <    \ rS rSr% \S\\\S         4   \S'   Srg)8GenericTests.test_generic_pep585_forward_ref.<locals>.C2i[  r  r  rL  re   N)	rf   rg   rh   ri   r|  r  r   r  rj   re   rd   ra   r  rv  [  s     D$tDJ/0011rd   r  zf
        from __future__ import annotations
        class C3:
            a: List[list["C2"]]
        r  zList[list['C2']]r  r   c                     g r[   re   r   s    ra   r`   7GenericTests.test_generic_pep585_forward_ref.<locals>.fr  r  rd   )r   r+   rx  ry  r  r|  r   r  textwrapdedentr  rC   )r_   r  r  scoper  r  r`   s          ra   test_generic_pep585_forward_ref,GenericTests.test_generic_pep585_forward_refQ  s<   	 	2wy&(3$r(O	

	2 	22wy&(3$r4T"X//01	
 X__   		
 4[++C02DE2wy&(3$tBx.!	
 I1gi2$tJsO,-.	
rd   c                    [        [        R                  5      n[        [        R                  5      n[        R                  R
                  nU R                  US   US   5        U R                  US   R                  S   [        US      5        U R                  US   R                  S   US   5        U R                  [        R                  U5        g )Nr   r   r   rm   r  r   )
r|  rT   rw
  r+   r  rG  r   r   r  r   )r_   original_globalshints_for_AA_type_paramss       ra   1test_pep695_generic_class_with_future_annotations>GenericTests.test_pep695_generic_class_with_future_annotationsx  s     6 67$]__5%77k#&a(89S)2215vmA>N7OPk#&//2M!4DE 	//1ABrd   c                 z    [        [        R                  5      nU R                  U[        [
        [        S.5        g )Nr  )r+   rT   r  r   r   r  r  )r_   hints_for_Bs     ra   Etest_pep695_generic_class_with_future_annotations_and_local_shadowingRGenericTests.test_pep695_generic_class_with_future_annotations_and_local_shadowing  s'    $]__5Cc&FGrd   c                     [        [        R                  5      nU R                  [	        UR                  5       5      [	        [        R                  R                  5      5        g r[   )r+   rT   r}  r   rB  valuesrG  )r_   hints_for_Cs     ra   Mtest_pep695_generic_class_with_future_annotations_name_clash_with_global_varsZGenericTests.test_pep695_generic_class_with_future_annotations_name_clash_with_global_vars  sA    $]__5""$%//0	
rd   c                    [        [        R                  5      n[        R                  R                  nU R	                  UR                  5       1 Sk5        U R                  US   US   5        U R	                  US   [        US      5        U R                  US   R                  US   5        U R                  US   R                  US   5        g )	N>   r   r   r  zzr%  r   r   r   rm   r  r   r  )	r+   rT   generic_functionrG  r   r	  r   r   r  )r_   hints_for_generic_functionfunc_t_paramss      ra   5test_pep_695_generic_function_with_future_annotationsBGenericTests.test_pep_695_generic_function_with_future_annotations  s    %3M4R4R%S"%66FF&++-/N	
 	05}Q7GH3C8&qAQ:RS05@@-PQBRS06AA=QRCSTrd   c                     U R                  [        [        [        R                  5      R                  5       5      [        [        R                  R                  5      5        g r[   )r   rB  r+   rT   generic_function_2r  rG  r   s    ra   Qtest_pep_695_generic_function_with_future_annotations_name_clash_with_global_vars^GenericTests.test_pep_695_generic_function_with_future_annotations_name_clash_with_global_vars  s@    }??@GGIJ00@@A	
rd   c                 &   [        [        R                  R                  5      n[        R                  R                  R                   Vs0 s H  nUR
                  U_M     nnU R                  UUS   US   [        R                  S.5        g s  snf )Nr   r   )r   r   r%  )	r+   rT   r  generic_methodrG  rf   r   rQ  NoneType)r_   hints_for_generic_methodparamparamss       ra   3test_pep_695_generic_method_with_future_annotations@GenericTests.test_pep_695_generic_method_with_future_annotations  s    #1-//2P2P#Q  '77GG
G NNE!G 	 
 	$-fUmu~~N	
	
s   
Bc                     U R                  [        [        [        R                  R
                  5      R                  5       5      [        [        R                  R
                  R                  5      5        g r[   )r   rB  r+   rT   r  generic_method_2r  rG  r   s    ra   Otest_pep_695_generic_method_with_future_annotations_name_clash_with_global_vars\GenericTests.test_pep_695_generic_method_with_future_annotations_name_clash_with_global_vars  sH    }??@GGIJ00@@A	
rd   c                 ~   [         R                  " 5       nU R                  [        UR                  R                  5       5      [        UR                  R                  5      5        U R                  [        UR                  R                  5       5      [        UR                  R                  R                  5      5        U R                  [        UR                  R                  5       5      [        UR                  R                  5      5        U R                  [        UR                  R                  5       5      R                  UR                  R                  5      [        5       5        U R                  [        UR                  R                  5       5      [        UR                  R                  5      5        g r[   )rT   nestedr   rB  hints_for_Er  r  rG  hints_for_E_methr  r   intersectionhints_for_generic_funcgeneric_func)r_   resultss     ra   @test_pep_695_generics_with_future_annotations_nested_in_functionMGenericTests.test_pep_695_generics_with_future_annotations_nested_in_function  s;   &&(##**,-		))*	
 	((//12		((889	
 	((//12		))*	
 	((//12??		@Y@YZE	

 	..5578$$445	
rd   c                     " S S[         [        [        4   5      n " S S[         [        S4   5      n " S S[        R                  [           5      nU R                  UR                  [        [        45        U R                  U[        [        4   R                  [        [        45        U R                  U[        [        4   R                  U5        U R                  UR                  [        45        U R                  [        U[           5      R                  S5      S	   S
5        U R                  UR                  [        45        U R                  U" 5       [        R                  R                  5        U R!                  U[        R                  R                  5        U R                  U" 5       ["        5        U R!                  U["        5        U R%                  [&        5         [)        [         [        S4   [        R*                  5        S S S 5        U R%                  [&        5         [)        [         [        S4   [        R,                  5        S S S 5        g ! , (       d  f       NT= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)@GenericTests.test_extended_generic_rules_subclassing.<locals>.T1i  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)@GenericTests.test_extended_generic_rules_subclassing.<locals>.T2i  re   Nr}   re   rd   ra   r  r    ra  rd   r  .c                       \ rS rSrS rSrg)@GenericTests.test_extended_generic_rules_subclassing.<locals>.C1i  c                     g)NFre   )r_   items     ra   __contains__MGenericTests.test_extended_generic_rules_subclassing.<locals>.C1.__contains__  s    rd   re   N)rf   rg   rh   ri   r  rj   re   rd   ra   r  r    r  rd   r  .zC1[int])r   r   r   r\   	Containerr   r  r   r  r  r  r   splitr   r  r  r;  ri  r   r   r   Sequencer  )r_   r  r  r  s       ra   'test_extended_generic_rules_subclassing4GenericTests.test_extended_generic_rules_subclassing  s   #q"u#$q#v$	!!!$ 	 	**QG4CH..c
;CF..3**QD1 	bg,,S1"5yA**QD1bdKOO$=$=>b+//";";<bdE*b%(y)uS#X8 *y)uS#X8 *) *)))s   ,(I"1(I3"
I03
Jc                 z   U R                  [        5         [        [             S S S 5        U R                  [        5         [        [
             S S S 5        U R                  [        5         [        [        [                S S S 5        g ! , (       d  f       Nl= f! , (       d  f       NR= f! , (       d  f       g = fr[   )r   r   r   r   r   r   r$   r   r   s    ra   test_fail_with_bare_union&GenericTests.test_fail_with_bare_union  so    y)K *y)(O *y)# *)	 *)))))s#   B
B,B,

B
B),
B:c                    [        S5      nU R                  [        5         [        [             S S S 5        U R                  [        5         [
        [        U        S S S 5        U R                  [        5         [        [        R                       S S S 5        g ! , (       d  f       Nr= f! , (       d  f       NU= f! , (       d  f       g = fr  )r   r   r   r   r#   r   r\   r'   r  s     ra   test_fail_with_bare_generic(GenericTests.test_fail_with_bare_generic  s}    CLy)M *y)'!* *y)! *)	 *)))))s#   BB,:B=
B),
B:=
Cc                    [        S5      nU R                  5          " S S[        X4   5      nU R                  U[           " 5       R
                  U5        U R                  U[           " 5       R                  U[           5         " S S[        R                  X4   5      nU R                  U[           " 5       R
                  U5        U R                  U[           " 5       R                  U[           5         " S S[        R                  [        U4   5      nU R                  U[           " 5       R
                  U5        U R                  U[           " 5       R                  U[           5         " S S	[        R                  [        U4   5      nU R                  U[           " 5       R
                  U5        U R                  U[           " 5       R                  U[           5        g )
Nr   c                       \ rS rSrSrg)5GenericTests.test_type_erasure_special.<locals>.MyTupi  re   Nr}   re   rd   ra   MyTupr        #rd   r  c                       \ rS rSrSrg)6GenericTests.test_type_erasure_special.<locals>.MyDicti  re   Nr}   re   rd   ra   MyDictr    rh  rd   r  c                       \ rS rSrSrg)5GenericTests.test_type_erasure_special.<locals>.MyDefi  re   Nr}   re   rd   ra   MyDefr    s    rd   r  c                       \ rS rSrSrg)7GenericTests.test_type_erasure_special.<locals>.MyChaini  re   Nr}   re   rd   ra   MyChainr    s    rd   r  )r   rb   r   r   r   r   r   r  r\   r    DefaultDictr  ChainMap)r_   r   r  r  r  r  s         ra   test_type_erasure_special&GenericTests.test_type_erasure_special  sL   CL%E!$K%eCjl,,e4s44eCjA,V[[&,fSkm--v655vc{C4F&&sAv.4eCjl,,e4s44eCjA3fooc1f-3gcln..866Erd   c                 n   S [         R                   5       nU GH  nU R                  [        U5      S5        U R	                  X"5        [        USS 5      (       a  [        U[         R                  5      (       d`  [        UR                  [        5      (       aA  [        UR                  5      S:X  a(  U R	                  U[           R                  [        45        [        U[        5      (       d  M  UR                   H/  nU R                  [        U5      S5        U R	                  X35        M1     GM     g )Nc              3   B   #    U  H  n[        [        U5      v   M     g 7fr[   )getattrr\   )r  els     ra   r  4GenericTests.test_all_repr_eq_any.<locals>.<genexpr>
  s     =n##ns   r   r  rm   )r\   __all__r   r   r   r  r   r   r  ri  rO  r   r  r   r  )r_   objsrU  bases       ra   test_all_repr_eq_any!GenericTests.test_all_repr_eq_any	  s    =fnn=CS	2.S&-t44&sFNN;;"3#5#5u==C../14  S!2!2SF;#t$$KKD''T
B7$$T0 ( rd   c                    [        S5      n " S S[        U   5      n " S SU[           5      q[        5       nSUl        SUl        [        [        R                  S-   5       H  n[        R                  " X45      n[        R                  " U5      nU R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  SSS	.5        M     [        [        [        [         ["        [        [        [$        4   ["        [&           [        [        S
4   [        S   [         [$        /[(        4   [*        R,                  [*        R.                  [           /nU Hc  n[        [        R                  S-   5       H@  n[        R                  " X5      n[        R                  " U5      nU R                  X5        MB     Me     [&        [*        R0                  [*        R2                  [&        [           [*        R2                  [*        R4                     [*        R6                  [        [        [$        4      /n	U	 Hc  n[        [        R                  S-   5       H@  n[        R                  " X5      n[        R                  " U5      nU R                  X5        MB     Me     [9        S5      q[:        R<                  [:        R>                  4 Hx  n
[        [        R                  S-   5       HU  nU RA                  XS9   U R                  [        R                  " [        R                  " X5      5      U
5        S S S 5        MW     Mz     Bg ! , (       d  f       Mn  = f)Nr   c                       \ rS rSrSrg)#GenericTests.test_pickle.<locals>.Bi  re   Nr}   re   rd   ra   r  r    rD  rd   r  c                       \ rS rSrSrg)r}  i  re   Nr}   re   rd   ra   r}  r}    rD  rd   r}  r   r  rm   r  .re   PP)r  rp   )!r   r#   r   r}  rX  r_  rq   rr   rs   r  r  r   rw
  r   r   r   r"   r$   r  r   r  r\   r  rK  r  r7   r	  AbstractSetrG   r  r   r   rt   )r_   r   r  r  rp   r  r   r  r   more_samplesr  s              ra   r  GenericTests.test_pickle  sx   CL	
 		# 	 C622Q67EQ&AQAQUUB'QUUE*QZZE)BC 8 uhc?HTNE#s(OU2YSE5L)%%v'7'7'<> Av66:;LL*LLO  & < 
 foov{{DIFNN3V5G5GcSVh5XZAv66:;LL*LLO  & <  t_ggryy)Ev66:;\\\;$$V\\%%?@ <; < *  <;s   ;M$$
M3c                 "   [        S5      n " S S[        U   5      n[        U[        4   [        U[        4   [        S   [
        SU4   [
        [        /[        4   [        [        [        4   X!   U[           U[           [        R                  U   [        R                  [           [        R                  [           [        R                  [        [        4   [        R                  U[        4   [        [           [        [        U      [        S   [        S[        4   [        S   [        R                  S[        4   /nU[        /-    H9  nU R                  U[        U5      5        U R                  U[!        U5      5        M;     g )Nr   c                       \ rS rSrSrg)1GenericTests.test_copy_and_deepcopy.<locals>.NodeiJ  re   Nr}   re   rd   ra   r*  r  J  r  rd   r*  re   .)r   r   )r   r#   r   r   r   r"   r   r\   r  r    r  r$   r   r	  r   r   r   )r_   r   r*  thingsr  s        ra   test_copy_and_deepcopy#GenericTests.test_copy_and_deepcopyH  s!   CL#71:#3-q#vb	36"HcUCZ$8S/47DItCy&//RSBT//#&(<fkk#s(>S++af%x}htAw6GxS/49fnnS#X.FH 3%AQQ(Q,  rd   c                    [        S5      q[        S[        S9q[        S[        [
        5      q[        S5      q[        [        [        [        [        [        R                  [        [        R                  [        [        [         ["        4 H  nU R%                  US9   U R'                  [)        U5      U5        U R'                  [+        U5      U5        [-        [.        R0                  S-   5       H=  nU R'                  [.        R2                  " [.        R4                  " X5      5      U5        M?     S S S 5        M     BBBB[        S5      n[        S	[        S9n[        S
[        [
        5      n[        S5      nX4XV4 HQ  nU R%                  US9   U R'                  [)        U5      U5        U R'                  [+        U5      U5        S S S 5        MS     g ! , (       d  f       GMY  = f! , (       d  f       Mx  = f)Nr:  TPBr  TPVr  )r  rm   TLTLBTLVPL)r   r:  r   r  r  r  r  rG   r  r   r\   r	  r$   r  r   r   r   r"   rt   r   r   r   rq   rr   rs   r  r  )r_   r  rp   r  r  r  r  s          ra   $test_immutability_by_copy_and_pickle1GenericTests.test_immutability_by_copy_and_pickleU  sj    T]e3'eUC(t_c3&//eX/A A&d1gq)hqk1-"6#:#:Q#>?EMM&,,v||A/E"FJ @ '&/ S" T]e3'eUC(t_3#AA&d1gq)hqk1- '& $ '& '&s   BG7G(
G%	(
G7	c                   ^ [        S5      m " U4S jS[        T   5      nU" S5      nU R                  [        U5      R                  S5        U R                  [        U5      R                  S5        U R                  [        U5      U5        U R                  [        U5      U5        SUl        U R                  [        U5      R                  S5        U R                  [        U5      R                  S5        U[           " S5      nU R                  [        U5      R                  S5        U R                  [        U5      R                  S5        U R                  [        U5      U5        U R                  [        U5      U5        SUl        U R                  [        U5      R                  S5        U R                  [        U5      R                  S5        U R                  UR                  U[           5        g )Nr   c                   *   > \ rS rSrS Y SS4S jrSrg)3GenericTests.test_copy_generic_instances.<locals>.Cis  r;  r%  Nc                     Xl         g r[   r  r   s     ra   r   <GenericTests.test_copy_generic_instances.<locals>.C.__init__t  r  rd   r  r   rw  s   ra   r}  r  s  s    !Q !4 !rd   r}  r   rm   )	r   r#   r   r   r;  r   r}	  r   r  )r_   r}  r  cir   s       @ra   test_copy_generic_instances(GenericTests.test_copy_generic_instancesq  st   CL	!
 	! bEar*!))2.a!$!a(aq)!))1-sVBZb+"**B/b2&"r*b*"**A.**AcF3rd   c           	         [        S5      n[        [        U[        4   [        SU4   [
        [        [        4   [        [        [              [        R                  [        [        4   [        R                  [           [        R                  S   /nU H.  nU R                  [        R                   " U5      " 5       U5        M0     g )Nr   .whatever)r   r   r   r   r"   r   r   r   r\   r	  r  rA   r  r  r   r)  r  )r_   r   r  r  s       ra   test_weakref_allGenericTests.test_weakref_all  s    CLuQV}hsAv&6c3h49%v~~c3h'?,,u%vz'BD AW[[^-q1 rd   c                 8   [        S5      n " S S[        U   5      nU" 5       nU[           " 5       nSUl        SUl        U R	                  [
        5         SUl        S S S 5        U R	                  [
        5         SUl        S S S 5        SUS   4S jnU R                  [        U[        5       [        5       5      S   X"   5        U R                  [        U[           5      [        U[           5      5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   c                       \ rS rSrSrSrg)0GenericTests.test_parameterized_slots.<locals>.Ci  )potatore   Nr  re   rd   ra   r}  r    s    #Ird   r}  r   r   c                     g r[   re   r   s    ra   rX  2GenericTests.test_parameterized_slots.<locals>.foo  rm  rd   )r   r#   r   r  r   r  tomator   r+   rx  ry  r   r   )r_   r   r}  r  c_intrX  s         ra   test_parameterized_slots%GenericTests.test_parameterized_slots  s    CL	$
 	$ C#~.AH /~.EL / 	 1S6WYA#FMafx#'78 /...s   C:;D:
D
Dc                 \   [        S5      n " S S[        U   5      nU" 5       nU[           " 5       nSUl        SUl        U R	                  [
        5         SUl        S S S 5        U R	                  [
        5         SUl        S S S 5        g ! , (       d  f       N4= f! , (       d  f       g = f)Nr   c                       \ rS rSrSS0rSrg)5GenericTests.test_parameterized_slots_dict.<locals>.Di  bananar   re   Nr  re   rd   ra   r  r    s    !2Ird   r  yesr  )r   r#   r   r  r   r  r]  )r_   r   r  r  d_ints        ra   test_parameterized_slots_dict*GenericTests.test_parameterized_slots_dict  s    CL	'
 	' C#~.AH /~.EL /. /...s   B;B
B
B+c                     U R                  [        5         [        [        [        4   n " S S[
        U   5      nS S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)#GenericTests.test_errors.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    r  rd   r}  )r   r   r  r  r   r#   )r_   r  r}  s      ra   r   GenericTests.test_errors  s:    y)b#g&AGAJ  *))s   &A
Ac                     " S S[         [           5      nU R                  UR                  [        5        U R                  UR
                  S5        U[           nU R                  UR                  [        5        U R                  [        U5      R                  S5      S   S5         " S SU[           5      nU R                  UR                  [        5        U R                  UR
                  S	5        g )
Nc                       \ rS rSrSrg)#GenericTests.test_repr_2.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    rD  rd   r}  r  r  r  zC[int]c                       \ rS rSrSrg)#GenericTests.test_repr_2.<locals>.Yi  re   Nr}   re   rd   ra   r  r    rD  rd   r  r  )	r#   r   r   rg   rf   rh   r   r   r  )r_   r}  r  r  s       ra   test_repr_2GenericTests.test_repr_2  s    	
 	 	x0>	@cFx0as+B/:	# 	 	x0>	@rd   c                 b   [        S5      n[        S5      n[        S5      n[        S5      n[        S5      n " S S[        X14   5      n " S S	[        X4U4   5      n " S
 S[        / UQUP7   5      nXcU4   SU[        X#4   U4   SU/ [
        4   SU[        /[
        4   SU[        [        /[
        4   SU[        [        [           /[
        4   SU[        / UQUP7   U4   SXtX14   SU[        /[        /[
        4   SU[        [        /[        [        /[
        4   SU/ UQUP7   SU[        [        [        [           / 4   SU[        [        [        [           /4   SU[        / UQUP7   [        4   [        [        [
        [        /4   S0n	U	R                  5        Hq  u  pU R                  XS9   U R                  [        U
5      S[        R                  " UR                   5       S[        R                  " U5       S35        S S S 5        Ms     g ! , (       d  f       M  = f)Nr   r  rQ  r  r_  c                       \ rS rSrSrg),GenericTests.test_repr_3.<locals>.MyCallablei  re   Nr}   re   rd   ra   
MyCallabler$    rD  rd   r%  c                       \ rS rSrSrg),GenericTests.test_repr_3.<locals>.DoubleSpeci  re   Nr}   re   rd   ra   
DoubleSpecr'    rD  rd   r(  c                       \ rS rSrSrg)%GenericTests.test_repr_3.<locals>.TsPi  re   Nr}   re   rd   ra   TsPr*    rD  rd   r+  zMyCallable[~P, ~T]z+MyCallable[typing.Concatenate[~T1, ~P], ~T]zMyCallable[[], bool]zMyCallable[[int], bool]zMyCallable[[int, str], bool]z"MyCallable[[int, list[int]], bool]z9MyCallable[typing.Concatenate[typing.Unpack[Ts], ~P], ~T]zDoubleSpec[~P2, ~P, ~T]zDoubleSpec[[int], [str], bool]z(DoubleSpec[[int, int], [str, str], bool]zTsP[typing.Unpack[Ts], ~P]zTsP[int, str, list[int], []]zTsP[int, [str, list[int]]]z(MyCallable[[int, str, bool, float], int])rU  expected_repr^z.*\.$)r   rG   r   r#   rH   r  r   r  r  r  r  rt   assertRegexr   r  r  rg   )r_   r   r  rQ  r  r_  r%  r(  r+  object_to_expected_reprrU  r,  s               ra   test_repr_3GenericTests.test_repr_3  s/   CLT]cNt_$	 		* 		'&2&q&/ 	 !t6J{25)1,-6cr4x 6Lud{#6OSz4'(6TT#Y'-.6Z{6B66*A-.6q1x 6OuseT)*6VSzC:t346`QK6RS$s)R'(6Tc49%%&6R {6B66*C/0cD%=1HI6`'#
, #:"?"?"AC#C  I:#8#89:$ryy?W>XXYZ DC #BCCs   =AH
H.	c                     U R                  [        [        5        U R                  [        [           [        [           5        U R                  [        [           [        [
           5        g r[   )r   r#   r   r   r   r   r   s    ra   	test_eq_1GenericTests.test_eq_1  sB    '*WQZ0GBK5rd   c                      " S S[         [           5      n " S S[         [           5      nU R                  X5        U R                  X5        U R                  U[           U[           5        U R                  U[           U[           5        g )Nc                       \ rS rSrSrg)!GenericTests.test_eq_2.<locals>.Ai   re   Nr}   re   rd   ra   r  r8     rD  rd   r  c                       \ rS rSrSrg)!GenericTests.test_eq_2.<locals>.Bi  re   Nr}   re   rd   ra   r  r:    rD  rd   r  )r#   r   r   r   r  s      ra   	test_eq_2GenericTests.test_eq_2  sp    	
 		
 	 	A!1qt$AaD!A$'rd   c           	      D    " S S[         [        [        4   5      n " S S[         [        [        4   5      n " S SU[        [        4   [         [        [        [        4   U[        [        4   5      nU R	                  UR
                  [        [        [        45        g )Nc                       \ rS rSrSrg)1GenericTests.test_multiple_inheritance.<locals>.Ai  re   Nr}   re   rd   ra   r  r?    rD  rd   r  c                       \ rS rSrSrg)1GenericTests.test_multiple_inheritance.<locals>.Bi  re   Nr}   re   rd   ra   r  rA    rD  rd   r  c                       \ rS rSrSrg)1GenericTests.test_multiple_inheritance.<locals>.Ci  re   Nr}   re   rd   ra   r}  rC    rD  rd   r}  )r#   r   r   r   r   r  )r_   r  r  r}  s       ra   test_multiple_inheritance&GenericTests.test_multiple_inheritance  ss    	2 		A 		!R%'"a),aAh 	 	))B2;7rd   c                     [        S5      n " S S[        U   5      n " S S[        [           U5      nU R	                  UR
                  U[        U[        [        45        g )Nr	  c                       \ rS rSrSrg)9GenericTests.test_multiple_inheritance_special.<locals>.Bi  re   Nr}   re   rd   ra   r  rH    r;  rd   r  c                       \ rS rSrSrg)9GenericTests.test_multiple_inheritance_special.<locals>.Ci  re   Nr}   re   rd   ra   r}  rJ    s    srd   r}  )r   r#   r   r   r   r  r  r  )r_   r	  r  r}  s       ra   !test_multiple_inheritance_special.GenericTests.test_multiple_inheritance_special  sD    CL 
 "S	1"Qa&$ABrd   c                      " S S5      n " S S[         [           U" 5       5      nU R                  UR                  U[        [
        [        45        g )Nc                       \ rS rSrS rSrg)YGenericTests.test_multiple_inheritance_non_type_with___mro_entries__.<locals>.GoodEntriesi  c                     [         4$ r[   r  r_   basess     ra   __mro_entries__iGenericTests.test_multiple_inheritance_non_type_with___mro_entries__.<locals>.GoodEntries.__mro_entries__   s
    y rd   re   Nrf   rg   rh   ri   rT  rj   re   rd   ra   GoodEntriesrO    r
  rd   rW  c                       \ rS rSrSrg)OGenericTests.test_multiple_inheritance_non_type_with___mro_entries__.<locals>.Ai#  re   Nr}   re   rd   ra   r  rY  #  r  rd   r  )r   r   r   r  r  r#   r  )r_   rW  r  s      ra   7test_multiple_inheritance_non_type_with___mro_entries__DGenericTests.test_multiple_inheritance_non_type_with___mro_entries__  s;    	! 	! 	/S	;=.Qgv$>?rd   c                     U R                  [        S5          " S S[        [           [	        5       5      nS S S 5        g ! , (       d  f       g = f)N^bases must be typesc                       \ rS rSrSrg)RGenericTests.test_multiple_inheritance_non_type_without___mro_entries__.<locals>.Ai*  re   Nr}   re   rd   ra   r  r_  *      #rd   r  )r  r   r   r   r  r  s     ra   :test_multiple_inheritance_non_type_without___mro_entries__GGenericTests.test_multiple_inheritance_non_type_without___mro_entries__'  s0    ##I/FG-DIvx- HGGs    A  
Ac                      " S S5      nU R                  [        S5          " S S[        [           U" 5       5      nS S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)WGenericTests.test_multiple_inheritance_non_type_bad___mro_entries__.<locals>.BadEntriesi-  c                     g r[   re   rR  s     ra   rT  gGenericTests.test_multiple_inheritance_non_type_bad___mro_entries__.<locals>.BadEntries.__mro_entries__.  r  rd   re   NrV  re   rd   ra   
BadEntriesre  -  r  rd   rh  z$^__mro_entries__ must return a tuplec                       \ rS rSrSrg)NGenericTests.test_multiple_inheritance_non_type_bad___mro_entries__.<locals>.Ai6  re   Nr}   re   rd   ra   r  rj  6  rw  rd   r  r  r   r   r   r_   rh  r  s      ra   6test_multiple_inheritance_non_type_bad___mro_entries__CGenericTests.test_multiple_inheritance_non_type_bad___mro_entries__,  sD    	 	
 ##3
 2DIz|1	
 
 
   A
Ac                      " S S5      nU R                  [        S5          " S S[        [           U" 5       5      nS S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)[GenericTests.test_multiple_inheritance___mro_entries___returns_non_type.<locals>.BadEntriesi9  c                     [        5       4$ r[   rQ  rR  s     ra   rT  kGenericTests.test_multiple_inheritance___mro_entries___returns_non_type.<locals>.BadEntries.__mro_entries__:  s    {"rd   re   NrV  re   rd   ra   rh  rr  9  s    #rd   rh  r]  c                       \ rS rSrSrg)RGenericTests.test_multiple_inheritance___mro_entries___returns_non_type.<locals>.AiB  re   Nr}   re   rd   ra   r  rv  B  rw  rd   r  rk  rl  s      ra   :test_multiple_inheritance___mro_entries___returns_non_typeGGenericTests.test_multiple_inheritance___mro_entries___returns_non_type8  sD    	# 	#
 ###
 2DIz|1	
 
 
ro  c                      " S S[         R                  [        [           5      nU R	                  UR
                  U[        R                  R                  [        [        [        45        g )Nc                       \ rS rSrSrg)CGenericTests.test_multiple_inheritance_with_genericalias.<locals>.AiE  re   Nr}   re   rd   ra   r  r{  E  r`  rd   r  )
r\   r.  r  r   r   r  r  r  r#   r  r  s     ra   +test_multiple_inheritance_with_genericalias8GenericTests.test_multiple_inheritance_with_genericaliasD  sA    -d3i-II%%wf=	
rd   c                    [        S5      n " S S[        R                  U   5      n " S S[        U   X!   5      nU R	                  UR
                  U[        U[        R                  R                  [        R                  R                  [        R                  R                  [        R                  R                  [        R                  R                  [        R                  R                  [        [        45        g )Nr   c                       \ rS rSrSrg)KGenericTests.test_multiple_inheritance_with_genericalias_2.<locals>.BaseSeqiO  re   Nr}   re   rd   ra   BaseSeqr  O  r  rd   r  c                       \ rS rSrSrg)IGenericTests.test_multiple_inheritance_with_genericalias_2.<locals>.MySeqiP  re   Nr}   re   rd   ra   MySeqr  P  r`  rd   r  )r   r\   r  r   r   r  r  r  r  r
  
Collectionr.  r  r  r#   r  )r_   r   r  r  s       ra   -test_multiple_inheritance_with_genericalias_2:GenericTests.test_multiple_inheritance_with_genericalias_2L  s    CL.fooa(.-DGWZ-MM((****%%(())	
rd   c                 V  ^^  " S S[         5      m " UU4S jS5      m " S S[        [           T5      nU R                  T5          " S SU5      nS S S 5        U R                  T5          " S	 S
U[           5      nS S S 5        g ! , (       d  f       N;= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)DGenericTests.test_init_subclass_super_called.<locals>.FinalExceptionid  re   Nr}   re   rd   ra   FinalExceptionr  d  rD  rd   r  c                   2   >^  \ rS rSrSUUU 4S jjrSrU =r$ );GenericTests.test_init_subclass_super_called.<locals>.Finalig  c                    > U R                    H#  nUTLd  M
  [        UT5      (       d  M  T" U5      e   [        TU ]  " S0 UD6  g r  )r  r   r   r  )r'  r   r  r%   r  r   s      ra   r  MGenericTests.test_init_subclass_super_called.<locals>.Final.__init_subclass__h  sB    MMD5(Ze-D-D,T22 * )3F3rd   re   r  r  )r   r%   r  s   @ra   r%   r  g  s    4 4rd   r%   c                       \ rS rSrSrg):GenericTests.test_init_subclass_super_called.<locals>.Testim  re   Nr}   re   rd   ra   r  r  m  rD  rd   r  c                       \ rS rSrSrg)>GenericTests.test_init_subclass_super_called.<locals>.Subclassip  re   Nr}   re   rd   ra   Subclassr  p  r  rd   r  c                       \ rS rSrSrg)?GenericTests.test_init_subclass_super_called.<locals>.Subclass2is  re   Nr}   re   rd   ra   	Subclass2r  s  r  rd   r  )r  r#   r   r   r   )r_   r  r  r  r%   r  s       @@ra   test_init_subclass_super_called,GenericTests.test_init_subclass_super_calledc  s    	Y 		4 	4	71:u 	~.4  / ~.DI  /. /. /.s   B	-B	
B
B(c                 6   [         n " S SU[           5      nU[        R                  [              n " S SU5      nU" 5       nUR                  / 5        UR                  S5        UR                  S5        U R                  UR                  5       SS/5        g )Nc                   :    \ rS rSrSrS\4S jrS rS\4S jrSr	g)	)GenericTests.test_nested.<locals>.Visitoriz  NrL  c                     Xl         g r[   rv  r_   rL  s     ra   rB  -GenericTests.test_nested.<locals>.Visitor.set~  r   rd   c                     U R                   $ r[   rv  r   s    ra   r  -GenericTests.test_nested.<locals>.Visitor.get      vvrd   r%  c                     U R                   $ r[   rv  r   s    ra   visit/GenericTests.test_nested.<locals>.Visitor.visit  r  rd   rv  )
rf   rg   rh   ri   rL  r   rB  r  r  rj   re   rd   ra   Visitorr  z  s$    AQ q rd   r  c                   "    \ rS rSrS\4S jrSrg)0GenericTests.test_nested.<locals>.IntListVisitori  r   c                 :    U R                   R                  U5        g r[   )rL  r  r   s     ra   r  7GenericTests.test_nested.<locals>.IntListVisitor.append  s    a rd   re   N)rf   rg   rh   ri   r   r  rj   re   rd   ra   IntListVisitorr    s    ! !rd   r  rm   r   )	r#   r   r\   r   r   rB  r  r   r  )r_   r  r  r  r  rL  s         ra   test_nestedGenericTests.test_nestedv  s}    	ad 	 FKK$%	!Q 	!
 	b			1b'*rd   c                 r   ^ ^^ [        S5      m " U4S jS[        T   5      mST4UUU 4S jjnU" S5        g )Nr   c                   6   > \ rS rSr  S	S Y SSSS4S jjrSrg)
,GenericTests.test_type_erasure.<locals>.Nodei  Nr-  leftNode[T]rightc                 (    Xl         X l        X0l        g r[   r-  r  r  )r_   r-  r  r  s       ra   r   5GenericTests.test_type_erasure.<locals>.Node.__init__  s     #
 	"
rd   r  NNr   rw  s   ra   r*  r    s*    +/,0#a #(# )# #rd   r*  r   c                   > T" U 5      nTT   " U 5      nT[            " U 5      nTR                  [        U5      T5        TR                  [        U5      T5        TR                  [        U5      T5        TR                  UR                  U 5        TR                  UR                  U 5        TR                  UR                  U 5        g r[   )r   r   r   r   r-  )r   rL  r   r  r*  r   r_   s       ra   rX  +GenericTests.test_type_erasure.<locals>.foo  s    QAQ
AS	!AMM$q'4(MM$q'4(MM$q'4(QWWa(QWWa(QWWa(rd   r   r   r#   )r_   rX  r*  r   s   ` @@ra   r  GenericTests.test_type_erasure  s6    CL	#71: 	#		)1 		) 		) 	Brd   c                    [        S5      n " S S[        U   5      n " S SU5      nU R                  UR                  S5        U R	                  [
        5         U[             S S S 5        U R	                  [
        5         U[             S S S 5        U R	                  [
        5         X1     S S S 5        g ! , (       d  f       NX= f! , (       d  f       NB= f! , (       d  f       g = f)Nr   c                       \ rS rSrSrg))GenericTests.test_implicit_any.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    rD  rd   r}  c                       \ rS rSrSrg))GenericTests.test_implicit_any.<locals>.Di  re   Nr}   re   rd   ra   r  r    rD  rd   r  re   )r   r#   r   r  r   r   r   r   r  s       ra   test_implicit_anyGenericTests.test_implicit_any  s    CL	
 		 	 	))2.y)cF *y)cF *y)D *)	 *)))))s$   
B6
C(C6
C
C
C&c                      " S S[         [           5      n " S S5      n " S SX5      nU" S5      nU R                  UR                  S5        g )Nc                       \ rS rSrSrg)*GenericTests.test_new_with_args.<locals>.Ai  re   Nr}   re   rd   ra   r  r    rD  rd   r  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )*GenericTests.test_new_with_args.<locals>.Bi  c                 2   > [         TU ]  U 5      nXl        U$ r[   )r   r
  r$  r'  r$  rU  r   s      ra   r
  2GenericTests.test_new_with_args.<locals>.B.__new__  s    goc*
rd   re   r 
  r   s   @ra   r  r         rd   r  c                       \ rS rSrSrg)*GenericTests.test_new_with_args.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    rD  rd   r}  rX  )r#   r   r   r$  r_   r  r  r}  r  s        ra   test_new_with_argsGenericTests.test_new_with_args  sG    	
 		 		 	 eH&rd   c                      " S S5      n " S S[         [           U5      nU" S5      nU R                  UR                  S5        U R                  UR                  S5        g )Nc                   (   ^  \ rS rSrU 4S jrSrU =r$ )+GenericTests.test_new_with_args2.<locals>.Ai  c                 .   > Xl         [        TU ]	  5         g r[   )from_ar   r   r_   r$  r   s     ra   r   4GenericTests.test_new_with_args2.<locals>.A.__init__  s    ! "rd   )r  r   r   s   @ra   r  r    s    # #rd   r  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )+GenericTests.test_new_with_args2.<locals>.Ci  c                 0   > Xl         [        TU ]	  U5        g r[   )from_cr   r   r  s     ra   r   4GenericTests.test_new_with_args2.<locals>.C.__init__  s    ! %rd   )r  r   r   s   @ra   r}  r    s    & &rd   r}  rX  )r#   r   r   r  r  )r_   r  r}  r  s       ra   test_new_with_args2 GenericTests.test_new_with_args2  sQ    	# 	#	&
A 	& eH5)5)rd   c                     " S S[         [           5      nU R                  [        5         U" S5        S S S 5         " S S5      n " S SX5      nU" S5      nU R	                  UR
                  S5        U R	                  UR                  S5        U R	                  UR                  S	5        g ! , (       d  f       N= f)
Nc                       \ rS rSrSrg)(GenericTests.test_new_no_args.<locals>.Ai  re   Nr}   re   rd   ra   r  r    rD  rd   r  rX  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )(GenericTests.test_new_no_args.<locals>.Bi  c                 4   > [         TU ]  U 5      nSUl        U$ )Nr   )r   r
  from_b)r'  rU  r   s     ra   r
  0GenericTests.test_new_no_args.<locals>.B.__new__      goc* 

rd   re   r 
  r   s   @ra   r  r    r  rd   r  c                   .   ^  \ rS rSrS rU 4S jrSrU =r$ )(GenericTests.test_new_no_args.<locals>.Ci  c                     Xl         g r[   r'  r=  s     ra   r   1GenericTests.test_new_no_args.<locals>.C.__init__  s    rd   c                 4   > [         TU ]  U 5      nSUl        U$ )Nr  )r   r
  r  r  s      ra   r
  0GenericTests.test_new_no_args.<locals>.C.__new__  r  rd   r'  )rf   rg   rh   ri   r   r
  rj   r   r   s   @ra   r}  r    s     rd   r}  r   r  )r#   r   r   r   r   r$  r  r  r  s        ra   test_new_no_argsGenericTests.test_new_no_args  s    	
 	 y)eH *	 		 	 eH&3'3'1 *)s   	B//
B=c           
         [         [           [        [           [        [        [        4   [
        [           [        S   [        [        [        S5      4   [        [           [        [           4 Ha  nU R                  US9   U R                  [        S[        R                   " SU< 35       S35          " S SU5      nS S S 5        S S S 5        Mc     g ! , (       d  f       N= f! , (       d  f       M  = f)	Nr
  rQ  )msgr-  r  r.  c                       \ rS rSrSrg)4GenericTests.test_subclass_special_form.<locals>.Fooi  re   Nr}   re   rd   ra   r   r        rd   r   )r$   r   r%   r   r  r   r   rH   rG   rK   rL   rq   rt   r  r   r  r  )r_   rU  r   s      ra   test_subclass_special_form'GenericTests.test_subclass_special_form  s    SM#J#u*SMDMYs^+,cN5M	
C #&++!Qryy3CC71K'L&MQ#Oc  '&	
  '&s$   3C'5CC'
C$ C''
C6	c                 x    [        SSS9n " S S[        U   5      n[        S5      n " S SU[        U   5      ng )	Nr  Tr  c                       \ rS rSrSrg)2GenericTests.test_complex_subclasses.<locals>.Basei  re   Nr}   re   rd   ra   rQ  r    rE  rd   rQ  r   c                       \ rS rSrSrg)1GenericTests.test_complex_subclasses.<locals>.Subi  re   Nr}   re   rd   ra   r   r    rE  rd   r   r  )r_   r  rQ  r   r   s        ra   test_complex_subclasses$GenericTests.test_complex_subclasses  s;    v.	74= 	 CL	$
 	rd   c           	         U R                  [        [           R                  [        45        U R                  [        [        [              R                  [        45         " S S5      n[        [        4 H  nU[
        [        [        [        [        R                  [        R                  4 HE  nU R                  X#S9   U R                  [        S5         X#   [             S S S 5        S S S 5        MG     M     U R                  [        U" 5          R                  [        45        U R                  [        U" 5          R                  [        45        g ! , (       d  f       Ny= f! , (       d  f       M  = f)Nc                       \ rS rSr\4rSrg)0GenericTests.test_parameter_detection.<locals>.Ai$  re   N)rf   rg   rh   ri   r   r  rj   re   rd   ra   r  r   $  s	    TNrd   r  )r  subz.* is not a generic class)r   r   r   r  r  r   r   r   rG   rQ  r  	UnionTypert   r  r   r  )r_   r  rL  r   s       ra   test_parameter_detection%GenericTests.test_parameter_detection!  s   a//!6d1g55t<	" 	" Ag|Y@R@RTYTcTcd\\!\3//	;VWS	 X 43 e  	ac11A48ac11A48 XW 43s$    E'E	#E'
E$ E''
E6c           
      6  ^ [        S5      m " S S[        T   5      n " U4S jS5      n[        X[        [        [         [
        [        [        R                  [        R                  4
 GHc  n[        [        4 H  nU R                  XCS9   U R                  XCT4   [           XC[        4   5        U R                  UTU4   [           U[        U4   5        XC   nU R                  [        5         U[             S S S 5        S S S 5        M     [         ["        R$                  R                   4 H  nU R                  XcS9   U R                  Xc/T4   [           Xc/[        4   5        U R                  UT/U4   [           U[        /U4   5        Xc/U4   nU R                  [        5         U[             S S S 5        S S S 5        M     GMf     g ! , (       d  f       N= f! , (       d  f       GMz  = f! , (       d  f       ND= f! , (       d  f       M  = f)Nr   c                       \ rS rSrSrg)2GenericTests.test_non_generic_subscript.<locals>.Gi4  re   Nr}   re   rd   ra   r  r  4  rD  rd   r  c                      > \ rS rSr Y 4rSrg)2GenericTests.test_non_generic_subscript.<locals>.Ai6  re   N)rf   rg   rh   ri   r  rj   rw  s   ra   r  r	  6  s
    TNrd   r  )ri  r  )callabler  )r   r#   r   r   r  r   rG   rQ  r  r  r   ri  rt   r   r   r   r"   r  r  )r_   r  r  r   r  rL  r  r   s          @ra   test_non_generic_subscript'GenericTests.test_non_generic_subscript2  s   CL	
 		" 	" qT4<$$eoo7A E\\\\1$$Q!tWS\1V9=$$Qq!tWS\1S!V9=A**95# 6	 21 " {777\\1\4$$QsAvYs^QsCx[A$$QsAvYs^Quax[A#q&	A**95# 6	 54 87 65	 21 65	 54sJ   A&G%3
G	=G%A-H	0
G8	:H	
G"G%%
G58
HH		
Hc                      " S S5      nU" 5       nS " 5       nU R                  [        S5         X2   S     S S S 5        g ! , (       d  f       g = f)Nc                   $    \ rS rSrSrS rS rSrg)GGenericTests.test_return_non_tuple_while_unpacking.<locals>.EvilTypeVariP  Tc                      g r[   re   _s    ra   __typing_prepare_subst__`GenericTests.test_return_non_tuple_while_unpacking.<locals>.EvilTypeVar.__typing_prepare_subst__R  r  rd   c                      gr   re   r  s    ra   r  XGenericTests.test_return_non_tuple_while_unpacking.<locals>.EvilTypeVar.__typing_subst__T  r  rd   re   N)rf   rg   rh   ri   #__typing_is_unpacked_typevartuple__r  r  rj   re   rd   ra   EvilTypeVarr  P  s    26/rd   r  c                      S S7	=n 4S 47$ )
type_aliasr  c                      grM  re   re   rd   ra   r  FGenericTests.test_return_non_tuple_while_unpacking.<locals>.type_aliasZ  s    rd   re   r  s    ra   "<generic parameters of type_alias>^GenericTests.test_return_non_tuple_while_unpacking.<locals>.<generic parameters of type_alias>Z  s
    rd   z .+__typing_subst__.+tuple.+int.*r   )r  r   )r_   r  rq  r  s       ra   %test_return_non_tuple_while_unpacking2GenericTests.test_return_non_tuple_while_unpackingM  sC    	 	 } 	 ##I/QRQ SRRs   A
Are   N)Lrf   rg   rh   ri   rq  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r2  r9  r@  rL  rU  rX  ro  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r1  r4  r;  rD  rK  rZ  ra  rm  rw  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  rj   re   rd   ra   r  r    sz   E&2C %(B+0	>

5";562
)&SC
"?H?"I(CTP 	4M4%
N
CH
	U
	


29: "F"1.`-.84029& @$+Z6
(8C@.

2
2

.&+<0$'&*&(>$
9"6 rd   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	ClassVarTestsi_  c                    U R                  [        5         [        [        [        4     S S S 5        U R                  [        5         [        [           [             S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr[   )r   r   r$   r   r  r   s    ra   rq  ClassVarTests.test_basicsa  sS    y)S#X *y)SM# *) *)))s   A%A6%
A36
Bc                     U R                  [        [        5      S5        [        [           nU R                  [        U5      S5        [        [           nU R                  [        U5      S[
        -  5        g )Nztyping.ClassVartyping.ClassVar[int]ztyping.ClassVar[%s.Employee])r   r   r$   r   r{   rf   r_   cvs     ra   r   ClassVarTests.test_reprg  sY    h):;c]b#9:hb#AH#LMrd   c           	      L   U R                  [        [        5          " S S[        [        5      5      nS S S 5        U R                  [        [        5          " S S[        [        [
           5      5      nS S S 5        U R                  [        S5          " S S[        5      nS S S 5        U R                  [        S5          " S	 S
[        [
           5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)-ClassVarTests.test_cannot_subclass.<locals>.Cip  re   Nr}   re   rd   ra   r}  r,  p  r  rd   r}  c                       \ rS rSrSrg)-ClassVarTests.test_cannot_subclass.<locals>.Dis  re   Nr}   re   rd   ra   r  r.  s  r  rd   r  z Cannot subclass typing\.ClassVarc                       \ rS rSrSrg)-ClassVarTests.test_cannot_subclass.<locals>.Eiw  re   Nr}   re   rd   ra   r  r0  w  r  rd   r  z'Cannot subclass typing\.ClassVar\[int\]c                       \ rS rSrSrg)-ClassVarTests.test_cannot_subclass.<locals>.Fi{  re   Nr}   re   rd   ra   r  r2  {  r  rd   r  )r  r   r  r   r$   r   r_   r}  r  r  r  s        ra   r  "ClassVarTests.test_cannot_subclassn  s    ##I/CDDN  E ##I/CDD#'  E ##I$GIH I ##I$NPHSM P P ED EDI IP P/   C" C3DD"
C03
D
D
D#c                    U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        U R                  [        5         [        [        [        [
              5      " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr[   )r   r   r$   r   r   r   r   s    ra   r  ClassVarTests.test_cannot_init~  x    y)J *y)N *y)(3-()+ *)	 *)))))"   BB-0#B>
B*-
B;>
Cc                    U R                  [        5         [        S[        [           5        S S S 5        U R                  [        5         [        [        [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr  )r   r   r   r$   r   r   r   s    ra   r   ClassVarTests.test_no_isinstance  S    y)q(3-( *y)sH% *) *)))   A)A:)
A7:
Bre   N
rf   rg   rh   ri   rq  r   r  r  r  rj   re   rd   ra   r"  r"  _  s    N ,&rd   r"  c                   2    \ rS rSrS rS rS rS rS rSr	g)	
FinalTestsi  c                    [         [             U R                  [        5         [         [        [        4     S S S 5        U R                  [        5         [         [           [             S S S 5        U R                  [        5         [
        [         [                S S S 5        g ! , (       d  f       Ns= f! , (       d  f       NR= f! , (       d  f       g = fr[   )r%   r   r   r   r  r   r   s    ra   rq  FinalTests.test_basics  s~    c
y)#s(O *y)#JsO *y)U3Z  *)	 *)))))s#   B$B5C$
B25
C
Cc                 N   U R                  [        [        5      S5        [        [           nU R                  [        U5      S5        [        [           nU R                  [        U5      S[
        -  5        [        [        [              nU R                  [        U5      S5        g )Nztyping.Finalztyping.Final[int]ztyping.Final[%s.Employee]ztyping.Final[tuple[int]])r   r   r%   r   r{   rf   ri  r'  s     ra   r   FinalTests.test_repr  sz    en53Zb#678_b#>#IJ5:b#=>rd   c           	      L   U R                  [        [        5          " S S[        [        5      5      nS S S 5        U R                  [        [        5          " S S[        [        [
           5      5      nS S S 5        U R                  [        S5          " S S[        5      nS S S 5        U R                  [        S5          " S	 S
[        [
           5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)*FinalTests.test_cannot_subclass.<locals>.Ci  re   Nr}   re   rd   ra   r}  rG    r  rd   r}  c                       \ rS rSrSrg)*FinalTests.test_cannot_subclass.<locals>.Di  re   Nr}   re   rd   ra   r  rI    r  rd   r  zCannot subclass typing\.Finalc                       \ rS rSrSrg)*FinalTests.test_cannot_subclass.<locals>.Ei  re   Nr}   re   rd   ra   r  rK    r  rd   r  z$Cannot subclass typing\.Final\[int\]c                       \ rS rSrSrg)*FinalTests.test_cannot_subclass.<locals>.Fi  re   Nr}   re   rd   ra   r  rM    r  rd   r  )r  r   r  r   r%   r   r3  s        ra   r  FinalTests.test_cannot_subclass  s    ##I/CDDK  E ##I/CDDs$  E ##I02E 2 ##I79E#J 9 9 ED ED2 29 9r5  c                    U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        U R                  [        5         [        [        [        [
              5      " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr[   )r   r   r%   r   r   r   r   s    ra   r  FinalTests.test_cannot_init  sw    y)G *y)KM *y)x}%&( *)	 *)))))r9  c                    U R                  [        5         [        S[        [           5        S S S 5        U R                  [        5         [        [        [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr  )r   r   r   r%   r   r   r   s    ra   r  FinalTests.test_no_isinstance  sS    y)q%*% *y)sE" *) *)))r=  re   Nr>  re   rd   ra   r@  r@    s    !? )#rd   r@  c                        \ rS rSrS rS rSrg)FinalDecoratorTestsi  c                 @    S nU R                  U[        U5      5        g )Nc                     g r[   re   r   s    ra   func7FinalDecoratorTests.test_final_unmodified.<locals>.func  r  rd   )r   r&   r_   rW  s     ra   test_final_unmodified)FinalDecoratorTests.test_final_unmodified  s    dE$K(rd   c                    [         S 5       n[          " S S5      5       nU R                  SUR                  5        U R                  SUR                  5         " S S5      n[         US 5       5       nU R                  XC5        U R                  S[	        US	5      5         " S
 S[
        5      n[          " S SUS95       nU R                  UR                  S5        [        [        5        U R                  S[	        [        S	5      5         " S S5      nU R                  S[        R                  " US5      R                  5        U R                  S[        R                  " US5      R                  5        U R                  SUR                  R                  R                  5        U R                  SUR                  R                  5        g )Nc                      g r[   re   re   rd   ra   rW  3FinalDecoratorTests.test_dunder_final.<locals>.func      rd   c                       \ rS rSrSrg)2FinalDecoratorTests.test_dunder_final.<locals>.Clsi  re   Nr}   re   rd   ra   Clsra    s    rd   rb  Tc                   $    \ rS rSrSrS rS rSrg)6FinalDecoratorTests.test_dunder_final.<locals>.Wrapperi  rW  c                     Xl         g r[   re  rY  s     ra   r   ?FinalDecoratorTests.test_dunder_final.<locals>.Wrapper.__init__  r  rd   c                 &    U R                   " U0 UD6$ r[   re  r   s      ra   r  ?FinalDecoratorTests.test_dunder_final.<locals>.Wrapper.__call__  s    yy$1&11rd   N)rf   rg   rh   ri   r  r   r  rj   re   rd   ra   Wrapperrd    s    !I!2rd   rj  c                      g r[   re   re   rd   ra   wrapped6FinalDecoratorTests.test_dunder_final.<locals>.wrapped  s    rd   F	__final__c                   $    \ rS rSr\S 5       rSrg)3FinalDecoratorTests.test_dunder_final.<locals>.Metai  c                     g)Ncan't set mere   r   s    ra   rn  =FinalDecoratorTests.test_dunder_final.<locals>.Meta.__final__  s    (6rd   re   N)rf   rg   rh   ri   rP  rn  rj   re   rd   ra   r>  rp    s    6 6rd   r>  c                       \ rS rSrSrg)7FinalDecoratorTests.test_dunder_final.<locals>.WithMetai  re   Nr}   re   rd   ra   WithMetaru    s    (+rd   rv  r  rr  c                       \ rS rSr\\S 5       5       r\\S 5       5       r\	\S 5       5       r
\\" 5       S 5       5       rSrg)6FinalDecoratorTests.test_dunder_final.<locals>.Methodsi  c                     g r[   re   r&  s    ra   	clsmethod@FinalDecoratorTests.test_dunder_final.<locals>.Methods.clsmethod  s     #rd   c                      g r[   re   re   rd   ra   stmethod?FinalDecoratorTests.test_dunder_final.<locals>.Methods.stmethod      rd   c                     g r[   re   r   s    ra   prop;FinalDecoratorTests.test_dunder_final.<locals>.Methods.prop  r  rd   c                     g r[   re   r   s    ra   cached=FinalDecoratorTests.test_dunder_final.<locals>.Methods.cached  s    !rd   re   N)rf   rg   rh   ri   r&   r	  rz  staticmethodr}  rP  r  r   r  rj   re   rd   ra   Methodsrx    s^    #  #     [!  !rd   r  rz  r}  )r&   r   rn  r   r	  r   r   r   inspectgetattr_staticr  fgetr  )r_   rW  rb  rj  rl  r>  rv  r  s           ra   test_dunder_final%FinalDecoratorTests.test_dunder_final  sn   	 
	 
dDNN+dCMM*	2 	2 
	 
 
g/eWWk:;	74 	7 
++ 
+++^< 	c
eWS+67	" 	"* 	""7K8BB	
 	""7J7AA	
 	dGLL--778dGNN445rd   re   N)rf   rg   rh   ri   rZ  r  rj   re   rd   ra   rT  rT    s    )B6rd   rT  c                   ,    \ rS rSrS rS rS rS rSrg)OverrideDecoratorTestsi	  c                     " S S5      n " S SU5      nU R                  X!5        U" 5       nU R                  UR                  5       S5        U R                  SUR                  R                  5        U R                  SUR                  R                  5        U R                  UR                  5       S5        U R                  SUR
                  R                  5        U R                  UR                  5       S5        U R                  S[        UR                  S5      5        U R                  UR                  5       S5        U R                  SUR                  R                  5        U R                  UR                  5       S5        U R                  S[        UR                  S5      5        U R                  S[        UR                  S5      5        U R                  S[        UR
                  S5      5        U R                  S[        UR                  S5      5        U R                  S[        UR                  S5      5        U R                  S[        UR                  S5      5        g )	Nc                   Z    \ rS rSrS r\S 5       r\S 5       r\S 5       r	\S 5       r
Srg)	2OverrideDecoratorTests.test_override.<locals>.Basei  c                     g r[   re   r   s    ra   normal_method@OverrideDecoratorTests.test_override.<locals>.Base.normal_method  rf  rd   c                     g r[   re   r&  s    ra   class_method_good_orderJOverrideDecoratorTests.test_override.<locals>.Base.class_method_good_order  s    .1rd   c                     g r[   re   r&  s    ra   class_method_bad_orderIOverrideDecoratorTests.test_override.<locals>.Base.class_method_bad_order  s    -0rd   c                      g r[   re   re   rd   ra   static_method_good_orderKOverrideDecoratorTests.test_override.<locals>.Base.static_method_good_order  s    ,/rd   c                      g r[   re   re   rd   ra   static_method_bad_orderJOverrideDecoratorTests.test_override.<locals>.Base.static_method_bad_order  s    +.rd   re   N)rf   rg   rh   ri   r  r	  r  r  r  r  r  rj   re   rd   ra   rQ  r    s=    (1 10 0/ /. .rd   rQ  c                       \ rS rSr\S 5       r\\S 5       5       r\\S 5       5       r\	\S 5       5       r
\\	S 5       5       rSrg)	5OverrideDecoratorTests.test_override.<locals>.Derivedi  c                     gr   re   r   s    ra   r  COverrideDecoratorTests.test_override.<locals>.Derived.normal_method  rN  rd   c                     gr   re   r&  s    ra   r  MOverrideDecoratorTests.test_override.<locals>.Derived.class_method_good_order       rd   c                     gr   re   r&  s    ra   r  LOverrideDecoratorTests.test_override.<locals>.Derived.class_method_bad_order  r  rd   c                      gr   re   re   rd   ra   r  NOverrideDecoratorTests.test_override.<locals>.Derived.static_method_good_order$  r  rd   c                      gr   re   re   rd   ra   r  MOverrideDecoratorTests.test_override.<locals>.Derived.static_method_bad_order(  r  rd   re   N)rf   rg   rh   ri   r/   r  r	  r  r  r  r  r  rj   re   rd   ra   rT  r    s               rd   rT  r   TF__override__)
r;  r   r  r   r  r  r  r	  r  r  )r_   rQ  rT  rk  s       ra   test_override$OverrideDecoratorTests.test_override
  s   		/ 		/	d 	. 	g,9//126dG11>>?dH22??@88:B?dG;;HHI7792>eWW%C%C^TU99;R@dG<<IIJ88:B?eWW%D%DnUV 	eWT%7%7HIeWT%A%A>RSeWT%@%@.QReWT%B%BNSTeWT%A%A>RSrd   c                     " S S5      n " S SU5      nU" 5       nU R                  UR                  S5        U R                  UR                  R                  R                  5        U R                  UR
                  S5        U R                  [        UR
                  S5      5        U R                  [        UR
                  R                  S5      5        g )Nc                   D    \ rS rSr\S\4S j5       r\S\4S j5       rSrg)2OverrideDecoratorTests.test_property.<locals>.BaseiE  r%  c                     gr  re   r   s    ra   correct:OverrideDecoratorTests.test_property.<locals>.Base.correctF      rd   c                     gr  re   r   s    ra   wrong8OverrideDecoratorTests.test_property.<locals>.Base.wrongI  r  rd   re   N)	rf   rg   rh   ri   rP  r   r  r  rj   re   rd   ra   rQ  r  E  s4      s  rd   rQ  c                   X    \ rS rSr\\S\4S j5       5       r\\S\4S j5       5       rSr	g)3OverrideDecoratorTests.test_property.<locals>.ChildiM  r%  c                     gr`  re   r   s    ra   r  ;OverrideDecoratorTests.test_property.<locals>.Child.correctN       rd   c                     gr`  re   r   s    ra   r  9OverrideDecoratorTests.test_property.<locals>.Child.wrongR  r  rd   re   N)
rf   rg   rh   ri   rP  r/   r   r  r  rj   re   rd   ra   Childr  M  sD       s   rd   r  r   r  )	r   r  r   r  r  r  r   r	  fset)r_   rQ  r  rk  s       ra   test_property$OverrideDecoratorTests.test_propertyD  s    	 		D 	 7))1-**778+n=>!1!1>BCrd   c                    ^  " S S5      m " U4S jS5      nU R                  UR                  S5        U R                  [        UR                  S5      5        g )Nc                   (    \ rS rSrSrS rSS jrSrg)>OverrideDecoratorTests.test_silent_failure.<locals>.CustomPropi_  r  c                     Xl         g r[   r  )r_   r  s     ra   r   GOverrideDecoratorTests.test_silent_failure.<locals>.CustomProp.__init__a  r  rd   Nc                 $    U R                  U5      $ r[   r  rT  s      ra   rW  FOverrideDecoratorTests.test_silent_failure.<locals>.CustomProp.__get__c  s    yy~%rd   r[   )rf   rg   rh   ri   r  r   rW  rj   re   rd   ra   
CustomPropr  _  s    !I!&rd   r  c                   2   > \ rS rSr\ Y S 5       5       rSrg)@OverrideDecoratorTests.test_silent_failure.<locals>.WithOverrideif  c                     gr  re   r   s    ra   r(  EOverrideDecoratorTests.test_silent_failure.<locals>.WithOverride.someg  r  rd   re   N)rf   rg   rh   ri   r/   r(  rj   )r  s   ra   WithOverrider  f  s      rd   r  rm   r  )r   r(  r   r	  )r_   r  r  s     @ra   test_silent_failure*OverrideDecoratorTests.test_silent_failure^  sJ    	& 	&	 	 	**A.!2!2NCDrd   c                 L  ^ S m " U4S jS5      nU" 5       nU R                  UR                  S5      S5        U R                  UR                  R                  5        U R                  UR	                  S5      S5        U R                  UR                  R                  5        g )Nc                 0   ^  [        T 5      U 4S j5       nU$ )Nc                     > T" U 0 UD6$ r[   re   )r   r   r`   s     ra   rv   TOverrideDecoratorTests.test_multiple_decorators.<locals>.with_wraps.<locals>.wrapperq  s    $)&))rd   rx   )r`   rv   s   ` ra   
with_wrapsCOverrideDecoratorTests.test_multiple_decorators.<locals>.with_wrapsp  s    1X* *Nrd   c                   f   > \ rS rSr\ Y S\S\4S j5       5       r Y \S\S\4S j5       5       rSrg)EOverrideDecoratorTests.test_multiple_decorators.<locals>.WithOverrideiv  rL  r%  c                     US-   $ r  re   r  s     ra   on_topLOverrideDecoratorTests.test_multiple_decorators.<locals>.WithOverride.on_topw       1urd   c                     US-   $ r`  re   r  s     ra   	on_bottomOOverrideDecoratorTests.test_multiple_decorators.<locals>.WithOverride.on_bottom{  r  rd   re   N)	rf   rg   rh   ri   r/   r   r  r  rj   )r  s   ra   r  r  v  sS        3 3   rd   r  rm   r   r  )r   r  r   r  r  )r_   r  rk  r  s      @ra   test_multiple_decorators/OverrideDecoratorTests.test_multiple_decoratorso  s}    		 	  >+Q/445++A.2**778rd   re   N)	rf   rg   rh   ri   r  r  r  r  rj   re   rd   ra   r  r  	  s    8TtD4E"9rd   r  c                        \ rS rSrS rS rSrg)	CastTestsi  c                 0   U R                  [        [        S5      S5        U R                  [        [        S5      S5        U R	                  [        [        [        S5      5      [        5        U R                  [        [        S5      S5        U R                  [        [        S5      S5        U R                  [        [        [        [        4   S5      S5        U R                  [        [        S5      S5        U R                  [        S S5      S5        g r   )r   r)   r   r  r   r   r   r  r   r  r   r   s    ra   rq  CastTests.test_basics  s    c2+eR"-d4r?+S1c2+dB,eCJ/4b9fb)2.dB,rd   c                 4    [        SS5        [        SS5        g Nr   hello)r)   r   s    ra   r   CastTests.test_errors  s    RWbrd   re   Nrf   rg   rh   ri   rq  r   rj   re   rd   ra   r  r    s    -rd   r  c                        \ rS rSrS rS rSrg)AssertTypeTestsi  c                    SnU R                  [        U[        5      U5        U R                  [        U[        [        -  5      U5        U R                  [        U[
        5      U5        U R                  [        US 5      U5        g r   )r   r(   r   r  r  r   r=  s     ra   rq  AssertTypeTests.test_basics  s_    k#s+S1k#sU{3S9k#v.4k#t,c2rd   c                 x    SnU R                  [        US5      U5        U R                  [        US5      U5        g r  )r   r(   r=  s     ra   r   AssertTypeTests.test_errors  s1    k#r*C0k#w/5rd   re   Nr  re   rd   ra   r  r    s    36rd   r  )ann_module8c                   @    \ rS rSr\R
                  R                  rSrg)NoTypeCheck_Outeri  re   N)rf   rg   rh   ri   r  r  Innerrj   re   rd   ra   r  r    s    ))//Erd   r  c                   ,    \ rS rSr\R
                  rSrg)NoTypeCheck_WithFunctioni  re   N)rf   rg   rh   ri   r  NoTypeCheck_functionrj   re   rd   ra   r  r    s    &;;rd   r  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S%r'g&)'ForwardRefTestsi  c                 ~    " S S[         [           5      nU[           n[        UR                  [        5       [        5       5      nU R                  US   [        U[              5        U R                  US   U[           5        U R                  US   [        5        U R                  SU5        [        UR                  [        5       [        5       5      nU R                  US   [        U[              5        [        UR                  [        5       [        5       5      nU R                  US   U[           5        g )Nc                   d    \ rS rSrS\4S jr   SSSSSS	\4S
 jjrS\S   4S jr	SSS jjr
Srg))ForwardRefTests.test_basics.<locals>.Nodei  r-  c                 ,    Xl         S =U l        U l        g r[   r  )r_   r-  s     ra   r   2ForwardRefTests.test_basics.<locals>.Node.__init__  s    "
)--	DJrd   Nr  zOptional[Node[T]]r  r  stuffc                     Xl         X l        g r[   )r  r  )r_   r  r  r  blahs        ra   add_both2ForwardRefTests.test_basics.<locals>.Node.add_both  s    
 !	"
rd   nodec                 (    U R                  US 5        g r[   r  r_   r	  s     ra   add_left2ForwardRefTests.test_basics.<locals>.Node.add_left      dD)rd   c                 (    U R                  S U5        g r[   r  r  s     ra   	add_right3ForwardRefTests.test_basics.<locals>.Node.add_right  r  rd   r  )NNNr[   )r	  r  )rf   rg   rh   ri   r   r   r   r  r   r  r  rj   re   rd   ra   r*  r    sS    .a . -1&*"	#2# )# !$#*Xi%8 ** *rd   r*  r  r  r  r  r	  )r#   r   r   r+   r  rx  ry  r   r   rz	  r  r  )r_   r*  r  
both_hints
left_hintsright_hintss         ra   rq  ForwardRefTests.test_basics  s    	*71: 	*( I#AJJ	68D
F+Xd1g->?G,d1g6G,c2,#AJJ	68D
F+Xd1g->?$Q[[')VXFV,d1g6rd   c                     [         R                  " S5      nU R                  [        5         [	        SU5        S S S 5        g ! , (       d  f       g = f)Nr   r   )r\   rC   r   r   r   r_   frs     ra   #test_forwardref_instance_type_error3ForwardRefTests.test_forwardref_instance_type_error  s6    u%y)r2 *))s   A
Ac                     [         R                  " S5      nU R                  [        5         [	        [
        U5        S S S 5        g ! , (       d  f       g = f)Nr   )r\   rC   r   r   r   r   r  s     ra   #test_forwardref_subclass_type_error3ForwardRefTests.test_forwardref_subclass_type_error  s6    u%y)sB *))s   A
Ac                     U R                  [        5         [        R                  " S5        S S S 5        g ! , (       d  f       g = fr  )r   r   r\   rC   r   s    ra   test_forwardref_only_str_arg,ForwardRefTests.test_forwardref_only_str_arg  s*    y)a  *))r   c                    [         R                  " S5      nU R                  U[         R                  " S5      5        U R                  [        S   [        [
           5        U R                  U[         R                  " S[        S95        [         R                  " S[        S9nU R                  U[         R                  " S[        S95        U R                  U[         R                  " SSS95        g )Nr   module__other_name__)r\   rC   r   r   r   r   rf   )r_   r  frms      ra   test_forward_equality%ForwardRefTests.test_forward_equality  s    u%V..u56DKc3B 1 1% IJh7f//hGHC!2!25AQ!RSrd   c                    [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[         R                  " S5      n " S S5      nSUSU4S jnU R                  [        U[	        5       [        5       5      XUS.5        U R                  X5        U R                  X5        U R                  X$5        U R                  [        U   [        U   5        U R                  [        U   [        U   5        U R                  [        U   [        U   5        U R                  [        X4   [        U   5        U R                  [        X[        4   [        U[        4   5        g )Nr}  c                       \ rS rSrSrg)4ForwardRefTests.test_forward_equality_gth.<locals>.Ci  re   Nr}   re   rd   ra   r}  r+    rD  rd   rL  r   c                     g r[   re   rL  r   s     ra   rX  6ForwardRefTests.test_forward_equality_gth.<locals>.foo  rc  rd   r-  )
r\   rC   r   r+   rx  ry  r   r   r   r   )r_   r  c1_gthr  c2_gthr}  rX  s          ra   test_forward_equality_gth)ForwardRefTests.test_forward_equality_gth  s/   s#""3's#""3'	 		6 	f 	 	WYACST $(b4<0DHd1g.DL$q'2rz*E"I6r3/r3w@rd   c           
         [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[         R                  " S5      nSUSU4S jn[        U[        5       [	        5       5        U R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        [         R                  " S[        S9n[         R                  " SSS9nU R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        U R                  [        U5      [        [         R                  " S[        S95      5        g )Nr   rL  r   c                     g r[   re   r-  s     ra   rX  7ForwardRefTests.test_forward_equality_hash.<locals>.foo  rc  rd   r#  r%  )	r\   rC   r+   rx  ry  r   r  rf   r   )r_   r  r/  r  r0  rX  c3c4s           ra   test_forward_equality_hash*ForwardRefTests.test_forward_equality_hash  s@   u%""5)u%""5)	6 	f 	sGIvx0b48,ftF|4b4<0uX6u-=>DHd2h/DHd6l3DHd2h/b4(9(9%(Q#RSrd   c                      " S S5      nS nS nU R                  U" 5       U" 5       5        U R                  U" 5       U" 5       5        g )Nc                       \ rS rSrSrg):ForwardRefTests.test_forward_equality_namespace.<locals>.Ai  re   Nr}   re   rd   ra   r  r<    rD  rd   r  c                  z    [         R                  " S5      n SU 4S jn[        U[        5       [	        5       5        U $ )Nr  r   c                     g r[   re   r   s    ra   r  PForwardRefTests.test_forward_equality_namespace.<locals>.namespace1.<locals>.fun!  rR  rd   r\   rC   r+   rx  ry  )rL  r  s     ra   
namespace1CForwardRefTests.test_forward_equality_namespace.<locals>.namespace1  s3    !!#&Aq 3	684Hrd   c                      [         R                  " S5      n  " S S5      nSU 4S jn[        U[        5       [	        5       5        U $ )Nr  c                       \ rS rSrSrg)NForwardRefTests.test_forward_equality_namespace.<locals>.namespace2.<locals>.Ai)  re   Nr}   re   rd   ra   r  rE  )  r  rd   r   c                     g r[   re   r   s    ra   r  PForwardRefTests.test_forward_equality_namespace.<locals>.namespace2.<locals>.fun+  rR  rd   r@  )rL  r  r  s      ra   
namespace2CForwardRefTests.test_forward_equality_namespace.<locals>.namespace2&  s?    !!#&A q  3	684Hrd   )r   r   )r_   r  rA  rH  s       ra   test_forward_equality_namespace/ForwardRefTests.test_forward_equality_namespace  s@    	 				 	z|4JL*,7rd   c           
          U R                  [        [        S   5      S5        U R                  [        [        [        SSS9   5      S5        g )Nr   ztyping.List[ForwardRef('int')]modr#  z,typing.List[ForwardRef('int', module='mod')])r   r   r   rC   r   s    ra   test_forward_repr!ForwardRefTests.test_forward_repr4  sA    d5k*,LMd:eE#BCDG	Ird   c                 R   S[         S   4S jnU R                  [        U[        5       [	        5       5      S[         [
           05        S[        [        S5         [        -  4S jnU R                  [        U[        5       [	        5       5      S[        [
           [        -  05        g )NrL  r   c                     g r[   re   rv  s    ra   rX  /ForwardRefTests.test_union_forward.<locals>.foo;  rc  rd   c                     g r[   re   rv  s    ra   rX  rR  A  rc  rd   )	r   r   r+   rx  ry  r   ri  rC   r   r_   rX  s     ra   test_union_forward"ForwardRefTests.test_union_forward9  s    	5: 	 	WYAuQx	*	5C)C/ 	 	WYAuQx#~.	0rd   c                 6   S[         S   4S jnU R                  [        U[        5       [	        5       5      S[         [
           05        S[        [        S5         4S jnU R                  [        U[        5       [	        5       5      S[        [
           05        g )NrL  r   c                     g r[   re   rv  s    ra   rX  /ForwardRefTests.test_tuple_forward.<locals>.fooI  rc  rd   c                     g r[   re   rv  s    ra   rX  rY  O  rc  rd   )r   r   r+   rx  ry  r   ri  rC   rT  s     ra   test_tuple_forward"ForwardRefTests.test_tuple_forwardG  s{    	5: 	 	WYAuQx	*	5C) 	 	WYAuQx	*rd   c                     SS jnU R                  [        U[        5       [        5       5      S[        [
           05        g )NrL  c                     g r[   re   rv  s    ra   rX  0ForwardRefTests.test_double_forward.<locals>.fooV  rc  rd   )rL  zList['int'])r   r+   rx  ry  r   r   rT  s     ra   test_double_forward#ForwardRefTests.test_double_forwardU  s0    	WYAtCy)	+rd   c                     S nS nS n[        S5         U" 5       nU" 5       nU R                  XE5        U R                  [        X4U5        S S S 5        g ! , (       d  f       g = f)Nc                  ~    [         R                  " S5      n U nSU 4S jn[        U[        5       [	        5       5      nU $ )Nr  r   c                     g r[   re   r   s    ra   r  PForwardRefTests.test_forward_recursion_actually.<locals>.namespace1.<locals>.fun_  rc  rd   r@  rL  r  r  rets       ra   rA  CForwardRefTests.test_forward_recursion_actually.<locals>.namespace1\  6    !!#&AAq gi:CHrd   c                  ~    [         R                  " S5      n U nSU 4S jn[        U[        5       [	        5       5      nU $ )Nr  r   c                     g r[   re   r   s    ra   r  PForwardRefTests.test_forward_recursion_actually.<locals>.namespace2.<locals>.fung  rc  rd   r@  rf  s       ra   rH  CForwardRefTests.test_forward_recursion_actually.<locals>.namespace2d  ri  rd   c                 
    X:H  $ r[   re   )o1o2s     ra   cmp<ForwardRefTests.test_forward_recursion_actually.<locals>.cmpl  s	    8Ord      )rP   r}	  r   RecursionError)r_   rA  rH  rq  r1r2s         ra   test_forward_recursion_actually/ForwardRefTests.test_forward_recursion_actually[  sU    			  #BBR$ncr:	 $##s   7A
A#c                   ^^ [         S   m[        [        T4   m " U4S jS5      n " UU4S jS5      n " UU4S jS5      n " UU4S jS	5      nU R                  [	        U[        5       [        5       5      [	        U[        5       [        5       5      5        U R                  [	        U[        5       [        5       5      S
[         [        [        [         [        [        [         S   4      4      05        U R                  [	        U[        5       [        5       5      S
[        [        [         [        [        [         S   4      4   05        U R                  [	        U[        5       [        5       5      S
[        [         [        [        [         [        [        [         S   4      4      [         [        [        [         S   4      4   05        U R                  [	        U[        5       [        5       5      S
[        [        [         [        [        [         S   4      [         [        [        [         [        [        [         S   4      4      4   05        g )NValuec                   *   > \ rS rSr% \ Y    \S'   Srg)7ForwardRefTests.test_union_forward_recursion.<locals>.Ciy  rX  re   N)rf   rg   rh   ri   r   r  rj   )rz  s   ra   r}  r|  y  s    erd   r}  c                   0   > \ rS rSr% \ Y  Y4   \S'   Srg)7ForwardRefTests.test_union_forward_recursion.<locals>.Di{  rX  re   N)rf   rg   rh   ri   r   r  rj   rz  	ValueLists   ra   r  r~  {  s    ui'((rd   r  c                   6   > \ rS rSr% \\ Y     Y4   \S'   Srg)7ForwardRefTests.test_union_forward_recursion.<locals>.Ei}  rX  re   Nrf   rg   rh   ri   r   r   r  rj   r  s   ra   r  r  }  s    tE{I-..rd   r  c                   :   > \ rS rSr% \ Y \ Y     Y4   \S'   Srg)7ForwardRefTests.test_union_forward_recursion.<locals>.Fi  rX  re   Nr  r  s   ra   r  r    s    ud5k9455rd   r  rX  )r   r   r  r   r+   rx  ry  )r_   r}  r  r  r  rz  r  s        @@ra   test_union_forward_recursion,ForwardRefTests.test_union_forward_recursionu  s   M	c9n%	 		) 	)	/ 	/	6 	6 	79fh?PQSZS\^d^fAgh79fh?eCeCg<N6O1P,P&Q!RS	U79fh?sDsDM7I1J,K'K!LM	O79fh?!%T%T']8J2K-L(L"MN!%T'](:";<=" 	 	79fh? !%T'](:";<!%T%T']8J2K-L(L"MNO" 	rd   c                     S[         S/S4   4S jnU R                  [        U[        5       [	        5       5      S[         [
        /[
        4   05        g )NrL  r   c                     g r[   re   rv  s    ra   rX  2ForwardRefTests.test_callable_forward.<locals>.foo  rc  rd   )r"   r   r+   rx  ry  r   rT  s     ra   test_callable_forward%ForwardRefTests.test_callable_forward  sK    	8SE3J' 	 	WYAxQ/0	2rd   c                     SS jnU R                  [        U[        5       [        5       5      S[        S[
        4   05        g )NrL  c                     g r[   re   rv  s    ra   rX  @ForwardRefTests.test_callable_with_ellipsis_forward.<locals>.foo  rc  rd   .)rL  zCallable[..., T])r   r+   rx  ry  r"   r   rT  s     ra   #test_callable_with_ellipsis_forward3ForwardRefTests.test_callable_with_ellipsis_forward  s7    	 	WYAxQ/0	2rd   c                 (    " S S5      n " S S5      nU R                  [        U[        5       5      S   [        [           5        U R                  [        U[        5       5      S   [
        [           5        U R                  [        U[        5       5      S   [        5        U R                  [        U[        5       5      S   [
        5        U R                  [        5         [        U[        5       5      4  S S S 5        g ! , (       d  f       g = f)	Nc                   Z    \ rS rSr% Sr\S   \S'   Sr\S   \S'   SrS\S'   Sr	S	\S
'   Sr
g)5ForwardRefTests.test_special_forms_forward.<locals>.Ci  r  )ClassVar[int])r  r  rL  )
Final[int]constr   r$   r   r%   r   re   N)rf   rg   rh   ri   rL  rB   r  r   r   r   rj   re   rd   ra   r}  r    s5    45Ay01523Ay./3AzAwNrd   r}  c                   *    \ rS rSr% Sr\S   \S'   Srg)6ForwardRefTests.test_special_forms_forward.<locals>.CFi  r  r  r   re   N)rf   rg   rh   ri   r   r   r  rj   re   rd   ra   CFr    s    $%AtL!%rd   r  rL  r   r   r   )r   r+   rx  r$   r   r%   r   r   )r_   r}  r  s      ra   test_special_forms_forward*ForwardRefTests.test_special_forms_forward  s    	 		& 	& 	795c:HSMJ795c:E#JG795c:HE795c:EBy)2wy)* *))s   $D
Dc                 t    U R                  [        5         [        S     S S S 5        g ! , (       d  f       g = f)Nz/T)r   SyntaxErrorr#   r   s    ra   test_syntax_error!ForwardRefTests.test_syntax_error  s#    {+DM ,++r  c                     SS jnU R                  [        5         [        U5        S S S 5        g ! , (       d  f       g = f)Nc                     g r[   re   rv  s    ra   rX  6ForwardRefTests.test_delayed_syntax_error.<locals>.foo  rc  rd   )rL  zNode[T)r   r  r+   rT  s     ra   test_delayed_syntax_error)ForwardRefTests.test_delayed_syntax_error  s+    	 {+3 ,++s   0
>c                 J   [         R                  [         R                  [         R                  [         R                  4 H>  nU R                  US9   U R                  [        5         US     S S S 5        S S S 5        M@     g ! , (       d  f       N= f! , (       d  f       Mc  = f)N)formr   )r\   r   Setr7   Dequert   r   r  )r_   r  s     ra   test_syntax_error_empty_string.ForwardRefTests.test_syntax_error_empty_string  sf    [[&**fkk6<<HD4(&&{3H 4 )( I33 )(s$   B'B-B
BB
B"	c                     SS jnU R                  [        5         [        U[        5       5        S S S 5        g ! , (       d  f       g = f)Nc                     g r[   re   rv  s    ra   rX  ,ForwardRefTests.test_name_error.<locals>.foo  rc  rd   )rL  zNoode[T])r   	NameErrorr+   ry  rT  s     ra   test_name_errorForwardRefTests.test_name_error  s/    	 y)3) *))s	   9
Ac                 b    [         SSS0 4S j5       n[        U5      nU R                  U0 5        g )NrL  	whateversr%  c                     g r[   re   rv  s    ra   rX  /ForwardRefTests.test_no_type_check.<locals>.foo      rd   )r4   r+   r   )r_   rX  ths      ra   test_no_type_check"ForwardRefTests.test_no_type_check  s>    		; 	2 	 
	 C R rd   c                     [          " S S5      5       n[        UR                  5      nU R                  U0 5        [        U" 5       R                  5      nU R                  U0 5        g )Nc                   &    \ rS rSrSSS0 4S jrSrg)3ForwardRefTests.test_no_type_check_class.<locals>.Ci  rL  r  r%  c                     g r[   re   rv  s    ra   rX  7ForwardRefTests.test_no_type_check_class.<locals>.C.foo  rR  rd   re   Nrf   rg   rh   ri   rX  rj   re   rd   ra   r}  r        { r rd   r}  )r4   r+   rX  r   )r_   r}  cthiths       ra   test_no_type_check_class(ForwardRefTests.test_no_type_check_class  sY    		 	 
	 QUU#b!QSWW%b!rd   c                 
  ^  " S S5      m[          " U4S jST5      5       nU R                  [        TR                  5      S[        05         " S SU5      nU R                  [        UR
                  5      S[        05        g )Nc                   "    \ rS rSrS\4S jrSrg)6ForwardRefTests.test_no_type_check_no_bases.<locals>.Ci  r   c                     g r[   re   r   s     ra   r>  ;ForwardRefTests.test_no_type_check_no_bases.<locals>.C.meth  s    Crd   re   Nr{  re   rd   ra   r}  r    s
    'c'rd   r}  c                      > \ rS rSr Y rSrg)6ForwardRefTests.test_no_type_check_no_bases.<locals>.Di  re   N)rf   rg   rh   ri   r  rj   r}  s   ra   r  r    s    Ard   r  r   c                   "    \ rS rSrS\4S jrSrg):ForwardRefTests.test_no_type_check_no_bases.<locals>.Childi  r   c                     g r[   re   r   s     ra   rX  >ForwardRefTests.test_no_type_check_no_bases.<locals>.Child.foo  ra  rd   re   N)rf   rg   rh   ri   r   rX  rj   re   rd   ra   r  r    s
    &S&rd   r  )r4   r   r+   r>  r   rX  )r_   r  r  r}  s      @ra   test_no_type_check_no_bases+ForwardRefTests.test_no_type_check_no_bases  sp    	( 	(		 	 
	 	/#s<	'A 	' 			2S#J?rd   c                     " S S5      n " S S5      n[          " S S5      5       nX3R                  UR                  R                  UR                  4 HQ  nU R	                  US9   U R                  UR                  5        U R                  [        U5      0 5        S S S 5        MS     X4 H`  nU R	                  US9   U R                  [        5         UR                    S S S 5        U R                  [        U5      0 5        S S S 5        Mb     g ! , (       d  f       M  = f! , (       d  f       NH= f! , (       d  f       M  = f)	Nc                        \ rS rSr% \\S'   Srg)>ForwardRefTests.test_no_type_check_nested_types.<locals>.Otheri  r%  re   Nr)  re   rd   ra   rC  r    r  rd   rC  c                        \ rS rSr% \\S'   Srg):ForwardRefTests.test_no_type_check_nested_types.<locals>.Bi  r%  re   Nr)  re   rd   ra   r  r    r  rd   r  c                   L    \ rS rSr% \\S'    " S S5      r " S S5      r\rSr	g)	:ForwardRefTests.test_no_type_check_nested_types.<locals>.Ai  rL  c                   4    \ rS rSr% \\S'    " S S5      rSrg)<ForwardRefTests.test_no_type_check_nested_types.<locals>.A.Bi   r   c                        \ rS rSr% \\S'   Srg)>ForwardRefTests.test_no_type_check_nested_types.<locals>.A.B.Ci  r  re   Nr)  re   rd   ra   r}  r    s    Frd   r}  re   N)rf   rg   rh   ri   r   r  r}  rj   re   rd   ra   r  r     s     rd   r  c                        \ rS rSr% \\S'   Srg)<ForwardRefTests.test_no_type_check_nested_types.<locals>.A.Di  r  re   Nr)  re   rd   ra   r  r        rd   r  re   N)
rf   rg   rh   ri   r   r  r  r  rC  rj   re   rd   ra   r  r    s"    F   Erd   r  rE  )not_modified)r4   r  r}  r  rt   r   __no_type_check__r   r+   r   r  r   )r_   rC  r  r  rE  r  s         ra   test_no_type_check_nested_types/ForwardRefTests.test_no_type_check_nested_types  s    	 		 				 		 
		 acceeQSS)EE* 7 78  !6; +* *
 #JL<8&&~6 22 7##N<$@"E 98 '	 +* 76 98s0   '7D?D5D$"#D5
D!	$
D2.D55
E	c                 R   [          " S S5      5       nU R                  UR                  R                  5        U R	                  [        UR                  5      0 5        U R                  UR                  R                  5        U R	                  [        UR                  5      0 5        g )Nc                   L    \ rS rSr\S\S\4S j5       r\S\S\4S j5       rSr	g)	IForwardRefTests.test_no_type_check_class_and_static_methods.<locals>.Somei  r   r%  c                     g r[   re   r   s    ra   stLForwardRefTests.test_no_type_check_class_and_static_methods.<locals>.Some.st  s    #&rd   r   c                     g r[   re   )r'  r   s     ra   clLForwardRefTests.test_no_type_check_class_and_static_methods.<locals>.Some.cl  s    (+rd   re   N)
rf   rg   rh   ri   r  r   r  r	  r  rj   re   rd   ra   Somer    s2    &c&c& &+3+3+ +rd   r  )r4   r   r  r  r   r+   r  )r_   r  s     ra   +test_no_type_check_class_and_static_methods;ForwardRefTests.test_no_type_check_class_and_static_methods  sy    		, 	, 
	, 	1120"51120"5rd   c                 J   U R                  [        R                  5        U R                  [        5         [
        R                  R                    S S S 5        U R                  [        5         [
        R                  R                  R                    S S S 5        U R                  [        R                  5        U R                  [        5         [
        R                  R                    S S S 5        g ! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       g = fr[   )	r   r  r  r   r  r  r  r  r  r   s    ra   test_no_type_check_other_module/ForwardRefTests.test_no_type_check_other_module!  s    );;<~.));; /~.))//AA / 	0BBC~.,,>> /. /... /.s#   C2-%DD2
D 
D
D"c                   ^ S[         S[         4S jm[         " U4S jS5      5       nU R                  [        5         TR                    S S S 5        U R                  [        T5      [         [         S.5        g ! , (       d  f       N5= f)Nr   r%  c                      g r[   re   r  s    ra   r(  BForwardRefTests.test_no_type_check_foreign_functions.<locals>.some.  s    rd   c                   @   > \ rS rSr Y r\"  Y 5      r\"  Y 5      rSr	g)?ForwardRefTests.test_no_type_check_foreign_functions.<locals>.Ai1  re   N)
rf   rg   rh   ri   
some_aliasr	  
some_classr  some_staticrj   )r(  s   ra   r  r  1  s    J$T*J&t,Krd   r  )r   r%  )r   r4   r   r  r  r   r+   )r_   r  r(  s     @ra   $test_no_type_check_foreign_functions4ForwardRefTests.test_no_type_check_foreign_functions,  sp    	 	 	 
	- 	- 
	-
 ~."" /-s/KL /.s   A::
Bc                     [          " S S5      5       nU R                  UR                  R                  5        U R	                  [        UR                  5      0 5        g )Nc                   2    \ rS rSr% S r\\/\4   \S'   Srg)4ForwardRefTests.test_no_type_check_lambda.<locals>.Ai<  c                     U $ r[   re   r'  s    ra   r&  =ForwardRefTests.test_no_type_check_lambda.<locals>.A.<lambda>?  s    Crd   r_  re   N)	rf   rg   rh   ri   r_  r"   r   r  rj   re   rd   ra   r  r  <  s     )8C3%*%7rd   r  )r4   r   r_  r  r   r+   r  s     ra   test_no_type_check_lambda)ForwardRefTests.test_no_type_check_lambda;  sJ    		8 	8 
	8 	//0.3rd   c                 "    [        [        5        g r[   )r4   r|  r   s    ra   test_no_type_check_TypeError,ForwardRefTests.test_no_type_check_TypeErrorD  s     	drd   c                      " S S5      n " S S5      n " S S5      n " S S5      nS	[         R                  [           0nXX44 H  nU R                  [	        U5      U5        M      g )
Nc                   >    \ rS rSr% Sr\R                  \   \S'   Sr	g)CForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.CiJ     rX  re   N)
rf   rg   rh   ri   rX  r\   r$   r   r  rj   re   rd   ra   r}  r  J  s    ()C%)rd   r}  c                   *    \ rS rSr% Sr\\   \S'   Srg)CForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.DiL  r  rX  re   N)	rf   rg   rh   ri   rX  r$   r   r  rj   re   rd   ra   r  r  L  s    !"C#"rd   r  c                   $    \ rS rSr% SrS\S'   Srg)CForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.EiN  r  r&  rX  re   Nrf   rg   rh   ri   rX  r  rj   re   rd   ra   r  r  N  s    *+C'+rd   r  c                   $    \ rS rSr% SrS\S'   Srg)CForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.FiP  r  r  rX  re   Nr  re   rd   ra   r  r  P  s    #$C$rd   r  rX  )r\   r$   r   r   r+   )r_   r}  r  r  r  expected_resultclazzs          ra   (test_no_type_check_forward_ref_as_string8ForwardRefTests.test_no_type_check_forward_ref_as_stringI  sb    	* 	*	# 	#	, 	,	% 	% !&//#"67A\E^E2OD "rd   c                 
   SnU R                  [        U5         [        S 5       nS S S 5        U R                  WR                  S5        USSS0 4S j5       nU " S S	5      5       nU R                  UR                  S
5        [        U5      nU R                  U0 5        [        UR                  5      nU R                  U0 5        [        U" 5       R                  5      nU R                  U0 5        g ! , (       d  f       N= f)NzT'typing.no_type_check_decorator' is deprecated and slated for removal in Python 3.15c                     U $ r[   re   re  s    ra   magic_decorator@ForwardRefTests.test_meta_no_type_check.<locals>.magic_decorator]  s    rd   r  rL  r  r%  c                     g r[   re   rv  s    ra   rX  4ForwardRefTests.test_meta_no_type_check.<locals>.fooc  r  rd   c                   &    \ rS rSrSSS0 4S jrSrg)2ForwardRefTests.test_meta_no_type_check.<locals>.Cig  rL  r  r%  c                     g r[   re   rv  s    ra   rX  6ForwardRefTests.test_meta_no_type_check.<locals>.C.fooi  rR  rd   re   Nr  re   rd   ra   r}  r  g  r  rd   r}  rX  )assertWarnsRegexDeprecationWarningr5   r   rf   r+   rX  )r_   depr_msgr  rX  r}  r  r  r  s           ra   test_meta_no_type_check'ForwardRefTests.test_meta_no_type_checkW  s   4 	 ""#5x@$ % A
 	113DE		; 	2 	 
	 
	 	 
	 	u-C R QUU#b!QSWW%b!- A@s   C44
Dc                     Sn0 n[        X5        [        US   R                  5      nU R                  X2S   US   S.5        g )Nz^class C:
    def foo(self, a: 'C') -> 'D': pass
class D:
    def bar(self, b: 'D') -> C: pass
r}  r  )rL  r%  )r  r+   rX  r   )r_   r  r  hintss       ra   test_default_globals$ForwardRefTests.test_default_globalst  sD    9
 Tr#w{{+gC ABrd   c                 :   U R                  [        [        [        5       5      S   [        [           5        U R                  [        [        [        5       5      S   [        [           5        U R                  [        [        [        5       5      S   [        5        g )Nr;  )r   r1  Looprx  r%   r   r   r   s    ra   test_final_forward_ref&ForwardRefTests.test_final_forward_ref  sd    T79-f5uT{CCgi08%*ECgi08%@rd   c                     [        S5      nU R                  US-  [        US4   5        U R                  SU-  [        SU4   5        g r  )rC   r   r   r  s     ra   r  ForwardRefTests.test_or  sC    sOS%3-0q%Q-0rd   re   N)(rf   rg   rh   ri   rq  r  r  r   r'  r1  r8  rJ  rN  rU  r[  r`  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r)  r-  r  rj   re   rd   ra   r  r    s    !7F
 
!TA*T,80I
0*+;4@22+$
 *!
"@ F:6	?M4
E":	CA
1rd   r  c                        \ rS rSrS rS rSrg)InternalsTestsi  c           	      H   U R                  [        S5       nU R                  [        R                  " [
        S   [        5       0 5      [
        [           5        S S S 5        U R                  WR                  [        5        [        S5      nU R                  [        S5       nU R                  UR                  [        5       0 [        5       S9[        5        S S S 5        U R                  UR                  [        5        g ! , (       d  f       N= f! , (       d  f       N@= f)Nz[Failing to pass a value to the 'type_params' parameter of 'typing._eval_type' is deprecatedr   zeFailing to pass a value to the 'type_params' parameter of 'typing.ForwardRef._evaluate' is deprecated)recursive_guard)r"  r#  r   r\   
_eval_typer  rx  r   filename__file__rC   r   	_evaluater|	  )r_   rT  r`   s      ra   7test_deprecation_for_no_type_params_passed_to__evaluateFInternalsTests.test_deprecation_for_no_type_params_passed_to__evaluate  s    ""7
 V..tE{GIrJDQTIV
 	h/u""A
 MM!++giY[+QSVW
 	h/-
 

 
s   AD#6D
D
D!c                     [         R                  " S5      nU R                  [        S5       nUR                    S S S 5        U R                  WR                  [        5        g ! , (       d  f       N/= f)Nr\   z6The private _collect_parameters function is deprecated)rR   import_fresh_moduler"  r#  _collect_parametersr   r6  r7  )r_   r\   rT  s      ra   test_collect_parameters&InternalsTests.test_collect_parameters  sZ    228<""D
 &&	

 	h/
 
s   A##
A1re   N)rf   rg   rh   ri   r9  r>  rj   re   rd   ra   r2  r2    s    020rd   r2  c                     SU -  U-   $ Nr  re   r  s     ra   cached_funcrB    s    q519rd   c                   :    \ rS rSr\S 5       r\S 5       rS rSr	g)MethodHolderi  c                     g r[   re   r&  s    ra   rz  MethodHolder.clsmethod  s    rd   c                      g r[   re   re   rd   ra   r}  MethodHolder.stmethod  r_  rd   c                     g r[   re   r   s    ra   r  MethodHolder.method  s    crd   re   N)
rf   rg   rh   ri   r	  rz  r  r}  r  rj   re   rd   ra   rD  rD    s!      rd   rD  c                   h    \ rS rSrS rS r\S 5       rS r\	" S\
" S 5      5      S 5       rS	 rS
rg)OverloadTestsi  c                     U R                  [        5         [        S 5       nU" 5         S S S 5        g ! , (       d  f       g = f)Nc                      g r[   re   re   rd   ra   r  /OverloadTests.test_overload_fails.<locals>.blah  s    rd   )r   r  r   r_   r  s     ra   test_overload_fails!OverloadTests.test_overload_fails  s6    23  F 433r  c                 0    [         S 5       nS nU" 5         g )Nc                      g r[   re   re   rd   ra   r  2OverloadTests.test_overload_succeeds.<locals>.blah  r  rd   c                      g r[   re   re   rd   ra   r  rU    rc  rd   r   rP  s     ra   test_overload_succeeds$OverloadTests.test_overload_succeeds  s     		 
		 	rd   c                    [        S[        S 5      5         U R                  [        R                  0 5        [        [        5        [        [        5        U R                  [        R                  " [        5      / 5        U R                  [        R                  " [        5      / 5        S S S 5        g ! , (       d  f       g = f)Ntyping._overload_registryc                       [        [        5      $ r[   r   r|  re   rd   ra   r&  COverloadTests.test_overload_on_compiled_functions.<locals>.<lambda>  s	    {4'8rd   )	r
   r   r   r\   _overload_registryr   sumprintr   r   s    ra   #test_overload_on_compiled_functions1OverloadTests.test_overload_on_compiled_functions  s    .89; V66; SMUO V11#6;V11%8"=; ; ;s   BB33
Cc                 R    S nUn[        U5        S nUn[        U5        S nXU/4$ )Nc                      g r[   re   re   rd   ra   r  ,OverloadTests.set_up_overloads.<locals>.blah  rc  rd   c                      g r[   re   re   rd   ra   r  rf    rc  rd   c                      g r[   re   re   rd   ra   r  rf    rc  rd   rW  )r_   r  	overload1	overload2s       ra   set_up_overloadsOverloadTests.set_up_overloads  s=    	 		 		 +++rd   r[  c                       [        [        5      $ r[   r]  re   rd   ra   r&  OverloadTests.<lambda>  s	    K-rd   c                    U R                  [        R                  0 5        U R                  5       u  pU R	                  [        R                  0 5        U R                  [        [        U5      5      U5        S n[        U5        UnS nU R                  [        [        U5      5      U/5        S nU R                  [        [        U5      5      / 5        [        5         U R                  [        R                  0 5        U R                  [        U5      / 5        S nU R                  [        U5      / 5        U R                  [        R                  0 5        g )Nc                      g r[   re   re   rd   ra   some_other_func=OverloadTests.test_overload_registry.<locals>.some_other_func  r  rd   c                      g r[   re   re   rd   ra   rq  rr     r  rd   c                      g r[   re   re   rd   ra   not_overloaded<OverloadTests.test_overload_registry.<locals>.not_overloaded  s    drd   c                      g r[   re   re   rd   ra   the_only_one:OverloadTests.test_overload_registry.<locals>.the_only_one  r  rd   )	r   r\   r_  rk  r   r  r   r   r   )r_   impl	overloadsrq  other_overloadru  rx  s          ra   test_overload_registry$OverloadTests.test_overload_registry  s
    	22B7//1F55r:mD12I>#!(#mO<=?OP"mN;<bA 	22B7t,b1 	!|4b922B7rd   c                     [        S5       H9  nU R                  5       u  p#U R                  [        [	        U5      5      U5        M;     g r`  )rq   rk  r   r  r   )r_   r  rz  r{  s       ra   test_overload_registry_repeated-OverloadTests.test_overload_registry_repeated  s:    qA"335ODT-"56	B rd   re   N)rf   rg   rh   ri   rQ  rX  rO   rb  rk  r
   r   r}  r  rj   re   rd   ra   rL  rL    sP     > >,& &-.08088Crd   rL  )
ann_moduleann_module2ann_module3ann_module5ann_module6T_ac                   B    \ rS rSrS rS\R                  \   4S jrSr	g)AwaitableWrapperi  c                     Xl         g r[   rR  r_   rR  s     ra   r   AwaitableWrapper.__init__       
rd   r%  c              #   *   #    S v   U R                   $ 7fr[   r  r   s    ra   	__await__AwaitableWrapper.__await__#  s     zzs   r  N)
rf   rg   rh   ri   r   r\   Iteratorr  r  rj   re   rd   ra   r  r    s    6??3/ rd   r  c                   r    \ rS rSrS\R
                  \   4S jrS\R                  \   4S jr	S\4S jr
Srg)	AsyncIteratorWrapperi'  rR  c                     Xl         g r[   r  r  s     ra   r   AsyncIteratorWrapper.__init__)  r  rd   r%  c                     U $ r[   re   r   s    ra   	__aiter__AsyncIteratorWrapper.__aiter__,  s    rd   c                 T   #    U R                   I S h  vN nU(       a  U$ [        e N7fr[   )rR  StopAsyncIteration)r_   datas     ra   	__anext__AsyncIteratorWrapper.__anext__/  s$     ZZK$$	  s   (&(r  N)rf   rg   rh   ri   r\   r  r  r   r
  r  r  rj   re   rd   ra   r  r  '  s:    fooc2 6//4 % %rd   r  c                   (    \ rS rSrS\4S jrS rSrg)ACMi6  r%  c                    #    g7fr   re   r   s    ra   
__aenter__ACM.__aenter__7  s        c                    #    g 7fr[   re   )r_   etyper  tbs       ra   	__aexit__ACM.__aexit__9  s     r  re   N)rf   rg   rh   ri   r   r  r  rj   re   rd   ra   r  r  6  s    # rd   r  c                        \ rS rSr% \\S'   Srg)r  i<  r   re   N)rf   rg   rh   ri   r  r  rj   re   rd   ra   r  r  <  s    Hrd   r  c                   D    \ rS rSr% Sr\\S       \S'   \\S'   \\S'   Sr	g)r  i>  Nr   r   r   re   )
rf   rg   rh   ri   r   r$   r   r  r   rj   re   rd   ra   r  r  >  s    !%Ax%
F
Frd   r  c                   4    \ rS rSr% \" 5       r\S    \S'   Srg)CSubiB  r  re   N)	rf   rg   rh   ri   r  r  r$   r  rj   re   rd   ra   r  r  B  s    #Axrd   r  c                   0    \ rS rSr% / r\\\      \S'   Sr	g)r  iD  lstre   N)
rf   rg   rh   ri   r  r$   r   r   r  rj   re   rd   ra   r  r  D  s    C$q'	rd   r  c                   &    \ rS rSr% \S    \S'   Srg)r,  iG  r;  re   N)rf   rg   rh   ri   r%   r  rj   re   rd   ra   r,  r,  G  s    
-rd   r,  c                   *    \ rS rSr% S \S'   S\S'   Srg)NoneAndForwardiJ  parentNmeaningre   rv  re   rd   ra   r  r  J  s    Mrd   r  c                   *    \ rS rSr% \\S'   \\S'   Srg)CoolEmployeeiN  r0  coolre   Nrf   rg   rh   ri   r  r  r   rj   re   rd   ra   r  r  N  s    
I
Ird   r  c                   .    \ rS rSr% \\S'   Sr\\S'   Srg)CoolEmployeeWithDefaultiR  r0  r   r  re   N)	rf   rg   rh   ri   r  r  r  r   rj   re   rd   ra   r  r  R  s    
ID#Mrd   r  c                   &    \ rS rSr% \\S'   S rSrg)XMethiV  r   c                      SU R                   -  $ r`  r   r   s    ra   doubleXMeth.doubleX  s    466zrd   re   N)rf   rg   rh   ri   r   r  r  rj   re   rd   ra   r  r  V  s    
Frd   r  c                   :    \ rS rSr% \\S'   Sr\\S'   S rS rSr	g)	XRepri[  r   rm   r   c                 8    U R                    SU R                   3$ )Nz -> r  r   s    ra   __str__XRepr.__str__^  s    &&dffX&&rd   c                     grM  re   r_   r	  s     ra   __add__XRepr.__add__`  s    rd   re   N)
rf   rg   rh   ri   r   r  r   r  r  rj   re   rd   ra   r  r  [  s    
FAsJ'rd   r  Labelr-  c                   *    \ rS rSr% \\S'   \\S'   Srg)Point2Die  r   r   re   Nr)  re   rd   ra   r  r  e  r*  rd   r  c                   *    \ rS rSr% \\S'   \\S'   Srg)Point2DGenericii  rL  r   re   Nr  re   rd   ra   r  r  i  s    DDrd   r  c                        \ rS rSr% \\S'   Srg)r   im  r   re   Nr)  re   rd   ra   r   r   m  r4  rd   r   Ftotalc                        \ rS rSr% \\S'   Srg)
BarGenericip  r   re   Nr)  re   rd   ra   r  r  p  r4  rd   r  c                       \ rS rSrSrg)LabelPoint2Dis  re   Nr}   re   rd   ra   r  r  s      Crd   r  c                   *    \ rS rSr% \\S'   \\S'   Srg)Optionsiu  	log_levellog_pathre   Nr1  re   rd   ra   r  r  u  s    NMrd   r  c                   0    \ rS rSr% \\S'   \\   \S'   Srg)
TotalMovieiy  titlerV  re   N)	rf   rg   rh   ri   r  r  r9   r   rj   re   rd   ra   r  r  y  s    J
c
rd   r  c                   0    \ rS rSr% \\   \S'   \\S'   Srg)NontotalMoviei}  r  rV  re   N)	rf   rg   rh   ri   r:   r  r  r   rj   re   rd   ra   r  r  }  s    C=
Ird   r  c                   &    \ rS rSr% \\   \S'   Srg)ParentNontotalMoviei  r  re   Nrf   rg   rh   ri   r:   r  r  rj   re   rd   ra   r  r    s    C=rd   r  c                   &    \ rS rSr% \\   \S'   Srg)ChildTotalMoviei  rV  re   Nrf   rg   rh   ri   r9   r   r  rj   re   rd   ra   r  r    s    
c
rd   r  c                   :    \ rS rSr% \\\\   S4   S4   \S'   Srg)ParentDeeplyAnnotatedMoviei  r]  another levelr  re   N)	rf   rg   rh   ri   rB   r:   r  r  rj   re   rd   ra   r  r    s     Yx}h67HIIrd   r  c                   0    \ rS rSr% \\\S4      \S'   Srg)ChildDeeplyAnnotatedMoviei    rV  re   N)	rf   rg   rh   ri   r9   rB   r   r  rj   re   rd   ra   r  r    s    
iT	*
++rd   r  c                   J    \ rS rSr% \\\   S4   \S'   \\\	S4      \S'   Sr
g)AnnotatedMoviei  r]  r  r  rV  re   Nrf   rg   rh   ri   rB   r:   r  r  r9   r   rj   re   rd   ra   r  r    s*    Xc]H,--
iT	*
++rd   r  c                   T    \ rS rSr% \\\\   S4   S4   \S'   \\\	S4      \S'   Sr
g)	DeeplyAnnotatedMoviei  r]  r  r  r  rV  re   Nr  re   rd   ra   r  r    s4    Yx}h67HII
iT	*
++rd   r  c                   6    \ rS rSr% \S   \S'   \S   \S'   Srg)WeirdlyQuotedMoviei  )z"Annotated[Required[str], "foobar"]r  r  zAnnotated[int, 2000]rV  re   N)rf   rg   rh   ri   rB   r  r9   rj   re   rd   ra   r  r    s    JKK
,
--rd   r  c                   *    \ rS rSr% S\S'   S\S'   Srg)HasForeignBaseClassi  r  
some_xreprzmod_generics_cache.Aother_are   Nrv  re   rd   ra   r  r    s    ##rd   r  amc                    #    U  IS h  vN nUsS S S 5      IS h  vN   $  N N! , IS h  vN  (       d  f       g = f7fr[   re   )r  r   s     ra   g_withr    s     rQ rrrrrs0   ?!?%?#??<.<?r   c                       \ rS rSr\R
                  SS j5       r\R
                  \R
                  SS j5       5       rSrg)ForRefExamplei  c                     g r[   re   r   s    ra   rW  ForRefExample.func  s    rd   c                     g r[   re   r   s    ra   r  ForRefExample.nested  s     	rd   re   N)r_   r  )	rf   rg   rh   ri   r  decrW  r  rj   re   rd   ra   r  r    s<    ^^  ^^^^  rd   r  c                       \ rS rSrS rS r\" S5      S 5       rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)GetTypeHintTestsi  c                 `   U R                  [        5         [        S5        S S S 5        U R                  [        5         [        S5        S S S 5        U R                  [        5         [        S 5        S S S 5        g ! , (       d  f       Na= f! , (       d  f       NI= f! , (       d  f       g = f)Nr   r  )r   r   r1  r   s    ra   (test_get_type_hints_from_various_objects9GetTypeHintTests.test_get_type_hints_from_various_objects  sj    y)H *y)J *y)I *)	 *)))))s"   A=B(B=
B
B
B-c                    S[         [        [        4   [        [        [        [        -  S.nU R	                  [        [        5      U5        U R	                  [        [        5      0 5        U R	                  [        [        5      0 5        g )Nr   )rm   r`   r   r   r)  )	r   r   r  r  r   r1  r  r  r  )r_   ann_module_type_hintss     ra   test_get_type_hints_modules,GetTypeHintTests.test_get_type_hints_modules  sa    $%E#s(O#CVY\aVa bZ*?@[)2.[)2.rd   z	known bugc                     [         [        R                     [         [        R                     S.nU R	                  [        [        5      U5        g )N)	default_a	default_b)r   rU   r  r  r   r1  )r_   	mgc_hintss     ra   &test_get_type_hints_modules_forwardref7GetTypeHintTests.test_get_type_hints_modules_forwardref  s@    
 #++=+?+?"@"*+=+?+?"@B	/0)<rd   c                    U R                  [        [        R                  5      S[        [        R                     05        U R                  [        [        R                  5      [        5        U R                  [        [        R                  5      S[        S.5        U R                  [        [        R                  5      [        [        [        [        R                     S.5        U R                  [        [        R                  5      S[        05        U R                  [        [        R                  5      S[        [        R                     05        U R                  [        [        R                  5      [        [        S.5        U R                  [        [        R                   5      S[        05        U R                  [        ["        5      ["        [        S 5      S.5        U R                  [        [$        5      [&        [(        R*                  [(        R,                  S	.5        U R                  [        [&        R.                  5      [        [        S.5        U R                  [        [(        R,                  5      [(        R,                  R*                  [(        R,                  R*                  [(        R*                  S
.5        g )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   r1  r  r}  r   r   j_classr|  r  r   r  r  r  r   h_classr	  rX  r  r  r  rU   r  r  r
  r   s    ra   test_get_type_hints_classes,GetTypeHintTests.test_get_type_hints_classes  s   Z\\*x
56	8c*"4"45t<Z\\*Cd,CDZ\\*"8JLL3IJ	LZ\\*S#J7Z//0x
56	8Z\\*#C,@AZ^^,sCj9^,$2tDzJ	L01(-:L:N:N$6$8$8:	; 	U]]+"-	//112);)=)=)?)?);)=)=)?)?(:(<(<>	?rd   c                 Z     " S S5      nU R                  [        U5      S[        05        g )Nc                   $    \ rS rSr% Sr\\S'   Srg)ZGetTypeHintTests.test_get_type_hints_classes_no_implicit_optional.<locals>.WithNoneDefaulti  Nfieldre   )rf   rg   rh   ri   r  r   r  rj   re   rd   ra   WithNoneDefaultr    s    E3rd   r  r  )r   r1  r   )r_   r  s     ra   0test_get_type_hints_classes_no_implicit_optionalAGetTypeHintTests.test_get_type_hints_classes_no_implicit_optional  s'    	 	 	_-~>rd   c                    [          " S S5      5       nU R                  UR                  5        U R                  UR                  R                  R                  5        U R                  [        [        R                  R                  5      0 5         " S S[        [           5      n[          " S SU5      5       nU R                  [        UR                  5      S[        05        g )Nc                   (    \ rS rSr " S S5      rSrg)>GetTypeHintTests.test_respect_no_type_check.<locals>.NoTpChecki  c                       \ rS rSrSS jrSrg)BGetTypeHintTests.test_respect_no_type_check.<locals>.NoTpCheck.Inni  c                     g r[   re   r   s     ra   r   KGetTypeHintTests.test_respect_no_type_check.<locals>.NoTpCheck.Inn.__init__  r  rd   re   N)r   z
not a typer   re   rd   ra   Innr$    s    8rd   r'  re   N)rf   rg   rh   ri   r'  rj   re   rd   ra   	NoTpCheckr"    s    9 9rd   r(  c                   "    \ rS rSrS\4S jrSrg):GetTypeHintTests.test_respect_no_type_check.<locals>.ABasei  r   c                     g r[   re   r   s    ra   r>  ?GetTypeHintTests.test_respect_no_type_check.<locals>.ABase.meth  s    crd   re   Nr{  re   rd   ra   ABaser*    s
    !!rd   r-  c                       \ rS rSrSrg)8GetTypeHintTests.test_respect_no_type_check.<locals>.Deri  re   Nr}   re   rd   ra   Derr/    s    rd   r0  r   )r4   r   r  r'  r   r   r1  r  NTCr>  r#   r   r   )r_   r(  r-  r0  s       ra   test_respect_no_type_check+GetTypeHintTests.test_respect_no_type_check  s    		9 	9 
	9 		334	..@@A[__112B7	"GAJ 	"	% 
UZZ3*5rd   c                    U R                  [        [        5      0 5        U R                  [        [        5      0 5        U R                  [        [        5      0 5        U R                  [        [
        5      0 5        U R                  [        [        R                  5      0 5        U R                  [        [        5       R                  5      0 5        U R                  [        [        R                  5      0 5        g r[   )
r   r1  r   r   rC  rO  r  r  r  joinr   s    ra    test_get_type_hints_for_builtins1GetTypeHintTests.test_get_type_hints_for_builtins  s    S2&TB'S2&S2&V^^,b1VX--.3SXX+rd   c                     S nSUR                   S'   U R                  [        U5      S[        05        SS jnU R                  [        U5      S[	        S 5      05        g )Nc                     g r[   re   r  s     ra   testf6GetTypeHintTests.test_previous_behavior.<locals>.testf  rJ  rd   r   r   c                     g r[   re   r   s    ra   testg6GetTypeHintTests.test_previous_behavior.<locals>.testg  rm  rd   )r   N)r  r   r1  r   r   )r_   r:  r=  s      ra   test_previous_behavior'GetTypeHintTests.test_previous_behavior  sM    %*c"Uc3Z0Uc4:%67rd   c                      " S S5      n " S S5      nU" 5       nSS0Ul         U R                  [        U[        5       5      SU05        g )Nc                       \ rS rSrSrg)KGetTypeHintTests.test_get_type_hints_for_object_with_annotations.<locals>.Ai  re   Nr}   re   rd   ra   r  rC        rd   r  c                       \ rS rSrSrg)KGetTypeHintTests.test_get_type_hints_for_object_with_annotations.<locals>.Bi  re   Nr}   re   rd   ra   r  rF    rD  rd   r  r   )r  r   r1  ry  )r_   r  r  r   s       ra   /test_get_type_hints_for_object_with_annotations@GetTypeHintTests.test_get_type_hints_for_object_with_annotations
  s<    C #JQ)C84rd   c           	      L   U R                  [        [        R                  [        R                  5      S[
        R                  [        R                     05        U R                  [        [        [        5       5      [        [        [        [              [        S.5        U R                  [        [        [        5       5      [        [           [        [        [        [        [              S.5        U R                  [        [        5      S[        [        [              05        g )Nvar)r   r   r   )r  r   r   r   r  )r   r1  r  CVrw
  r\   r$   r  rx  r   r   r  r  r   r   r   s    ra   test_get_type_hints_ClassVar-GetTypeHintTests.test_get_type_hints_ClassVar  s    [^^[-A-AB!@A	CQ	*"(1+)>SI	KT79-'~Cc'46	7 	Q%$q'):!;<rd   c                     S[         0nU R                  [        [         R                  5      U5        U R                  [        [         R                  5      U5        g )Nr_   )r  r   r1  rW  r  )r_   expectss     ra   ,test_get_type_hints_wrapped_decoratored_func=GetTypeHintTests.test_get_type_hints_wrapped_decoratored_func  sB    =)]//0':]112G<rd   c           	      &   S[         S   4S jn[        [        S4   nU R                  [	        U[        5       [        5       5      S[         [           05        U R                  [	        U[        5       [        5       SS9S[         [        [        S4      05        S[        [        S5         4S jn[        [        S4   nU R                  [	        U[        5       [        5       5      S[        [           05        U R                  [	        U[        5       [        5       SS9S[        [        [        S4      05        [        [        [        S4   S	4   nSU4S
 jnU R                  [	        U[        5       [        5       5      S   [        [        S	4   5        U R                  [	        U[        5       [        5       SS9S   U5        [        [        [        S4   S	4   nSU4S jnU R                  [	        U[        5       [        5       5      S   [        [        S	4   5        U R                  [	        U[        5       [        5       SS9S   U5        S[        R                  S	[        [         [           S4   4   S[        R                  [        [        [        S4   4   4S jnU R                  [	        U[        5       [        5       5      [        R                  S	[         [           4   [        R                  [        [        4   S.5        [        R                  S	[         [           4   nSU4S jnU R                  [	        U[        5       [        5       SS9S   U5        [        R                  [        [         -  S4   nSU4S jn	U R                  [	        U	[        5       [        5       5      S[        [         -  05        U R                  [	        U	[        5       [        5       SS9S[        R                  [        [         -  S4   05        g )Nr   r  c                     g r[   re   r   s    ra   r]  >GetTypeHintTests.test_get_type_hints_annotated.<locals>.foobar!  s    #rd   rm   r(  Tinclude_extrasc                     g r[   re   r   s    ra   r]  rT  ,  r  rd   )rm   r   .c                     g r[   re   r   s    ra   rh  >GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo8  r  rd   c                     g r[   re   r   s    ra   rh  rZ  @  r  rd   r  r   mutablec                     g r[   re   r  s     ra   rk  ?GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo2G  s    DGrd   r  c                     g r[   re   r   s    ra   barfoo3?GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo3O  r{  rd   c                     g r[   re   r   s    ra   barfoo4?GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo4U  r{  rd   )r   rB   r   r   r+   rx  ry  r  rC   r   r   ri  r\   r"   r   r   r  )
r_   r]  r  BArh  rk  BA2r`  BA3rc  s
             ra   test_get_type_hints_annotated.GetTypeHintTests.test_get_type_hints_annotated   sN   %d3i%c7l#679fh7$s)	
 	679fhtL$yg./0	

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

 9QY',-b	68DSI5QRTWQW=Y679fhtLSQ	

 9QY',-b	68DSI5QRTWQW=Y679fhtLSQ	

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

 ooc47l+ s 7GIvxMcR	
 sU{G34 s 7GIvx8#+	
 	7GIvxM&""3;#789	
rd   c           	         S[         [        [        [        S4      -  4S jnU R	                  [        U5      S[         [        [           -  05        U R	                  [        USS9S[         [        [        [        S4      -  05        g )Nr   metac                     g r[   re   r   s    ra   
with_unionKGetTypeHintTests.test_get_type_hints_annotated_in_union.<locals>.with_union`  s    srd   TrV  )r   r  rB   r  r   r+   )r_   rm  s     ra   &test_get_type_hints_annotated_in_union7GetTypeHintTests.test_get_type_hints_annotated_in_union_  sr    B#YsF{%; <<B
3c3c?5KL:d;#YsF{3445	
rd   c           	      
  ^ [         [        S4   m " U4S jS[        [           5      nU R                  [	        UR
                  [        5       [        5       5      U[           U[           S.5        U R                  [	        UR
                  [        5       [        5       SS9TU[              U[           S.5        U R                  [	        UR                  [        5       [        5       5      U[           U[           S.5        g )NConstc                   :   > \ rS rSrS	S jrS Y S   SS4S jrSrg)
BGetTypeHintTests.test_get_type_hints_annotated_refs.<locals>.MySetil  r	  r%  MySet[T]c                     g r[   re   r  s     ra   __ior__JGetTypeHintTests.test_get_type_hints_annotated_refs.<locals>.MySet.__ior__n      rd   c                     g r[   re   r  s     ra   __iand__KGetTypeHintTests.test_get_type_hints_annotated_refs.<locals>.MySet.__iand__q  ry  rd   re   N)r	  zConst[MySet[T]]r%  ru  )rf   rg   rh   ri   rw  r{  rj   )rr  s   ra   MySetrt  l  s     eJ&7 J rd   r}  )r	  r%  TrV  )	rB   r   r#   r   r+   r{  rx  ry  rw  )r_   r}  rr  s     @ra   "test_get_type_hints_annotated_refs3GetTypeHintTests.test_get_type_hints_annotated_refsh  s    !W*%	GAJ 	 	5>>79fh?Ah%(3	

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

 	5==')VX>Ah%(3	
rd   c                     SS[         [        S4   4S jjnU R                  [        U5      S[        05        U R                  [        USS9S[         [        S4   05        g )Nr   r  c                     g r[   re   r   s    ra   annotated_with_none_defaulteGetTypeHintTests.test_get_type_hints_annotated_with_none_default.<locals>.annotated_with_none_default  s    3rd   TrV  r[   )rB   r   r   r+   )r_   r  s     ra   /test_get_type_hints_annotated_with_none_default@GetTypeHintTests.test_get_type_hints_annotated_with_none_default  s]    N9S&[+AN67#J	
 	6tL)CK()	
rd   c                 Z     " S S5      nU R                  [        U5      S[        05        g )Nc                   $    \ rS rSr% \rS\S'   Srg)IGetTypeHintTests.test_get_type_hints_classes_str_annotations.<locals>.Fooi  r   r   re   N)rf   rg   rh   ri   r  r   r  rj   re   rd   ra   r   r    s    AFrd   r   r   )r   r+   r  rh  s     ra   +test_get_type_hints_classes_str_annotations<GetTypeHintTests.test_get_type_hints_classes_str_annotations  s'    	 	 	,sCj9rd   c                      " S S5      nSUl         U R                  S[        R                  5        U R	                  [        U5      0 5        g )Nc                       \ rS rSrSrg)BGetTypeHintTests.test_get_type_hints_bad_module.<locals>.BadModulei  re   Nr}   re   rd   ra   	BadModuler    rD  rd   r  bad)rg   rz	  sysmodulesr   r+   )r_   r  s     ra   test_get_type_hints_bad_module/GetTypeHintTests.test_get_type_hints_bad_module  s=    	 	$	,	2B7rd   c                      " S S5      n " S SU5      nS=Ul         Ul         U R                  S[        R                  5        U R	                  [        U5      [        [        S.5        g )Nc                        \ rS rSr% \\S'   Srg)JGetTypeHintTests.test_get_type_hints_annotated_bad_module.<locals>.BadBasei  rX  re   N)rf   rg   rh   ri   ri  r  rj   re   rd   ra   BadBaser    s    Jrd   r  c                        \ rS rSr% \\S'   Srg)JGetTypeHintTests.test_get_type_hints_annotated_bad_module.<locals>.BadTypei  r_  re   Nrt  re   rd   ra   BadTyper    s    Ird   r  r  r  )rg   rz	  r  r  r   r+   ri  r  )r_   r  r  s      ra   (test_get_type_hints_annotated_bad_module9GetTypeHintTests.test_get_type_hints_annotated_bad_module  sV    	 		g 	277W/,0%2MNrd   c                     [        [        5      nU R                  US[        [           05        [        [        R
                  5      nU R                  US[        05        g )Nr0  rR  )r+   r  r   r%   r  MyClass)r_   r(  s     ra   test_forward_ref_and_final+GetTypeHintTests.test_forward_ref_and_final  sJ    {+s 45{223% 01rd   c                     U R                  [        S5         [        [        5        S S S 5        g ! , (       d  f       g = f)Nz4typing.ClassVar\[int\] is not valid as type argument)r  r   r+   r  r   s    ra   test_top_level_class_var)GetTypeHintTests.test_top_level_class_var  s0    ##C
 ;'	
 
 
   0
>c           	         U R                  [        [        5      [        [        S.5        U R                  [        [        SS9[        [
        [           S.5        U R                  [        [        5      [        [        S.5        U R                  [        [        SS9[        [        [           S4   [
        [        [        S4      S.5        U R                  [        [        5      [        [        S.5        U R                  [        [        SS9[        [        [           SS4   [
        [        [        S4      S.5        U R                  [        [        5      [        [        S.5        U R                  [        [        SS9[        [        [           SS4   [
        [        [        S4      S.5        U R                  [        [        R                  5      S[        05        U R                  [        [        R                  SS9S[        [        [           SSS	4   05        U R                  [        [        5      [        [        S.5        U R                  [        [        SS9[        [           [
        [           S.5        U R                  [        [        5      [        [        S.5        U R                  [        [        SS9[        [        [           SS4   [
        [        [        S4      S.5        g )
N)r  rV  TrV  r]  r  r  rL  r   r  )r   r+   r  r  r   r9   r  rB   r:   r  r  rV   VeryAnnotatedr  r  r   s    ra   test_get_type_hints_typeddict.GetTypeHintTests.test_get_type_hints_typeddict  sh   
3sC5PQ
4H$K
 	
 	73PS9TUtLx}h67	#t) 45O
 	
 	(<=VY?Z[(<TRx}hGH	#t) 45U
 	
 	(:;sTW=XY(:4Px}hGH	#t) 45S
 	
 	(:(H(HICQT:V(:(H(HY]^8C=#sC78a
 	 	8CQT:UVMc]K,<P
 	 	(ABc[^D_`(ARVWx}hGH	#t) 45Z
 	rd   c                    [        S5      nS[        R                  R                  [        /[        4   4S jnS[        R                  R                  S[        4   4S jnS[        R                  R                  U[        4   4S jnU R                  [        U5      S[        R                  R                  [        /[        4   05        U R                  [        U5      S[        R                  R                  S[        4   05        U R                  [        U5      S[        R                  R                  U[        4   05        g )NrQ  r   c                     g r[   re   r   s    ra   r`   HGetTypeHintTests.test_get_type_hints_collections_abc_callable.<locals>.f  s    rd   .c                     g r[   re   r   s    ra   r  HGetTypeHintTests.test_get_type_hints_collections_abc_callable.<locals>.g  rE  rd   c                     g r[   re   r   s    ra   r  HGetTypeHintTests.test_get_type_hints_collections_abc_callable.<locals>.h  s    Crd   )rG   r  r  r"   r   r   r+   )r_   rQ  r`   r  r  s        ra   ,test_get_type_hints_collections_abc_callable=GetTypeHintTests.test_get_type_hints_collections_abc_callable  s    cN;))3%*5;9))#s(397))!S&17*S+//2J2JC5RU:2V,WX*S+//2J2J3PS82T,UV*S+//2J2J1c62R,STrd   re   N)rf   rg   rh   ri   r  r  r	   r  r  r  r2  r6  r?  rG  rL  rP  rh  ro  r~  r  r  r  r  r  r  r  r  rj   re   rd   ra   r  r    s    / 
+= =?0?6,85==
=
~

6

:8O2('R	Urd   r  c                        \ rS rSrS rS rSrg)GetUtilitiesTestCasei  c                 `   [        S5      n[        S5      n[        S5      n " S S[        U   5      nU R	                  [        U[           5      U5        U R	                  [        XA   5      U5        U R	                  [        [        5      S 5        U R	                  [        [        [           5      [        5        U R	                  [        [        [        [        4   5      [        5        U R	                  [        [        S   5      [        5        U R	                  [        [        [        [              5      [        5        U R	                  [        [        5      [        5        U R	                  [        [        U   5      [        5        U R	                  [        [        [        X4      [           5      [        5        U R	                  [        [        US4   5      [        5        U R	                  [        [        5      [        5        U R	                  [        [        5      [         5        U R	                  [        ["        5      [$        R&                  R"                  5        U R	                  [        [        [           5      [        5        U R	                  [        [        5      S 5        U R	                  [        [        [        -  5      [(        R*                  5        U R	                  [        UR,                  5      U5        U R	                  [        UR.                  5      U5        U R	                  [        [0        [           5      [0        5        U R	                  [        [2        [           5      [2        5        U R	                  [        / UQ7S   5      [4        5        U R	                  [        [4        U   5      [4        5        U R	                  [        / [         / UQ7   Q7S   5      [         5        U R	                  [        [4        [        [4        U         5      [4        5        g )	Nr   r_  rQ  c                       \ rS rSrSrg)/GetUtilitiesTestCase.test_get_origin.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    r  rd   r}  r   +   r  r   )r   r   rG   r#   r   r,   r   r$   r   r  r   r%   r   r   r  rB   ri  r"   r  r  rQ  r  r   r   r:   r9   r   )r_   r   r_  rQ  r}  s        ra   r   $GetUtilitiesTestCase.test_get_origin  s   CL$cN!
!j3(!,j&*jot,j#/:jsCx159j17;jtCy!12E:j)73j,g6jeADk!23!78$?j1g:!67Cj&-j'/j*KOO,D,DEjc+T2j&-j,eoo>j(!,j*A.j#/:jS!12K@j2+V4j,f5j5":!23U;jfRj(9!:;VDrd   c           
      z   [        S5      n " S S[        U   5      nU R                  [        U[           5      [        45        U R                  [        X!   5      U45        U R                  [        [
        R                  [           5      [        45        U R                  [        [
        R                  U   5      U45        U R                  [        [        [           5      [        45        U R                  [        [        U   5      U45        U R                  [        U5      S5        U R                  [        [        5      S5        U R                  [        [        5      S5        U R                  [        [        5      S5        U R                  [        [        5      S5        U R                  [        [        [           5      [        45        U R                  [        [        [        [        4   5      [        [        45        U R                  [        [        S   5      S5        U R                  [        [        [         [              5      [         [           45        U R                  [        ["        [           5      [        [%        S 5      45        U R                  [        [        [        S 4   5      [        [%        S 5      45        U R                  [        [        [        [&        U[        4   4   [           5      [        [&        [        [        4   45        U R                  [        [
        R(                  [        [&        X4   4   ["        [              5      [        [&        ["        [           ["        [           4   45        U R                  [        [*        / U4   [           5      / [        45        U R                  [        [*        S[        4   5      S[        45        U R                  [        [*        [        /[        4   5      [        /[        45        U R                  [        [        [        [*        [&        US4   /[        4   4   5      [        [*        [&        US4   /[        4   45        U R                  [        [&        [        S4   5      [        S45        U R                  [        [&        S   5      S5        U R                  [        [,        USSS	/4   5      USSS	/45        U R                  [        [         5      S5        U R                  [        [&        5      S5        U R                  [        [*        5      S5        U R                  [        [.        [           5      [        45        U R                  [        [.        5      S5        U R                  [        [0        R2                  R*                  [        /[        4   5      [        /[        45        U R                  [        [0        R2                  R*                  S[        4   5      S[        45        U R                  [        [0        R2                  R*                  / [        4   5      / [        45        U R                  [        [0        R2                  R*                  [        /[        4   5      [        [*        [        /[        4   5      5        [5        S
5      nU R                  [        U5      S5        U R                  [        UR6                  5      S5        U R                  [        UR8                  5      S5        U R                  [        [*        U[        4   5      U[        45        U R                  [        [0        R2                  R*                  U[        4   5      U[        45        U R                  [        [*        [:        [        U4   [        4   5      [:        [        U4   [        45        U R                  [        [0        R2                  R*                  [:        [        U4   [        4   5      [:        [        U4   [        45        U R                  [        [:        [        [        U4   5      [        [        U45        U R                  [        [.        [        -  5      [.        [        45        U R                  [        [<        [           5      [        45        U R                  [        [>        [           5      [        45        U R                  [        [@        5      S5        U R                  [        [B        [           5      [        45        U R                  [        [D        [F           5      [F        45        [I        S5      nU R                  [        U5      S5        U R                  [        / UQ7S   5      U45        U R                  [        [J        U   5      U45        U R                  [        [L        / UQ7   5      / UQ75        U R                  [        [L        [J        U      5      [J        U   45        U R                  [        / [L        / UQ7   Q7S   5      / UQ75        U R                  [        [J        [L        [J        U         5      [L        [J        U      45        g )Nr   c                       \ rS rSrSrg)-GetUtilitiesTestCase.test_get_args.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    r  rd   r}  re   r  .oner   threerQ  r_  r   )'r   r#   r   r-   r   r\   r
  r  r   rD   rE   r$   r   r  r   r%   r   r   r   r   r    r"   rB   r  r  r  rG   r   r   rH   r:   r9   rF   rK   rL   rq   r   r   ri  )r_   r   r}  rQ  r_  s        ra   test_get_args"GetUtilitiesTestCase.test_get_args  s   CL!
!!C&)C62!$!.&"4"4S"9:SFC&"4"4Q"781$?."56?."34qd;!b)#+#+$,-0"5(3-03&9%S/2S#J?'&/2H=%S	"23d3i\B(3-03T
2CD%T	"23c4:5FG%U1c6](:";C"@AuS#X/	1&++c5;.>"?"NOuXc]HSM%ABC	E(2q5/#"67"cC(38"45SzB(C5#:"673%F%XuQV}os6J-K(K"LMxq#v(<=>	@%S/2S#J?%),b1)Aua',B"CDq%QRU\T]F^_$,%"-(+R0$s),sf5$,+//":":C5#:"FG3%QTV+//":":38"DESzR+//":":2s7"CDr3iP+//":":C5#:"FG!(C5#:"67	9cN!b)!&&)2.!((+R0(1c6"23aX>+//":":1c6"BCaXN(;sAv+>+C"DE%c1f-s3	5+//":":;sAv;NPS;S"TU%c1f-s3	5+c3k":;c3]K$*-c{;(3-03&9+c"23cV<),b1)C.1C6:&-05(;$"r*&B&),re4&*-u5%*-vv6%r
"34vbzmD.E#2#J."34ff=&vbz):";<uVBZ?P>RSrd   re   N)rf   rg   rh   ri   r   r  rj   re   rd   ra   r  r    s    E>BTrd   r  c                   R   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7r9g8)9CollectionsAbcTestsiR  c                     U R                  S[        R                  5        U R                  / [        R                  5        g r   )r   r\   Hashabler   r   s    ra   test_hashable!CollectionsAbcTests.test_hashableT  *    b&//2  V__5rd   c                    U R                  / [        R                  5        U R                  / [        R                  5        U R                  / [        R                  5        U R                  S[        R                  5        U R	                  [
        [        R                  5        U R	                  [
        [        R                  5        g r   )r   r\   r  r   r;  r  r   s    ra   test_iterable!CollectionsAbcTests.test_iterableX  s|    b&//2 	b&//2b&//2  V__5dFOO4dFOO4rd   c                     [        / 5      nU R                  U[        R                  5        U R	                  S[        R                  5        g r   )r  r   r\   r  r   )r_   its     ra   test_iterator!CollectionsAbcTests.test_iteratorc  s3    "Xb&//2  V__5rd   c                     S[         R                  [           4S jnU" 5       nU R                  U[         R                  5        U R	                  U[         R                  5        UR                  S 5        g )Nr%  c                  4   #    [        S5      I S h  vN $  N7fr   )r  re   rd   ra   rX  /CollectionsAbcTests.test_awaitable.<locals>.fooi  s     )"----s   )r\   	Awaitabler   r   r   sendr_   rX  r  s      ra   test_awaitable"CollectionsAbcTests.test_awaitableh  sW    	.6++C0 	.Ea!1!12  f&6&67	trd   c                 |   S nU" 5       nU R                  U[        R                  5        U R                  [        5         [        U[        R                  [           5        S S S 5        U R                  U[        R                  5         UR                  S 5        g ! , (       d  f       NA= f! [         a     g f = f)Nc                     #    g 7fr[   re   re   rd   ra   rX  /CollectionsAbcTests.test_coroutine.<locals>.fooq  s     r  )
r   r\   	Coroutiner   r   r   r   r   r  StopIterationr  s      ra   test_coroutine"CollectionsAbcTests.test_coroutinep  s    	Ea!1!12y)q&**3/0 *  f&6&67	FF4L	 *)
  		s    "BB. 
B+.
B;:B;c                     [        S5      n[        U5      nU R                  U[        R                  5        U R                  U[        R                  5        U R                  S[        R                  5        g Nr(  r   )rq   r  r   r\   AsyncIterabler   r_   base_itr  s      ra   test_async_iterable'CollectionsAbcTests.test_async_iterable}  sW    )!'*b&"6"67b&"6"67  V%9%9:rd   c                     [        S5      n[        U5      nU R                  U[        R                  5        U R                  S[        R                  5        g r  )rq   r  r   r\   r
  r   r  s      ra   test_async_iterator'CollectionsAbcTests.test_async_iterator  sA    )!'*b&"6"67  V%9%9:rd   c                     U R                  / [        R                  5        U R                  S[        R                  5        g r   )r   r\   r.  r   r   s    ra   
test_sizedCollectionsAbcTests.test_sized  s*    b&,,/  V\\2rd   c                     U R                  / [        R                  5        U R                  S[        R                  5        g r   )r   r\   r  r   r   s    ra   test_container"CollectionsAbcTests.test_container  s.    b&"2"23  V%5%56rd   c                 ,   U R                  [        5       [        R                  5        U R                  [	        5       [        R                  5        U R                  [        [        R                  5        U R                  S[        R                  5        g r   )r   ri  r\   r  r|	  r;  r|  r   r   s    ra   test_collection#CollectionsAbcTests.test_collection  s^    egv'8'89ik6+<+<=dF$5$56  V%6%67rd   c                     U R                  [        5       [        R                  5        U R	                  S[        R                  5        g r   )r   rB  r\   r  r   r   s    ra   test_abstractset$CollectionsAbcTests.test_abstractset  s0    ceV%7%78  V%7%78rd   c                     U R                  [        5       [        R                  5        U R	                  [        5       [        R                  5        g r[   )r   rB  r\   
MutableSetr   r|	  r   s    ra   test_mutableset#CollectionsAbcTests.test_mutableset  s2    ceV%6%67  f.?.?@rd   c                     U R                  0 [        R                  5        U R                  S[        R                  5        g r   )r   r\   r	  r   r   s    ra   test_mapping CollectionsAbcTests.test_mapping  s*    b&..1  V^^4rd   c                     U R                  0 [        R                  5        U R                  S[        R                  5        g r   )r   r\   r!   r   r   s    ra   test_mutablemapping'CollectionsAbcTests.test_mutablemapping  s.    b&"7"78  V%:%:;rd   c                     U R                  / [        R                  5        U R                  S[        R                  5        g r   )r   r\   r  r   r   s    ra   test_sequence!CollectionsAbcTests.test_sequence  r  rd   c                     U R                  / [        R                  5        U R                  S[        R                  5        g r  )r   r\   MutableSequencer   r   s    ra   test_mutablesequence(CollectionsAbcTests.test_mutablesequence  s.    b&"8"89  V%;%;<rd   c                    U R                  [        5         U R                  S[        R                  5        S S S 5        U R                  [        5         U R                  [        S5      [        R                  5        S S S 5        U R                  [        5          " S S[        R                  5      nS S S 5        U R                  [        5          " S S[        R                  [        R                  5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       g = f)Nrd   c                       \ rS rSrSrg)0CollectionsAbcTests.test_bytestring.<locals>.Fooi  re   Nr}   re   rd   ra   r   r    r`  rd   r   c                       \ rS rSrSrg)0CollectionsAbcTests.test_bytestring.<locals>.Bari  re   Nr}   re   rd   ra   r   r	    s    Crd   r   )assertWarnsr#  r   r\   
ByteString	bytearrayr  r  s      ra   test_bytestring#CollectionsAbcTests.test_bytestring  s    01!!#v'8'89 201!!)C.&2C2CD 201-f''- 201?f'')9)9? 21 21111111s/   !D*DD&)D7
D
D#&
D47
Ec                 L    U R                  [        [        R                  5        g r[   )r;  r  r\   r   r   s    ra   	test_listCollectionsAbcTests.test_list      dFKK0rd   c                     U R                  [        R                  [        R                  5         " S S[        R                  [
           5      nU R                  U" 5       [        R                  5        g )Nc                       \ rS rSrSrg)/CollectionsAbcTests.test_deque.<locals>.MyDequei  re   Nr}   re   rd   ra   MyDequer    r`  rd   r  )r;  r  dequer\   r  r   r   )r_   r  s     ra   
test_dequeCollectionsAbcTests.test_deque  sE    k//>-fll3'-gi):):;rd   c                 `    U R                  [        R                  [        R                  5        g r[   )r;  r  Counterr\   r   s    ra   test_counter CollectionsAbcTests.test_counter  s    k116>>Brd   c                     U R                  [        [        R                  5        U R	                  [
        [        R                  5        g r[   )r;  rB  r\   r  r_  r|	  r   s    ra   test_setCollectionsAbcTests.test_set  s*    c6::.  FJJ7rd   c                     U R                  [        [        R                  5        U R	                  [
        [        R                  5        g r[   )r;  r|	  r\   rK  r_  rB  r   s    ra   test_frozenset"CollectionsAbcTests.test_frozenset  s.    i)9)9:  f&6&67rd   c                 L    U R                  [        [        R                  5        g r[   )r;  r|  r\   r    r   s    ra   r  CollectionsAbcTests.test_dict  r  rd   c                    [        S5      n[        S5      nU R                  [        X4   [        [        4   [        [        [        4   5        U R                  [        U[        4   [           [        [        [        4   5        U R                  [        [        U4   [           [        [        [        4   5        U R                  [        U[
        U   4   [        [        4   [        [        [
        [           4   5        U R                  [        U[
        [           4   [           [        [        [
        [           4   5        U R                  [        U[        U   4   [        [        4   [        [        [        [           4   5        U R                  [        U[        [           4   [           [        [        [        [           4   5        g )Nr  r  )r   r   r    r  r   r   r  )r_   r  r  s      ra   test_dict_subscribe'CollectionsAbcTests.test_dict_subscribe  sI   CLCLadCH-tCH~>afc*DcN;c1fc*DcN;aaj)#s(3T#tCy.5IJacl+C0$sDI~2FGaaj)#s(3T#tCy.5IJacl+C0$sDI~2FGrd   c                    U R                  [        5         [        R                  " 5         S S S 5        U R                  [        5         [        R                  [           " 5         S S S 5        U R                  [        5         [        R                  [
           " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       NZ= f! , (       d  f       g = fr[   )r   r   r\   r   r   r   r   s    ra   test_no_list_instantiation.CollectionsAbcTests.test_no_list_instantiation  s{    y)KKM *y)KKN *y)KK *)	 *)))))#   B)	B:C)
B7:
C
Cc                     " S S[         R                  [           5      nU" 5       nU R                  X!5        U R                  U[         R                  5        U R                  U[        5        U R                  [        U5        g )Nc                       \ rS rSrSrg)6CollectionsAbcTests.test_list_subclass.<locals>.MyListi  re   Nr}   re   rd   ra   MyListr/    rD  rd   r0  )r\   r   r   r   r  r;  r  r_  )r_   r0  rL  s      ra   test_list_subclass&CollectionsAbcTests.test_list_subclass  sb    	V[[% 	 Ha(a1fd+  v.rd   c                    U R                  [        5         [        R                  " 5         S S S 5        U R                  [        5         [        R                  [        [
        4   " 5         S S S 5        U R                  [        5         [        R                  [        [        4   " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr[   )r   r   r\   r    r   r   r  r   r   s    ra   test_no_dict_instantiation.CollectionsAbcTests.test_no_dict_instantiation  s    y)KKM *y)KKB! *y)KKS!# *)	 *)))))#   B5	#C	#C5
C
C
C%c                     " S S[         R                  [        [        4   5      nU" 5       nU R	                  X!5        U R	                  U[         R
                  5        U R                  U[        5        U R                  [        U5        g )Nc                       \ rS rSrSrg)6CollectionsAbcTests.test_dict_subclass.<locals>.MyDicti  re   Nr}   re   rd   ra   r  r9    rD  rd   r  )	r\   r    r  r   r   r!   r;  r|  r_  )r_   r  r  s      ra   test_dict_subclass&CollectionsAbcTests.test_dict_subclass  sh    	V[[c* 	 Ha(a!6!67fd+  v.rd   c                    U R                  [        [        R                  " 5       5      [        R
                  5        U R                  [        [        R                  [        [        4   " 5       5      [        R
                  5        U R                  [        [        R                  [        [        4   " 5       5      [        R
                  5        g r[   )
r   r   r\   r  r  r   r   r   r  r   r   s    ra   test_defaultdict_instantiation2CollectionsAbcTests.test_defaultdict_instantiation  z    d6--/0+2I2IJd6--b"f578+:Q:QRd6--c3h79:K<S<STrd   c                      " S S[         R                  [        [        4   5      nU" 5       nU R	                  X!5        U R                  U[        R                  5        U R                  [        R                  U5        g )Nc                       \ rS rSrSrg)@CollectionsAbcTests.test_defaultdict_subclass.<locals>.MyDefDicti
  re   Nr}   re   rd   ra   	MyDefDictrB  
  rD  rd   rC  )	r\   r  r  r   r   r;  r  r   r_  )r_   rC  dds      ra   test_defaultdict_subclass-CollectionsAbcTests.test_defaultdict_subclass  `    	**384 	 [b,i)@)@A  !8!8)Drd   c                    U R                  [        [        R                  " 5       5      [        R                  5        U R                  [        [        R                  [
        [        4   " 5       5      [        R                  5        U R                  [        [        R                  [        [        4   " 5       5      [        R                  5        g r[   )	r   r   r\   OrderedDictr  r   r   r  r   r   s    ra   test_ordereddict_instantiation2CollectionsAbcTests.test_ordereddict_instantiation  r?  rd   c                      " S S[         R                  [        [        4   5      nU" 5       nU R	                  X!5        U R                  U[        R                  5        U R                  [        R                  U5        g )Nc                       \ rS rSrSrg)@CollectionsAbcTests.test_ordereddict_subclass.<locals>.MyOrdDicti  re   Nr}   re   rd   ra   	MyOrdDictrN    rD  rd   rO  )r\   rI  r  r   r   r;  r  r_  )r_   rO  ods      ra   test_ordereddict_subclass-CollectionsAbcTests.test_ordereddict_subclass  rG  rd   c                 F   U R                  [        [        R                  " 5       5      [        R                  5        U R                  [        [        R                  [
        [        4   " 5       5      [        R                  5        U R                  [        [        R                  [        [        4   " 5       5      [        R                  5         " S S[        R                  [
        [        4   5      nU R                  [        U[        [        4   " 5       5      U5        g )Nc                       \ rS rSrSrg);CollectionsAbcTests.test_chainmap_instantiation.<locals>.CMi'  re   Nr}   re   rd   ra   CMrU  '  r  rd   rV  )	r   r   r\   r  r  r   r   r  r   )r_   rV  s     ra   test_chainmap_instantiation/CollectionsAbcTests.test_chainmap_instantiation#  s    d6??,-{/C/CDd6??2r6245{7K7KLd6??384679M9MN.R(.d2c3h<>*B/rd   c                      " S S[         R                  [        [        4   5      nU" 5       nU R	                  X!5        U R                  U[        R                  5        U R                  [        R                  U5        g )Nc                       \ rS rSrSrg)>CollectionsAbcTests.test_chainmap_subclass.<locals>.MyChainMapi,  re   Nr}   re   rd   ra   
MyChainMapr[  ,  rD  rd   r\  )r\   r  r  r   r   r;  r  r_  )r_   r\  rT  s      ra   test_chainmap_subclass*CollectionsAbcTests.test_chainmap_subclass*  s^    	c2 	 \b-j+*>*>?  !5!5zBrd   c                    U R                  [        [        R                  " 5       5      [        R
                  5        U R                  [        [        R                  [           " 5       5      [        R
                  5        U R                  [        [        R                  [           " 5       5      [        R
                  5         " S S[        R                  [           5      nU R                  [        U[           " 5       5      U5        g )Nc                       \ rS rSrSrg)7CollectionsAbcTests.test_deque_instantiation.<locals>.Di9  re   Nr}   re   rd   ra   r  ra  9  r  rd   r  )r   r   r\   r  r  r  r   r   r_   r  s     ra   test_deque_instantiation,CollectionsAbcTests.test_deque_instantiation5  s    d6<<>*K,=,=>d6<<?,-{/@/@Ad6<<,./1B1BC%Q%d1S68na(rd   c                    U R                  [        [        R                  " 5       5      [        R                  5        U R                  [        [        R                  [
           " 5       5      [        R                  5        U R                  [        [        R                  [           " 5       5      [        R                  5         " S S[        R                  [
           5      nU R                  [        U[           " 5       5      U5        g )Nc                       \ rS rSrSrg)9CollectionsAbcTests.test_counter_instantiation.<locals>.Ci@  re   Nr}   re   rd   ra   r}  rg  @  r  rd   r}  )r   r   r\   r  r  r   r   r
  s     ra   test_counter_instantiation.CollectionsAbcTests.test_counter_instantiation<  s    d6>>+,k.A.ABd6>>!,./1D1DEd6>>#.01;3F3FG'q!'d1S68na(rd   c                      " S S[         R                  [           5      nU" 5       nU R                  X!5        U R                  U[         R                  5        U R                  U[        R                  5        g )Nc                       \ rS rSrSrg)JCollectionsAbcTests.test_counter_subclass_instantiation.<locals>.MyCounteriE  re   Nr}   re   rd   ra   	MyCounterrl  E  rD  rd   rm  )r\   r  r   r   r  )r_   rm  r  s      ra   #test_counter_subclass_instantiation7CollectionsAbcTests.test_counter_subclass_instantiationC  sX    	s+ 	 Ka+a0a!4!45rd   c                    U R                  [        5         [        R                  " 5         S S S 5        U R                  [        5         [        R                  [           " 5         S S S 5        U R                  [        5         [        R                  [
           " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       NZ= f! , (       d  f       g = fr[   )r   r   r\   r  r   r   r   s    ra   test_no_set_instantiation-CollectionsAbcTests.test_no_set_instantiationM  sy    y)JJL *y)JJqMO *y)JJsO *)	 *)))))r,  c                 t     " S S[         R                  [           5      nU" 5       nU R                  X!5        g )Nc                       \ rS rSrSrg)BCollectionsAbcTests.test_set_subclass_instantiation.<locals>.MySetiW  re   Nr}   re   rd   ra   r}  ru  W  rD  rd   r}  )r\   r  r   r   )r_   r}  r  s      ra   test_set_subclass_instantiation3CollectionsAbcTests.test_set_subclass_instantiationU  s-    	FJJsO 	 Ga'rd   c                    U R                  [        5         [        R                  " 5         S S S 5        U R                  [        5         [        R                  [           " 5         S S S 5        U R                  [        5         [        R                  [
           " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       NZ= f! , (       d  f       g = fr[   )r   r   r\   rK  r   r   r   s    ra   test_no_frozenset_instantiation3CollectionsAbcTests.test_no_frozenset_instantiation]  s    y) *y)Q! *y)S!# *)	 *)))))r,  c                 t     " S S[         R                  [           5      nU" 5       nU R                  X!5        g )Nc                       \ rS rSrSrg)NCollectionsAbcTests.test_frozenset_subclass_instantiation.<locals>.MyFrozenSetig  re   Nr}   re   rd   ra   MyFrozenSetr}  g  rD  rd   r~  )r\   rK  r   r   )r_   r~  r  s      ra   %test_frozenset_subclass_instantiation9CollectionsAbcTests.test_frozenset_subclass_instantiatione  s0    	&**3/ 	 Ma-rd   c                 z   U R                  [        5         [        5         S S S 5        U R                  [        5         [        [           " 5         S S S 5        U R                  [        5         [        [           " 5         S S S 5        g ! , (       d  f       No= f! , (       d  f       NP= f! , (       d  f       g = fr[   )r   r   r   r   r   r   s    ra   test_no_tuple_instantiation/CollectionsAbcTests.test_no_tuple_instantiationm  sl    y)G *y)!HJ *y)#JL *)	 *)))))s"   B
B.B,

B
B),
B:c                 j    S nU" 5       nU R                  [        U5      [        R                  5        g )Nc               3      #    Sv   g 7fr   re   re   rd   ra   rX  /CollectionsAbcTests.test_generator.<locals>.foov  s
     H   )r;  r   r\   	Generatorr  s      ra   test_generator"CollectionsAbcTests.test_generatoru  s(    	Ed1gv'7'78rd   c                 2   [         R                  [           n[         R                  [        S S 4   nU R                  [	        U5      [        [        S 5      [        S 5      45        U R                  [	        U5      [	        U5      5        [         R                  [        [        4   n[         R                  [        [        S 4   nU R                  [	        U5      [        [        [        S 5      45        U R                  [	        U5      [	        U5      5        g r[   )r\   r  r   r   r-   r   r  )r_   g1g2g3g4s        ra   test_generator_default*CollectionsAbcTests.test_generator_default{  s    c"c4o."T$Zd'DE"x|4c5j)c5$./"UDJ'?@"x|4rd   c                    U R                  [        5         [        R                  " 5         S S S 5        U R                  [        5         [        R                  [        [        [        4   " 5         S S S 5        U R                  [        5         [        R                  [
        [
        [
        4   " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       Ne= f! , (       d  f       g = fr[   )r   r   r\   r  r   r   r   s    ra   test_no_generator_instantiation3CollectionsAbcTests.test_no_generator_instantiation  s    y) *y)Q1W%' *y)S#s]+- *)	 *)))))s#   B?	(C(C!?
C
C!
C/c                 j    S nU" 5       nU R                  [        U5      [        R                  5        g )Nc                    #    S7v   g 7fr   re   re   rd   ra   r`   3CollectionsAbcTests.test_async_generator.<locals>.f  s
     X   	)r;  r   r\   AsyncGenerator)r_   r`   r  s      ra   test_async_generator(CollectionsAbcTests.test_async_generator  s(    	Cd1gv'<'<=rd   c                    U R                  [        5         [        R                  " 5         S S S 5        U R                  [        5         [        R                  [        [        4   " 5         S S S 5        U R                  [        5         [        R                  [
        [
        4   " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr[   )r   r   r\   r  r   r   r   s    ra   %test_no_async_generator_instantiation9CollectionsAbcTests.test_no_async_generator_instantiation  s    y)!!# *y)!!!Q$') *y)!!#s(+- *)	 *)))))r6  c                     " S S[         R                  5      nU R                  [        5         U" 5         S S S 5         " S SU5      nU R	                  [        U" 5       5      S5        U R                  [        UR                  5      5        U R                  U" 5       [         R                  5         " S S[         R                  [        [        4   5      nU R	                  [        U" 5       5      S5        U R	                  [        U[        [        4   " 5       5      S5        U R	                  [        U[        [        4   " 5       5      S5        U R                  [        U5        U R                  [        U5        U R!                  U[         R                  5        U R!                  U[         R                  5        U R!                  U[         R                  5        U R                  U[        [        4   " 5       [         R                  5        U R                  U[        [        4   " 5       ["        R$                  R                  5        U R!                  U["        R$                  R                  5        U R!                  U["        R$                  R                  5        U R!                  U["        R$                  R                  5        U R                  [        5         ['        U[        [        4   [         R                  5        S S S 5        U R!                  X!5         " S S	[         R(                  5      nU R                  [*        U5         " S
 S[         R,                  [.        [.        [.        4   5      nS nU R!                  U[         R,                  5        U R!                  U[         R(                  5        U R!                  U["        R$                  R,                  5        U R!                  U["        R$                  R(                  5        U R                  [1        U5      U5        g ! , (       d  f       GN= f! , (       d  f       GN?= f)Nc                       \ rS rSrSrg)1CollectionsAbcTests.test_subclassing.<locals>.MMAi  re   Nr}   re   rd   ra   MMAr    rD  rd   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	1CollectionsAbcTests.test_subclassing.<locals>.MMCi  c                     g r[   re   r  s     ra   r  =CollectionsAbcTests.test_subclassing.<locals>.MMC.__getitem__  r  rd   c                     g r[   re   r  s      ra   r  =CollectionsAbcTests.test_subclassing.<locals>.MMC.__setitem__  rR  rd   c                     g r[   re   r  s     ra   r  =CollectionsAbcTests.test_subclassing.<locals>.MMC.__delitem__  rR  rd   c                     [        S5      $ r  r  r   s    ra   r
  :CollectionsAbcTests.test_subclassing.<locals>.MMC.__iter__  r   rd   c                     grM  re   r   s    ra   r  9CollectionsAbcTests.test_subclassing.<locals>.MMC.__len__  r  rd   re   Nr  re   rd   ra   MMCr    r  rd   r  r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	1CollectionsAbcTests.test_subclassing.<locals>.MMBi  c                     g r[   re   r  s     ra   r  =CollectionsAbcTests.test_subclassing.<locals>.MMB.__getitem__  r  rd   c                     g r[   re   r  s      ra   r  =CollectionsAbcTests.test_subclassing.<locals>.MMB.__setitem__  rR  rd   c                     g r[   re   r  s     ra   r  =CollectionsAbcTests.test_subclassing.<locals>.MMB.__delitem__  rR  rd   c                     [        S5      $ r  r  r   s    ra   r
  :CollectionsAbcTests.test_subclassing.<locals>.MMB.__iter__  r   rd   c                     grM  re   r   s    ra   r  9CollectionsAbcTests.test_subclassing.<locals>.MMB.__len__  r  rd   re   Nr  re   rd   ra   MMBr    r  rd   r  c                       \ rS rSrSrg)/CollectionsAbcTests.test_subclassing.<locals>.Ii  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)/CollectionsAbcTests.test_subclassing.<locals>.Gi  re   Nr}   re   rd   ra   r  r        #rd   r  c               3      #    Sv   g 7frM  re   re   rd   ra   r  /CollectionsAbcTests.test_subclassing.<locals>.g  s	     qr  )r\   r!   r   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  s          ra   test_subclassing$CollectionsAbcTests.test_subclassing  s   	&'' 	 y)E *
	# 
	 	SUQ',-ceV^^4
	&''B/ 
	 	SUQ'Sc]_-q1SR[]+Q/  s+  s+c6>>2c6>>2c6>>2c"b&kmV^^<c"b&km[__-D-DEc;??#:#:;c;??#:#:;c;??#:#:;y)s38}fnn5 *c'%%  q)5  c3/5a!1!12a1a!:!:;a!9!9:  a!,} *)b *)s   P. (Q .
P= 
Qc                 B    " S S[         R                  [        [        4   5      nS nU R                  U[         R                  5        U R                  U[         R                  5        U R                  U[
        R                  R                  5        U R                  U[
        R                  R                  5        U R                  [        U5      U5        U" 5       nU R                  U[         R                  5        U R                  U[         R                  5        U R                  U[
        R                  R                  5        U R                  U[
        R                  R                  5        U R                  [        U5      U5        U R                  X!5        g )Nc                   $    \ rS rSrS rSS jrSrg)?CollectionsAbcTests.test_subclassing_async_generator.<locals>.Gi  c                     g r[   re   r  s     ra   asendECollectionsAbcTests.test_subclassing_async_generator.<locals>.G.asend  rR  rd   Nc                     g r[   re   )r_   r  valr  s       ra   athrowFCollectionsAbcTests.test_subclassing_async_generator.<locals>.G.athrow  rR  rd   re   r  )rf   rg   rh   ri   r  r  rj   re   rd   ra   r  r    s    rd   r  c                    #    S7v   g 7frM  re   re   rd   ra   r  ?CollectionsAbcTests.test_subclassing_async_generator.<locals>.g  s	     Qwr  )r\   r  r   r;  r  r  r  r_  r   r   r   )r_   r  r  rk  s       ra    test_subclassing_async_generator4CollectionsAbcTests.test_subclassing_async_generator  s   	%%c3h/ 	 	a!6!67a!5!56a!?!?@a!>!>?  a!,3h(=(=>h(<(<=h(F(FGh(E(EF  a!,  &rd   c                      " S S[         R                  5      n " S SU5      n " S S5      n " S S5      nU R                  X15        U R                  X25        U R                  XB5        g )	Nc                   $    \ rS rSr\S 5       rSrg)?CollectionsAbcTests.test_subclassing_subclasshook.<locals>.Basei  c                 &    UR                   S:X  a  gg)Nr   TF)rf   r	  s     ra   rw	  PCollectionsAbcTests.test_subclassing_subclasshook.<locals>.Base.__subclasshook__  s    >>U* rd   re   Nr	  re   rd   ra   rQ  r    s    ! !rd   rQ  c                       \ rS rSrSrg)<CollectionsAbcTests.test_subclassing_subclasshook.<locals>.Ci  re   Nr}   re   rd   ra   r}  r        srd   r}  c                       \ rS rSrSrg)>CollectionsAbcTests.test_subclassing_subclasshook.<locals>.Fooi  re   Nr}   re   rd   ra   r   r    r	  rd   r   c                       \ rS rSrSrg)>CollectionsAbcTests.test_subclassing_subclasshook.<locals>.Bari  re   Nr}   re   rd   ra   r   r    r	  rd   r   )r\   r  r;  r_  )r_   rQ  r}  r   r   s        ra   test_subclassing_subclasshook1CollectionsAbcTests.test_subclassing_subclasshook  sP    	!6?? 	! 	c(c%  (rd   c                     " S S[         R                  5      n " S SU5      n " S S5      nUR                  U5        U R                  X15        U R	                  X25         " S S5      nUR                  U5        U R                  XA5        U R                  XB5         " S	 S
5      n[
        R                  R                  R                  U5        U R                  U[         R                  5        g )Nc                       \ rS rSrSrg)8CollectionsAbcTests.test_subclassing_register.<locals>.Ai  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)8CollectionsAbcTests.test_subclassing_register.<locals>.Bi  re   Nr}   re   rd   ra   r  r    r  rd   r  c                       \ rS rSrSrg)8CollectionsAbcTests.test_subclassing_register.<locals>.Ci  re   Nr}   re   rd   ra   r}  r    rD  rd   r}  c                       \ rS rSrSrg)8CollectionsAbcTests.test_subclassing_register.<locals>.Di  re   Nr}   re   rd   ra   r  r    rD  rd   r  c                       \ rS rSrSrg)8CollectionsAbcTests.test_subclassing_register.<locals>.Mi  re   Nr}   re   rd   ra   r  r    r	  rd   r  )	r\   r  r  r;  r_  r  r  r!   r	  )r_   r  r  r}  r  r  s         ra   test_subclassing_register-CollectionsAbcTests.test_subclassing_register	  s    &  &	

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

1a#a#&&//2a0rd   c                     " S S[         R                  R                  5      nU R                  U[        R                  5        U R                  U[        R
                  5         " S S[         R                  R                  5      nU R                  U[        R                  5        U R                  U[        R
                  5         " S S[         R                  R
                  5      nU R                  U[        R
                  5         " S S[         R                  R                  [        R                  S	9n " S
 S5      nUR                  U5        U R                  U[        R                  5        g )Nc                       \ rS rSrSrg)7CollectionsAbcTests.test_collections_as_base.<locals>.Mi  re   Nr}   re   rd   ra   r  r    r`  rd   r  c                       \ rS rSrSrg)7CollectionsAbcTests.test_collections_as_base.<locals>.Si"  re   Nr}   re   rd   ra   r	  r  "  r  rd   r	  c                       \ rS rSrSrg)7CollectionsAbcTests.test_collections_as_base.<locals>.Ii&  re   Nr}   re   rd   ra   r  r  &  r  rd   r  c                       \ rS rSrSrg)7CollectionsAbcTests.test_collections_as_base.<locals>.Ai)  re   Nr}   re   rd   ra   r  r  )  s    rd   r  r  c                       \ rS rSrSrg)7CollectionsAbcTests.test_collections_as_base.<locals>.Bi*  re   Nr}   re   rd   ra   r  r  *  rD  rd   r  )	r  r  r	  r;  r\   r  r  ry	  r  )r_   r  r	  r  r  r  s         ra   test_collections_as_base,CollectionsAbcTests.test_collections_as_base  s    -''-a0a15//5a!7!78a1.((.a1D''3;;D	

1a0rd   c                 \   U R                  [        R                  [        R                  -  [        [        R                  [        R                  4   5        U R                  [        R
                  [        R                  -  [        [        R
                  [        R                  4   5        g r[   )r   r\   r.  r  r   r  r  r   s    ra   r  #CollectionsAbcTests.test_or_and_ror.  sk    (8(88%fN^N^@^:_`))FOO;U6CSCSU[UdUdCd=efrd   re   N):rf   rg   rh   ri   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*  r1  r4  r:  r=  rE  rJ  rQ  rW  r]  rc  rh  rn  rq  rv  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  rj   re   rd   ra   r  r  R  s   6	56
;;3789A5<6=@1<
C881	H
/$
/U
	EU
	E0	C))6($.9	5.>.C-J'.)"1&1$grd   r  c                   ,    \ rS rSrS rS rS rS rSrg)OtherABCTestsi3  c                     [         R                  S 5       nU" 5       nU R                  U[        R                  5        U R                  S[        R                  5        g )Nc               3      #    Sv   g 7fr   re   re   rd   ra   manager2OtherABCTests.test_contextmanager.<locals>.manager6  
     Hr  r   )
contextlibcontextmanagerr   r\   r
  r   )r_   r  rT  s      ra   test_contextmanager!OtherABCTests.test_contextmanager5  sO    		"	"	 
#	 Yb&"7"78  V%:%:;rd   c                    [         R                  [           nU R                  [	        U5      [        [
        S -  45        [         R                  [        S 4   nU R                  [	        U5      [        [        R                  45        S " 5       nU R                  [	        UR                  [        S 4   5      [        [        R                  45        g )Nc                  ,   ^ ^ S S7=m S7=m4U U4S j47$ )gen_cmr  r  c                  .   > [         R                  T T4   $ r[   )r\   r
  r  r  s   ra   r  =OtherABCTests.test_contextmanager_type_params.<locals>.gen_cmD  s    f33BF;;rd   re   r  s   @@ra   <generic parameters of gen_cm>UOtherABCTests.test_contextmanager_type_params.<locals>.<generic parameters of gen_cm>D  s    ;BB;;rd   )	r\   r
  r   r   r-   r  rQ  r  	__value__)r_   cm1cm2r  s       ra   test_contextmanager_type_params-OtherABCTests.test_contextmanager_type_params>  s    ##C(#dTk(:;##CI.#enn(=>;&"2"239"=>enn@UVrd   c                     " S S5      nU R                  [        5       [        R                  5        U R	                  U" 5       [        R                  5        [
        R                  S 5       nU" 5       nU R	                  U[        R                  5        U R                  [        R                  [           R                  [        [        S -  45        U R                  [        5         [        S[        R                  [           5        S S S 5        U R                  [        5         [        R                  [        [        [        4     S S S 5        g ! , (       d  f       NO= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)7OtherABCTests.test_async_contextmanager.<locals>.NotACMiH  re   Nr}   re   rd   ra   NotACMr  H  rD  rd   r  c               3      #    Sv   g 7fr   re   re   rd   ra   r  8OtherABCTests.test_async_contextmanager.<locals>.managerL  r  r  r   )r   r  r\   AsyncContextManagerr   r  r  r   r   r  r  r   r   r   r  r  )r_   r  r  rT  s       ra   test_async_contextmanager'OtherABCTests.test_async_contextmanagerG  s    	 	ceV%?%?@  6+E+EF		"	"	 
#	 Y  V%?%?@33C8AACPTCUVy)r655c:; *y)&&sC7 *) *)))s   ("E'#E$
E!$
E2c                    [         R                  [           nU R                  [	        U5      [        [
        S -  45        [         R                  [        S 4   nU R                  [	        U5      [        [        R                  45        g r[   )r\   r  r   r   r-   r  rQ  r  )r_   r  r  s      ra   $test_asynccontextmanager_type_params2OtherABCTests.test_asynccontextmanager_type_paramsX  s`    ((-#dTk(:;((d3#enn(=>rd   re   N)	rf   rg   rh   ri   r  r  r  r   rj   re   rd   ra   r  r  3  s    <W8"?rd   r  c                   &    \ rS rSrS rS rS rSrg)	TypeTestsi_  c                 t     " S S5      n " S SU5      n " S SU5      nS[         U   SU4S	 jnU" U5        g )
Nc                       \ rS rSrSrg)'TypeTests.test_type_basic.<locals>.Useric  re   Nr}   re   rd   ra   Userr&  c  r  rd   r'  c                       \ rS rSrSrg),TypeTests.test_type_basic.<locals>.BasicUserid  re   Nr}   re   rd   ra   	BasicUserr)  d  r#  rd   r*  c                       \ rS rSrSrg)*TypeTests.test_type_basic.<locals>.ProUserie  re   Nr}   re   rd   ra   ProUserr,  e  r  rd   r-  
user_classr%  c                     U " 5       $ r[   re   r.  s    ra   new_user+TypeTests.test_type_basic.<locals>.new_userg  
    <rd   r6   )r_   r'  r*  r-  r1  s        ra   test_type_basicTypeTests.test_type_basica  s9    ##!d!	 d 	  	  	rd   c                      " S S5      n " S SU5      n " S SU5      n[        SUS9nS	[        U   S
U4S jnU" U5        g )Nc                       \ rS rSrSrg))TypeTests.test_type_typevar.<locals>.Userin  re   Nr}   re   rd   ra   r'  r8  n  r  rd   r'  c                       \ rS rSrSrg).TypeTests.test_type_typevar.<locals>.BasicUserio  re   Nr}   re   rd   ra   r*  r:  o  r#  rd   r*  c                       \ rS rSrSrg),TypeTests.test_type_typevar.<locals>.ProUserip  re   Nr}   re   rd   ra   r-  r<  p  r  rd   r-  rA  r  r.  r%  c                     U " 5       $ r[   re   r0  s    ra   r1  -TypeTests.test_type_typevar.<locals>.new_usert  r3  rd   )r   r7   )r_   r'  r*  r-  rA  r1  s         ra   test_type_typevarTypeTests.test_type_typevarl  sE    ##!d!Ct$	 a 	 Q 	  	rd   c                     [         [        [              nSUS[         [           4S jnU R                  U" [        5      [        5        U R                  U" S 5      5        g )NrL  r%  c                     U c  g U " 5       $ r[   re   rv  s    ra   rX  )TypeTests.test_type_optional.<locals>.foo|  s    ys
rd   )r   r7   BaseExceptionr   KeyboardInterruptassertIsNone)r_   r  rX  s      ra   test_type_optionalTypeTests.test_type_optionaly  sT    T-()	1 	-0 	 	c"346GH#d)$rd   re   N)rf   rg   rh   ri   r4  r?  rG  rj   re   rd   ra   r#  r#  _  s    	
%rd   r#  c                        \ rS rSrS/rS rSrg)TestModulesi  _idfuncc                 ~    U R                    H-  nU R                  [        [        U5      R                  S5        M/     g )N_typing)
func_namesr   r  r\   rg   )r_   fnames     ra   test_c_functionsTestModules.test_c_functions  s-    __EWVU3>>	J %rd   re   N)rf   rg   rh   ri   rN  rP  rj   re   rd   ra   rJ  rJ    s    JKrd   rJ  c                   d    \ rS rSr\S 5       r\S 5       rS rS rS r	S r
S rS	 rS
 rS rSrg)NewTypeTestsi  c                     [         R                  " S[        5      q[         R                  " U R                  S-   [
        5      U l        g )NUserId	.UserName)r\   NewTyper   rU  rh   r  UserNamer&  s    ra   
setUpClassNewTypeTests.setUpClass  s1     #.~~c&6&6&DcJrd   c                 
    B U ?g r[   )rU  rX  r&  s    ra   tearDownClassNewTypeTests.tearDownClass  s     Lrd   c                     U R                  [        S5      [        5        U R                  U R                  S5      [        5        U R                  [        S5      S-   S5        g )Nr  Joerm      )r   rU  r   rX  r  r   r   s    ra   r  NewTypeTests.test_basic  sG    fQi-dmmE2C8Q*rd   c                    U R                  [        5         [        [        [        5        S S S 5        U R                  [        5          " S S[        5      nS S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)#NewTypeTests.test_errors.<locals>.Di  re   Nr}   re   rd   ra   r  rd    r  rd   r  )r   r   r   rU  r   rb  s     ra   r   NewTypeTests.test_errors  sQ    y)vs# *y)F  *) *)))s   A!A2!
A/2
B c                    [         U R                  4 H  nU R                  US9   U R                  [        U-  [
        R                  [        U4   5        U R                  U[        -  [
        R                  U[        4   5        U R                  [
        R                  " [        U-  5      [        U45        U R                  [
        R                  " U[        -  5      U[        45        S S S 5        M     g ! , (       d  f       M  = f)Nr&  )r   rX  rt   r   rU  r\   r   r-   )r_   r'  s     ra   r  NewTypeTests.test_or  s    'C#&  #v||FCK/HI  vv||CK/HI  #!>N  v!>fN '& (&&s   CC99
D	c                 J   U R                  [        R                  S5        U R                  [        R                  S5        U R                  [        R                  [        5        U R                  [        R
                  [        5        U R                  nU R                  UR                  S5        U R                  UR                  U R                  R                  S-   5        U R                  UR                  [        5        U R                  UR
                  [        5        g )NrU  rX  rV  )
r   rU  rf   rh   rg   __supertype__r   rX  r   r  )r_   rX  s     ra   test_special_attrsNewTypeTests.test_special_attrs  s    (3,,h7**H5--s3==**J7..44{B	D,,h7//5rd   c                     U R                  [        [        5      [         S35        U R                  [        U R                  5      [         SU R
                  R                   S35        g )Nz.UserIdr  rV  )r   r   rU  rf   rX  r   rh   r   s    ra   r   NewTypeTests.test_repr  sR    f(7';<dmm,$:Qt~~'B'B&C9M	Ord   c                    [         R                  " S[        5      n[        [        R
                  S-   5       H  nU R                  US9   [        R                  " [        U5      n[        R                  " U5      nU R                  U[        5        [        R                  " U R                  U5      n[        R                  " U5      nU R                  X@R                  5        U R                  [        R                  5         [        R                  " X5        S S S 5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       GM  = f)NUserAgerm   ro   )r\   rW  r  rq   rr   rs   rt   r  rU  r  r   rX  r   PicklingError)r_   ro  rp   pickledr  s        ra   r  NewTypeTests.test_pickle  s    ..E2622Q67EE* ,,vu5g.ff- ,,t}}e<g.fmm4&&v';';<LL0 = +* 8 =< +*s%   
B9E D/E /
D=9E  
E	c                      Sn[        U0 5        g )Nz-import typing
NT = typing.NewType('NT', int)
r  r  s     ra   r  !NewTypeTests.test_missing__name__  s    3 	T2rd   c                     U R                  [        [        R                  " S5      5          " S S[        5      nS S S 5        g ! , (       d  f       g = f)NzpCannot subclass an instance of NewType. Perhaps you were looking for: `ProUserId = NewType('ProUserId', UserId)`c                       \ rS rSrSrg)CNewTypeTests.test_error_message_when_subclassing.<locals>.ProUserIdi  re   Nr}   re   rd   ra   	ProUserIdrw    rJ  rd   rx  )r  r   r  r  rU  )r_   rx  s     ra   #test_error_message_when_subclassing0NewTypeTests.test_error_message_when_subclassing  s@    ##II=
F 
 
 
s   A
Are   N)rf   rg   rh   ri   r	  rY  r\  r  r   r  rj  r   r  r  ry  rj   re   rd   ra   rS  rS    sT    K K
  
+
O6O
1	rd   rS  c                       \ rS rSr " S S\5      rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rSrg)NamedTupleTestsi  c                   *    \ rS rSr% \\S'   \\S'   Srg)NamedTupleTests.NestedEmployeei  r0  r  re   Nr  re   rd   ra   NestedEmployeer~    s    		rd   r  c                    [        SS[        4S[        4/5      nU R                  U[        5        U" SS5      nU" SSS9nU R                  X!5        U R                  U[        5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  [        R                  " S[        4S[        4/5      5        g )	NEmpr0  idr_  r   Jimrm   r0  r  )r8   r  r   r;  ri  r   r   r0  r  rf   _fieldsr  r  rI  )r_   r  joejims       ra   rq  NamedTupleTests.test_basics  s
   &#s <=c5)%nu#c'c5)5)$5)#u-n5,,$0063-$1MN	Prd   c                    [        SS5      nU R                  U[         5        U R                  U[        5        U R                  UR                  S5        U R                  UR
                  S5        U R                  [         R                  S5        U R                  [         R                  S5        U R                  [         R                  [        R                  " [        [        S95        g )NTim(#  r  r0  r  )r  r   ri  r   r0  r  rf   r  r  r  rI  r  r   )r_   tims     ra   test_annotation_usage%NamedTupleTests.test_annotation_usage  s    5$'c<0c5)5)4(..?--/?@55$00cD	Frd   c                    [        S5      nU R                  U[         5        U R                  U[        5        U R                  UR                  S5        U R                  UR
                  S5        [        SS5      nU R                  UR
                  S5        U R                  [         R                  S5        U R                  [         R                  S5        U R                  [         R                  [        [        [        S95        U R                  [         R                  [        SS95        U R                  [        5          " S S	[        5      nS S S 5        g ! , (       d  f       g = f)
NJeller   Sjoerdrm   r  r  )r  c                   .    \ rS rSr% Sr\\S'   \\S'   Srg)RNamedTupleTests.test_annotation_usage_with_default.<locals>.NonDefaultAfterDefaulti  r  r   r   re   N)rf   rg   rh   ri   r   r   r  rj   re   rd   ra   NonDefaultAfterDefaultr    s    3
rd   r  )r  r   ri  r   r0  r  rf   r  r  r|  r  r   _field_defaultsr   r   r8   )r_   jellecooler_employeer  s       ra   "test_annotation_usage_with_default2NamedTupleTests.test_annotation_usage_with_default  s	   '0e%<=eU+W-Q'1(A>--q1099;TU088:JK0@@3S1	30@@$A,Oy)  *))s   E
E+c                 H   U R                  [        S5      R                  5       S5        U R                  [        S5      R                  [        S5      S   5        U R                  [	        [        S5      5      S5        U R                  [        SS5      [        S5      -   S5        U R                  [        5          " S S[        5      nS S S 5        U R                  [        5          " S	 S
[        5      nS S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)Nrm   r   r   r   z42 -> 1r  c                   &    \ rS rSr% \\S'   S rSrg)DNamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBadi  r   c                     g)Nzno chance for thisre   r   s    ra   r  LNamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBad._fields   s    /rd   re   N)rf   rg   rh   ri   r   r  r  rj   re   rd   ra   XMethBadr    s    0rd   r  c                   &    \ rS rSr% \\S'   S rSrg)ENamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBad2i$  r   c                     g)Nzno chance for this as wellre   r   s    ra   _sourceMNamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBad2._source&  s    7rd   re   N)rf   rg   rh   ri   r   r  r  rj   re   rd   ra   	XMethBad2r  $  s    8rd   r  )	r   r  r  r   r  r  r   r  r8   )r_   r  r  s      ra   "test_annotation_usage_with_methods2NamedTupleTests.test_annotation_usage_with_methods  s    q*A.reBil3U2Y3q!uQx/3~.0: 0 / ~.8J 8 /. /. /.s   <D)D
D
D!c                 >    " S S5      nU R                  [        5          " S S[        U5      nS S S 5        U R                  [        5          " S S[        [        5      nS S S 5        U R                  [        5          " S S[        [        5      nS S S 5         " S	 S
[        5      nU R                  [        5          " S S[        U5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nn= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)4NamedTupleTests.test_multiple_inheritance.<locals>.Ai*  re   Nr}   re   rd   ra   r  r  *  rD  rd   r  c                        \ rS rSr% \\S'   Srg)4NamedTupleTests.test_multiple_inheritance.<locals>.Xi-  r   re   Nr)  re   rd   ra   r  r  -  r  rd   r  c                        \ rS rSr% \\S'   Srg)4NamedTupleTests.test_multiple_inheritance.<locals>.Yi0  r   re   Nr)  re   rd   ra   r  r  0  r  rd   r  c                        \ rS rSr% \\S'   Srg)4NamedTupleTests.test_multiple_inheritance.<locals>.Zi3  r   re   Nr)  re   rd   ra   r  r  3  r  rd   r  c                        \ rS rSr% \\S'   Srg)4NamedTupleTests.test_multiple_inheritance.<locals>.Bi5  r   re   Nr)  re   rd   ra   r  r  5  r  rd   r  c                        \ rS rSr% \\S'   Srg)4NamedTupleTests.test_multiple_inheritance.<locals>.Ci8  r   re   Nr.  re   rd   ra   r}  r  8  r  rd   r}  )r   r   r8   ri  )r_   r  r  r  r  r  r}  s          ra   rD  )NamedTupleTests.test_multiple_inheritance)  s    	 	y)J  * y)J  * y)J
  *	
 	y)J  *) *) *) *)
 *)s/   CC, C=D
C),
C:=
D
Dc                     " S S[         [        [           5      nU R                  UR                  [
        [        45        U R                  UR                  [         [        [           45        U R                  UR                  U[
        [        [        45         " S S[        [           [         5      nU R                  UR                  [        [
        45        U R                  UR                  [        [           [         45        U R                  UR                  U[        [
        [        45        X4 GHz  nU R                  US9   U R                  UR                  [        45        U R                  U[           R                  [        45        U R                  [        U[           5      [        45        U[           nU R                  UR                  U5        U R                  UR                  [        45        U R                  [        U5      [        45        U R                  UR                  S5        U" S5      nU R                  [!        U5      U5        U R                  UR"                  S5        U R%                  [&        5         U[        [(        4     S S S 5        S S S 5        GM}     g ! , (       d  f       N= f! , (       d  f       GM  = f)Nc                        \ rS rSr% \\S'   Srg)'NamedTupleTests.test_generic.<locals>.Xi<  r   re   Nr  re   rd   ra   r  r  <  r  rd   r  c                        \ rS rSr% \\S'   Srg)'NamedTupleTests.test_generic.<locals>.YiB  r   re   Nr  re   rd   ra   r  r  B  r  rd   r  r   re   r  )r8   r#   r   r   r  ri  r  r  r  rt   r  r  r-   r   r   r  r   r   r   r   r  )r_   r  r  r  r  rL  s         ra   test_genericNamedTupleTests.test_generic;  s   	
GAJ 	ug&67))J
+CDQw$?@	
J 	w&67))GAJ
+CDQ$?@A1%  !1!1A48  15  !A$!6cFallA.  cV4  !sf5  !1!126aDd1gq)  a(&&y1c3hK 2 &%  21 &%s%   EK	J8"K	8
KK		
K	c                 Z   S " 5       nUR                   u  nU R                  U[        5        U R                  UR                  S5        U R                  UR
                  [        [        45        U R                  UR                  [        [        U   45        U R                  UR                  U[        [        [        45        U R                  UR                  U45        U R                  U[           R                  [        45        U R                  U[           R                  S5        g )Nc                  @   ^^ S 7=m4m " UU4S jST7
n [         U 5      $ )r   c                   *   > \ rS rSr Y r%  Y\S'   Srg).NamedTupleTests.test_generic_pep695.<locals>.Xi[  r   re   Nr  rs  s   ra   r  r  [  r  rd   r  )r8   ru  s    @@ra   rL  FNamedTupleTests.test_generic_pep695.<locals>.<generic parameters of X>[  s     	 	: 	rd   r   re   )rG  r   r   r   rf   r  ri  r#   r  r8   r  r  r  r  r  )r_   r  r   s      ra   test_generic_pep695#NamedTupleTests.test_generic_pep695Z  s    	a)S)ug&67))J
+CDQw$?@))A4033&13..3rd   c                 Z    " S S[         5      nU[           nU R                  UR                  U5        U R                  UR                  S5        U R                  UR
                  [        45        U" SS/5      nU R                  [        U5      U5        U R                  USS/45        g )Nc                   0    \ rS rSr% \\S'   \\   \S'   Srg)9NamedTupleTests.test_non_generic_subscript.<locals>.Groupij  r  groupre   N)rf   rg   rh   ri   r   r  r  rj   re   rd   ra   Groupr  j  s    F7Nrd   r  re   rm   r   )r8   r   r   r  r  r  r   r   )r_   r  r  rL  s       ra   r  *NamedTupleTests.test_non_generic_subscriptg  s    	J 	 #Ju-))2.cV,a!Id1gu%QH%rd   c                 R   U R                  [        S5         [        S[        [        S9nS S S 5        W" SS5      nU R                  U[        5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  [        [        [        S95        U R                  [        S5         [        SS[        4/[        S	9  S S S 5        U R                  [        S5         [        S/ [        S	9  S S S 5        U R                  [        S
5         [        SS [        S9  S S S 5        g ! , (       d  f       GN@= f! , (       d  f       N}= f! , (       d  f       N`= f! , (       d  f       g = f)NACreating NamedTuple classes using keyword arguments is deprecatedLocalEmployee)r0  ageNickrs  zIEither list of fields or keywords can be provided to NamedTuple, not bothNamer   r   z\Cannot pass `None` as the 'fields' parameter and also specify fields using keyword argumentsr   )r"  r#  r8   r  r   r   ri  r   r0  rf   r  r  r|  r  r   )r_   r  nicks      ra   test_namedtuple_keyword_usage-NamedTupleTests.test_namedtuple_keyword_usageu  sY   ""O
 'ScJM	
 VR(dE*F+//A..@66#38OP##W
 vc
|s3	
 ##W
 vrS)	
 ##C
 vts+
 
3
 

 

 

 
s/   E$(E6FF$
E36
F
F
F&c           	      ,   U R                  [        S5         [        S[        [        [
        [        S9nS S S 5        U R                  WR                  S5        U R                  UR                  S5        U" [
        SSS[        4/S9nU R                  UR                  [
        5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S[        4/5        g ! , (       d  f       N= f)Nr  rH  )r'  r_   typenamefieldsr   rX  r_  )r"  r#  r8   r   r  r  r  r   rf   r  ri  r'  r_   r  r  )r_   rH  rL  s      ra   %test_namedtuple_special_keyword_names5NamedTupleTests.test_namedtuple_special_keyword_names  s    ""O
 Dd#dSB	
 	d+%JK3R%%8HI$$U+UEN#34
 
s   D
Dc                    [         R                  " S5      nU R                  [        SU S35         [	        S5      nS S S 5        [         R                  " S5      nU R                  [        SU S35         [	        SS 5      nS S S 5        [	        S/ 5      n " S S[        5      nWWXE4 H  nU R                  US	9   U R                  UR                  S
5        U R                  UR                  0 5        U R                  UR                  0 5        U R                  U" 5       U5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       M  = f)NzFailing to pass a value for the 'fields' parameter is deprecated and will be disallowed in Python 3.15. To create a NamedTuple class with 0 fields using the functional syntax, pass an empty list, e.g. `NT1 = NamedTuple('NT1', [])`.r-  r.  NT1zPassing `None` as the 'fields' parameter is deprecated and will be disallowed in Python 3.15. To create a NamedTuple class with 0 fields using the functional syntax, pass an empty list, e.g. `NT2 = NamedTuple('NT2', [])`.NT2c                       \ rS rSrSrg)2NamedTupleTests.test_empty_namedtuple.<locals>.CNTi  re   Nr}   re   rd   ra   CNTr    rD  rd   r  )structre   )r  r  r"  r#  r8   rt   r   r  r  r  r   )r_   expected_warningr  r  NT3r  r  s          ra   test_empty_namedtuple%NamedTupleTests.test_empty_namedtuple  s>   99F
 ""#5!<L;MQ7OPU#C Q 99F
 ""#5!<L;MQ7OPUD)C Q #	* 	 3(FV,  4  !7!7<  !7!7<%%fh7	 -, )% QP QP -,s$   D55E<A,E5
E
E
E&	c                    U R                  [        5         [        R                  " 5         S S S 5        U R	                  [        S5         [        5         S S S 5        U R	                  [        S5         [        SS[
        4/S 5        S S S 5        U R	                  [        S5         [        SS[
        4/5        S S S 5        U R	                  [        S5         [        S[
        [        S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nt= f! , (       d  f       g = f)	Nz&missing 1 required positional argumentz7takes from 1 to 2 positional arguments but 3 were givenr  r0  z+Field names cannot start with an underscore_namez2missing 1 required positional argument: 'typename')r  r0  r  )r   r   r8   r
  r  r  r  r   r   s    ra   test_namedtuple_errors&NamedTupleTests.test_namedtuple_errors  s   y)  * ##4
 L	
 ##E
 u}ot4	
 ##9
 u~./	
 ##@
 CC8	
 
+ *)
 

 

 

 
s;   C5
D3D&D(D95
D
D
D%(
D69
Ec                 r   [        SS[        4S[        4/5      q[        [        U R
                  4 H  nU R                  US9   U" SS5      n[        [        R                  S-   5       HQ  n[        R                  " X#5      n[        R                  " U5      nU R                  XR5        U R                  XQ5        MS     [        U5      nU R                  XR5        U R                  XQ5        [        U5      nU R                  XR5        U R                  XQ5        S S S 5        M     g ! , (       d  f       GM  = f)Nr  r0  r  r&  jane%   rm   )r8   r  r   r  r  r  rt   rq   rr   rs   r  r  r   r   r   r   )r_   r'  r  rp   r  jane2s         ra   test_copy_and_pickle$NamedTupleTests.test_copy_and_pickle  s    &# >?d&9&99C#&62"6#:#:Q#>?ET1A"LLOE$$U1))%5	 @ T
  -%%e1   -%%e1 '& :&&s   CD&&
D6	c                 T   [        S5      n " S S[        5      n " S S[        [        U   5      nU R                  UR                  [        45        U R                  UR                  [        [        U   45        [        S/ 5      nU R                  UR                  [        45        g )Nr   c                       \ rS rSrSrg)9NamedTupleTests.test_orig_bases.<locals>.SimpleNamedTuplei  re   Nr}   re   rd   ra   SimpleNamedTupler    rD  rd   r  c                       \ rS rSrSrg):NamedTupleTests.test_orig_bases.<locals>.GenericNamedTuplei  re   Nr}   re   rd   ra   GenericNamedTupler    rD  rd   r  CallNamedTuple)r   r8   r#   r   r  )r_   r   r  r  r  s        ra   r  NamedTupleTests.test_orig_bases  s    CL	z 		
GAJ 	 	)88:-H*99JPQ
;ST#$4b966Frd   c                 b  ^  " S S5      m " U4S jS[         5      nU" 5       nU R                  [        U5      S5        U R                  SUR                  5        U R                  UR                  T5        U R                  UR                  R                  S5         " U4S jS[         5      nU" 5       nU R                  [        U5      S	5        U R                  SUR                  5        U R                  UR                  T5        U R                  UR                  R                  S5        g )
Nc                       \ rS rSrS rSrg)RNamedTupleTests.test_setname_called_on_values_in_class_dictionary.<locals>.Vanillai	   c                     X l         g r[   r/  )r_   ownerr0  s      ra   __set_name___NamedTupleTests.test_setname_called_on_values_in_class_dictionary.<locals>.Vanilla.__set_name__
   r  rd   r/  Nrf   rg   rh   ri   r  rj   re   rd   ra   Vanillar  	   r
  rd   r   c                   &   > \ rS rSr Y " 5       rSrg)NNamedTupleTests.test_setname_called_on_values_in_class_dictionary.<locals>.Fooi   re   Nr]  r   s   ra   r   r     s
    9Drd   r   r   r;  c                   4   > \ rS rSr%  Y " 5       r Y \S'   Srg)NNamedTupleTests.test_setname_called_on_values_in_class_dictionary.<locals>.Bari   r;  re   N)rf   rg   rh   ri   r;  r  rj   r  s   ra   r   r     s    #ID'%rd   r   rm   )	r8   r   rO  rz	  r  r   r;  r0  rD  )r_   r   rX  r   r_  r   s        @ra   1test_setname_called_on_values_in_class_dictionaryANamedTupleTests.test_setname_called_on_values_in_class_dictionary   s    	! 	!	* 	 eS1%-chh0/	&* 	& eS1%fckk*chh0/rd   c                 ^  ^^	  " S S[         5      m " U4S jS5      nU" 5       m	U R                  T5       n " U	4S jS5      nS S S 5        WR                  nU R                  T5       n " U	4S jS[        5      nS S S 5        UR                  nU R	                  [        U5      T5        U R	                  [        U5      [        U5      5        U R                  [        UR                  5      S	5        U R                  [        UR                  5      [        UR                  5      5        S
nU R                  UR                  S   U5        U R                  UR                  S   UR                  S   R                  SS5      5        g ! , (       d  f       GNM= f! , (       d  f       GN'= f)Nc                       \ rS rSrSrg)YNamedTupleTests.test_setname_raises_the_same_as_on_other_classes.<locals>.CustomExceptioni    re   Nr}   re   rd   ra   CustomExceptionr
      r   rd   r  c                   "   > \ rS rSrU 4S jrSrg)RNamedTupleTests.test_setname_raises_the_same_as_on_other_classes.<locals>.Annoyingi"   c                    > Ter[   re   )r_   r  r0  r  s      ra   r  _NamedTupleTests.test_setname_raises_the_same_as_on_other_classes.<locals>.Annoying.__set_name__#   s	    %%rd   re   Nr  r  s   ra   Annoyingr  "   s    & &rd   r  c                      > \ rS rSr Y rSrg)UNamedTupleTests.test_setname_raises_the_same_as_on_other_classes.<locals>.NormalClassi)   re   Nr]  annoyings   ra   NormalClassr  )       rd   r  c                      > \ rS rSr Y rSrg)YNamedTupleTests.test_setname_raises_the_same_as_on_other_classes.<locals>.NamedTupleClassi.   re   Nr]  r  s   ra   NamedTupleClassr  .   r  rd   r  rm   zMError calling __set_name__ on 'Annoying' instance 'attr' in 'NamedTupleClass'r   )
rD  r   rP  r8   r   r   r   rO  	__notes__r  )
r_   r  rT  r  normal_exceptionr  namedtuple_exceptionexpected_noter  r  s
           @@ra   0test_setname_raises_the_same_as_on_other_classes@NamedTupleTests.test_setname_raises_the_same_as_on_other_classes   s]   2m2	& 	& :/2    0 <</2 *   0  "||d/0/Bd/0$7G2HI1;;<a@$../5E5O5O1P	

* 	 	-77:MJ **1-&&q)11-ARS	
/ 0/
 0/s   F*F
F
F,c                    ^^  " S S[         5      m " U4S jS[        5      n " S SUS9nU" 5       mU R                  T5          " U4S jS	[        5      nS S S 5        g ! , (       d  f       g = f)
Nc                       \ rS rSrSrg)[NamedTupleTests.test_strange_errors_when_accessing_set_name_itself.<locals>.CustomExceptioniE   re   Nr}   re   rd   ra   r  r#  E   r/  rd   r  c                   "   > \ rS rSrU 4S jrSrg)PNamedTupleTests.test_strange_errors_when_accessing_set_name_itself.<locals>.MetaiG   c                 >   > US:X  a  Te[         R                  X5      $ )Nr  )r  __getattribute__)r_   r;  r  s     ra   r'  aNamedTupleTests.test_strange_errors_when_accessing_set_name_itself.<locals>.Meta.__getattribute__H   s"    >)))..t::rd   re   N)rf   rg   rh   ri   r'  rj   r  s   ra   r>  r%  G   s    ; ;rd   r>  c                       \ rS rSrSrg)XNamedTupleTests.test_strange_errors_when_accessing_set_name_itself.<locals>.VeryAnnoyingiM   re   Nr}   re   rd   ra   VeryAnnoyingr*  M   r  rd   r+  r  c                      > \ rS rSr Y rSrg)ONamedTupleTests.test_strange_errors_when_accessing_set_name_itself.<locals>.FooiR   re   Nr]  )very_annoyings   ra   r   r-  R   s    $rd   r   )r  r   r   r8   )r_   r>  r+  r   r  r.  s       @@ra   2test_strange_errors_when_accessing_set_name_itselfBNamedTupleTests.test_strange_errors_when_accessing_set_name_itselfD   sN    .i.	;4 	; 	1T0$/%j % 0//s   A!!
A/re   N)rf   rg   rh   ri   r8   r  rq  r  r  r  rD  r  r  r  r  r  r  r  r  r  r  r  r/  rj   re   rd   ra   r|  r|    si     P 	F(8$$ >4&!,F58B982(G 0.#
J%rd   r|  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r Sr!g )!TypedDictTestsiV   c                    [        S[        [        S.5      nU R                  U[        5        U R                  U[
        R                  5        U R                  U[        R                  R                  5        U" SSS9nU R                  [        U5      [        5        U R                  US   S5        U R                  US   S5        U R                  UR                  S5        U R                  UR                  [        5        U R                  UR                   [        45        U R                  UR"                  [        [        S.5        U R                  UR$                  S5        U R                  UR&                  SS15        U R)                  UR&                  [*        5        U R                  UR,                  [/        5       5        U R)                  UR,                  [*        5        g )Nr  r  r  rm   r0  r  T)r<   r  r   r;  r|  r\   r!   r_  r  r  r  r   r   r   rf   rg   r  r  	__total____required_keys__r   r|	  __optional_keys__rB  r_   r  r  s      ra   test_basics_functional_syntax,TypedDictTests.test_basics_functional_syntaxW   sd   378c4(c6#8#89  koo&>&>?u#d3i&Ve,TA&u-20,,s#.FG-..?c33Y?..6c33Y?rd   c                 x   U R                  [        5         [        R                  " 5         S S S 5        U R                  [        5         [        5         S S S 5        U R                  [        5         [        SS[        4/S 5        S S S 5        U R                  [        5         [        SS9  S S S 5        U R                  [        5         [        S[        [
        S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ns= f! , (       d  f       g = f)Nr  r0  )	_typenamer  )r   r   r<   r
  r  r   r   s    ra   test_typeddict_create_errors+TypedDictTests.test_typeddict_create_errorsj   s    y) *y)K *y)evsm_d3 *y)& *y)e##. *) *)))))))))s;   C'	C81D	#
D
D+'
C58
D	
D
D(+
D9c                 r   [        S[        [        S.5      nU R                  [         R                  S5        U" SSS9nU R                  [        5         [        0 U5        S S S 5        U R                  [        5         [        X!5        S S S 5        U R                  [        5         [        [        U5        S S S 5        U R                  [        5         [        SS[        4/[        S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ne= f! , (       d  f       g = f)	Nr  r  r\   r  rm   Hir   r   )
r<   r  r   r   rg   r   r   r   r   r|  r7  s      ra   test_typeddict_errors$TypedDictTests.test_typeddict_errorsv   s    378--x8u#y)r3 *y)s  *y)tS! *y)dc3ZLC0 *) *)))))))s0   C5>D'DD(5
D
D
D%(
D6c                 f   U R                  [        R                  S5        U R                  [        R                  [        5        U R                  [        R                  [
        [
        [        S.5        U R                  [        R                  [        45        U R                  [        R                  S5        U R                  [        [        R                  5        [        SSS9nU R                  US   S5        U R                  US   S5        [        SSS	S9nU R                  US
   S	5        g )Nr  r  Tr   rm   r  r   r   hir-  )r   r  rf   rg   r  r   r  r  r|  r4  r_  r\   r  r  )r_   
not_originr	  s      ra   test_py36_class_syntax_usage+TypedDictTests.test_py36_class_syntax_usage   s    ..?00(;55SsUX7YZ//$9//6  v?qA&
C!,C!,qAT2w.rd   c                    [        S[        [        S.5      q[        SSS.5      n[	        [
        R                  S-   5       H  n[
        R                  " X5      n[
        R                  " U5      nU R                  XA5        U R                  USSS.5        [
        R                  " [        U5      n[
        R                  " U5      nU R                  U" SSS.5      U5        M     g )NEmpDr  r  r  rm   )
r<   r  r   rH  rq   rr   rs   r  r  r   )r_   r  rp   r  r  ZZEmpDnews          ra   r  TypedDictTests.test_pickle   s    #S!9:V2./622Q67ET)ALLOEU)UV2$>?dE*Bll2&GWfB%?@$G 8rd   c                    [        SSS9n[        [        R                  S-   5       H  n[        R                  " X5      n[        R
                  " U5      nU R                  XA5        U R                  USSS.5        [        R                  " [         U5      n[        R
                  " U5      nU R                  U" SSS.5      U5        M     g )Ng      @g      @r-  rm   )r  rq   rr   rs   r  r  r   )r_   pointrp   r  point2rI  Point2DGenericNews          ra   test_pickle_generic"TypedDictTests.test_pickle_generic   s    ,622Q67EU*A\\!_FV+V3S%9:ne4B &R 0.Ss/CDeL 8rd   c                    [        S[        [        S.5      nU R                  [        R
                  U   [        R                  S U4   5        U R                  [        R                  U   [        R                  U   5        g )NrH  r  )
r<   r  r   r   r\   r   r   r   r   r   )r_   rH  s     ra   r  TypedDictTests.test_optional   s[    #S!9:.T4Z0HIFKK-v||D/ABrd   c                    [        SS[        0SS9nU R                  U" 5       0 5        U R                  U" SS9SS05        U R                  UR                  S5        U R                  UR                  [        5       5        U R                  UR                  [
        5        U R                  UR                  S15        U R                  UR                  [
        5        U R                  [        5       0 5        U R                  [        SS9S	S05        U R                  [        R                  S5        U R                  [        R                  [        5       5        U R                  [        R                  S	S
15        g )Nr  r   Fr  rm   r   r   )r  r  r  )	r<   r   r   r4  r5  r|	  r   r6  r  rb  s     ra   
test_totalTypedDictTests.test_total   s#   cC:U3b!Q#q*e,,,ik:a119=,,se4a119=B'1-Q/?@**E222IK@22[*4MNrd   c                      " S S[         SS9nU R                  UR                  S5         " S SU5      nU R                  UR                  S5        g )Nc                        \ rS rSr% \\S'   Srg)9TypedDictTests.test_total_inherits_non_total.<locals>.TD1i   rL  re   Nr)  re   rd   ra   TD1rY     r  rd   rZ  Fr  c                        \ rS rSr% \\S'   Srg)9TypedDictTests.test_total_inherits_non_total.<locals>.TD2i   r   re   Nr.  re   rd   ra   TD2r\     r  rd   r]  Tr<   r   r4  )r_   rZ  r]  s      ra   test_total_inherits_non_total,TypedDictTests.test_total_inherits_non_total   sD    	)5 	 	cmmU+	# 	 	cmmT*rd   c                     " S S[         5      nU R                  UR                  S5         " S S[         SS9nU R                  UR                  S5         " S S[         S	S9nU R                  UR                  S	5        g )
Nc                       \ rS rSrSrSrg)9TypedDictTests.test_total_with_assigned_value.<locals>.TDi   
some_valuere   Nrf   rg   rh   ri   r4  rj   re   rd   ra   TDrc         $Ird   rf  Tc                       \ rS rSrSrSrg):TypedDictTests.test_total_with_assigned_value.<locals>.TD2i   rd  re   Nre  re   rd   ra   r]  ri     rg  rd   r]  r  c                       \ rS rSrSrSrg):TypedDictTests.test_total_with_assigned_value.<locals>.TD3i   rK  re   Nre  re   rd   ra   TD3rk     rg  rd   rl  Fr^  )r_   rf  r]  rl  s       ra   test_total_with_assigned_value-TypedDictTests.test_total_with_assigned_value   sf    	% 	% 	bllD)	%)4 	% 	cmmT*	%)5 	% 	cmmU+rd   c                 :    " S S[         SS9nU R                  UR                  [        SS/5      5        U R	                  UR                  [        5        U R                  UR
                  [        S/5      5        U R	                  UR
                  [        5        g )Nc                        \ rS rSr% \\S'   Srg)6TypedDictTests.test_optional_keys.<locals>.Point2Dor3Di   r  re   Nr)  re   rd   ra   Point2Dor3Drq     r  rd   rr  Fr  r   r   r  )r  r   r5  r|	  r   r6  )r_   rr  s     ra   test_optional_keys!TypedDictTests.test_optional_keys   sz    	' 	 	66	3*8MNk;;YG66	3%8HIk;;YGrd   c                     " S S[         5      n " S SUSS9n " S SU5      nU R                  UR                  [        S	/5      5        U R                  UR                  [        / 5      5        U R                  UR
                  S	[        05        U R                  UR                  [        S	/5      5        U R                  UR                  [        S
S/5      5        U R                  UR
                  [        [        [        S.5        U R                  UR                  [        S	S/5      5        U R                  UR                  [        S
S/5      5        U R                  UR
                  [        [        [        [        S.5        g )Nc                        \ rS rSr% \\S'   Srg)8TypedDictTests.test_keys_inheritance.<locals>.BaseAnimali   r0  re   Nr.  re   rd   ra   
BaseAnimalrw     r  rd   rx  c                   *    \ rS rSr% \\S'   \\S'   Srg)4TypedDictTests.test_keys_inheritance.<locals>.Animali   voicetailre   N)rf   rg   rh   ri   r  r  r  rj   re   rd   ra   Animalrz     s    JJrd   r}  Fr  c                        \ rS rSr% \\S'   Srg)1TypedDictTests.test_keys_inheritance.<locals>.Cati   	fur_colorre   Nr.  re   rd   ra   Catr     s    Nrd   r  r0  r|  r{  )r0  r|  r{  r  )r  r0  r|  r{  )r<   r   r5  r|	  r6  r  r  r  )r_   rx  r}  r  s       ra   test_keys_inheritance$TypedDictTests.test_keys_inheritance   sE   	 		Zu 		& 	 	55y&7JK55y}E33fc]C119fX3FG119fg=N3OP//2
 	 	..	6;:O0PQ..	67:K0LM,,	/
 	rd   c                     " S S[         SS9n " S SU5      nU R                  UR                  [        5       5        U R                  UR                  [        S/5      5        U R                  UR                  [        S/5      5        U R                  UR                  [        5       5         " S S	[         5      n " S
 SU5      nU R                  UR                  [        S/5      5        U R                  UR                  [        S/5      5        U R                  UR                  [        S/5      5        U R                  UR                  [        S/5      5        g )Nc                        \ rS rSr% \\S'   Srg)ETypedDictTests.test_keys_inheritance_with_same_name.<locals>.NotTotali!  rL  re   Nr)  re   rd   ra   NotTotalr  !  r  rd   r  Fr  c                        \ rS rSr% \\S'   Srg)BTypedDictTests.test_keys_inheritance_with_same_name.<locals>.Totali!  rL  re   Nr)  re   rd   ra   Totalr  !  r  rd   r  rL  c                   6    \ rS rSr% \\   \S'   \\   \S'   Srg)ATypedDictTests.test_keys_inheritance_with_same_name.<locals>.Basei!  rL  r   re   N)	rf   rg   rh   ri   r9   r   r  r:   rj   re   rd   ra   rQ  r  !  s    3}rd   rQ  c                   6    \ rS rSr% \\   \S'   \\   \S'   Srg)BTypedDictTests.test_keys_inheritance_with_same_name.<locals>.Childi!  rL  r   re   N)	rf   rg   rh   ri   r:   r   r  r9   rj   re   rd   ra   r  r  !  s    }3rd   r  r   )r<   r   r5  r|	  r6  )r_   r  r  rQ  r  s        ra   $test_keys_inheritance_with_same_name3TypedDictTests.test_keys_inheritance_with_same_name!  s   	y 		H 	 	33Y[A33Yu5EF00)SE2BC00)+>	9 		 D 	  	//C51AB//C51AB00)SE2BC00)SE2BCrd   c                 <    " S S[         5      n " S S[         5      n " S SX5      nU R                  UR                  S[        [           05        U R                  UR
                  [        S/5      5        U R                  UR                  [        5       5        g )Nc                   &    \ rS rSr% \\   \S'   Srg)ETypedDictTests.test_multiple_inheritance_with_same_key.<locals>.Base1i!  rL  re   Nr  re   rd   ra   Base1r  !  s    3rd   r  c                   &    \ rS rSr% \\   \S'   Srg)ETypedDictTests.test_multiple_inheritance_with_same_key.<locals>.Base2i!  rL  re   Nr  re   rd   ra   Base2r  !      }rd   r  c                       \ rS rSrSrg)ETypedDictTests.test_multiple_inheritance_with_same_key.<locals>.Childi"!  re   Nr}   re   rd   ra   r  r  "!  rD  rd   r  rL  )r<   r   r  r:   r  r5  r|	  r6  )r_   r  r  r  s       ra   'test_multiple_inheritance_with_same_key6TypedDictTests.test_multiple_inheritance_with_same_key!  s|    	 I 	 	I 		E 	 	..hsm0DE00)SE2BC00)+>rd   c                    U R                  [        R                  [        S15      5        U R                  [        R                  [        S15      5        U R                  [
        R                  [        S15      5        U R                  [
        R                  [        S15      5        U R                  [        R                  R                  [        5       5        U R                  [        R                  R                  [        S15      5        U R                  [        R                  [        S15      5        U R                  [        R                  [        S15      5        U R                  [        R                  [        S15      5        U R                  [        R                  [        S15      5        U R                  [        R                  [        S15      5        U R                  [        R                  [        S15      5        U R                  [        R                  [        S15      5        U R                  [        R                  [        S15      5        g )Nr  rV  rL  )r   r  r5  r|	  r6  r  rV   r  r  r  r  r  r   s    ra   test_required_notrequired_keys-TypedDictTests.test_required_notrequired_keys*!  s   88"G9-	/88"F8,	. 	55"G9-	/55"F8,	. 	+99KK"	&+99KK"C5)	+ 	99"G9-	/99"F8,	. 	+=="G9-	/+=="F8,	. 	::"G9-	/::"F8,	. 	2DD"G9-	/2DD"F8,	.rd   c                     " S S[         5      n " S S[         5      n " S S[         SS9n[        S	S
[        05      n " S S5      n " S SX5      nU R                  UR                  [	        / SQ5      5        U R                  UR
                  [	        / 5      5        U R                  UR                  [        [        [        S.5         " S SX5      nU R                  UR                  [	        SS/5      5        U R                  UR
                  [	        S/5      5        U R                  UR                  [        [        [        S.5         " S SXSS9nU R                  UR                  [	        S/5      5        U R                  UR
                  [	        SS/5      5        U R                  UR                  [        [        [        S.5         " S SX45      n	U R                  U	R                  [	        S
S/5      5        U R                  U	R
                  [	        S/5      5        U R                  U	R                  [        [        [        S.5        X4XQ4XU4XE4X54/n
U
 HE  nU R                  US9   U R                  [        S5          " S S/UQ76 nS S S 5        S S S 5        MG     g ! , (       d  f       N= f! , (       d  f       Mj  = f)Nc                        \ rS rSr% \\S'   Srg)5TypedDictTests.test_multiple_inheritance.<locals>.OneiO!  r  re   Nr)  re   rd   ra   Oner  O!      Hrd   r  c                        \ rS rSr% \\S'   Srg)5TypedDictTests.test_multiple_inheritance.<locals>.TwoiQ!  twore   Nr.  re   rd   ra   Twor  Q!  r  rd   r  c                        \ rS rSr% \\S'   Srg)9TypedDictTests.test_multiple_inheritance.<locals>.UntotaliS!  untotalre   Nr.  re   rd   ra   Untotalr  S!  s    Lrd   r  Fr  Inlineinlinec                       \ rS rSrSrg)9TypedDictTests.test_multiple_inheritance.<locals>.RegulariV!  re   Nr}   re   rd   ra   r
  r  V!  rD  rd   r
  c                        \ rS rSr% \\S'   Srg)7TypedDictTests.test_multiple_inheritance.<locals>.ChildiY!  childre   Nrf   rg   rh   ri   r  r  rj   re   rd   ra   r  r  Y!      Krd   r  )r  r  r  c                        \ rS rSr% \\S'   Srg)CTypedDictTests.test_multiple_inheritance.<locals>.ChildWithOptionalih!  r  re   Nr  re   rd   ra   ChildWithOptionalr  h!  r  rd   r  r  r  r  )r  r  r  c                        \ rS rSr% \\S'   Srg)ETypedDictTests.test_multiple_inheritance.<locals>.ChildWithTotalFalseiw!  r  re   Nr  re   rd   ra   ChildWithTotalFalser  w!  r  rd   r  c                        \ rS rSr% \\S'   Srg)LTypedDictTests.test_multiple_inheritance.<locals>.ChildWithInlineAndOptionali!  r  re   Nr  re   rd   ra   ChildWithInlineAndOptionalr  !  r  rd   r  )r  r  r  )rS  z=cannot inherit from both a TypedDict type and a non-TypedDictc                       \ rS rSrSrg)7TypedDictTests.test_multiple_inheritance.<locals>.Wrongi!  re   Nr}   re   rd   ra   Wrongr  !  r  rd   r  )r<   r  r   r5  r|	  r6  r  r   r  rt   r  r   )r_   r  r  r  r  r
  r  r  r  r  wrong_basesrS  r  s                ra   rD  (TypedDictTests.test_multiple_inheritanceN!  s   	) 		) 		iu 	8h%56	 		C 	##-.	
 	##bM	
 	!!d3	

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

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

	 	&88x)*	
 	&88yk"	
 	&66d;	
 NNw
 !EE*++S 	 +* !  +*s$   8KJ0K0
J>:K
K	c                   ^ U R                  [        [        5      S5        U R                  [        [        [        [
        4   5      S5        U R                  [        [        5       5      S5        [        SS[
        05      nU R                  [        U5      S5        U R                  [        U" 5       5      S5        [        S5      m " U4S jS[        [        T   5      nU R                  [        U5      S5        U R                  [        U[
           5      S5        U R                  [        U" 5       5      S5        S " 5       nU R                  [        U5      S5        U R                  [        U[
           5      S5        U R                  [        U" 5       5      S5        U R                  [        [        5      S5        g )	NTF
call_basedrL  r   c                   $   > \ rS rSr%  Y \S'   Srg)4TypedDictTests.test_is_typeddict.<locals>.BarGenerici!  rL  re   Nrv  rw  s   ra   r  r  !  s    Drd   r  c                  @   ^^ S 7=m4m " UU4S jST7
n [         U 5      $ )r   c                   *   > \ rS rSr Y r%  Y\S'   Srg)4TypedDictTests.test_is_typeddict.<locals>.NewGenerici!  rL  re   Nr  rs  s   ra   r  r  !  r  rd   r  r<   ru  s    @@ra   r  LTypedDictTests.test_is_typeddict.<locals>.<generic parameters of NewGeneric>!  s     	 	I 	rd   )	r   r0   r  r   r  r   r<   r   r#   )r_   r  r  r  r   s       @ra   test_is_typeddict TypedDictTests.test_is_typeddict!  s1   l7+T2l5c?3U;l79-u5|c3Z8
l:.5l:<0%8CL	GAJ 	l:.5l:c?3U;l:<0%8	l:.5l:c?3U;l:<0%8 	l9-u5rd   c                 z    U R                  [        [        5      [        R                  [
           [
        S.5        g )Nr-  )r   r+   r   r\   r   r   r   s    ra   r4  "TypedDictTests.test_get_type_hints!  s)    3//#&S1	
rd   c                    U R                  [        [        5      [        R                  [
           [        S.5         " S S[        [           5      nU R                  [        U5      [        R                  [
           [        [        S.5        g )Nr-  c                        \ rS rSr% \\S'   Srg)ATypedDictTests.test_get_type_hints_generic.<locals>.FooBarGenerici!  r  re   Nr.  re   rd   ra   FooBarGenericr  !  r  rd   r  rL  r   r  )r   r+   r  r\   r   r   r   r  )r_   r  s     ra   test_get_type_hints_generic*TypedDictTests.test_get_type_hints_generic!  sd    :&//!$3/	

	JsO 	 	=)//!$3S9	
rd   c                 Z   S " 5       nUR                   u  nU R                  U[        5        U R                  UR                  S5        U R                  UR
                  [        [        45        U R                  UR                  [        [        U   45        U R                  UR                  U[        [        [        45        U R                  UR                  U45        U R                  U[           R                  S5        U R                  U[           R                  [        45        g )Nc                  @   ^^ S 7=m4m " UU4S jST7
n [         U 5      $ )r   c                   *   > \ rS rSr Y r%  Y\S'   Srg)7TypedDictTests.test_pep695_generic_typeddict.<locals>.Ai!  rL  re   Nr  rs  s   ra   r  r  !  r  rd   r  r  ru  s    @@ra   <generic parameters of A>OTypedDictTests.test_pep695_generic_typeddict.<locals>.<generic parameters of A>!  s     	 	9 	rd   r   re   )rG  r   r   r   rf   r  r#   r|  r  r<   r  r  r  r  r  )r_   r  r   s      ra   test_pep695_generic_typeddict,TypedDictTests.test_pep695_generic_typeddict!  s    	 a)S)wo6))Iwqz+BCQv$>?))A403..333&1rd   c                 :    " S S[         [        [           5      nU R                  UR                  [        [
        45        U R                  UR                  [         [        [           45        U R                  UR                  U[        [
        [        45        U R                  UR                  [        45        U R                  U[           R                  S5        U R                  U[           R                  [        45         " S S[        [           [         5      nU R                  UR                  [        [
        45        U R                  UR                  [        [           [         45        U R                  UR                  U[        [
        [        45        U R                  UR                  [        45        U R                  U[           R                  S5        U R                  U[           R                  [        45         " S SU[           SS	9nU R                  UR                  [        [
        45        U R                  UR                  U[           45        U R                  UR                  U[        [
        [        45        U R                  UR                  [        45        U R                  UR                  S5        U R                  UR                  [        S
/5      5        U R                  UR                   [        S/5      5        U R                  U[           R                  S5        U R                  U[           R                  [        45        U R                  U[           R"                  U5         " S SU[$           5      nU R                  UR                  [        [
        45        U R                  UR                  U[$           45        U R                  UR                  U[        [
        [        45        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  [        S
/5      5        U R                  UR                   [        SS/5      5        U R                  UR&                  [        [        [$        S.5        U R)                  [*        5         U[             S S S 5         " S S[,        [           [        [        [        4   5      nU R                  UR                  [        [
        45        U R                  UR                  [,        [           [        [        [        4   45        U R                  UR                  U[        [
        [        45        U R                  UR                  [        [        45        U R                  UR                  S5        U R                  UR                  [        5       5        U R                  UR                   [        / SQ5      5        U R                  UR&                  [        [        [        S.5        U R                  U[$        [        4   R"                  U5        U R)                  [*        5         U[$             S S S 5        U R)                  [*        5          " S S[,        [           [        [           5      nS S S 5        g ! , (       d  f       GN= f! , (       d  f       Na= f! , (       d  f       g = f)Nc                        \ rS rSr% \\S'   Srg)2TypedDictTests.test_generic_inheritance.<locals>.Ai!  rL  re   Nr  re   rd   ra   r  r  !  r  rd   r  re   c                        \ rS rSr% \\S'   Srg)3TypedDictTests.test_generic_inheritance.<locals>.A2i!  rL  re   Nr  re   rd   ra   A2r  !  r  rd   r  c                        \ rS rSr% \\S'   Srg)2TypedDictTests.test_generic_inheritance.<locals>.Bi!  r   re   Nrf   rg   rh   ri   r   r  rj   re   rd   ra   r  r  !      Erd   r  Fr  r   rL  c                        \ rS rSr% \\S'   Srg)2TypedDictTests.test_generic_inheritance.<locals>.Ci"  r  re   Nr)  re   rd   ra   r}  r  "  r  rd   r}  Tr  r  c                        \ rS rSr% \\S'   Srg)8TypedDictTests.test_generic_inheritance.<locals>.Point3Di"  r  re   Nr  re   rd   ra   Point3Dr  "  r  rd   r  c                        \ rS rSr% \\S'   Srg)r  i,"  r  re   Nr  re   rd   ra   r  r  ,"  s    rd   )r<   r#   r   r   r  r|  r  r  r  r  r  r  r   r4  r6  r|	  r5  r  r   r  r   r   r  )r_   r  r  r  r}  r  s         ra   test_generic_inheritance'TypedDictTests.test_generic_inheritance!  s   		71: 	 	wo6))Iwqz+BCQv$>?))A403..333&1	Y 	 	7**WQZ,CDb'4%@A**QD1C//4C))C62	"U 	 	wo6))AbE84Qv$>?))B51e,,,i.>?,,i.>?3..333&13**A.	# 	 	wo6))AcF95Qv$>?))2.d+,,i.>?,,ic
.CD**-
 	
 y)cF *	nQ'B 	 	**WdO<//.2CWQPRU^1TU7GT6*JK//!R9**D122IK@22Io4NO003
 	
 	c*55w?y)CL * y).+WR[  *)1 *)* *) *)s$   
[)
[;=#\)
[8;
\	
\c                     " S S[         [        [           5      n " S SU[           SS9n " S SU5      nU R	                  UR
                  [        [        45        U R	                  UR                  U[        [        [        45        U R	                  UR                  S	5        U R	                  UR                  S
5        U R	                  UR                  [        S/5      5        U R	                  UR                  [        SS/5      5        U R	                  UR                  [        [        [        S.5        U R!                  ["        5         U[$             S S S 5        g ! , (       d  f       g = f)Nc                        \ rS rSr% \\S'   Srg)7TypedDictTests.test_implicit_any_inheritance.<locals>.Ai0"  rL  re   Nr  re   rd   ra   r  r  0"  r  rd   r  c                        \ rS rSr% \\S'   Srg)7TypedDictTests.test_implicit_any_inheritance.<locals>.Bi3"  r   re   Nr  re   rd   ra   r  r  3"  r  rd   r  Fr  c                        \ rS rSr% \\S'   Srg)ETypedDictTests.test_implicit_any_inheritance.<locals>.WithImplicitAnyi6"  r  re   Nr)  re   rd   ra   WithImplicitAnyr  6"  r  rd   r  re   Tr   rL  r  r  )r<   r#   r   r   r   r  r|  r  r  r  r4  r6  r|	  r5  r  r   r   r   r  )r_   r  r  r  s       ra   test_implicit_any_inheritance,TypedDictTests.test_implicit_any_inheritance/"  s   		71: 		"U 		a 	 	22Wd4DE00?GTSY2Z[77<22D9::Ise<LM::IsCj<QR88;
 	
 y)C  *))s   
E##
E1c                 X    " S S[         5      nU[           nU R                  UR                  U5        U R                  UR                  S5        U R                  UR
                  [        45        U" SS9nU R                  [        U5      [        5        U R                  USS05        g )Nc                        \ rS rSr% \\S'   Srg)5TypedDictTests.test_non_generic_subscript.<locals>.TDiK"  rL  re   Nr  re   rd   ra   rf  r  K"  r  rd   rf  re   rm   rv  rL  )	r<   r   r   r  r  r  r   r   r|  )r_   rf  r  rL  s       ra   r  )TypedDictTests.test_non_generic_subscriptH"  s    	 	sGr*))2.cV,!Hd1gt$S!H%rd   c                    [        S5      n " S S[        5      n " S SU5      n " S SU5      n " S S	X4U5      n " S
 S[        [        U   5      n " S SU[           5      n " S SU[           5      n " S SXxU[
           5      n	 " S SU[           U[
           5      n
[        S0 5      nU R                  UR                  [        45        U R                  UR                  U45        U R                  UR                  U45        U R                  UR                  X4U45        U R                  UR                  [        [        U   45        U R                  UR                  U[           45        U R                  UR                  U[           45        U R                  U	R                  XxU[
           45        U R                  U
R                  U[           U[
           45        U R                  UR                  [        45        g )Nr   c                       \ rS rSrSrg).TypedDictTests.test_orig_bases.<locals>.ParentiX"  re   Nr}   re   rd   ra   Parentr  X"  rD  rd   r  c                       \ rS rSrSrg)-TypedDictTests.test_orig_bases.<locals>.Childi["  re   Nr}   re   rd   ra   r  r  ["  rD  rd   r  c                       \ rS rSrSrg)2TypedDictTests.test_orig_bases.<locals>.OtherChildi^"  re   Nr}   re   rd   ra   
OtherChildr  ^"  rD  rd   r  c                       \ rS rSrSrg)2TypedDictTests.test_orig_bases.<locals>.MixedChildia"  re   Nr}   re   rd   ra   
MixedChildr
  a"  rD  rd   r  c                       \ rS rSrSrg)5TypedDictTests.test_orig_bases.<locals>.GenericParentid"  re   Nr}   re   rd   ra   GenericParentr  d"  rD  rd   r  c                       \ rS rSrSrg)4TypedDictTests.test_orig_bases.<locals>.GenericChildig"  re   Nr}   re   rd   ra   GenericChildr  g"  rD  rd   r  c                       \ rS rSrSrg)9TypedDictTests.test_orig_bases.<locals>.OtherGenericChildij"  re   Nr}   re   rd   ra   OtherGenericChildr  j"  rD  rd   r  c                       \ rS rSrSrg)9TypedDictTests.test_orig_bases.<locals>.MixedGenericChildim"  re   Nr}   re   rd   ra   MixedGenericChildr  m"  rD  rd   r  c                       \ rS rSrSrg)<TypedDictTests.test_orig_bases.<locals>.MultipleGenericBasesip"  re   Nr}   re   rd   ra   MultipleGenericBasesr  p"  rD  rd   r  CallTypedDict)r   r<   r#   r   r  r  r   r  )r_   r   r  r  r  r  r  r  r  r  r  r  s               ra   r  TypedDictTests.test_orig_basesU"  s   CL	Y 		F 		 		F 		Iwqz 		=- 		c 2 		uAU 		=#5}U7K 	 "/26..=--y922VI>22U4PQ55	71:7NO44}S7I6KL*99M#<N;PQ*99L]jkp]q;rs-<<}S?QS`afSg>hi55	|Drd   c                 f   [        S0 5      n " S S[         5      nS " 5       n[        S5      n " S S[         [        U   5      n[        R                  " S5      nU R                  [        S	U S
35         [        S5      nS S S 5        [        R                  " S5      nU R                  [        S	U S
35         [        SS 5      nS S S 5        XX5WW4 H  n	U R                  U	R                  S9   U R                  U	R                  0 5        U R                  U	R                  [        5       5        U R                  U	R                  [        5       5        U R                  U	" 5       [        5        S S S 5        M     g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       M  = f)Nr  c                       \ rS rSrSrg)6TypedDictTests.test_zero_fields_typeddicts.<locals>.T2i"  re   Nr}   re   rd   ra   r  r  "  r  rd   r  c                  <   ^ S 7=n 4m " U4S jST7
n[         U5      $ )tvarc                      > \ rS rSr Y rSrg)6TypedDictTests.test_zero_fields_typeddicts.<locals>.T3i"  re   NrF  rH  s   ra   r  r#  "  s     4rd   r  r  )r!  rK  rI  s     @ra   <generic parameters of T3>NTypedDictTests.test_zero_fields_typeddicts.<locals>.<generic parameters of T3>"  s    ''y'rd   r	  c                       \ rS rSrSrg)6TypedDictTests.test_zero_fields_typeddicts.<locals>.T4i"  re   Nr}   re   rd   ra   T4r'  "  s    rd   r(  zFailing to pass a value for the 'fields' parameter is deprecated and will be disallowed in Python 3.15. To create a TypedDict class with 0 fields using the functional syntax, pass an empty dictionary, e.g. `T5 = TypedDict('T5', {})`.r-  r.  T5zPassing `None` as the 'fields' parameter is deprecated and will be disallowed in Python 3.15. To create a TypedDict class with 0 fields using the functional syntax, pass an empty dictionary, e.g. `T6 = TypedDict('T6', {})`.T6r  )r<   r   r#   r  r  r"  r#  rt   rf   r   r  r5  rB  r6  r   r|  )
r_   r  r  r  r	  r(  r  r)  r*  rE  s
             ra   test_zero_fields_typeddicts*TypedDictTests.test_zero_fields_typeddicts"  s]   tR !!'CL-GAJ-99I
 ""#5!<L;MQ7OP4B Q 99I
 ""#5!<L;MQ7OP4&B Q RR+EENN3  !6!6;  !8!8#%@  !8!8#%@%%egt4	 43 , QP QP 43s%   6E>:F1B F!>
F
F!
F0	c                     " S S[         5      n " S SU5      nU R                  UR                  [        S15      5        U R                  UR                  [        S15      5         " S S[         5      n " S	 S
U5      nU R                  UR                  [        S15      5        U R                  UR                  [        S15      5        g )Nc                   &    \ rS rSr% \\   \S'   Srg)7TypedDictTests.test_readonly_inheritance.<locals>.Base1i"  rL  re   Nrf   rg   rh   ri   r;   r   r  rj   re   rd   ra   r  r/  "  r  rd   r  c                        \ rS rSr% \\S'   Srg)8TypedDictTests.test_readonly_inheritance.<locals>.Child1i"  r   re   Nr.  re   rd   ra   Child1r2  "  r  rd   r3  rL  r   c                        \ rS rSr% \\S'   Srg)7TypedDictTests.test_readonly_inheritance.<locals>.Base2i"  rL  re   Nr)  re   rd   ra   r  r5  "  r  rd   r  c                   &    \ rS rSr% \\   \S'   Srg)8TypedDictTests.test_readonly_inheritance.<locals>.Child2i"  r   re   N)rf   rg   rh   ri   r;   r  r  rj   re   rd   ra   Child2r7  "  r  rd   r8  r<   r   __readonly_keys__r|	  __mutable_keys__)r_   r  r3  r  r8  s        ra   test_readonly_inheritance(TypedDictTests.test_readonly_inheritance"  s    	I 		U 	 	119cU3CD00)SE2BC	I 		U 	 	119cU3CD00)SE2BCrd   c                      " S S[         5      nU R                  [        5          " S SU5      nS S S 5        g ! , (       d  f       g = f)Nc                        \ rS rSr% \\S'   Srg)BTypedDictTests.test_cannot_make_mutable_key_readonly.<locals>.Basei"  rL  re   Nr)  re   rd   ra   rQ  r@  "  r  rd   rQ  c                   &    \ rS rSr% \\   \S'   Srg)CTypedDictTests.test_cannot_make_mutable_key_readonly.<locals>.Childi"  rL  re   Nr0  re   rd   ra   r  rB  "  s    C= rd   r  )r<   r   r   r_   rQ  r  s      ra   %test_cannot_make_mutable_key_readonly4TypedDictTests.test_cannot_make_mutable_key_readonly"  s6    	9 	 y)! ! *))s	   :
Ac                      " S S[         5      n " S SU5      nU R                  UR                  [        5       5        U R                  UR                  [        S15      5        g )Nc                   &    \ rS rSr% \\   \S'   Srg)?TypedDictTests.test_can_make_readonly_key_mutable.<locals>.Basei"  rL  re   Nr0  re   rd   ra   rQ  rH  "  r  rd   rQ  c                        \ rS rSr% \\S'   Srg)@TypedDictTests.test_can_make_readonly_key_mutable.<locals>.Childi"  rL  re   Nr)  re   rd   ra   r  rJ  "  r  rd   r  rL  r9  rC  s      ra   "test_can_make_readonly_key_mutable1TypedDictTests.test_can_make_readonly_key_mutable"  sQ    	9 		D 	 	00)+>//C51ABrd   c           
          " S S[         5      nU R                  UR                  [        SS15      5        U R                  UR                  [        SS15      5        U R                  UR
                  [        1 Sk5      5        U R                  UR                  [        S15      5        U R                  [        USS	9[        [        [        [        S
.5        U R                  [        USS	9[        [        [        [              S4   [        [        [        [           S4      [        [        [        [        S4         [        [        [        S4      S
.5        g )Nc                       \ rS rSr% \\\\      S4   \S'   \\\\   S4      \S'   \\	\\S4         \S'   \	\\S4      \S'   Sr
g)	<TypedDictTests.test_combine_qualifiers.<locals>.AllTheThingsi"  why notrL  r   r  r  re   N)rf   rg   rh   ri   rB   r:   r;   r   r  r9   rj   re   rd   ra   AllTheThingsrO  "  sa    (3-0);<<	(3-":;<<Ic9n$=>??9S)^455rd   rQ  rL  r   r  r  r  FrV  )rL  r   r  r  TrP  )r<   r   r5  r|	  r6  r:  r;  r+   r   rB   r:   r;   r9   )r_   rQ  s     ra   test_combine_qualifiers&TypedDictTests.test_combine_qualifiers"  s   	69 	6 	77C:9NO77C:9NO77?9ST66	3%8HI<>Cc4	
 	<=x6	ABiy(@ABk)CN*CDE 3	>!:;		
rd   re   N)"rf   rg   rh   ri   r8  r<  r@  rE  r  rP  r  rU  r_  rm  rs  r  r  r  r  rD  r  r4  r  r  r  r  r  r  r+  r<  rD  rK  rR  rj   re   rd   ra   r2  r2  V   s    @&
/1/H	MCO 	+, H@D2?".HUn62

2M^!2&)EV 5DD&!C
rd   r2  c                   2    \ rS rSrS rS rS rS rS rSr	g)	RequiredTestsi"  c                    U R                  [        5         [        [             S S S 5        U R                  [        5         [        [        [
        4     S S S 5        U R                  [        5         [        [           [
             S S S 5        g ! , (       d  f       Nr= f! , (       d  f       NR= f! , (       d  f       g = fr[   )r   r   r:   r9   r   r  r   s    ra   rq  RequiredTests.test_basics"  su    y)[! *y)S#X *y)SM# *)	 *)))))#   BB!2B2
B!
B/2
C c                     U R                  [        [        5      S5        [        [           nU R                  [        U5      S5        [        [           nU R                  [        U5      S[
         S35        g )Nztyping.Requiredztyping.Required[int]ztyping.Required[
.Employee])r   r   r:   r   r{   rf   r'  s     ra   r   RequiredTests.test_repr"  s]    h):;c]b#9:hb%5hZz#JKrd   c           	      L   U R                  [        [        5          " S S[        [        5      5      nS S S 5        U R                  [        [        5          " S S[        [        [
           5      5      nS S S 5        U R                  [        S5          " S S[        5      nS S S 5        U R                  [        S5          " S	 S
[        [
           5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)-RequiredTests.test_cannot_subclass.<locals>.Ci"  re   Nr}   re   rd   ra   r}  r^  "  r  rd   r}  c                       \ rS rSrSrg)-RequiredTests.test_cannot_subclass.<locals>.Di"  re   Nr}   re   rd   ra   r  r`  "  r  rd   r  z Cannot subclass typing\.Requiredc                       \ rS rSrSrg)-RequiredTests.test_cannot_subclass.<locals>.Ei"  re   Nr}   re   rd   ra   r  rb  "  r  rd   r  z'Cannot subclass typing\.Required\[int\]c                       \ rS rSrSrg)-RequiredTests.test_cannot_subclass.<locals>.Fi #  re   Nr}   re   rd   ra   r  rd   #  r  rd   r  )r  r   r  r   r:   r   r3  s        ra   r  "RequiredTests.test_cannot_subclass"  s    ##I/CDDN  E ##I/CDD#'  E ##I35H 5 ##I:<HSM < < ED ED5 5< <r5  c                    U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        U R                  [        5         [        [        [        [
              5      " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr[   )r   r   r:   r   r   r   r   s    ra   r  RequiredTests.test_cannot_init#  r8  r9  c                    U R                  [        5         [        S[        [           5        S S S 5        U R                  [        5         [        [        [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr  )r   r   r   r:   r   r   r   s    ra   r   RequiredTests.test_no_isinstance#  r<  r=  re   Nr>  re   rd   ra   rU  rU  "  s    L ,&rd   rU  c                   2    \ rS rSrS rS rS rS rS rSr	g)	NotRequiredTestsi#  c                    U R                  [        5         [        [             S S S 5        U R                  [        5         [        [        [
        4     S S S 5        U R                  [        5         [        [           [
             S S S 5        g ! , (       d  f       Nr= f! , (       d  f       NR= f! , (       d  f       g = fr[   )r   r   r9   r:   r   r  r   s    ra   rq  NotRequiredTests.test_basics#  sv    y)! *y)S! *y)S! *)	 *)))))rX  c                     U R                  [        [        5      S5        [        [           nU R                  [        U5      S5        [        [           nU R                  [        U5      S[
         S35        g )Nztyping.NotRequiredztyping.NotRequired[int]ztyping.NotRequired[rZ  )r   r   r9   r   r{   rf   r'  s     ra   r   NotRequiredTests.test_repr#  s_    k*,@Ab#<="b%8
*#MNrd   c           	      L   U R                  [        [        5          " S S[        [        5      5      nS S S 5        U R                  [        [        5          " S S[        [        [
           5      5      nS S S 5        U R                  [        S5          " S S[        5      nS S S 5        U R                  [        S5          " S	 S
[        [
           5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)0NotRequiredTests.test_cannot_subclass.<locals>.Ci%#  re   Nr}   re   rd   ra   r}  rr  %#  r  rd   r}  c                       \ rS rSrSrg)0NotRequiredTests.test_cannot_subclass.<locals>.Dr  re   Nr}   re   rd   ra   r  rt  (#  r  rd   r  z#Cannot subclass typing\.NotRequiredc                       \ rS rSrSrg)0NotRequiredTests.test_cannot_subclass.<locals>.Ei,#  re   Nr}   re   rd   ra   r  rv  ,#  r  rd   r  z*Cannot subclass typing\.NotRequired\[int\]c                       \ rS rSrSrg)0NotRequiredTests.test_cannot_subclass.<locals>.Fi0#  re   Nr}   re   rd   ra   r  rx  0#  r  rd   r  )r  r   r  r   r9   r   r3  s        ra   r  %NotRequiredTests.test_cannot_subclass##  s    ##I/CDD%  E ##I/CDDS)*  E ##I68K 8 ##I=?K$ ? ? ED ED8 8? ?r5  c                    U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        U R                  [        5         [        [        [        [
              5      " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr[   )r   r   r9   r   r   r   r   s    ra   r  !NotRequiredTests.test_cannot_init3#  sy    y)M *y) *y)Xc]+,. *)	 *)))))r9  c                    U R                  [        5         [        S[        [           5        S S S 5        U R                  [        5         [        [        [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr  )r   r   r   r9   r   r   r   s    ra   r  #NotRequiredTests.test_no_isinstance;#  sT    y)q+c*+ *y)sK( *) *)))r=  re   Nr>  re   rd   ra   rk  rk  #  s    "O /)rd   rk  c                   &    \ rS rSrS rS rS rSrg)IOTestsiB#  c                     S[         S[        4S jnUR                  S   nU R                  UR                  [        45        g )NrL  r%  c                 "    U R                  5       $ r[   readlinerv  s    ra   r  IOTests.test_io.<locals>.stuffF#      ::<rd   )r=   r   r  r   r  r_   r  rL  s      ra   test_ioIOTests.test_ioD#  s?    	 R 	 F 	  !!#&))F95rd   c                 |    S[         S[        4S jnUR                  S   nU R                  UR                  S5        g )NrL  r%  c                 "    U R                  5       $ r[   r  rv  s    ra   r  "IOTests.test_textio.<locals>.stuffN#  r  rd   re   )r>   r  r  r   r  r  s      ra   test_textioIOTests.test_textioL#  s=    	 V 	  	  !!#&))2.rd   c                 |    S[         S[        4S jnUR                  S   nU R                  UR                  S5        g )NrL  r%  c                 "    U R                  5       $ r[   r  rv  s    ra   r  $IOTests.test_binaryio.<locals>.stuffV#  r  rd   re   )r?   r  r  r   r  r  s      ra   test_binaryioIOTests.test_binaryioT#  s=    	 X 	 % 	  !!#&))2.rd   re   N)rf   rg   rh   ri   r  r  r  rj   re   rd   ra   r  r  B#  s    6//rd   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	RETestsi]#  c                 ,   [         R                  " S[         R                  5      nU R                  UR                  [
        5        U R                  [        U5      [
        5        U R                  U[
        5        UR                  S5      nU R                  UR                  [        5        U R                  [        U5      [        5        U R                  U[        5        [
        [        [        [        4        [        [        [        [        4        g )Nz[a-z]+z12345abcde.....)r  compiler  r;  r   r@   r   r   searchrA   r   r  r  )r_   r  mats      ra   rq  RETests.test_basics`#  s    jj244(cmmW5d3i1c7+jj*+cmmU3d3i/c5) 	c5j!"eE3J rd   c                 6   U R                  [        [           [        [           5        U R                  [        [           [        [           5        U R                  [        [           [
        [           5        U R                  [        [           [        5        g r[   )r   r@   r  r   r  rA   r   s    ra   test_alias_equalityRETests.test_alias_equalityo#  s^    ws|4GCL'%.9GCL%*5GCL#.rd   c                    [         [        [        [        4      nU R	                  [
        5         U[             S S S 5        U R	                  [
        5         [        S[        [           5        S S S 5        U R	                  [
        5         [        [        [           [        [           5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr   )	rA   r   r  r  r   r   r   r@   r   )r_   r#  s     ra   r   RETests.test_errorsu#  s    %U
#$y)cF *y)r73<( * y)wu~ws|4 *) *))) *)s#   
B8C	#C8
C	
C
C(c                    U R                  [        [        5      S5        U R                  [        [        [           5      S5        U R                  [        [        [           5      S5        U R                  [        [
        5      S5        U R                  [        [
        [           5      S5        U R                  [        [
        [           5      S5        g )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  rA   r   s    ra   r   RETests.test_repr#  s    g(89gcl+-BCgen-/FGen5eCj)+>?eEl+-BCrd   c                 (   U R                  [        S5          " S S[        R                  5      nS S S 5        U R                  [        S5          " S S[        R                  5      nS S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nz/type 're\.Match' is not an acceptable base typec                       \ rS rSrSrg)'RETests.test_cannot_subclass.<locals>.Ai#  re   Nr}   re   rd   ra   r  r  #  r  rd   r  z1type 're\.Pattern' is not an acceptable base typec                       \ rS rSrSrg)'RETests.test_cannot_subclass.<locals>.Bi#  re   Nr}   re   rd   ra   r  r  #  r  rd   r  )r  r   r\   rA   r@   r  s      ra   r  RETests.test_cannot_subclass#  sq    ##>
FLL 	
 ##@
FNN 	
 

 

 
s   A2B2
B 
Bre   N)
rf   rg   rh   ri   rq  r  r   r   r  rj   re   rd   ra   r  r  ]#  s    !/	5Drd   r  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)AnnotatedTestsi#  c                 x    U R                  [        S5         [        5         S S S 5        g ! , (       d  f       g = f)Nz#Cannot instantiate typing.Annotatedr  r   rB   r   s    ra   test_newAnnotatedTests.test_new#  s-    ##<
 K
 
 
s   +
9c                     U R                  [        [        [        SS4   5      S5        U R                  [        [        [        [           SS4   5      S5        g )Nr  r  ztyping.Annotated[int, 4, 5]z(typing.Annotated[typing.List[int], 4, 5])r   r   rB   r   r   r   s    ra   r   AnnotatedTests.test_repr#  sP    319%&)	
 	49a?+,6	
rd   c                     [        [        [        [        S4   5      5      nS H,  nU R	                  US9   U R                  X!5        S S S 5        M.     g ! , (       d  f       M@  = f)Nr  )r  r  r  __metadata__r@  )rB  rC  rB   r   rt   rD  rE  s      ra   rG  AnnotatedTests.test_dir#  sS    Ic1f-./	
M M:m7 ;:	
 ;:s   A
A$	c                     [         [         [        S4   S4   nU R                  U[         [        SS4   5        U R                  UR                  S5        U R                  UR                  [        5        g )Nr  r  r  )rB   r   r   r  r  r  s     ra   r  AnnotatedTests.test_flatten#  s]    iQ'*+Ic1ai010s+rd   c                 H   U R                  [        [        [        S4   [        -  5      [        [        S4   [        45        U R                  [        [        [        [        S4   [        4   5      [        [        S4   [        45        U R                  [        [        [        S4   [        [        S4   -  [        -  5      [        [        S4   [        [        S4   [        45        U R                  [        [        [        [        S4   [        [        S4   [        4   5      [        [        S4   [        [        S4   [        45        U R                  [        [        [        S4   [        [
        S4   -  [        -  5      [        [        S4   [        [
        S4   [        45        U R                  [        [        [        [        S4   [        [
        S4   [        4   5      [        [        S4   [        [
        S4   [        45        U R                  [        [        S4   [        [        S4   -  [        -  [        [        S4   [        -  5        U R                  [        [        [        S4   [        [        S4   [        4   [        [        [        S4   [        4   5        U R                  [        [
        [        [        0 4   -  [        [        [        5       4   -  [        -  5      [
        [        [        0 4   [        [        [        5       4   [        45        U R                  [        [        [
        [        [        0 4   [        [        [        5       4   [        4   5      [
        [        [        0 4   [        [        [        5       4   [        45        U R                  [        [
        [        [        0 4   -  [        [
        0 4   -  [        -  5      [
        [        [        0 4   [        [
        0 4   [        45        U R                  [        [        [
        [        [        0 4   [        [
        0 4   [        4   5      [
        [        [        0 4   [        [
        0 4   [        45        U R                  [        [        [        S4   [
        -  [        [
        0 4   -  [        -  5      [        [        S4   [
        [        [
        0 4   [        45        U R                  [        [        [        [        S4   [
        [        [
        0 4   [        4   5      [        [        S4   [
        [        [
        0 4   [        45        SS KnUR                   " S S5      5       nU" SS5      nU R                  [        [        [        U4   S -  5      [        [        U4   [        R                  45        U R                  [        [        [        [        U4   S 4   5      [        [        U4   [        R                  45        U R                  [        [        [        [        U4      5      [        [        U4   [        R                  45        U R                  [        [        0 4   [        [        0 4   -  [        -  [        [        0 4   [        -  5        U R                  [        [        0 4   [        [        0 4   -  [        -  [        [        [        0 4   -  5        U R                  [        [        [        0 4   [        [        0 4   [        4   [        [        [        0 4   [        4   5        U R                  [        [        [        0 4   [        [        0 4   [        4   [        [        [        [        0 4   4   5        g )Nrm   r   r   c                   *    \ rS rSr% \\S'   \\S'   Srg)>AnnotatedTests.test_deduplicate_from_union.<locals>.ValueRangei#  lorC  re   Nr)  re   rd   ra   
ValueRanger  #  s    GGrd   r  )r   r-   rB   r   r   r  rB  dataclasses	dataclassrQ  r  r   )r_   r  r  r  s       ra   test_deduplicate_from_union*AnnotatedTests.test_deduplicate_from_union#  s   )CF"3c"9:#CF+S1	3%	#q&(93(>"?@#CF+S1	3)CF"3iQ6G"G#"MN#CF+YsAv->D	F%	#q&(99S!V;Lc(Q"RS#CF+YsAv->D	F)CF"3iQ6G"G#"MN#CF+YsAv->D	F%	#q&(99S!V;Lc(Q"RS#CF+YsAv->D	F 	36*YsAv->>D"36*S0	2ya0)CF2CSHIya0#56	8 	#	#r'(:":YsCEz=R"RUX"XYyb19S#%Z3H#N	P%YsBw-?3PSPU:AVX[(["\]yb19S#%Z3H#N	P#	#r'(:":YsBw=O"ORU"UVyb19S"W3EsK	M%YsBw-?3PR7ASUX(X"YZyb19S"W3EsK	M 	)CF"3c"9Ic2g<N"NQT"TU#CF+S)CG2DcJ	L%	#q&(93	#r'@RTW(W"XY#CF+S)CG2DcJ	L 					 	 
	 q!)CF"3d":;#CF+U^^<	>%	#q&(94(?"@A#CF+U^^<	>(9S!V+<"=>#CF+U^^<	> 	37+iR.@@3F"37+c1	337+iR.@@3Fyb11	3yb19S"W3EsJKyb1367	9yb19S"W3EsJKsIc2g$667	9rd   c           	         [         [        S4   [        -  [         [        0 4   -  [        -  n[        R                  " [        U5      5       HE  nU R                  US9   U R                  U[        [        R                  U5      5        S S S 5        MG     [        [         [        S4   [        [         [        0 4   [        4   n[        R                  " [        U5      5       H4  nU R                  US9   U R                  U[        U   5        S S S 5        M6     g ! , (       d  f       M  = f! , (       d  f       MZ  = f)Nrm   r  )rB   r   r  r  permutationsr-   rt   r   r   operatoror_r   )r_   expr1r   expr2s       ra   test_order_in_union"AnnotatedTests.test_order_in_union#  s    #q&!C')CG*<<sB**8E?;D4(  x||T(BC )( < iQ'iR.@#EF**8E?;D4(  d4 )( <	 )(
 )(s   +D6D/
D,	/
D>	c                 D   [         [        [           S4   n[         [        [           S4   nU R	                  U[           [         [        [           S4   5        U R	                  U[           R
                  S5        U R	                  U[           R                  [        [           5        U R                  [        5         U[             S S S 5        U R                  [        5         U[        [        4     S S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)Nmy decoration)r  )
rB   r   r   r   r   r  r  r   r   r  )r_   r  LIs      ra   test_specializeAnnotatedTests.test_specialize#  s    d1g./tCy/12349o+E!FG3,,.@A3**DI6y)sG *y)c5jM *) *)))s    
D 'D 
D
Dc           	         U R                  [        [        [        SS4   [        [        SS4   15      S5        U R	                  [        [        SS4   [        [        SS4   5        U R	                  [        [        SS4   [        [
        SS4   5        U R	                  [        [        S4   [        [        SS4   5        U R                  [        [        SS4   [        [        SS4   [        [        SS4   1[        [        SS4   [        [        SS4   15        [        [        / 4   nU R                  [        5         [        U5        S S S 5         " S S5      n[        [        U" 5       4   nU R                  [        5         [        U5        S S S 5        g ! , (       d  f       NV= f! , (       d  f       g = f)Nr  r  rm   c                       \ rS rSrSrSrg)&AnnotatedTests.test_hash_eq.<locals>.Ai$  Nre   r  re   rd   ra   r  r  $  r  rd   r  )
r   rO  rB   r   r   r  r   r   r   r  )r_   r}  r  r~  s       ra   test_hash_eqAnnotatedTests.test_hash_eq	$  sl   iQ	2Ic1ai4HIJANIc1ai0)CAI2FGIc1ai0)CAI2FGIc1f-ya/CDsAqy!9S!QY#71a79KLsAqy!9Q1W#56	

 sBwy)H *	 	sACx y)H *) *) *)s   F F1 
F.1
F?c                   ^  " U4S jS5      m[         TS4   nU" S5      nT" S5      nU R                  X#5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        g )Nc                   ,   > \ rS rSrSrS rU 4S jrSrg)*AnnotatedTests.test_instantiate.<locals>.Ci$  r  c                     Xl         g r[   r   r   s     ra   r   3AnnotatedTests.test_instantiate.<locals>.C.__init__!$  r   rd   c                 d   > [        UT5      (       d  [        $ UR                  U R                  :H  $ r[   )r   NotImplementedr   )r_   r	  r}  s     ra   __eq__1AnnotatedTests.test_instantiate.<locals>.C.__eq__$$  s)    !%++))ww$&&((rd   r   N)rf   rg   rh   ri   classvarr   r  rj   r  s   ra   r}  r  $  s    H) )rd   r}  a decorationr  )rB   r   r   r  )r_   r  rL  r  r}  s       @ra   test_instantiateAnnotatedTests.test_instantiate$  sn    		) 		) a'(aDaDacc"QZZ0rd   c                     [         [        R                  [           S4   nU R	                  U" / SQ5      SSS.5        U R	                  U[
           " / SQ5      SSS.5        g )Nr  )r  r  r  r   rm   r  )rB   r\   r  r   r   r   )r_   MyCounts     ra   test_instantiate_generic'AnnotatedTests.test_instantiate_generic0$  sP    FNN1->?+q\:i0aA,?rd   c                 \     " S S5      n[         US4   nU R                  U" 5       U5        g )Nc                       \ rS rSrS rSrg)4AnnotatedTests.test_instantiate_immutable.<locals>.Ci6$  c                     [        S5      e)Nzshould be ignored)r  r  s      ra   r  @AnnotatedTests.test_instantiate_immutable.<locals>.C.__setattr__7$  s     344rd   re   N)rf   rg   rh   ri   r  rj   re   rd   ra   r}  r  6$  s    5rd   r}  r  )rB   r   r_   r}  r  s      ra   test_instantiate_immutable)AnnotatedTests.test_instantiate_immutable5$  s1    	5 	5 a'( 	ac1%rd   c                     [         S   nU R                  [        5         U" S5        S S S 5        g ! , (       d  f       g = f)N)r   r  r`  r  )rB   r   r   r  s     ra   test_cannot_instantiate_forward.AnnotatedTests.test_cannot_instantiate_forward@$  s-    m$y)aD *))s   	1
?c                     [         [        S4   nU R                  [        5         U" S5        S S S 5        g ! , (       d  f       g = f)Nr  r  )rB   r   r   r   r  s     ra    test_cannot_instantiate_type_var/AnnotatedTests.test_cannot_instantiate_type_varE$  s1    ai y)aD *))s	   	7
Ac                     U R                  [        5         [        [        S4   R                    S S S 5        g ! , (       d  f       g = f)N)r  r  )r   r  rB   r   r   r   s    ra   test_cannot_getattr_typevar*AnnotatedTests.test_cannot_getattr_typevarJ$  s.    ~.ai "" /..	   9
Ac                      " S S5      n[         US4   nU R                  UR                  S5        SUl        U R                  UR                  S5        g )Nc                       \ rS rSrSrSrg)/AnnotatedTests.test_attr_passthrough.<locals>.CiO$  r  re   N)rf   rg   rh   ri   r  rj   re   rd   ra   r}  r  O$  s    Hrd   r}  r  r  r  )rB   r   r  r   r  s      ra   test_attr_passthrough$AnnotatedTests.test_attr_passthroughN$  sL    	 	 a'(Q'a rd   c                      " S S5      nU R                  [        U[        5       5      S   [        [           5        U R                  [        U[        5       5      S   [
        [           5        g )Nc                   R    \ rS rSr% Sr\\\   S4   \S'   Sr	\\
\   S4   \S'   Srg)	7AnnotatedTests.test_special_form_containment.<locals>.CiX$  r  r  r  rr  r  re   N)rf   rg   rh   ri   r  rB   r$   r   r  r  r%   rj   re   rd   ra   r}  r  X$  s2    ABHi~ =>B45E9U3Z015rd   r}  r  r  )r   r+   rx  r$   r   r%   r
  s     ra   test_special_form_containment,AnnotatedTests.test_special_form_containmentW$  sR    	6 	6 	795jA8C=Q795g>c
Krd   c                 (    " S S5      n " S S5      n " S S5      n " S S5      n " S	 S
5      n " S S5      nU R                  [        U[        5       5      S   [        [        [
              5        U R                  [        U[        5       5      S   [        [        [
              5        U R                  [        U[        5       5      S   [        [        [
              5        U R                  [        U[        5       5      S   [        [        [
              5        U R                  [        U[        5       5      S   [        [        [
              5        U R                  [        U[        5       5      S   [        [        [
              5        g )Nc                   ,    \ rS rSr% \\\      \S'   Srg)5AnnotatedTests.test_special_forms_nesting.<locals>.CFib$  r   re   N)	rf   rg   rh   ri   r$   r%   r   r  rj   re   rd   ra   r  r  b$  s    c
##rd   r  c                   ,    \ rS rSr% \\\      \S'   Srg)5AnnotatedTests.test_special_forms_nesting.<locals>.FCie$  r   re   N)	rf   rg   rh   ri   r%   r$   r   r  rj   re   rd   ra   FCr  e$  s    Xc]##rd   r  c                   6    \ rS rSr% \\\\      S4   \S'   Sr	g)6AnnotatedTests.test_special_forms_nesting.<locals>.ACFih$  r  r   re   N)
rf   rg   rh   ri   rB   r$   r%   r   r  rj   re   rd   ra   ACFr  h$  s    %*-~=>>rd   r  c                   6    \ rS rSr% \\\\   S4      \S'   Sr	g)6AnnotatedTests.test_special_forms_nesting.<locals>.CAFik$  r  r   re   N)
rf   rg   rh   ri   r$   rB   r%   r   r  rj   re   rd   ra   CAFr  k$  s    	%*n"<=>>rd   r  c                   6    \ rS rSr% \\\\      S4   \S'   Sr	g)6AnnotatedTests.test_special_forms_nesting.<locals>.AFCin$  r  r   re   N)
rf   rg   rh   ri   rB   r%   r$   r   r  rj   re   rd   ra   AFCr
  n$  s    x}-~=>>rd   r  c                   6    \ rS rSr% \\\\   S4      \S'   Sr	g)6AnnotatedTests.test_special_forms_nesting.<locals>.FACiq$  r  r   re   N)
rf   rg   rh   ri   r%   rB   r$   r   r  rj   re   rd   ra   FACr  q$  s    Yx}n<=>>rd   r  r   )r   r+   rx  r$   r%   r   )r_   r  r  r  r  r  r  s          ra   test_special_forms_nesting)AnnotatedTests.test_special_forms_nesting_$  s*   	$ 	$	$ 	$	? 	?	? 	?	? 	?	? 	? 	GI6s;XeCj=QRGI6s;U8C==QRWY7<huSz>RSWY7<huSz>RSWY7<eHSM>RSWY7<eHSM>RSrd   c                     U R                  [        S5          " S S[        5      nS S S 5        g ! , (       d  f       g = f)NzCannot subclass .*Annotatedc                       \ rS rSrSrg).AnnotatedTests.test_cannot_subclass.<locals>.Ci}$  re   Nr}   re   rd   ra   r}  r  }$  r  rd   r}  r  r
  s     ra   r  #AnnotatedTests.test_cannot_subclass{$  s,    ##I/LMI  NMMr  c                     U R                  [        5         [        S[        [        S4   5        S S S 5        g ! , (       d  f       g = f)Nr  positive)r   r   r   rB   r   r   s    ra   test_cannot_check_instance)AnnotatedTests.test_cannot_check_instance$  s/    y)q)CO45 *))r  c                     U R                  [        5         [        [        [        [        S4   5        S S S 5        g ! , (       d  f       g = f)Nr  )r   r   r   r   rB   r   s    ra   test_cannot_check_subclass)AnnotatedTests.test_cannot_check_subclass$  s/    y)sIc:o67 *))s	   =
Ac                 ~    U R                  [        S5         [        [             S S S 5        g ! , (       d  f       g = f)Nzat least two arguments)r  r   rB   r   r   s    ra   test_too_few_type_args%AnnotatedTests.test_too_few_type_args$  s'    ##I/GHcN IHHs   .
<c                    [         R                  [         R                  [        [        4   [         R
                  [           [        [        S4   [         R                  [        /[        4   /nU H  n[        US4   n[        [        R                  S-   5       HX  nU R                  XBS9   [        R                  " X45      n[        R                  " U5      nU R!                  X65        S S S 5        MZ     M      " S S["        [$           5      q[        [&        [           S4   nSUl        S	Ul        [        [        R                  S-   5       H  n[        R                  " Xx5      n	[        R                  " U	5      nU R!                  UR(                  S5        U R!                  UR*                  S	5        U R!                  UR,                  S5        M     g ! , (       d  f       GMN  = f)
N.rL  rm   )r	  r   c                       \ rS rSrSrSrg)_Annotated_test_Gi$  rm   re   NrK  re   rd   ra   r!  r!  $  r  rd   r!  zA decorationr   r  )r\   r   r   r   r  r   r   r"   r  rB   rq   rr   rs   rt   r  r  r   r#   r   r!  rX  r_  r   )
r_   r  r  r   protrq  restoredr  rp   r  s
             ra   r  AnnotatedTests.test_pickle$  sj   ::v||CH5??3'sCx??C5%<02 A!S&!Af559:\\4\8$ll13G%||G4H$$Q1 98 ; 	
 	 ',n<=622Q67EQ&AQAQUUB'QUUE*QSS!$ 8 98s   ->G
G)c                 x   SnSn[         [        U4   nU R                  U[           [         [        U4   5        U R                  U[         [        U4      [         [        X4   5        [         [        [           U4   nU R                  U[           [         [        [           U4   5        U R                  [        5         U[        [        4     S S S 5        U R                  X4[              [         [        [           X4   5        [         [        R                  [        [        4   U4   nU R                  U[        [        4   [         [        R                  [        [        4   U4   5        U R                  [        5         U[             S S S 5        [         [        U4   nU R                  [        5         US      S S S 5        U[           nU R                  [        5         US      S S S 5        g ! , (       d  f       GN-= f! , (       d  f       N= f! , (       d  f       N^= f! , (       d  f       g = f)Nr  zanother decoration)rB   r   r   r   r   r   r   r\   r    r   r   r  )r_   r  dec2r	  r  r  Itr  s           ra   
test_substAnnotatedTests.test_subst$  s   #ag339!569S#X./3>1JKd1gsl#349c>!:;y)c3hK * 	S6Id3i.B$CDfkk"b&)3./38iCH0Es0J&KLy)cF * sCx y)tH * sVy)tH *) *) *) *) *)s0   G7
H	<H(H+7
H	
H
H(+
H9c                    Sn[        S5      n[        S5      n[        S5      n[        S5      n[        [        / UQ7   U4   nU R	                  U[
           [        [        [
           U4   5        U R	                  U[        [
        4   [        [        [        [
        4   U4   5        U R                  [        5         [        / UQUP7     S S S 5        [        [        [        U      U4   nU R	                  U[
           [        [        [
           U4   5        U R	                  U[        [
        4   [        [        [        [
        4   U4   5        U R                  [        5         [        [        U   U4     S S S 5        [        [        U/UQ7   U4   nU R	                  U[
           [        [        [
           U4   5        U R	                  U[
        [        4   [        [        [
        [        4   U4   5        U R	                  U[
        [        [        4   [        [        [
        [        [        4   U4   5        U R                  [        5         US     S S S 5        [        [        U[        U   4   U4   n	U R	                  U	[
           [        [        [
           U4   5        U R	                  U	[
        [        4   [        [        [
        [        4   U4   5        U R	                  U	[
        [        [        4   [        [        [
        [        [        4   U4   5        U R                  [        5         U	S     S S S 5        [        [        / UQUP7   U4   n
U R	                  U
[
           [        [        [
           U4   5        U R	                  U
[
        [        4   [        [        [
        [        4   U4   5        U R	                  U
[
        [        [        4   [        [        [
        [        [        4   U4   5        U R                  [        5         U
S     S S S 5        [        [        [        U   U4   U4   nU R	                  U[
           [        [        [
           U4   5        U R	                  U[
        [        4   [        [        [
        [        4   U4   5        U R	                  U[
        [        [        4   [        [        [
        [        [        4   U4   5        U R                  [        5         US     S S S 5        [        [        U/UQUP7   U4   nU R	                  U[
        [        4   [        [        [
        [        4   U4   5        U R	                  U[
        [        [        4   [        [        [
        [        [        4   U4   5        U R	                  U[
        [        [        [        4   [        [        [
        [        [        [        4   U4   5        U R                  [        5         U[
             S S S 5        [        [        U[        U   U4   U4   nU R	                  U[
        [        4   [        [        [
        [        4   U4   5        U R	                  U[
        [        [        4   [        [        [
        [        [        4   U4   5        U R	                  U[
        [        [        [        4   [        [        [
        [        [        [        4   U4   5        U R                  [        5         U[
             S S S 5        [        S5      n[        S5      n[        S	5      nX/UQUP7   nX[        U   U4   nU[        [        U/UQUP7   U4   4U[        [        U[        U   U4   U4   4U[
        [        4   [        [        [
        [        4   U4   4U[
        [        4   [        [        [
        [        4   U4   4U[
        [        [        4   [        [        [
        [        [        4   U4   4U[
        [        [        4   [        [        [
        [        [        4   U4   4U[
        [        [        [        4   [        [        [
        [        [        [        4   U4   4U[
        [        [        [        4   [        [        [
        [        [        [        4   U4   44 H  u  nnU R	                  UU5        M     U R                  [        5         U[
             S S S 5        U R                  [        5         U[
             S S S 5        g ! , (       d  f       GNy= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN7= f! , (       d  f       GNf= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)
Nr  r_  r   r  r  re   r  r  r(  )r   r   rB   ri  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   s                        ra   test_typevar_subst!AnnotatedTests.test_typevar_subst$  s   $CLT]T]eCRCj#o&35:s?!;<38ic3h0D&EFy)hrh3h * eF2J',-35:s?!;<38ic3h0D&EFy)fRj#o& * eAFFmS()35:s?!;<38ic3h0D&EFc3oeCeO,c12	
 y)bE * eAvbzM*C/035:s?!;<38ic3h0D&EFc3oeCeO,c12	
 y)bE * eFRFFmS()35:s?!;<38ic3h0D&EFc3oeCeO,c12	
 y)bE * eF2JM*C/035:s?!;<38ic3h0D&EFc3oeCeO,c12	
 y)bE * eBKKRK(#-.38ic3h0D&EFc3oeCeO,c12	
 	c3e#$eCdE12C78	
 y)cF * eBr
B./4538ic3h0D&EFc3oeCeO,c12	
 	c3e#$eCdE12C78	
 y)cF *
 5!T]T] l3llO&+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)cF *y)cF *)K *) *) *) *) *) *) *) *)6 *)))sx   ?e *ee$ e6#f
f
f,
f>
g-
g! 
e
e!$
e36
f
f
f),
f;>
g
g!
g/c                     [         [        [        S4      nU R                  U[           [         [        [        S4      5        g r  )r   rB   r   r   r   r  s     ra   test_annotated_in_other_types,AnnotatedTests.test_annotated_in_other_types9%  s6    1a4!3iQ&7!89rd   c                      " S S[         [        S4   5      nU R                  UR                  U[        [        4S5        g )Nc                       \ rS rSrSrg),AnnotatedTests.test_annotated_mro.<locals>.Xi>%  re   Nr}   re   rd   ra   r  r2  >%  r`  rd   r  rU  z Annotated should be transparent.)rB   r   r   r  r  r  s     ra   test_annotated_mro!AnnotatedTests.test_annotated_mro=%  s3    -	#w,'-QV$4;	=rd   c                     " S S[         5      n " S S[         5      n[        [         U" S5      4   n[        [         U" S5      4   nUR                  S   nUR                  S   nU R                  [	        U5      U5        U R                  XQ" S5      5        U R                  [	        U5      U5        U R                  Xb" S5      5        U R                  [	        U5      [	        U5      5        [        [         U" S5      4   n[        [         U" S5      4   nUR                  S   n	UR                  S   n
U R                  [	        U	5      U5        U R                  X" S5      5        U R                  [	        U
5      U5        U R                  X" S5      5        U R                  [	        U	5      [	        U
5      5        [        [        S4   n[        [        S	4   n[        [        S
4   nU R                  [	        UR                  S   5      [        5        U R                  [	        UR                  S   5      [        5        U R                  [	        UR                  S   5      [        5        g )Nc                       \ rS rSrSrg):AnnotatedTests.test_annotated_cached_with_types.<locals>.AiC%  re   Nr}   re   rd   ra   r  r7  C%      crd   r  c                       \ rS rSrSrg):AnnotatedTests.test_annotated_cached_with_types.<locals>.BiD%  re   Nr}   re   rd   ra   r  r:  D%  r8  rd   r  r  r   r  rm   g      ?T)
r  rB   r  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                 ra    test_annotated_cached_with_types/AnnotatedTests.test_annotated_cached_with_typesB%  s   S!C&[)S!C&[)++A.++A.d;'+af-d;'+af-k*D,=>S!C&[)S!C&[)++A.++A.d;'+af-d;'+af-k*D,=>S!V$S#X&S$Y'd80034c:d80034e<d80034d;rd   re   N) rf   rg   rh   ri   r  r   rG  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r+  r.  r3  rF  rj   re   rd   ra   r  r  #  s    
8,99v	5	(1&@
	&

#!LT8
68%<:pd:=
 <rd   r  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TypeAliasTestsie%  c                     [         ng r[   r{   r_   r=  s     ra   -test_canonical_usage_with_variable_annotation<TypeAliasTests.test_canonical_usage_with_variable_annotationf%  s    #rd   c                     [         ng r[   rK  rL  s     ra   &test_canonical_usage_with_type_comment5TypeAliasTests.test_canonical_usage_with_type_commenti%  s    rd   c                 v    U R                  [        5         [        5         S S S 5        g ! , (       d  f       g = fr[   )r   r   rF   r   s    ra   r   &TypeAliasTests.test_cannot_instantiatel%  !    y)K *))rS  c                     U R                  [        5         [        S[        5        S S S 5        g ! , (       d  f       g = fr   )r   r   r   rF   r   s    ra   r  !TypeAliasTests.test_no_isinstancep%  s&    y)r9% *))r   c                 Z     " S S5      nU R                  [        U5      S[        05        g )Nc                        \ rS rSr% S\S'   Srg)/TypeAliasTests.test_stringized_usage.<locals>.Aiu%  rF   rL  re   Nrv  re   rd   ra   r  rY  u%  s    Nrd   r  rL  )r   r+   rF   r  s     ra   test_stringized_usage$TypeAliasTests.test_stringized_usaget%  s&    	 	*S),<=rd   c                    U R                  [        5         [        [        [        5        S S S 5        U R                  [        5         [        [        [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr[   )r   r   r   r{   rF   r   s    ra   test_no_issubclass!TypeAliasTests.test_no_issubclassy%  sS    y)x+ * y)y(+ *) *) *)s   A&A7&
A47
Bc                    U R                  [        S5          " S S[        5      nS S S 5        U R                  [        5          " S S[	        [        5      5      nS S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)Nz!Cannot subclass typing\.TypeAliasc                       \ rS rSrSrg).TypeAliasTests.test_cannot_subclass.<locals>.Ci%  re   Nr}   re   rd   ra   r}  ra  %  r  rd   r}  c                       \ rS rSrSrg).TypeAliasTests.test_cannot_subclass.<locals>.Di%  re   Nr}   re   rd   ra   r  rc  %  r  rd   r  )r  r   rF   r   r   r  s      ra   r  #TypeAliasTests.test_cannot_subclass%  sb    ##I46I 6
 y)DO  *)6 6
 *)s   A&A7&
A47
Bc                 B    U R                  [        [        5      S5        g )Nztyping.TypeAlias)r   r   rF   r   s    ra   r   TypeAliasTests.test_repr%      i*<=rd   c                 |    U R                  [        5         [        [             S S S 5        g ! , (       d  f       g = fr[   )r   r   rF   r   r   s    ra   rw  $TypeAliasTests.test_cannot_subscript%  s#    y)cN *))ry  re   N)rf   rg   rh   ri   rM  rP  r   r  rZ  r]  r  r   rw  rj   re   rd   ra   rI  rI  e%  s/    $&>
,>rd   rI  c                   n    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rSrg)ParamSpecTestsi%  c                     [        S5      nU R                  X5        U R                  U[         5        U R                  UR                  S5        U R                  UR                  [        5        g )NrQ  )rG   r   r   rf   rg   r
  s     ra   r  ParamSpecTests.test_basic_plain%  sQ    cNa+S)x0rd   c                     0 n[        SX5        US   nU R                  U[        5        U R                  UR                  S5        U R                  UR                  S 5        g )Nz0from typing import ParamSpec; P = ParamSpec("P")rQ  )r  r   rG   r   rf   r   rg   )r_   r  rQ  s      ra   r  #ParamSpecTests.test_basic_with_exec%  sQ    ?HsGa+S)allD)rd   c                    [        S5      n[        S5      n[        U[        4   nU R	                  UR
                  U[        45        U R	                  UR                  U45        [        X4   nU R	                  UR
                  X45        U R	                  UR                  X45        [        R                  R                  U[        4   nU R	                  UR
                  U[        45        U R	                  UR                  U45        [        R                  R                  X4   nU R	                  UR
                  X45        U R	                  UR                  X45        g NrQ  r   )	rG   r   r"   r   r   r  r  r  r  r_   rQ  r   r  r  r  r  s          ra   test_valid_usesParamSpecTests.test_valid_uses%  s   cNCLafq#h/**QD1ad^qf-**QF3__%%af-q#h/**QD1__%%ad+qf-**QF3rd   c                 \   [        S5      n[        S5      nU R                  S[        U5      5        U R                  S[        U5      5        U R                  UR                  [
        5        U R                  UR                  [        5        U R                  UR                  R                  U5        U R                  UR                  R                  U5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  [        UR                  5      S5        U R                  [        UR                  5      S5        g )NrQ  P_2r   r   P.argsP.kwargs)rG   rD  rC  r   r   rI   r   rJ   r   r  r   r   r   )r_   rQ  rv  s      ra   test_args_kwargsParamSpecTests.test_args_kwargs%  si   cNfc!f%hA'affm4ahh8aff''+ahh))1-(188,AFFCHH-AHHcjj1AFFAHH-AHHaff-AFFCJJ/affx0ahh4rd   c                 R   [        S5      n " S S[        U   5      nU R                  [        U[	        5       [        5       5      S[        U[        4   05        U R                  [        UR                  [	        5       [        5       5      UR                  UR                  S.5        g )NrQ  c                   4    \ rS rSr% \S\4   \S'   SS jrSrg))ParamSpecTests.test_stringized.<locals>.Ci%  rQ  rW  c                     g r[   re   r   s      ra   rX  -ParamSpecTests.test_stringized.<locals>.C.foo%  rR  rd   re   N)r   rw  r   rx  )	rf   rg   rh   ri   r"   r   r  rX  rj   re   rd   ra   r}  r}  %  s    38$$rd   r}  rW  r%  )rG   r#   r   r1  rx  ry  r"   r   rX  r   r   )r_   rQ  r}  s      ra   test_stringizedParamSpecTests.test_stringized%  sy    cN	
 	
 	Q	684vx3?O6PQwy&(+aff-Q	
rd   c                 L  ^^ [        S5      m[        S5      m[        S5      n " UU4S jS[        TT4   5      nU[        U4   nU R	                  UR
                  [        U45        U R	                  UR                  U45        U R                  [        S5         U[             S S S 5        U R                  [        S5         U[        U[        4     S S S 5        U[        [        [        U4   4   nU R	                  UR
                  [        [        [        U4   45        U R	                  UR                  U45        U[        [        [        /4   nU R	                  UR
                  [        [        [        445        U R	                  UR                  S5        U[        S	4   nU R	                  UR
                  [        [        45        U R	                  UR                  S5         " U4S
 jS[        T   5      nU[        [        [        /   nU R	                  UR
                  [        [        [        445        U R	                  UR                  S5        U[        [        [        4   n	U R	                  U	R
                  [        [        [        445        U R	                  U	R                  S5        U R	                  UR
                  U	R
                  5        U R	                  UR                  U	R                  5        U R	                  UR                  U	R                  5        U R	                  X5        U[           n
U R	                  U
R
                  [        445        U R	                  U
R                  S5        U R                  [        S5         U[        [        /[        4     S S S 5        U R                  [        S5         Xq[        4     S S S 5        g ! , (       d  f       GNA= f! , (       d  f       GN$= f! , (       d  f       N\= f! , (       d  f       g = f)Nr   rQ  rv  c                   :   > \ rS rSr% \ Y \4   \S'    Y\S'   Srg),ParamSpecTests.test_user_generics.<locals>.Xi%  r`   r   re   Nrf   rg   rh   ri   r"   r   r  rj   )rQ  r   s   ra   r  r  %  s    3Drd   r  r  r  re   .c                   .   > \ rS rSr% \ Y \4   \S'   Srg),ParamSpecTests.test_user_generics.<locals>.Zi%  r`   re   Nr  )rQ  s   ra   r  r  %  s    3rd   r  )r   rG   r#   r   r   r  r  r  r   r  rH   r  r?  r  )r_   rv  r  r  r  G3G4r  G5G6G7rQ  r   s              @@ra   test_user_generics!ParamSpecTests.test_user_generics%  s,   CLcN	 	1 	 sCx[sCj1**SF3##I/BCcF D##I/CDc3m E sKS))*sKS,A&BC**SF3sS$K sS$K&89**B/sCx[sHo6**B/	 
 	  S$ S$'7&9:**B/sC~S$'7&9:**B/ 	bkk26**B,=,=> sVvi0**B/##I/CDsCj$ E##I/CD4iL EDQ DCDDH EDDDs0   
O O2PP 
O/2
P
P
P#c                   ^^ [        S5      m[        S5      m " UU4S jS[        TT4   5      nU[        [        /[        /4   nU[        /[        [        /4   nU R                  X#5        U R                  UR                  [        [        4[        445        U R                  UR                  [        4[        [        445        g )NrQ  r  c                   D   > \ rS rSr% \ Y \4   \S'   \ Y\4   \S'   Srg)CParamSpecTests.test_multiple_paramspecs_in_user_generics.<locals>.Xi&  r`   r  re   N)	rf   rg   rh   ri   r"   r   r  r  rj   )rQ  r  s   ra   r  r  &  s!    3C  rd   r  )rG   r#   r   r  r  r   r   r  )r_   r  r  r  rQ  r  s       @@ra   )test_multiple_paramspecs_in_user_generics8ParamSpecTests.test_multiple_paramspecs_in_user_generics	&  s    cNt_	! 	!2 	! SzE7"#usEl"#B#SzE8&<=vU|&<=rd   c                   ^^ [        S5      m[        S5      m " UU4S jS[        / TQTP7   5      nU[        [        /4   nU R                  UR                  [        [        445        U[        [        [        /4   nU R                  UR                  [        [        [        445        U[        /   nU R                  UR                  [        445        U/    nU R                  UR                  S5        U R                  [        5         US     S S S 5         " UU4S jS[        T/TQ7   5      nU[        /[        4   nU R                  UR                  [        4[        45        U[        /[        [        4   nU R                  UR                  [        4[        [        45        U[        /   nU R                  UR                  [        445        U/    nU R                  UR                  S5        U R                  [        5         US     S S S 5        g ! , (       d  f       GN= f! , (       d  f       g = f)	Nr_  rQ  c                   F   > \ rS rSr% \ Y \4   \S'   \/  YQ7   \S'   Srg)KParamSpecTests.test_typevartuple_and_paramspecs_in_user_generics.<locals>.Xi&  r`   r  re   N	rf   rg   rh   ri   r"   r   r  r   rj   rQ  r_  s   ra   r  r  &      3SbSzMrd   r  )re   re   c                   F   > \ rS rSr% \ Y \4   \S'   \/  YQ7   \S'   Srg)KParamSpecTests.test_typevartuple_and_paramspecs_in_user_generics.<locals>.Yi*&  r`   r  re   Nr  r  s   ra   r  r  *&  r  rd   r  )
r   rG   r#   r   r  r   r  r  r   r   )	r_   r  r  r  r  r  r  rQ  r_  s	          @@ra   1test_typevartuple_and_paramspecs_in_user_generics@ParamSpecTests.test_typevartuple_and_paramspecs_in_user_generics&  s   $cN	 	Q 	 sUG|_sUHo6sC% !sC%&:;wZxk2rUe,y)bE *	 	B 	 w|_xo6wS !xc&:;wZxk2rUe,y)bE *) *) *)s   HH1
H.1
H?c           
         [        S5      n[        S5      n[        S5      n[        [        R
                  R                  4 H}  nU R                  US9   XA[        / UQ7   4   nU[        [        /[        [        4   nU R                  UR                  [        [        [        [        [        4   45        S S S 5        M      " S S[        X!4   5      nU[        / UQ7   U4   nU[        [        [        [        /4   nU R                  UR                  [        [        [        4   [        [        445         " S S[        X4   5      nX[        / UQ7   4   nU[        [        /[        [        4   nU R                  UR                  [        [        4[        [        [        4   45        g ! , (       d  f       GM  = f)	NrQ  r   r_  )r  c                       \ rS rSrSrg)MParamSpecTests.test_typevartuple_and_paramspecs_in_generic_aliases.<locals>.XiD&  re   Nr}   re   rd   ra   r  r  D&  rD  rd   r  c                       \ rS rSrSrg)MParamSpecTests.test_typevartuple_and_paramspecs_in_generic_aliases.<locals>.YiK&  re   Nr}   re   rd   ra   r  r  K&  rD  rd   r  )rG   r   r   r"   r  r  rt   r   r   r  r  r  r   r  r#   )	r_   rQ  r   r_  r}  r  r  r  r  s	            ra   3test_typevartuple_and_paramspecs_in_generic_aliasesBParamSpecTests.test_typevartuple_and_paramspecs_in_generic_aliases9&  sk   cNCL$;??333Aa(ssm$sCj%./  c3eUl8K-LM )( 4	 	 eCRCj!meUS#J&'eE5L&9C;%GH	 	 ssmsCj%&'sCk53F%GH# )(s   A#F11
G	c                    [        S5      nUR                  nU R                  U" [        [        45      [        [        45        U R                  U" [        [        /5      [        [        45        U R                  U" S /5      [        S 5      45        U R                  U" S5      S5        U R                  U" U5      U5        U R                  U" [        [        U4   5      [        [        U4   5        g )NrQ  .)rG   r  r   r   r  r   r   rH   )r_   rQ  r  s      ra   r  $ParamSpecTests.test_var_substitutionR&  s    cN""Sz*S#J7Sz*S#J7vd6eCj#&eAh"{3623[a5HIrd   c                    [        S5      n[        S5      nS[        S U[        [        -  [        [        [        4   4nU H  nU R                  US9   U R                  [        5         UR                  U5        S S S 5        U R                  [        5         [        R                  X!4   U[        4     S S S 5        U R                  [        5         [        R                  R                  X!4   U[        4     S S S 5        S S S 5        M     g ! , (       d  f       N= f! , (       d  f       Nq= f! , (       d  f       N== f! , (       d  f       GM  = f)Nr   rQ  r   r'  )r   rG   r   r  r   rt   r   r   r  r\   r"   r  r  )r_   r   rQ  r"  r$  s        ra   r#  (ParamSpecTests.test_bad_var_substitution\&  s    CLcNT1c#guS#X?C#&&&y1&&s+ 2&&y1OOAD)#s(3 2&&y1OO,,QT238< 2 '& 111111 '&sT   E)D;ED!6E(D2;E
DE!
D/+E2
E <E
E	c                    [        S5      n[        S5      n[        S5      n[        S5      n[        S5      n " S S[        U   5      nXa   nU R	                  UR
                  U45        U R	                  UR                  U445        U R	                  U[           U[           5        Xa/   nU R	                  UR
                  U45        U R	                  UR                  U445        U R	                  U[           U[           5        U[        U/   n	U R	                  U	R
                  U45        U R	                  U	R                  [        U445        U R	                  U	[           U[        [        /   5        Xa[        U/   n
U R	                  U
R
                  X45        U R	                  U
R                  U[        U445        U R	                  U
[        [        4   U[        [        [        /   5        U/ UQ[        P   nU R	                  UR
                  U45        U R	                  UR                  / UQ[        P745        U R	                  U[        [        4   U[        [        [        /   5        U[        /UQ   nU R	                  UR
                  U45        U R	                  UR                  [        /UQ745        U R	                  U[        [        4   U[        [        [        /   5        Xa/UQ   nU R	                  UR
                  X45        U R	                  UR                  U/UQ745        U R	                  U[        [        [        4   U[        [        [        /   5        XaU/   nU R	                  UR
                  U45        U R	                  UR                  X445        U R	                  U[           U[        [        /   5        Xa[        U   /   nU R	                  UR
                  U45        U R	                  UR                  U[        U   445        U R	                  U[           U[        [        [           /   5        U[        / UQ7   /UQ   nU R	                  UR
                  U45        U R	                  UR                  [        / UQ7   /UQ745        U R	                  U[        [        4   U[        [        [        4   [        [        4   5        Xd   nU R	                  UR
                  U45        U R	                  UR                  U45        U R	                  U[        [        /   U[        [        /   5         " S S	[        X44   5      nUX44   nU R	                  UR
                  X445        U R	                  UR                  X445        U R	                  U[        [        /[        /4   U[        [        /[        /4   5        U R	                  U/ / 4   U/ / 4   5        U[        [        /U4   nU R	                  UR
                  U45        U R	                  UR                  [        [        4U45        U R	                  U[        [        /   U[        [        /[        [        /4   5        U R	                  U/    U[        [        // 4   5        UU[        [        /4   nU R	                  UR
                  U45        U R	                  UR                  U[        [        445        U R	                  U[        [        /   U[        [        /[        [        /4   5        U R	                  U/    U/ [        [        /4   5        UU[        /[        U/4   nU R	                  UR
                  X45        U R	                  UR                  U[        4[        U445        U R	                  U[        [        4   U[        [        /[        [        /4   5        U/ UQ[        P[        U/4   nU R	                  UR
                  XR45        U R	                  UR                  / UQ[        P7[        U445        U R	                  U[        [        [        4   U[        [        [        /[        [        /4   5        UU[        /[        /UQ4   nU R	                  UR
                  X45        U R	                  UR                  U[        4[        /UQ745        U R	                  U[        [        [        4   U[        [        /[        [        [        /4   5         " S
 S[        X14   5      nUX14   nU R	                  UR
                  X145        U R	                  UR                  X145        U R	                  U[        [        /[        4   U[        [        /[        4   5        U[        U/U4   nU R	                  UR
                  U45        U R	                  UR                  [        U4U45        U R	                  U[           U[        [        /[        4   5        U[        /UQU4   nU R	                  UR
                  XQ45        U R	                  UR                  [        /UQ7U45        U R	                  U[        [        [        4   U[        [        [        /[        4   5        g )Nr   r  rQ  r  r_  c                       \ rS rSrSrg)DParamSpecTests.test_type_var_subst_for_other_type_vars.<locals>.Baseip&  re   Nr}   re   rd   ra   rQ  r  p&  rD  rd   rQ  c                       \ rS rSrSrg)GParamSpecTests.test_type_var_subst_for_other_type_vars.<locals>.DoublePi&  re   Nr}   re   rd   ra   DoublePr  &  rD  rd   r  c                       \ rS rSrSrg)EParamSpecTests.test_type_var_subst_for_other_type_vars.<locals>.PandTi&  re   Nr}   re   rd   ra   PandTr  &  rD  rd   r  )r   rG   r   r#   r   r  r  r   r  r  r  r   r  r  )r_   r   r  rQ  r  r_  rQ  A1r  A3A4A5A5_2A6A7A8A9A10r  B1B2B3B4B5B6r  r  r  r  s                                ra   'test_type_var_subst_for_other_type_vars6ParamSpecTests.test_type_var_subst_for_other_type_varsi&  s'	   CLT]cNt_$	71: 	 W**QD1tg.C$s),#Y**QD1tg.C$s),3(^**QD1Qxk2C$Sz"23c2,**QG43|o6CIc3-=(>?*B****RE2zzSzm4CIc4-=(>?SJ2J,,re4#6c4i$S$/?*@A(r(^**QG4xBxk2CdN+T3T2B-CDa&\**QD1vi0C$Sz"23d1g,**QD147|o6C$T#Y'7"895":##$**RE2crc
'8R'8&:;CHtE#s(OS#,E'FGh++bU3u-c3Z$Sz*:;	gaen 	 QU^**QG4qg.S#J./#tf9L1MNBFWRV_5c3Z^$**RE2Sz2&67T4L)7C#;t3L+MNB#b!9:Qt_%**QD1q4,&78S#J#tTl1J)KLBdD\)9!:;aXbz)***QG43x$&<=CJ#sdE]1J)KLZrZ3Z$+,**RH5zzSzD":&>?C-. #uc!2T5M!AB	D aX{r{*+**QG43x$&=>C-. #sdE5-A!AB	D	GADM 	 14[**QF3qf-S#J,-uc3Z5E/FGC8Q;**QD1Qxm4C%c
C"89C:":q=!**RG4zbz1o6Cu,-uc35Eu5L/MNrd   c                 ~   [        S5      n[        S5      n[        X!4   n[        U   n[        U   n[        U   [
        -  nU R                  UR                  X!45        U R                  UR                  X!45        U R                  UR                  X!45        [        [
        [        /[        4   nU R                  U[
        [        /[        4   [        U   5        U R                  U[
        [        /[        4   [        U   5        U R                  U[
        [        /[        4   [        U   [
        -  5        g )Nr   rQ  )
r   rG   r"   r   r  r   r   r  r  r  )r_   r   rQ  r  r  r  r  r}  s           ra   !test_paramspec_in_nested_generics0ParamSpecTests.test_paramspec_in_nested_generics&  s    CLcNad^"X"X"X^**QF3**QF3**QF3c3Z&'S#J-.Q8S#J-.Q8S#J-.Q#>rd   c                 t   [        S5      n[        S5      n[        U[        4   nU R                  UR                  U45        U R                  X2   R                  U45        U R                  U[
           R                  S5        U R                  U[
        [        4   R                  [        45        U R                  U[        [
        U4      R                  U45        U R                  U[        [        U4      R                  [        U45        U R                  US   R                  S5        [        [        [
        U4   [        4   nU R                  UR                  U45        U R                  XB   R                  U45        U R                  U[
           R                  S5        U R                  U[
        [        4   R                  [        45        U R                  U[        [
        U4      R                  U45        U R                  U[        [        U4      R                  [        U45        g )NrQ  r  re   .)rG   r"   r   r   r  r  r   rH   )r_   rQ  r  r  r  s        ra   test_paramspec_gets_copied)ParamSpecTests.test_paramspec_gets_copied&  s   cNt_af**QD1..6C//4CF22QD9KR01@@2%HK2./>>BHC//4k#q&)3./**QD1..6C//4CF22QD9KR01@@2%HK2./>>BHrd   c                 v   U R                  [        [        S-  5          " S S[        5      nS S S 5        U R                  [        [        S-  5          " S S[        5      nS S S 5        U R                  [        [        S-  5          " S S	[
        5      nS S S 5        [        S
5      nU R                  [        [        S-  5          " S SU5      nS S S 5        U R                  [        [        S-  5          " S SUR                  5      nS S S 5        U R                  [        [        S-  5          " S SUR                  5      nS S S 5        g ! , (       d  f       GN,= f! , (       d  f       GN	= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)NrG   c                       \ rS rSrSrg).ParamSpecTests.test_cannot_subclass.<locals>.Ci'  re   Nr}   re   rd   ra   r}  r  '  r  rd   r}  rI   c                       \ rS rSrSrg).ParamSpecTests.test_cannot_subclass.<locals>.Di'  re   Nr}   re   rd   ra   r  r  '  r(
  rd   r  rJ   c                       \ rS rSrSrg).ParamSpecTests.test_cannot_subclass.<locals>.Ei'  re   Nr}   re   rd   ra   r  r  '  r  rd   r  rQ  c                       \ rS rSrSrg).ParamSpecTests.test_cannot_subclass.<locals>.Fi'  re   Nr}   re   rd   ra   r  r  '  r   rd   r  c                       \ rS rSrSrg).ParamSpecTests.test_cannot_subclass.<locals>.Gi'  re   Nr}   re   rd   ra   r  r  '  r  rd   r  c                       \ rS rSrSrg).ParamSpecTests.test_cannot_subclass.<locals>.Hi'  re   Nr}   re   rd   ra   r  r  '  r#  rd   r  )	r  r   r  rG   rI   rJ   r  r   r   )r_   r}  r  r  rQ  r  r  r  s           ra   r  #ParamSpecTests.test_cannot_subclass	'  s/   ##I/LM$I$ N##I/PQ(M( R##IAR/RS*O* TcN##I(;68A8 ##I(?:<!AFF!< ##I(+<<>#AHH#> > NMQQSS8 8< <> >sG   EE%E7F9F4F*
E"%
E47
F
F
F'*
F8re   N)rf   rg   rh   ri   r  r  rs  ry  r  r  r  r  r  r  r#  r  r  r  r  rj   re   rd   ra   rk  rk  %  sU    1*4"5&

4l> DI2J=wOr?$I*$rd   rk  c                   2    \ rS rSrS rS rS rS rS rSr	g)	ConcatenateTestsi'  c                 n    [        S5      n " S S5      n[        X!4   nU R                  U[        5        g )NrQ  c                       \ rS rSrSrg)-ConcatenateTests.test_basics.<locals>.MyClassi'  re   Nr}   re   rd   ra   r  r  '  r  rd   r  )rG   rH   r   )r_   rQ  r  r  s       ra   rq  ConcatenateTests.test_basics'  s-    cN
#A{+rd   c                     [        S5      n[        [        [        [        U4   5      5      nS H,  nU R                  US9   U R                  X25        S S S 5        M.     g ! , (       d  f       M@  = f)NrQ  r?  r@  )rG   rB  rC  rH   r   rt   rD  )r_   rQ  rF  rA  s       ra   rG  ConcatenateTests.test_dir#'  s\    cNKQ/01	
M M:m7 ;:
 ;:s   A  
A/	c                    [        S5      n[        S5      n[        [        [        U4   [        4   nU R                  UR                  [        [        U4   [        45        U R                  UR                  U45        [        [        [        X!4   U4   nU R                  UR                  [        [        X!4   U45        U R                  UR                  X!45        [        R                  R                  [        [        U4   [        4   nU R                  UR                  [        [        U4   [        45        U R                  UR                  U45        [        R                  R                  [        [        X!4   U4   nU R                  UR                  [        [        X!4   U45        U R                  UR                  X!45        g rq  )
rG   r   r"   rH   r   r   r  r  r  r  rr  s          ra   rs   ConcatenateTests.test_valid_uses,'  sr   cNCLk#q&)3./{36':C&@A**QD1k#q),a/0{39'=q&AB**QF3 __%%k#q&&93&>?{36':C&@A**QD1__%%k#q)&<a&?@{39'=q&AB**QF3rd   c                     U R                  [        S5         [        S     S S S 5        U R                  [        S5         [        [             S S S 5        g ! , (       d  f       N;= f! , (       d  f       g = f)NzConcatenate of no typesre   zLThe last parameter to Concatenate should be a ParamSpec variable or ellipsis)r  r   rH   r   r   s    ra   test_invalid_uses"ConcatenateTests.test_invalid_uses>'  s_    ##I/HIO J##1
 
 
 JI
 
s   
AA'
A$'
A5c                    [        S5      n[        S5      n[        S5      n[        X4   nU R                  U[        U4   [        [        U4   5        U R                  U[        [
        [        /4   [        [
        [        45        U R                  U[        / 4   [        45        U R                  U[        [        [
        U4   4   [        [        [
        U4   5        U R                  U[        S4   [        [        S4   5        [        [        U4   nU R                  XC   [        [        U4   5        U R                  U[
        [        /   [        [
        [        45        U R                  U[
        [        4   [        [
        [        45        U R                  U/    [        45        U R                  U[        [
        U4      [        [        [
        U4   5        U R                  US   [        [        S4   5        g )Nr   rQ  r  .)r   rG   rH   r   r   r  r  )r_   r   rQ  r  r}  s        ra   r  &ConcatenateTests.test_var_substitutionJ'  s   CLcNt_37[b%9:3e,-S%/@A37cV,3CG 445$S#r\2	438k#s(&;<QCG 45C<3U*;<3:c5(9:2';sBw/0+c3l2KL3S#X!67rd   re   N)
rf   rg   rh   ri   rq  rG  rs  r  r  rj   re   rd   ra   r  r  '  s    ,84$
8rd   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TypeGuardTestsi^'  c                    [         [             S[         [           4S jnU R                  [        U5      S[         [           05        U R	                  [
        5         [         [        [        4     S S S 5        g ! , (       d  f       g = f)Nr%  c                     g r[   re   r'  s    ra   rX  'TypeGuardTests.test_basics.<locals>.foob'  r	  rd   )rK   r   r   r1  r   r   r  rT  s     ra   rq  TypeGuardTests.test_basics_'  sX    #+	#+SHin#=>y)c3h *))   A::
Bc                 N   U R                  [        [        5      S5        [        [           nU R                  [        U5      S5        [        [           nU R                  [        U5      S[
        -  5        [        [        [              nU R                  [        U5      S5        g )Nztyping.TypeGuardztyping.TypeGuard[int]ztyping.TypeGuard[%s.Employee]ztyping.TypeGuard[tuple[int]])r   r   rK   r   r{   rf   ri  r'  s     ra   r   TypeGuardTests.test_reprh'  s|    i*<=s^b#:;x b#BX#MNuSz"b#ABrd   c           	      L   U R                  [        [        5          " S S[        [        5      5      nS S S 5        U R                  [        [        5          " S S[        [        [
           5      5      nS S S 5        U R                  [        S5          " S S[        5      nS S S 5        U R                  [        S5          " S	 S
[        [
           5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)Nc                       \ rS rSrSrg).TypeGuardTests.test_cannot_subclass.<locals>.Cis'  re   Nr}   re   rd   ra   r}  r  s'  r  rd   r}  c                       \ rS rSrSrg).TypeGuardTests.test_cannot_subclass.<locals>.Div'  re   Nr}   re   rd   ra   r  r  v'  r  rd   r  z!Cannot subclass typing\.TypeGuardc                       \ rS rSrSrg).TypeGuardTests.test_cannot_subclass.<locals>.Eiz'  re   Nr}   re   rd   ra   r  r  z'  r  rd   r  z(Cannot subclass typing\.TypeGuard\[int\]c                       \ rS rSrSrg).TypeGuardTests.test_cannot_subclass.<locals>.Fi~'  re   Nr}   re   rd   ra   r  r  ~'  r  rd   r  )r  r   r  r   rK   r   r3  s        ra   r  #TypeGuardTests.test_cannot_subclassq'  s    ##I/CDDO  E ##I/CDD3(  E ##I$HJI J ##I$OQIcN Q Q ED EDJ JQ Qr5  c                    U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        U R                  [        5         [        [        [        [
              5      " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr[   )r   r   rK   r   r   r   r   s    ra   r  TypeGuardTests.test_cannot_init'  sx    y)K *y)O *y)8C=)*, *)	 *)))))r9  c                    U R                  [        5         [        S[        [           5        S S S 5        U R                  [        5         [        [        [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr  )r   r   r   rK   r   r   r   s    ra   r  !TypeGuardTests.test_no_isinstance'  sS    y)q)C.) *y)sI& *) *)))r=  re   Nr>  re   rd   ra   r  r  ^'  s     C -'rd   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TypeIsTestsi'  c                    [         [             S[         [           4S jnU R                  [        U5      S[         [           05        U R	                  [
        5         [         [        [        4     S S S 5        g ! , (       d  f       g = f)Nr%  c                     g r[   re   r'  s    ra   rX  $TypeIsTests.test_basics.<locals>.foo'  rf  rd   )rL   r   r   r1  r   r   r  rT  s     ra   rq  TypeIsTests.test_basics'  sX    s(s(SHfSk#:;y)38 *))r  c                 N   U R                  [        [        5      S5        [        [           nU R                  [        U5      S5        [        [           nU R                  [        U5      S[
        -  5        [        [        [              nU R                  [        U5      S5        g )Nztyping.TypeIsztyping.TypeIs[int]ztyping.TypeIs[%s.Employee]ztyping.TypeIs[tuple[int]])r   r   rL   r   r{   rf   ri  r'  s     ra   r   TypeIsTests.test_repr'  s{    f7C[b#78Hb#?(#JKE#Jb#>?rd   c           	      L   U R                  [        [        5          " S S[        [        5      5      nS S S 5        U R                  [        [        5          " S S[        [        [
           5      5      nS S S 5        U R                  [        S5          " S S[        5      nS S S 5        U R                  [        S5          " S	 S
[        [
           5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)Nc                       \ rS rSrSrg)+TypeIsTests.test_cannot_subclass.<locals>.Ci'  re   Nr}   re   rd   ra   r}  r  '  r  rd   r}  c                       \ rS rSrSrg)+TypeIsTests.test_cannot_subclass.<locals>.Di'  re   Nr}   re   rd   ra   r  r
  '  r  rd   r  zCannot subclass typing\.TypeIsc                       \ rS rSrSrg)+TypeIsTests.test_cannot_subclass.<locals>.Ei'  re   Nr}   re   rd   ra   r  r  '  r  rd   r  z%Cannot subclass typing\.TypeIs\[int\]c                       \ rS rSrSrg)+TypeIsTests.test_cannot_subclass.<locals>.Fi'  re   Nr}   re   rd   ra   r  r  '  r  rd   r  )r  r   r  r   rL   r   r3  s        ra   r   TypeIsTests.test_cannot_subclass'  s    ##I/CDDL  E ##I/CDD%  E ##I$EGF G ##I$LNF3K N N ED EDG GN Nr5  c                    U R                  [        5         [        5         S S S 5        U R                  [        5         [        [        5      " 5         S S S 5        U R                  [        5         [        [        [        [
              5      " 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       N`= f! , (       d  f       g = fr[   )r   r   rL   r   r   r   r   s    ra   r  TypeIsTests.test_cannot_init'  sw    y)H *y)LN *y)&') *)	 *)))))r9  c                    U R                  [        5         [        S[        [           5        S S S 5        U R                  [        5         [        [        [        5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = fr  )r   r   r   rL   r   r   r   s    ra   r  TypeIsTests.test_no_isinstance'  sS    y)q&+& *y)sF# *) *)))r=  re   Nr>  re   rd   ra   r  r  '  s    @ *$rd   r  SpecialAttrsPSpecialAttrsTc                   L    \ rS rSrS r\R                  " S\5      rS r	S r
Srg)SpecialAttrsTestsi'  c           	         0 [         R                  S_[         R                  S_[         R                  S_[         R                  S_[         R
                  S_[         R                  S_[         R                  S_[         R                  S_[         R                  S	_[         R                  S
_[         R                  S_[         R                  S_[         R                  S_[         R                  S_[         R                  S_[         R                   S_[         R"                  S_0 [         R$                  S_[         R&                  S_[         R(                  S_[         R*                  S_[         R,                  S_[         R.                  S_[         R0                  S_[         R2                  S_[         R4                  S_[         R6                  S_[         R8                  S_[         R:                  S_[         R<                  S_[         R>                  S_[         R@                  S _[         RB                  S!_[         RD                  S"_E0 [         RF                  S#_[         RH                  S$_[         RJ                  S%_[         RL                  S&_[         R                  [N           S_[         R                  [N        [N        4   S_[         R                  [N        [N        4   S_[         R                  [N           S_[         R
                  [N           S_[         R                  [N           S_[         R                  / [N        4   S_[         R                  S'[N        4   S_[         R                  [N        [N        4   S	_[         R                  [N           S
_[         R                  [N           S_[         R                  [N        [N        4   S_[         R                  [N        [N        [N        4   S_E0 [         R                  [N           S_[         R                  [N        [N        4   S_[         R                   [N           S_[         R"                  [N        [N        4   S_[         R$                  [N           S_[         R&                  [N        [N        [N        4   S_[         R*                  [N        [N        4   S_[         R,                  [N           S_[         R.                  [N           S_[         R0                  [N           S_[         R2                  [N           S_[         R4                  [N        [N        4   S_[         R6                  [N           S_[         R8                  [N        [N        4   S_[         R:                  [N           S_[         R<                  [N           S_[         R>                  [N        [N        4   S_E0 [         R@                  [N           S _[         RB                  [N           S!_[         RD                  [N           S"_[         RH                  [N           S$_[         RH                  [N        S'4   S$_[         RJ                  [N           S%_[         RL                  [N           S&_[         RP                  S(_[         RN                  S)_[         RR                  S*_[         RT                  S+_[         RV                  S,_[         RX                  S-_[         RZ                  S._[         R\                  S/_[         R^                  S0_[         R`                  S1_E0 [         Rb                  S2_[         Rd                  S3_[         Rf                  S4_[         Rh                  S5_[         Rj                  S6_[         Rl                  S7_[         Rn                  S8_[         RP                  [N        S94   S(_[         RP                  [p        S94   S(_[         RR                  [N           S*_[         RT                  [N        [r        4   S+_[         RV                  [N           S,_[         RZ                  [N           S._[         RZ                  S:   S._[         RZ                  S;   S._[         Rb                  [N           S2_[         Rf                  [N           S4_E[         Rh                  [N           S5[         Rl                  [N           S)[         Rl                  [p        [t        4   S70EnURw                  5        H  u  p#U Ry                  US<9   U R{                  UR|                  U[        U5      5        U R{                  UR                  U[        U5      5        U R{                  UR                  S=[        U5      5        [        [        R                  S>-   5       H@  n[        R                  " X$5      n[        R                  " U5      nU R                  X&5        MB     S S S 5        M     g ! , (       d  f       GM  = f)?Nr  r  r  r  r
  r  r  r"   r  r  r  r
  r  r  r  r  r    rK  r  r  	ItemsViewr  r  KeysViewr   r	  MappingViewr!   r  r  rI  r
  r  r  r.  r   r7   
ValuesView.rB   r   r$   rH   r%   rC   r   rW  r   r   r   rF   rK   rL   r   r   rD   
Annotationr
  r  r&  r\   rm   )Hr\   r  r  r  r  r
  r  r  r"   r  r  r  r
  r  r  r  r  r    rK  r  r  r  r  r  r  r   r	  r  r!   r  r  rI  r
  r  r  r.  r   r7   r  r   rB   r$   rH   r%   rC   r   rW  r   r   r   rF   rK   rL   r   r   rD   r   r  r  r  rt   r   rf   r  rh   rg   rq   rr   rs   r  r  r   )r_   cls_to_checkr'  r0  rp   r   r  s          ra   rj  $SpecialAttrsTests.test_special_attrs'  s
   s
s
 &&(=s
 !!#3	s

   /s
   /s
 ks
 |s
 OOZs
 OOZs
 |s
 ks
 !!#3s
 ks
 NNIs
  !s
" LL'#s
$ KK%s
& k's
( k)s
* OOZ+s
, k-s
. OOZ/s
0 OOZ1s
2 OOZ3s
4 KK5s
6 NNI7s
8 9s
: !!#3;s
< ""$5=s
> |?s
@ As
B |Cs
D OOZEs
F JJGs
H LL'Is
J LL'Ks
L KKMs
N |Os
R s#]Ss
T &&sCx02GUs
V !!#s(+-=Ws
X   %Ys
Z   %[s
\ S!;]s
^ OOBG$j_s
` OOCH%zas
b OOCH%zcs
d c"Les
f S!;gs
h !!#s(+-=is
j S#s]+[ks
l NN3ms
n sCx(-os
p LLwqs
r KKS!6ss
t S!;us
v S#s]+[ws
x S#X&ys
z OOC *{s
| OOC *}s
~ OOC *s
@ KKfAs
B NN38$iCs
D s#]Es
F !!#s(+-=Gs
H ""3'):Is
J c"LKs
L sCx(-Ms
N c"LOs
P OOC *Qs
R JJsOUSs
T LLwUs
V LLc"GWs
X KKfYs
Z c"L[s
^ k_s
` JJas
b OOZcs
d es
f LL'gs
h |is
j NNIks
l NNIms
n OOZos
p LL'qs
r OOZss
t kus
v kws
x MM8ys
z NNI{s
| LL'}s
~ KKs
B S,./Cs
D S,./Es
F OOC *Gs
H sM12MIs
J LLwKs
L NN3Ms
N NN4 )Os
P NN7#YQs
R OOC *Ss
T S!;Us
V MM#LLuLLe$g[s
j &++-IC#&  tSX>  !1!14SB  3s8D"6#:#:Q#>?ES0A#\\!_FMM#. @	 '& .&&s   'Cg
g	SpecialAttrsTests.TypeNamec                    [         R                  " S5      nU R                  [        US5      5        U R                  [        US5      5        U R	                  UR
                  S5        [        [        R                  S-   5       H7  nU R                  [        5         [        R                  " X5        S S S 5        M9     U R	                  [        R                  R                  S5        U R	                  [        R                  R                  S5        U R	                  [        R                  R
                  [        5        [        [        R                  S-   5       H^  n[        R                  " [        R                  U5      n[        R                   " U5      nU R#                  [        R                  U5        M`     U R	                  [$        R                  S5        U R                  [        [$        S5      5        U R	                  [$        R
                  [        5        [        [        R                  S-   5       HJ  n[        R                  " [$        U5      n[        R                   " U5      nU R#                  [$        U5        ML     U R	                  [&        R                  S	5        U R                  [        [&        S5      5        U R	                  [&        R
                  [        5        [        [        R                  S-   5       HJ  n[        R                  " [&        U5      n[        R                   " U5      nU R#                  [&        U5        ML     g ! , (       d  f       GM  = f)
Nzset[Any]rf   rh   r\   rm   TypeNamer   r  r  )r\   rC   r   r	  r   rg   rq   rr   rs   r   r   r  r  r"  rf   rh   r  r   r  r  )r_   r  rp   r   r  s        ra   test_special_attrs2%SpecialAttrsTests.test_special_attrs2J(  s^    z*Z01^451622Q67E""9-R' .- 8 	*33<<jI&&33(	
 	&&11	

 622Q67E.77?A\\!_FMM+44f= 8 	//A?@118<622Q67E]E2A\\!_FMM-0 8
 	//A?@118<622Q67E]E2A\\!_FMM-0 8G .-s   M
M+	c                     " S S[         [           5      n[        [        U[           5      5      nS H,  nU R                  US9   U R                  X25        S S S 5        M.     U R                  SU5        g ! , (       d  f       MR  = f)Nc                   "    \ rS rSrS rSrSrSrg)4SpecialAttrsTests.test_genericalias_dir.<locals>.Fooi}(  c                     g r[   re   r   s    ra   r_  8SpecialAttrsTests.test_genericalias_dir.<locals>.Foo.bar~(  rR  rd   r  r  re   N)rf   rg   rh   ri   r_  r  	__magic__rj   re   rd   ra   r   r'  }(  s    CIrd   r   )r_  r  r  r  r  r@  r*  )r#   r   rB  rC  r   rt   rD  rz	  )r_   r   rF  rA  s       ra   test_genericalias_dir'SpecialAttrsTests.test_genericalias_dir|(  sq    	'!* 	 CH&	
M M:m7 ;:	
 	i0 ;:s   A77
B	re   N)rf   rg   rh   ri   rj  r\   rW  r   r"  r#  r+  rj   re   rd   ra   r  r  '  s'    ~/@ ~~:C@H01d1rd   r  c                       \ rS rSrS rSrg)RevealTypeTestsi(  c                     [        5       n[        5        nU R                  U[        U5      5        S S S 5        U R	                  WR                  5       S5        g ! , (       d  f       N/= f)NzRuntime type is 'object'
)r  rN   r   r2   r   getvalue)r_   rU  stderrs      ra   test_reveal_type RevealTypeTests.test_reveal_type(  sJ    h&MM#{3/0 *,HI s   A
A(re   N)rf   rg   rh   ri   r2  rj   re   rd   ra   r.  r.  (  s    Jrd   r.  c                   &    \ rS rSrS rS rS rSrg)DataclassTransformTestsi(  c           
         SSS.S[         S[         4S jjn[        SSS9" U5      n " S S	5      nU R                  X!5        U R                  UR                  SSSSS
0 S.5        U R                  U" SSS9" U5      U5        g )NFTfrozenkw_onlyr8  r9  c                     S $ )Nc                     U $ r[   re   r&  s    ra   r&  NDataclassTransformTests.test_decorator.<locals>.create_model.<locals>.<lambda>(  s    srd   re   r7  s     ra   create_model<DataclassTransformTests.test_decorator.<locals>.create_model(  s    ""rd   )kw_only_defaultorder_defaultc                        \ rS rSr% \\S'   Srg)=DataclassTransformTests.test_decorator.<locals>.CustomerModeli(  r  re   Nr)  re   rd   ra   CustomerModelrB  (      Grd   rC  re   
eq_defaultr@  r?  frozen_defaultfield_specifiersr   )r  r3   r   r   __dataclass_transform__)r_   r=  	decoratedrC  s       ra   test_decorator&DataclassTransformTests.test_decorator(  s    +0$ 	#D 	#4 	# (ERS_`		 	 	i.--"!&#'"'$&
	
 	T51-@	
rd   c           
           " S S5      n[        SSSS9" U5      n " S SUSS9nU R                  X!5        U R                  UR                  SSSSS	S
S0S.5        U R	                  X25        g )Nc                   *    \ rS rSrSS.S\4S jjrSrg):DataclassTransformTests.test_base_class.<locals>.ModelBasei(  Fr8  r8  c                    g r[   re   )r'  r8  s     ra   r  LDataclassTransformTests.test_base_class.<locals>.ModelBase.__init_subclass__(  s    rd   re   N)rf   rg   rh   ri   r  r  rj   re   rd   ra   	ModelBaserO  (  s    9>D$DDrd   rS  T)rF  r@  make_everything_awesomec                        \ rS rSr% \\S'   Srg)>DataclassTransformTests.test_base_class.<locals>.CustomerModeli(  r  re   Nr)  re   rd   ra   rC  rV  (  rD  rd   rC  rP  Fre   rT  rE  )r3   r   r   rI  r;  )r_   rS  	DecoratedrC  s       ra   test_base_class'DataclassTransformTests.test_base_class(  s    	E 	E ($(	

 		Id 	 	i+--"!%#("'$&4d;
	
 	m7rd   c           
          " S S5      n " S S[         5      n[        SSU4S9" U5      n " S SUS	9n " S
 SUSS9nU R                  X25        U R                  UR                  SSSSU40 S.5        U R                  XS5        g )Nc                       \ rS rSrSrg)5DataclassTransformTests.test_metaclass.<locals>.Fieldi(  re   Nr}   re   rd   ra   Fieldr\  (  rf  rd   r]  c                   8   ^  \ rS rSrSS.S\4U 4S jjjrSrU =r$ )9DataclassTransformTests.test_metaclass.<locals>.ModelMetai(  Tinitra  c                $   > [         TU ]  XX#5      $ r[   )r   r
  )r'  r0  rS  	namespacera  r   s        ra   r
  ADataclassTransformTests.test_metaclass.<locals>.ModelMeta.__new__(  s     ws%CCrd   re   )rf   rg   rh   ri   r  r
  rj   r   r   s   @ra   	ModelMetar_  (  s    =AD6:D Drd   re  T)r@  rG  rH  c                       \ rS rSrSrg)9DataclassTransformTests.test_metaclass.<locals>.ModelBasei(  re   Nr}   re   rd   ra   rS  rg  (  rw  rd   rS  r  c                        \ rS rSr% \\S'   Srg)=DataclassTransformTests.test_metaclass.<locals>.CustomerModeli(  r  re   Nr)  re   rd   ra   rC  ri  (  rD  rd   rC  Fr`  rE  )r   r3   r   r   rI  r   )r_   r]  re  rW  rS  rC  s         ra   test_metaclass&DataclassTransformTests.test_metaclass(  s    	D 	D (tuh

	 	2)1	IE 	 	i+--"!%#("&%*H
	
 	m7rd   re   N)rf   rg   rh   ri   rK  rX  rj  rj   re   rd   ra   r5  r5  (  s    
4888rd   r5  c                   H    \ rS rSrS rS rS r\S 5       rS r	S r
S rS	rg
)NoDefaultTestsi(  c                     [        [        R                  S-   5       HJ  n[        R                  " [        U5      n[        R
                  " U5      nU R                  [        U5        ML     g r  )rq   rr   rs   r  rM   r  r   )r_   rp   r   r  s       ra   test_picklingNoDefaultTests.test_pickling(  sG    622Q67EY.A\\!_FMM)V, 8rd   c                     U R                  [        [        [        5      " 5       5        U R                  [        5         [        [        5      " S5        S S S 5        g ! , (       d  f       g = fr  )r   rM   r   r   r   r   s    ra   r3  NoDefaultTests.test_constructor(  s=    ii!23y)OA *))s   A
A+c                 B    U R                  [        [        5      S5        g )Nztyping.NoDefault)r   r   rM   r   s    ra   r   NoDefaultTests.test_repr(  rg  rd   c                 L    U R                  [        R                  [        5        g r[   )r   rM   r7  r  r   s    ra   test_docNoDefaultTests.test_doc(  s    i//5rd   c                 ^    U R                  [        R                  [        [        5      5        g r[   )r   rM   r   r   r   s    ra   
test_classNoDefaultTests.test_class)  s    i))4	?;rd   c                 v    U R                  [        5         [        5         S S S 5        g ! , (       d  f       g = fr[   )r   r   rM   r   s    ra   test_no_callNoDefaultTests.test_no_call)  rT  rS  c                    U R                  [        5         S[        l        S S S 5        U R                  [        5         [        R                    S S S 5        U R                  [        5         S[        [        5      l        S S S 5        U R                  [        5         [        [        5      R                    S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nh= f! , (       d  f       g = frA  )r   r  rM   rX  r   r   r   s    ra   test_no_attributes!NoDefaultTests.test_no_attributes	)  s    ~.IM /~.MM / y)"#DO *~.O /. /... *)..s.   CC-C$C5
C
C!$
C25
Dre   N)rf   rg   rh   ri   ro  r3  r   rQ   rv  ry  r|  r  rj   re   rd   ra   rm  rm  (  s4    -
> 6 6<
 rd   rm  c                   $    \ rS rSrSrS rS rSrg)AllTestsi)  zTests for __all__.c                    SSK Jn  U R                  SU5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  S	U5        U R                  S
U5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  SU5        U R                  SU5        g )Nr   )r  r  r  r)   r   r
  r  ior  osr  Textr
  r
  )r\   r  rD  rz	  r  s     ra   test_allAllTests.test_all)  s    'mQ'lA&fa j!$&*+Q/q!q!q!"fa oq)'+rd   c           	         [         R                   H  n[        [         U5        M     [        [         R                  5      n[	        [         5      R                  5        VVs1 s Hs  u  p4X2;   dg  UR                  S5      (       a  M"  UR                  S5      (       a  M:  UR                  5       U:X  a  MP  [        USS 5      [         R                  :X  d  Mq  UiMu     nnnU R                  XR5        g s  snnf )Nr  )r>  _contra_corg   )r\   r  r  rB  r{	  r  r  r2
  upperrf   assertSetEqual)r_   r0  
actual_allr!  r  computed_alls         ra   test_all_exported_names AllTests.test_all_exported_names/)  s    NNDFD! # (
v,,,.
.$!LL%	  JJ9:  GGIN  <.&//A . 	 
 	L5
s   !!C0C0C04C0C0re   N)rf   rg   rh   ri   r7  r  r  rj   re   rd   ra   r  r  )  s    ,,6rd   r  c                   n    \ rS rSr\\\\\4   \\\4   \	\
\\S\4   \\/\4   \\\S4   4rS rS rSrg)TypeIterationTestsiE)  .r   c                    SnU R                    H  nU R                  US9   U R                  [        U5         [	        U5        S S S 5        U R                  [        U5         [        U5        S S S 5        U R                  [        U5         U H  nM     S S S 5        S S S 5        M     g ! , (       d  f       Nm= f! , (       d  f       NT= f! , (       d  f       N== f! , (       d  f       M  = f)Nzobject is not iterabler  )_UNITERABLE_TYPESrt   r  r   r  r  )r_   expected_error_regex	test_typer  s       ra   test_cannot_iterate&TypeIterationTests.test_cannot_iterateT)  s    7//I9-++I7KLO M++I7KLO M++I7KL& ' M .- 0LLLLLL .-sR   CB+C"B<.C
CC+
B95C<
C
C
CC
C-	c                 ~    U R                    H-  nU R                  U[        R                  R                  5        M/     g r[   )r  r   r  r  r  )r_   type_to_tests     ra    test_is_not_instance_of_iterable3TypeIterationTests.test_is_not_instance_of_iterable`)  s,     22L$$\;??3K3KL 3rd   re   N)rf   rg   rh   ri   r   r   r  r   r   r   r   r"   rB   r  r  r  rj   re   rd   ra   r  r  E)  sc    c3hc1fa!c!R%
Mrd   r  c                 V    SS K nUR                  UR                  [        5      5        U$ rM  )doctestaddTestsDocTestSuiter\   )loaderr  patternr  s       ra   
load_testsr  e)  s!    	NN7''/0Lrd   __main__)r  r  collections.abcr   	functoolsr   r   r   r  r  r  r  rr   r  r  unittestr   r   r	   unittest.mockr
   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+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   r  ry  r)  rQ  test.supportrN   rO   rP   rQ   rR   test.support.testcaserS   test.typinganndatarT   rU   rV   r  r  r  rX   ry   r{   r   r   r   r   r   r  r;  rH  rX  r  r  r6  r  r  r|  ri  r  r  r  r9  rz  r  r  r6  rO  r  r  r  r  r  r	  r  r  r(  r,  r0  r3  r6  r8  r:  rA  rC  rH  rJ  rL  r  r"  r@  rT  r  r  r  r  r  r  r  r2  rB  rD  rL  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   
FooGenericr  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r   r1  r  r  r  r  r  r#  rJ  rS  r|  r2  rU  rk  r  r  r  rI  rk  r  r  r  r  r  r
  r  r  r.  r5  rm  r  r  r  rf   re   rd   ra   <module>r     s?      # . . 	     	 
 ) )   5 5 ; ; 8 8   + + 4 4  < < 7 7 ! = =  ,  & 9  I I ' ' ! ( &  I I / / 
     n n 1 T T @ C> 8_ 		 		h 		h 		gw 	F| FR&% &%R-(, -(8%| 8 
| 
&65 65r5> 5>nu2< u2pvE vErA,S	 A,c49n9M A,RVW\]`WaRb A,H+| +B@L @HB', B'J~
< ~
<B.$ .$bTG TGn)' )'Xd dL		?+\ 	?(0, (x=< x=v T3T]	GBFO 	mBF+ $  J   
H H  	ueX 	 	 H  
	u 	   h  k8L k8\5a < a H%+&L +&Z0# 0#fG6, G6T{9\ {9| $6l 6" +0 0 0 < < <S1l S1l!0\ !0H   YCL YCx  env'', %6//4 %   1  
    : j J 
J  	'WcN+,i 	WQZ 	

 
  #..q1  (7E 'iu  IU )5 ) J J, : ,,Y ,,9 ,. .$,.. $V//4 

35Mt  vU| vUr	bT8 bTJ^g, ^gB)?L )?X$% $%NK( KR< Rjp%l p%fI

\ I

X-&L -&`-)| -)`/l /67l 7tK<\ K<\*\ *ZG$\ G$T@8| @8D/'\ /'d/$, /$d   1UGDF1 F1RJl JU8l U8p$ \ $ N,6| ,6^M M@ zF Ov  66!9??s   ] ]:]55]: