Uname:Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64

403WebShell
403Webshell
Server IP : 3.111.61.48  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux ip-10-0-5-176 6.8.0-1057-aws #60~22.04.1-Ubuntu SMP Wed May 27 08:16:59 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.2.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.10/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.10/test/__pycache__/test_typing.cpython-310.pyc
o

�9j���
@sTddlZddlZddlZddlZddlZddlmZmZmZm	Z	ddl
m
Z
mZddlm
Z
mZddlmZmZddlmZmZmZddlmZmZmZddlmZmZmZmZdd	lmZdd
lmZmZmZmZm Z ddlm!Z!m"Z"ddlm#Z#dd
lm$Z$m%Z%ddlm&Z&ddlm'Z'm(Z(ddlm)Z)ddlm*Z*ddlm+Z+m,Z,ddlm-Z-m.Z.m/Z/ddlm0Z0m1Z1ddlm2Z2m3Z3ddlm4Z4ddlm5Z5m6Z6m7Z7m8Z8ddlm9Z9ddl:Z:ddlZddl;Z;ddl<Z<ddl=m>Z>ddl=m?Z?Gdd�de�Z@Gdd�d�ZAGdd �d eA�ZBGd!d"�d"eA�ZCGd#d$�d$eBeC�ZDGd%d&�d&e@�ZEGd'd(�d(e@�ZFGd)d*�d*e@�ZGGd+d,�d,e@�ZHGd-d.�d.e@�ZIGd/d0�d0�ZJGd1d2�d2eJe@�ZKGd3d4�d4eJe@�ZLGd5d6�d6e@�ZMed7eNeO�ZPed8�ZQGd9d:�d:eePeQf�ZRGd;d<�d<eRePeQf�ZSGd=d>�d>e �ZTe"Gd?d@�d@eTe ��ZUGdAdB�dB�ZVGdCdD�dDe �ZWGdEdF�dFe �ZXe"GdGdH�dHeWeXe ��ZYe"GdIdJ�dJe ��ZZGdKdL�dLeZ�Z[GdMdN�dN�Z\GdOdP�dPe+�Z]e"GdQdR�dRe ��Z^GdSdT�dTe@�Z_GdUdV�dVe@�Z`GdWdX�dXe@�ZaGdYdZ�dZe@�ZbGd[d\�d\e@�ZcGd]d^�d^e@�ZdGd_d`�d`e@�ZedaZfzegef�Wneh�y2dbZiYnwdcZidddl=mjZjmkZkmlZlmmZmmnZnddelmoZoGdfdg�dg�ZpGdhdi�diep�ZqGdjdk�dkeq�ZrGdldm�dmee�ZsGdndo�do�ZtGdpdq�dq�ZuGdrds�dse+�ZvGdtdu�due+�ZwGdvdw�dwe+�ZxGdxdy�dye+�Zye,dzd{eNfg�ZzGd|d}�d}e,�Z{Gd~d�de?j|dbd��Z}Gd�d��d�e{ez�Z~Gd�d��d�e,dbd��ZGd�d��d�e>jp�Z�d�eoe�fd�d��Z�z
e�e�����d�Wne��y�Z�ze�j�dd�k�s�J�WYdZ�[�ndZ�[�wwe#Z�Gd�d��d��Z�Gd�d��d�e@�Z�Gd�d��d�e�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�e�5d��Z�e�d�e�e�e��Z�Gd�d��d�e@�Z�Gd�d��d�e@�Z�e�d�k�r�e�dSdS)��N)�TestCase�main�
skipUnless�skip)�copy�deepcopy)�Any�NoReturn)�TypeVar�AnyStr)�T�KT�VT)�Union�Optional�Literal)�Tuple�List�Dict�MutableMapping)�Callable)�Generic�ClassVar�Final�final�Protocol)�cast�runtime_checkable)�get_type_hints)�
get_origin�get_args)�is_typeddict)�
no_type_check�no_type_check_decorator��Type)�NewType)�
NamedTuple�	TypedDict��IO�TextIO�BinaryIO)�Pattern�Match)�	Annotated�
ForwardRef)�	TypeAlias)�	ParamSpec�Concatenate�
ParamSpecArgs�ParamSpecKwargs)�	TypeGuard)�mod_generics_cache)�_typed_dict_helperc@s(eZdZddd�Zddd�Zdd�ZdS)	�BaseTestCaseNcCs8t||�sd||f}|dur|d|7}|�|��dS)Nz%r is not a subclass of %r� : %s��
issubclass�failureException��self�cls�class_or_tuple�msg�message�rD�'/usr/lib/python3.10/test/test_typing.py�assertIsSubclass)�

�zBaseTestCase.assertIsSubclasscCs8t||�rd||f}|dur|d|7}|�|��dS)Nz%r is a subclass of %rr:r;r>rDrDrE�assertNotIsSubclass0rGz BaseTestCase.assertNotIsSubclasscCstjD]}|�qdS�N)�typing�	_cleanups�r?�frDrDrE�clear_caches7s
�zBaseTestCase.clear_cachesrI)�__name__�
__module__�__qualname__rFrHrNrDrDrDrEr9's

r9c@�eZdZdS)�EmployeeN�rOrPrQrDrDrDrErS<�rSc@rR)�ManagerNrTrDrDrDrErV@rUrVc@rR)�FounderNrTrDrDrDrErWDrUrWc@rR)�ManagingFounderNrTrDrDrDrErXHrUrXc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�AnyTestscC�:|�t��tdt�Wd�dS1swYdS�N�*)�assertRaises�	TypeError�
isinstancer�r?rDrDrE�test_any_instance_type_errorN�"�z%AnyTests.test_any_instance_type_errorcC�n|�t��
ttt�Wd�n1swY|�t��ttt�Wd�dS1s0wYdSrI)r]r^r<rSrr`rDrDrE�test_any_subclass_type_errorR��"�z%AnyTests.test_any_subclass_type_errorcC�|�tt�d�dS)Nz
typing.Any)�assertEqual�reprrr`rDrDrE�	test_reprX�zAnyTests.test_reprcCsl|�t��
tdt�Wd�n1swY|�t��
ttWd�dS1s/wYdSr[)r]r^r<r�intr`rDrDrE�test_errors[s�
"�zAnyTests.test_errorscC�~|�t��Gdd�dt�}Wd�n1swY|�t��Gdd�dtt��}Wd�dS1s8wYdS)Nc@rR�z(AnyTests.test_cannot_subclass.<locals>.ANrTrDrDrDrE�AcrUroc@rRrnrTrDrDrDrErofrU�r]r^r�type�r?rorDrDrE�test_cannot_subclassa��"�zAnyTests.test_cannot_subclasscC�j|�t��t�Wd�n1swY|�t��tt��Wd�dS1s.wYdSrIrpr`rDrDrE�test_cannot_instantiatei��"�z AnyTests.test_cannot_instantiatecCs"tjttjttjtdSrI)rJr.rr-r*r`rDrDrE�test_any_works_with_aliasos

z"AnyTests.test_any_works_with_aliasN)
rOrPrQrardrirlrsrvrxrDrDrDrErYLsrYc@�<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
NoReturnTestscCrZr[)r]r^r_r	r`rDrDrE�!test_noreturn_instance_type_errorxrbz/NoReturnTests.test_noreturn_instance_type_errorcCrcrI)r]r^r<rSr	r`rDrDrE�!test_noreturn_subclass_type_error|rez/NoReturnTests.test_noreturn_subclass_type_errorcCrf)Nztyping.NoReturn)rgrhr	r`rDrDrEri�rjzNoReturnTests.test_reprcC�8|�t��
ttWd�dS1swYdSrI)r]r^r	rkr`rDrDrE�test_not_generic��
"�zNoReturnTests.test_not_genericcCrm)Nc@rR�z-NoReturnTests.test_cannot_subclass.<locals>.ANrTrDrDrDrEro�rUroc@rRr�rTrDrDrDrEro�rU�r]r^r	rqrrrDrDrErs�rtz"NoReturnTests.test_cannot_subclasscCrurIr�r`rDrDrErv�rwz%NoReturnTests.test_cannot_instantiateN)	rOrPrQr{r|rir~rsrvrDrDrDrErzvsrzc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�TypeVarTestscC�$td�}|�||�|�|t�dS�Nr)r
rg�assertIsInstance�r?rrDrDrE�test_basic_plain�szTypeVarTests.test_basic_plaincCsBtd�}|�t��td|�Wd�dS1swYdS)Nrr\)r
r]r^r_r�rDrDrE� test_typevar_instance_type_error�s"�z-TypeVarTests.test_typevar_instance_type_errorcCsvtd�}|�t��
tt|�Wd�n1swY|�t��t|t�Wd�dS1s4wYdSr�)r
r]r^r<rkr�rDrDrE� test_typevar_subclass_type_error�s�"�z-TypeVarTests.test_typevar_subclass_type_errorcCs>|�t��tdt�}|Wd�dS1swYdS)N�X)r]r^r
rk�r?r�rDrDrE�test_constrained_error�s
"�z#TypeVarTests.test_constrained_errorcCs�td�}td�}|�||�|�t||�|�t|t||f�|�t||f|�|�t|tft|�|�t|tftt�|�t|tfj|tf�|�t|tfj|f�|�t|tfjt�dS)Nr��Y)	r
�assertNotEqualrgrrk�__args__�__parameters__�assertIs�
__origin__)r?r�r�rDrDrE�test_union_unique�szTypeVarTests.test_union_uniquecCsttd�}|�|dBt|df�|�d|Btd|f�|�t|dB�|td�f�|�td|B�td�|f�dS)Nr��x)r
rgrr r0r�rDrDrE�test_or�s
 zTypeVarTests.test_orcCs(tdtt�}|�t|tft|�dS�Nro)r
�str�bytesr�rrrrDrDrE�test_union_constrained�sz#TypeVarTests.test_union_constrainedcCs||�tt�d�|�tt�d�|�tt�d�|�tt�d�tddd�}|�t|�d�td	dd
�}|�t|�d�dS)Nz~Tz~KTz~VTz~AnyStr�T_coT��	covariantz+T_co�T_contra)�
contravariantz	-T_contra)rgrhrr
rrr
)r?r�r�rDrDrEri�szTypeVarTests.test_reprcCs4|�td�td��|�tdtt�tdtt��dSr�)r�r
rkr�r`rDrDrE�test_no_redefinition�s z!TypeVarTests.test_no_redefinitioncCsD|�t��Gdd�dtd��}Wd�dS1swYdS)Nc@rR)z1TypeVarTests.test_cannot_subclass_vars.<locals>.VNrTrDrDrDrE�V�rUr�r�r]r^r
�r?r�rDrDrE�test_cannot_subclass_vars�s"�z&TypeVarTests.test_cannot_subclass_varscCs@|�t��Gdd�dt�}Wd�dS1swYdS)Nc@rR)z7TypeVarTests.test_cannot_subclass_var_itself.<locals>.VNrTrDrDrDrEr��rUr�r�r�rDrDrE�test_cannot_subclass_var_itself�s"�z,TypeVarTests.test_cannot_subclass_var_itselfcCs:|�t��td��Wd�dS1swYdSr�r�r`rDrDrE�test_cannot_instantiate_vars�rbz)TypeVarTests.test_cannot_instantiate_varscCsv|�t��tddd�Wd�n1swY|�t��tdtttd�Wd�dS1s4wYdS)Nr�r\��bound)r]r^r
r��floatrSr`rDrDrE�test_bound_errors�s�"�zTypeVarTests.test_bound_errorscC�d}t|i�dS)Nz&import typing
T = typing.TypeVar('T')
��exec�r?�coderDrDrE�test_missing__name__�sz!TypeVarTests.test_missing__name__cCs>|�t��tdddd�Wd�dS1swYdS)NrT)r�r�)r]�
ValueErrorr
r`rDrDrE�test_no_bivariant��"�zTypeVarTests.test_no_bivariantc
Cs�td�}dttffD]N}|j|d��>|�t��t||Wd�n1s)wY|�t��t||Wd�n1sDwYWd�n1sSwYq
dS)NrrD��arg)r
rkr��subTestr]r^r�list)r?rr�rDrDrE�test_bad_var_substitution�s������z&TypeVarTests.test_bad_var_substitutionN)rOrPrQr�r�r�r�r�r�r�rir�r�r�r�r�r�r�r�rDrDrDrEr��s"


r�c@�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'S)(�
UnionTestscCstttf}|�|t�dSrI)rrkr�r��r?�urDrDrE�test_basics�zUnionTests.test_basicscCs�|�t��
ttt�Wd�n1swY|�t��
ttt�Wd�n1s/wY|�t��ttttft�Wd�dS1sNwYdSrI)r]r^r<rkrr�r`rDrDrE�test_subclass_error
s��"�zUnionTests.test_subclass_errorcCsltt}|�|t�tttf}tttf}tttf}|�||�|�|t�|�|t�|�|t�dSrI)rrrgrk�objectr�)r?r��u1�u2�u3rDrDrE�test_union_anyszUnionTests.test_union_anycCsTtt}|�|t�tttf}tttf}|�||�|�|t�|�|t�dSrI)rr�rgrkr�)r?r�r�r�rDrDrE�test_union_objectszUnionTests.test_union_objectcCs(tttf}tttf}|�||�dSrI)rrkr�rg)r?r�r�rDrDrE�test_unordered&szUnionTests.test_unorderedcCstt}|�|t�dSrI)rrSr�)r?�trDrDrE�test_single_class_disappears+sz'UnionTests.test_single_class_disappearscCs8tttf}|�|t�|�t|j�|�t|j�dSrI)rrSrVr��assertInr�r�rDrDrE�test_base_class_kept/szUnionTests.test_base_class_keptcCs2tttf}t|tf}|�|ttttf�dSrI)rrkr�rSrg)r?r��vrDrDrE�test_union_union5szUnionTests.test_union_unioncCsR|�tt�d�tttf}|�t|�dt�tttf}|�t|�dt�td�}t|tft}|�t|�tt��ttttf}|�t|�d�tttt	t
tff}|�t|�d�tttB}|�t|�d�tdt
f}|�t|�d�tt
df}|�t|�d�tdt
tf}|�t|�d	�tt
}|�t|�d�dS)
Nztyping.Unionztyping.Union[%s.Employee, int]ztyping.Union[int, %s.Employee]rz#typing.Union[typing.List[int], int]z)typing.Union[list[int], dict[str, float]]ztyping.Union[int, float]ztyping.Optional[str]z typing.Union[NoneType, str, int])
rgrhrrSrkrOr
rr��dictr�r�r)r?r�rrDrDrEri:s,zUnionTests.test_reprcCs�|�t��Gdd�dt�}Wd�n1swY|�t��Gdd�dtt��}Wd�n1s7wY|�t��Gdd�dtttf�}Wd�dS1sYwYdS)Nc@rR�z*UnionTests.test_cannot_subclass.<locals>.CNrTrDrDrDrE�CUrUr�c@rRr�rTrDrDrDrEr�XrUc@rRr�rTrDrDrDrEr�[rU)r]r^rrqrkr��r?r�rDrDrErsSs��"�zUnionTests.test_cannot_subclasscCs�|�t��t�Wd�n1swY|�t��
tt��Wd�n1s-wYtttf}|�t��|�Wd�n1sKwY|�t��t|��Wd�dS1sfwYdSrI)r]r^rrqrkr�r�rDrDrErv^s���"�z"UnionTests.test_cannot_instantiatecCs�|�tttjtftk�|�tttjtftjtk�|�ttttjtfj�|�tjttttjtfj�dSrI)�assertFalserr�rJ�Iterablerkr�r�r`rDrDrE�test_union_generalizationis"&z$UnionTests.test_union_generalizationcCsb|�tt�|�tt�|�tt�|�tt�|�dgt�|�ttj�|�ttjt�dSrI)	r�rr�rrrrJ�Mappingrr`rDrDrE�test_union_compare_otherosz#UnionTests.test_union_compare_othercCs$tt}ttdf}|�||�dSrI)rrkrrg)r?�or�rDrDrE�
test_optionalx�zUnionTests.test_optionalcC�8|�t��
tdWd�dS1swYdS�NrD)r]r^rr`rDrDrE�
test_empty}rzUnionTests.test_emptycCs2tttf}d|fdd�}|�t|�d|�dS)Nr�cS�dSrIrD�r�rDrDrErM��z(UnionTests.test_no_eval_union.<locals>.f)rrkr�r�r)r?r�rMrDrDrE�test_no_eval_union�szUnionTests.test_no_eval_unioncCs*dtfdd�}|�tt|tf�d�dS)N�returncSr�rIrDrDrDrDrE�fun�r�z0UnionTests.test_function_repr_union.<locals>.funztyping.Union[fun, int])rkrgrhr)r?r�rDrDrE�test_function_repr_union�sz#UnionTests.test_function_repr_unioncCstttf}|dSrI)rr�r-rrrDrDrE�test_union_str_pattern�sz!UnionTests.test_union_str_patterncs4ddlm�t�tf�fdd�}t|tfdS)Nr��Elementcs�|�SrIrD)�argsr�rDrE�Elem��z#UnionTests.test_etree.<locals>.Elem)�xml.etree.ElementTreer�rr�)r?r�rDr�rE�
test_etree�szUnionTests.test_etreeN)rOrPrQr�r�r�r�r�r�r�r�rirsrvr�r�r�r�r�r�r�r�rDrDrDrEr�s(		r�c@ry)�
TupleTestscCs�|�t��tttttf�Wd�n1swY|�t��tttttf�Wd�n1s7wYGdd�dt�}|�tt�|�|t�dS)Nc@rR)z"TupleTests.test_basics.<locals>.TPNrTrDrDrDrE�TP��r�)r]r^r<rrkr��tuplerF)r?r�rDrDrEr��s��zTupleTests.test_basicscCsd|�tttt�|�ttdfttdf�|�tttttf�|�ttttdf�dS�N.)rgrrkr�r`rDrDrE�
test_equality�szTupleTests.test_equalitycCs8Gdd�dt�}|�|t�|�tt�|�tt�dS)Nc@rR)z/TupleTests.test_tuple_subclass.<locals>.MyTupleNrTrDrDrDrE�MyTuple�rUr�)r�rFr)r?r�rDrDrE�test_tuple_subclass�szTupleTests.test_tuple_subclasscCsL|�t��tdtttf�Wd�n1swY|�dt�dS)N)rr)r]r^r_rrkr�r`rDrDrE�test_tuple_instance_type_error�s�z)TupleTests.test_tuple_instance_type_errorcCsp|�tt�d�|�ttd�d�|�ttttf�d�|�tttdf�d�|�tttt�d�dS)Nztyping.TuplerDztyping.Tuple[()]ztyping.Tuple[int, float].ztyping.Tuple[int, ...]ztyping.Tuple[list[int]])rgrhrrkr�r�r`rDrDrEri�s
zTupleTests.test_reprcCsr|�t��
tdt�Wd�n1swY|�t��tdtt�Wd�dS1s2wYdSr[)r]r^r<rrkr`rDrDrErl�s�"�zTupleTests.test_errorsN)	rOrPrQr�r�r�r�rirlrDrDrDrEr��s
r�c@r�)(�BaseCallableTestscCsd|j}|�t��ttj|tgtf�Wd�n1swY|�tj|�|�||�dSrI)rr]r^r<�types�FunctionTyperkrF�r?rrDrDrE�test_self_subclass�s�z$BaseCallableTests.test_self_subclasscCs�|j}|tgtf}|�||tgtf�|�t||tgtfh�d�|�||tgtf�|�||tgtf�|�||ttgtf�|�||gtf�|�||dtf�|�||�dS)N�.)rrkrg�lenr�r�)r?rr�rDrDrE�test_eq_hash�szBaseCallableTests.test_eq_hashcCs�|j}|�t��|�Wd�n1swY|�t��
t|��Wd�n1s0wY|tgtf}|�t��|�Wd�n1sOwY|�t��t|��Wd�dS1sjwYdSrI)rr]r^rqrkr�)r?r�crDrDrErv�s���"�z)BaseCallableTests.test_cannot_instantiatecCs>|j}|�t��
|tWd�dS1swYdSrI)rr]r^rkr�rDrDrE�test_callable_wrong_forms�s
"�z+BaseCallableTests.test_callable_wrong_formscCs*|j}dd�}|�||�|�d|�dS)NcSr�rIrDrDrDrDrErM��z9BaseCallableTests.test_callable_instance_works.<locals>.f)rr��assertNotIsInstance�r?rrMrDrDrE�test_callable_instance_works�sz.BaseCallableTests.test_callable_instance_workscCs|j}dd�}|�t��|�||gdf�Wd�n1s!wY|�t��|�||gtf�Wd�n1s@wY|�t��|�d|gdf�Wd�n1s_wY|�t��|�d|gtf�Wd�dS1swYdS)NcSr�rIrDrDrDrDrErM�r�z>BaseCallableTests.test_callable_instance_type_error.<locals>.f)rr]r^r�rr�r�rDrDrE�!test_callable_instance_type_error�s���"�z3BaseCallableTests.test_callable_instance_type_errorcCs�|j}|j�d�}|gtf}|�t|�|�d��|ttgtf}|�t|�|�d��|dtf}|�t|�|�d��|ttgttf}|�t|�|�d��dS)N�	.Callablez
[[], bool]z[[str, float], int].z
[..., str]z[[str, float], list[int]])	rrP�boolrgrhr�r�rkr�)r?r�fullname�ct0�ct2�ctv�ct3rDrDrEriszBaseCallableTests.test_reprcCsD|j}d|dtffdd�}|�t|t�t��d|dtfi�dS)N�a.cSr�rIrD�r	rDrDrE�foor�z:BaseCallableTests.test_callable_with_ellipsis.<locals>.foo)rrrgr�globals�locals)r?rrrDrDrE�test_callable_with_ellipsiss
�z-BaseCallableTests.test_callable_with_ellipsiscCs|j}tj|dtfdSr�)rrJrr�r�rDrDrE�test_ellipsis_in_genericsz*BaseCallableTests.test_ellipsis_in_genericcCs:|j}|�|tBt|tf�|�t|Btt|f�dSrI)rrgrrr�rDrDrE�test_or_and_rorsz!BaseCallableTests.test_or_and_rorcCsh|j}|ttgtf}|tjjur|�|tj�|�	|j
tjj�|�|jtttf�|�|j
d�dSr�)rrkr�r��collections�abcr�r��GenericAliasr�r�rgr�r��r?r�aliasrDrDrE�
test_basic szBaseCallableTests.test_basiccCs.|j}|ttgtf}|�t�|��|�dSrI)rrkr�r�rg�weakref�refrrDrDrE�test_weakref)szBaseCallableTests.test_weakrefc
Cs�|j}td�atd�a|ttgtf|ttf|ttf|tttftfg}|D]F}t	t
jd�D]<}|j||d��+t
�
||�}t
�|�}|�|j|j�|�|j|j�|�|j|j�Wd�n1siwYq2q)bbdS)N�T_pickle�P_pickler�)r�proto)rr
rr2rrkr�r�r3�range�pickle�HIGHEST_PROTOCOLr��dumps�loadsrgr�r�r�)r?r�samplesrr�s�loadedrDrDrE�test_pickle.s(

�
���zBaseCallableTests.test_picklecCs�|j}|j�d�}|ttgtf}|ttgtf}|dtf}|�|t|ttgtf�|tjurD|�|d|tt	d�gt	d�f�|�|tt
tf|tt
gtf�|�|t|dtf�|�|t|dtf�|tttf}|�t|�|�d��|�t|t
�|�d��|�|t
|tt
gtf�|tjttttftgtf}|�|ttt
f|tjttttft
gtf�dS)Nr.z[[int, ~VT], str]z[[int, dict], str])rrPrkrr
rrgr�rJrqr�r	rhr�rr�)r?rr�C1�C2�C3�C4�C5rDrDrE�test_var_substitutionEs&
$" �z'BaseCallableTests.test_var_substitutioncCs`|j}td�}td�}d}|�t|��|||fdtfWd�dS1s)wYdS)N�PrzAExpected a list of types, an ellipsis, ParamSpec, or Concatenate.r)rr2r
�assertRaisesRegexr^rk)r?rr,r�patrDrDrE�test_type_subst_error^s"�z'BaseCallableTests.test_type_subst_errorcCsR|j}Gdd�d|�}|tgtf}|�|�j|�|�|�j|tgtf�dS)Nc@�eZdZdd�ZdS)z/BaseCallableTests.test_type_erasure.<locals>.C1cSr�rIrDr`rDrDrE�__call__kr�z8BaseCallableTests.test_type_erasure.<locals>.C1.__call__N)rOrPrQr1rDrDrDrEr&j�r&)rrkrr��	__class__rg�__orig_class__)r?rr&r	rDrDrE�test_type_erasurehs
z#BaseCallableTests.test_type_erasurecCs�|j}|j�d�}td�}td�}||tf}|�|tgtf|tgtf�|�|ttgtf|ttgtf�|�|gtf|gtf�|�|dtf|dtf�|�||tf||tf�|�|tt|ftf|tt|ftf�|�t|�|�d��|�t|ttgtf�|�d��|�	t
��|ttfWd�n1s�wY||tf}|�|tg|tgtf�|�|ttg|ttgtf�|�|g|gtf�|�|d|dtf�|�||||tf�|�|tt|f|tt|ftf�|�|t|tgtf�|�|ttf|ttgtf�|�t|�|�d��|�t|ttf�|�d��dS)	Nrr,�P2.z[~P, ~T]z[[int, str], str]z	[~P, int]z[[int, str], int])rrPr2rrgrkr�r3rhr]r^)r?rrr,r6r&r'rDrDrE�test_paramspecqs> $�"� � "z BaseCallableTests.test_paramspeccCs,|j}|j�d�}td�}td�}td�}|tt|f|f}|�t|�|�d��|�||tf|tt|ftf�|�|tt	gtf|ttt	gtf�|�|gtf|tgtf�|�|tt|ftf|ttt|ftf�|�
t��|dtfWd�n1s�wY|tt|ftf}|�t|�|�d��|�|||tt|ftf�|�|tt	g|ttt	gtf�|�|tt	f|ttt	gtf�|�|g|tgtf�|�|tt|f|ttt|ftf�|�
t��
|dWd�dS1�swYdS)Nrrr,r6z![typing.Concatenate[int, ~P], ~T].z"[typing.Concatenate[int, ~P], int])rrPr
r2r3rkrgrhr�r�r]r^)r?rrrr,r6r�rDrDrE�test_concatenate�s@
�$&��
� ""�
$�z"BaseCallableTests.test_concatenatecCs�|j}|ttgtf}|�td��|tWd�n1s wYtd�}||tf}|�td��|tttfWd�n1sGwY|�td��
|tWd�dS1sbwYdS)Nzis not a generic classr,�many arguments for�few arguments for)rrkr�r�r-r^r2r)r?rrr,r&rDrDrErl�s
��
"�zBaseCallableTests.test_errorsN)rOrPrQr�r�rvr�rrrirrrrrr%r+r/r5r7r8rlrDrDrDrEr��s(
	
	"r�c@seZdZejZdd�ZdS)�TypingCallableTestscCsRtjttgtf}tjjttgtf}|�|j|j�|�t	|j�t	|j��dSrI)
rJrrkr�r�rrrgr��hash)r?�c1�c2rDrDrE�test_consistency�sz$TypingCallableTests.test_consistencyN)rOrPrQrJrr?rDrDrDrEr;�sr;c@seZdZejjZdS)�CollectionsCallableTestsN)rOrPrQrrrrDrDrDrEr@�r2r@c@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�LiteralTestscCsPtdtdtdtdtdtdttdtdftddS)	Nr��r���)r��y�zT)r��2F�r�rC���)sfoo�bar)rr`rDrDrEr��szLiteralTests.test_basicscCs*tttdtddd�ttdS)N)y@@.rDrDrJ�rrL)rrkrr`rDrDrE�3test_illegal_parameters_do_not_raise_runtime_errors�sz@LiteralTests.test_illegal_parameters_do_not_raise_runtime_errorscCsttdttddS)NrB)rrL�baz)rrr`rDrDrE� test_literals_inside_other_types�r�z-LiteralTests.test_literals_inside_other_typescCsx|�ttd�d�|�ttd�d�|�ttt�d�|�tt�d�|�ttd�d�|�ttd�d	�dS)
Nr�ztyping.Literal[1])r�Trztyping.Literal[1, True, 'foo']ztyping.Literal[int]ztyping.Literalztyping.Literal[None]�r�rCrDrDztyping.Literal[1, 2, 3])rgrhrrkr`rDrDrEri�szLiteralTests.test_reprcCs�|�t��t�Wd�n1swY|�t��
td�Wd�n1s-wY|�t��
tt��Wd�n1sGwY|�t��ttd��Wd�dS1sdwYdS�Nr�)r]r^rrqr`rDrDrE�test_cannot_init�s���"�zLiteralTests.test_cannot_initcCs�|�t��tdtd�Wd�n1swY|�t��tttd�Wd�n1s3wY|�t��tdtd�Wd�n1sOwY|�t��tttd�Wd�dS1slwYdSrR)r]r^r_rrkr<r`rDrDrE� test_no_isinstance_or_issubclass�s���"�z-LiteralTests.test_no_isinstance_or_issubclasscCs~|�t��Gdd�dtd�}Wd�n1swY|�t��Gdd�dt�}Wd�dS1s8wYdS)Nc@rR)z-LiteralTests.test_no_subclassing.<locals>.FooNrTrDrDrDrE�Foor�rUr�c@rR)z-LiteralTests.test_no_subclassing.<locals>.BarNrTrDrDrDrE�Barr�rV�r]r^r)r?rUrVrDrDrE�test_no_subclassings�"�z LiteralTests.test_no_subclassingcCs<|�t��tddWd�dS1swYdSrRrWr`rDrDrE�test_no_multiple_subscriptss"�z(LiteralTests.test_no_multiple_subscriptscCs�|�tdtd�|�tdtd�|�tdtd�|�tdtd�|�tdtd�|�tdtd	�|�tdtd�|�tdtd
�|�tdtd�dS)
NrFTr�rC)r�T)r�r�rH�TrC�rCr�rBrQ)r�rrgr`rDrDrE�
test_equal
szLiteralTests.test_equalcCsX|�ttd�ttd��|�ttd�ttd��|�ttd�ttd��dS)Nr�rHr[rBrQ)rgr<rr`rDrDrE�	test_hashs zLiteralTests.test_hashcCsb|�tdjd�|�tdjd�|�tdtdtdfjd�|�tggfjggf�dS)NrBrQr�rC)rDrJ)r�rCrDrJ)rgrr�r`rDrDrE�	test_argss zLiteralTests.test_argscCshttdtdtdf}ttddf}ttd}|||fD]}|�|td�|�|jd�q dS)Nr�rCrDrHrB)rrgr�)r?�l1�l2�l3�lrDrDrE�test_flatten!s�zLiteralTests.test_flattenN)rOrPrQr�rNrPrirSrTrXrYr\r]r^rcrDrDrDrErA�s

rA�XK�XVc@sHeZdZdedefdd�Zdedefdd�Zdded	edefd
d�ZdS)
�
SimpleMapping�keyr�cCr�rIrD�r?rgrDrDrE�__getitem__0r�zSimpleMapping.__getitem__�valuecCr�rIrD�r?rgrjrDrDrE�__setitem__3r�zSimpleMapping.__setitem__N�defaultcCr�rIrD�r?rgrmrDrDrE�get6r�zSimpleMapping.getrI)rOrPrQrdrerirlrorDrDrDrErf.srfc@s@eZdZdd�Zdefdd�Zdefdd�Zddefd	d
�ZdS)�MySimpleMappingcCs
i|_dSrI��storer`rDrDrE�__init__<�
zMySimpleMapping.__init__rgcCs
|j|SrIrqrhrDrDrEri?rtzMySimpleMapping.__getitem__cCs||j|<dSrIrqrkrDrDrErlB�zMySimpleMapping.__setitem__NcCs$z|j|WSty|YSwrI)rr�KeyErrorrnrDrDrEroEs
�zMySimpleMapping.getrI)rOrPrQrsr�rirlrorDrDrDrErp:s
rpc@�eZdZUeed<eed<dS)�
Coordinater�rEN�rOrPrQrk�__annotations__rDrDrDrErxL�
rxc@�eZdZUeed<dS)�Point�labelN�rOrPrQr�rzrDrDrDrEr}P�
r}c@s&eZdZUeed<eed<eed<dS)�MyPointr�rEr~N�rOrPrQrkrzr�rDrDrDrEr�Ts
r�c@r|)�XAxisr�NryrDrDrDrEr�Y�
r�c@r|)�YAxisrENryrDrDrDrEr�\r�r�c@rR)�PositionNrTrDrDrDrEr�_�r�c@s(eZdZUeed<dedefdd�ZdS)�Proto�attrr�r�cCr�rIrD�r?r�rDrDrE�methfr�z
Proto.methN)rOrPrQrkrzr�r�rDrDrDrEr�cs
r�c@rR)�ConcreteNrTrDrDrDrEr�irUr�c@s,eZdZUdZeed<dedefdd�ZdS)�Otherr�r�r�r�cCs|dkrdSdS)N�thisr�rrDr�rDrDrEr�nsz
Other.methN)rOrPrQr�rkrzr�r�rDrDrDrEr�ls
r�c@rw)�NTr�rENryrDrDrDrEr�sr{r�c@seZdZUejed<dS)�HasCallProtocolr1N)rOrPrQrJrrzrDrDrDrEr�ws
r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1d_d`�Z2daS)b�
ProtocolTestscCs�tGdd�dt��}Gdd�d�}Gdd�d�}dd�}|�||�|�|�|�|�||�|�|�|�|�tj|�|�||�dS)	Nc@r0)z,ProtocolTests.test_basic_protocol.<locals>.PcSr�rIrDr`rDrDrEr��r�z1ProtocolTests.test_basic_protocol.<locals>.P.methN�rOrPrQr�rDrDrDrEr,~�r,c@rR)z,ProtocolTests.test_basic_protocol.<locals>.CNrTrDrDrDrEr��r�r�c@r0)z,ProtocolTests.test_basic_protocol.<locals>.DcSr�rIrDr`rDrDrEr��r�z1ProtocolTests.test_basic_protocol.<locals>.D.methNr�rDrDrDrE�D�r2r�cSr�rIrDrDrDrDrErM�r�z,ProtocolTests.test_basic_protocol.<locals>.f)rrrFr�rHr�r�r�)r?r,r�r�rMrDrDrE�test_basic_protocol}sz!ProtocolTests.test_basic_protocolcCsrtGdd�dt��}Gdd�d�}dd�}ttt|tjfD]}|�||�qt�ddt|fD]}|�	||�q.dS)	Nc@rR)zFProtocolTests.test_everything_implements_empty_protocol.<locals>.EmptyNrTrDrDrDrE�Empty�r�r�c@rR)zBProtocolTests.test_everything_implements_empty_protocol.<locals>.CNrTrDrDrDrEr��rUr�cSr�rIrDrDrDrDrErM�r�zBProtocolTests.test_everything_implements_empty_protocol.<locals>.fr�rD)
rrr�rqr�r�r�rFrJr�)r?r�r�rM�thingrDrDrE�)test_everything_implements_empty_protocol�s�z7ProtocolTests.test_everything_implements_empty_protocolcCsdd�}|�|t�dS)NcSr�rIrDrDrDrDrErM�r�z:ProtocolTests.test_function_implements_protocol.<locals>.f)r�r�rLrDrDrE�!test_function_implements_protocol�sz/ProtocolTests.test_function_implements_protocolcCsGdd�d�}Gdd�dt�}|�t��Gdd�d|t�}Wd�n1s(wY|�t��Gdd�dt|�}Wd�n1sFwY|�t��Gdd�d||t�}Wd�n1sewYGd	d
�d
||�}Gdd�d||�}|�|�|�|�|�|�dS)
Nc@rR)z9ProtocolTests.test_no_inheritance_from_nominal.<locals>.CNrTrDrDrDrEr��r�r�c@rR)z:ProtocolTests.test_no_inheritance_from_nominal.<locals>.BPNrTrDrDrDrE�BP�r�r�c@rR�z9ProtocolTests.test_no_inheritance_from_nominal.<locals>.PNrTrDrDrDrEr,�rUr,c@rRr�rTrDrDrDrEr,�rUc@rRr�rTrDrDrDrEr,�rUc@rR)z9ProtocolTests.test_no_inheritance_from_nominal.<locals>.DNrTrDrDrDrEr��r�r�c@rR)z9ProtocolTests.test_no_inheritance_from_nominal.<locals>.ENrTrDrDrDrE�E�r�r�)rr]r^r�)r?r�r�r,r�r�rDrDrE� test_no_inheritance_from_nominal�s���z.ProtocolTests.test_no_inheritance_from_nominalcCs�Gdd�dt�}|�t��|�Wd�n1swYGdd�d|�}|�|�|�|�t��|d�Wd�n1sCwYtd�}Gdd�dt|�}|�t��|�Wd�n1siwY|�t��
|t�Wd�n1s�wY|�t��
||�Wd�n1s�wYGd	d
�d
||�}|�|t�|�|�t��|td�Wd�dS1s�wYdS)Nc@rR)z.ProtocolTests.test_no_instantiation.<locals>.PNrTrDrDrDrEr,�r�r,c@rR)z.ProtocolTests.test_no_instantiation.<locals>.CNrTrDrDrDrEr��r�r�r\rc@rR)z/ProtocolTests.test_no_instantiation.<locals>.PGNrTrDrDrDrE�PG�r�r�c@rR)z/ProtocolTests.test_no_instantiation.<locals>.CGNrTrDrDrDrE�CG�r�r�)rr]r^r�r
rk)r?r,r�rr�r�rDrDrE�test_no_instantiation�s2�
����"�z#ProtocolTests.test_no_instantiationcCsvtGdd�dt��}Gdd�d|�}Gdd�d|�}|�t��|�Wd�n1s-wY|�|�|�dS)Nc@s eZdZejdefdd��ZdS)z9ProtocolTests.test_cannot_instantiate_abstract.<locals>.Pr�cSst�rI)�NotImplementedErrorr`rDrDrE�ameth��z?ProtocolTests.test_cannot_instantiate_abstract.<locals>.P.amethN)rOrPrQr�abstractmethodrkr�rDrDrDrEr,�sr,c@rR)z9ProtocolTests.test_cannot_instantiate_abstract.<locals>.BNrTrDrDrDrE�B�rUr�c@�eZdZdefdd�ZdS)z9ProtocolTests.test_cannot_instantiate_abstract.<locals>.Cr�cS�dS)N�rDr`rDrDrEr��r�z?ProtocolTests.test_cannot_instantiate_abstract.<locals>.C.amethN)rOrPrQrkr�rDrDrDrEr���r�)rrr]r^r�)r?r,r�r�rDrDrE� test_cannot_instantiate_abstract�s�z.ProtocolTests.test_cannot_instantiate_abstractcCs�Gdd�dt�}tGdd�d|t��}Gdd�d�}Gdd�d�}Gd	d
�d
�}|�|�|�|�|�|�|�||�|�||�|�|�|�|�||�dS)Nc@r0)z5ProtocolTests.test_subprotocols_extending.<locals>.P1cSr�rIrDr`rDrDrE�meth1�r�z;ProtocolTests.test_subprotocols_extending.<locals>.P1.meth1N�rOrPrQr�rDrDrDrE�P1�r2r�c@r0)z5ProtocolTests.test_subprotocols_extending.<locals>.P2cSr�rIrDr`rDrDrE�meth2�r�z;ProtocolTests.test_subprotocols_extending.<locals>.P2.meth2N�rOrPrQr�rDrDrDrEr6�r�r6c@�eZdZdd�Zdd�ZdS)z4ProtocolTests.test_subprotocols_extending.<locals>.CcSr�rIrDr`rDrDrEr��r�z:ProtocolTests.test_subprotocols_extending.<locals>.C.meth1cSr�rIrDr`rDrDrEr��r�z:ProtocolTests.test_subprotocols_extending.<locals>.C.meth2N�rOrPrQr�r�rDrDrDrEr���r�c@r0)z5ProtocolTests.test_subprotocols_extending.<locals>.C1cSr�rIrDr`rDrDrEr�r�z;ProtocolTests.test_subprotocols_extending.<locals>.C1.meth1Nr�rDrDrDrEr&�r2r&c@r0)z5ProtocolTests.test_subprotocols_extending.<locals>.C2cSr�rIrDr`rDrDrEr�r�z;ProtocolTests.test_subprotocols_extending.<locals>.C2.meth2Nr�rDrDrDrEr'r2r'�rrr�rHr�rF)r?r�r6r�r&r'rDrDrE�test_subprotocols_extending�sz)ProtocolTests.test_subprotocols_extendingcCs�Gdd�dt�}Gdd�dt�}tGdd�d||t��}Gdd�d�}Gd	d
�d
�}Gdd�d�}|�|�|�|�|�|�|�||�|�||�|�|�|�|�||�dS)
Nc@r0)z3ProtocolTests.test_subprotocols_merging.<locals>.P1cSr�rIrDr`rDrDrEr�r�z9ProtocolTests.test_subprotocols_merging.<locals>.P1.meth1Nr�rDrDrDrEr�r2r�c@r0)z3ProtocolTests.test_subprotocols_merging.<locals>.P2cSr�rIrDr`rDrDrEr�r�z9ProtocolTests.test_subprotocols_merging.<locals>.P2.meth2Nr�rDrDrDrEr6r2r6c@rR)z2ProtocolTests.test_subprotocols_merging.<locals>.PNrTrDrDrDrEr,r�r,c@r�)z2ProtocolTests.test_subprotocols_merging.<locals>.CcSr�rIrDr`rDrDrEr�r�z8ProtocolTests.test_subprotocols_merging.<locals>.C.meth1cSr�rIrDr`rDrDrEr�r�z8ProtocolTests.test_subprotocols_merging.<locals>.C.meth2Nr�rDrDrDrEr�r�r�c@r0)z3ProtocolTests.test_subprotocols_merging.<locals>.C1cSr�rIrDr`rDrDrEr�#r�z9ProtocolTests.test_subprotocols_merging.<locals>.C1.meth1Nr�rDrDrDrEr&"r2r&c@r0)z3ProtocolTests.test_subprotocols_merging.<locals>.C2cSr�rIrDr`rDrDrEr�'r�z9ProtocolTests.test_subprotocols_merging.<locals>.C2.meth2Nr�rDrDrDrEr'&r2r'r�)r?r�r6r,r�r&r'rDrDrE�test_subprotocols_mergingsz'ProtocolTests.test_subprotocols_mergingcCs�td�}tGdd�dt��}tGdd�dt|��}Gdd�dt�}Gdd	�d	t|�}Gd
d�d�}|�||�|�||�|�||�|�t��t|||�Wd�n1s\wY|�t��t|||�Wd�n1sxwY|�t��
t||�Wd�n1s�wY|�t��
t||�Wd�n1s�wY|�t��t|||�Wd�n1s�wY|�t��t||t�Wd�dS1s�wYdS)Nrc@r0)z2ProtocolTests.test_protocols_issubclass.<locals>.PcSr�rIrDr`rDrDrEr�6r�z4ProtocolTests.test_protocols_issubclass.<locals>.P.xN�rOrPrQr�rDrDrDrEr,4r�r,c@r0)z3ProtocolTests.test_protocols_issubclass.<locals>.PGcSr�rIrDr`rDrDrEr�:r�z5ProtocolTests.test_protocols_issubclass.<locals>.PG.xNr�rDrDrDrEr�8r�r�c@r0)z5ProtocolTests.test_protocols_issubclass.<locals>.BadPcSr�rIrDr`rDrDrEr�=r�z7ProtocolTests.test_protocols_issubclass.<locals>.BadP.xNr�rDrDrDrE�BadP<r2r�c@r0)z6ProtocolTests.test_protocols_issubclass.<locals>.BadPGcSr�rIrDr`rDrDrEr�@r�z8ProtocolTests.test_protocols_issubclass.<locals>.BadPG.xNr�rDrDrDrE�BadPG?r2r�c@r0)z2ProtocolTests.test_protocols_issubclass.<locals>.CcSr�rIrDr`rDrDrEr�Cr�z4ProtocolTests.test_protocols_issubclass.<locals>.C.xNr�rDrDrDrEr�Br2r�)r
rrrFr]r^r<rk�r?rr,r�r�r�r�rDrDrE�test_protocols_issubclass1s:�����"�z'ProtocolTests.test_protocols_issubclasscCs8Gdd�d�}tGdd�dt��}|�t��
t||�Wd�n1s&wY|�|�|�|�|�|�t��
t||�Wd�n1sLwY|�|�|�Gdd�d|�}|�||�|�|�|�|�|�|�	||�|�|�|�|�t��t||�Wd�dS1s�wYdS)Nc@�eZdZdZdS)z?ProtocolTests.test_protocols_issubclass_non_callable.<locals>.Cr�Nr�rDrDrDrEr�W�r�c@r�)zFProtocolTests.test_protocols_issubclass_non_callable.<locals>.PNonCallr�Nr�rDrDrDrE�PNonCallZ�r�c@rR)z?ProtocolTests.test_protocols_issubclass_non_callable.<locals>.DNrTrDrDrDrEr�gr�r�)
rrr]r^r<r��registerrHr�rF)r?r�r�r�rDrDrE�&test_protocols_issubclass_non_callableVs*�
�
"�z4ProtocolTests.test_protocols_issubclass_non_callablecCshtd�}tGdd�dt��}tGdd�dt|��}Gdd�dt�}Gdd	�d	t|�}Gd
d�d�}|�|�|�|�|�|�|�t��t|�||�Wd�n1sYwY|�t��t|�||�Wd�n1svwY|�t��t|�|�Wd�n1s�wY|�t��t|�|�Wd�dS1s�wYdS)Nrc@r0)z2ProtocolTests.test_protocols_isinstance.<locals>.PcSr�rIrDr�rDrDrEr�vr�z7ProtocolTests.test_protocols_isinstance.<locals>.P.methNr�rDrDrDrEr,tr�r,c@r0)z3ProtocolTests.test_protocols_isinstance.<locals>.PGcSr�rIrDr�rDrDrEr�zr�z8ProtocolTests.test_protocols_isinstance.<locals>.PG.methNr�rDrDrDrEr�xr�r�c@r0)z5ProtocolTests.test_protocols_isinstance.<locals>.BadPcSr�rIrDr�rDrDrEr�}r�z:ProtocolTests.test_protocols_isinstance.<locals>.BadP.methNr�rDrDrDrEr�|r2r�c@r0)z6ProtocolTests.test_protocols_isinstance.<locals>.BadPGcSr�rIrDr�rDrDrEr��r�z;ProtocolTests.test_protocols_isinstance.<locals>.BadPG.methNr�rDrDrDrEr�r2r�c@r0)z2ProtocolTests.test_protocols_isinstance.<locals>.CcSr�rIrDr�rDrDrEr��r�z7ProtocolTests.test_protocols_isinstance.<locals>.C.methNr�rDrDrDrEr��r2r�)r
rrr�r]r^r_r�rDrDrE�test_protocols_isinstanceqs,���"�z'ProtocolTests.test_protocols_isinstancecsZGdd�d�}Gdd�d��G�fdd�d�}Gdd�d|�}Gd	d
�d
|�}Gdd�d�}td
��tGdd�dt��}tGdd�dt��}tGdd�dt���}tG�fdd�dt���}	||||	fD]J}
||||fD]"}|j|j|
jd��|�|�|
�Wd�n1s�wYqn|jd|
jd��|�|�|
�Wd�n1s�wYqfGdd�dt�}Gdd�dt�}
Gdd�dt��}G�fdd�dt��}|�|||	�|	|||
||fD]A}|||||fD]7}|j|j|d��$|�t��t	|�|�Wd�n	1�swYWd�n	1�s$wYq�q�dS) Nc@�eZdZedd��ZdS)zMProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.CcSr�r[rDr`rDrDrEr��r�zRProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.C.attrN�rOrPrQ�propertyr�rDrDrDrEr���r�c@seZdZddd�ZdS)z\ProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.CustomDescriptorNcSr�r[rD)r?�obj�objtyperDrDrE�__get__�r�zdProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.CustomDescriptor.__get__rI)rOrPrQr�rDrDrDrE�CustomDescriptor��r�cseZdZ��ZdS)zMProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.DN)rOrPrQr�rD)r�rDrEr���
r�c@rR)zMProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.ENrTrDrDrDrEr��r�r�c@rR)zMProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.FNrTrDrDrDrE�F�r�r�c@rR)zQProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.EmptyNrTrDrDrDrEr��r�r�rc@r�)zMProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PcSr�rIrDr`rDrDrEr��r�zRProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.P.attrNr�rDrDrDrEr,��r,c@r|)zNProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.P1r�NryrDrDrDrEr��r�r�c@r�)zNProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PGcSr�rIrDr`rDrDrEr��r�zSProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PG.attrNr�rDrDrDrEr��r�r�c�eZdZU�ed<dS)zOProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.PG1r�N�rOrPrQrzrD�rrDrE�PG1�r�r�)�klass�protocol_classc@r�)zPProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPcSr�rIrDr`rDrDrEr��r�zUProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadP.attrNr�rDrDrDrEr��r�r�c@r|)zQProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadP1r�NryrDrDrDrE�BadP1�r�r�c@r�)zQProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPGcSr�rIrDr`rDrDrEr��r�zVProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPG.attrNr�rDrDrDrEr��r�r�cr�)zRProtocolTests.test_protocols_isinstance_properties_and_descriptors.<locals>.BadPG1r�Nr�rDr�rDrE�BadPG1�r�r�)r�r�)
r
rrr�rOr�r�r]r^r_)r?r�r�r�r�r�r,r�r�r�r�r�r�r�r�r�r�rD)r�rrE�4test_protocols_isinstance_properties_and_descriptors�sV�����(������zBProtocolTests.test_protocols_isinstance_properties_and_descriptorscCsPtGdd�dt��}Gdd�d�}Gdd�d�}|�|�|�|�|�|�dS)Nc@r|)zNProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.HasXr�NryrDrDrDrE�HasX�r�r�c@�eZdZdZdd�ZdS)zXProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithX�
cS�gSrIrDr`rDrDrE�__dir__�r�z`ProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithX.__dir__N)rOrPrQr�r�rDrDrDrE�CustomDirWithX�sr�c@r0)z[ProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithoutXcSsdgS)Nr�rDr`rDrDrEr���zcProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dir.<locals>.CustomDirWithoutX.__dir__N)rOrPrQr�rDrDrDrE�CustomDirWithoutX�r2r�)rrr�r�)r?r�r�r�rDrDrE�2test_protocols_isinstance_not_fooled_by_custom_dir�sz@ProtocolTests.test_protocols_isinstance_not_fooled_by_custom_dircCsGdd�d�}Gdd�d�}Gdd�d�}Gdd�d�}|�|d	d
d�t�|�|d	d
�t�|�t�t�|�|d	d
�t�|�t�t�|�t�t�|�|d�t�|�|�t�|�|�t�|�|�t�|�|�t�|�t�t�|�td	d
�t�dS)
Nc@r0)z<ProtocolTests.test_protocols_isinstance_py36.<locals>.APointcS�||_||_||_dSrI�r�rEr~)r?r�rEr~rDrDrErs�s
zEProtocolTests.test_protocols_isinstance_py36.<locals>.APoint.__init__N�rOrPrQrsrDrDrDrE�APoint�r2r�c@r�)z<ProtocolTests.test_protocols_isinstance_py36.<locals>.BPointr�cS�||_||_dSrI�r�rE)r?r�rErDrDrErs�s
zEProtocolTests.test_protocols_isinstance_py36.<locals>.BPoint.__init__N)rOrPrQr~rsrDrDrDrE�BPoint��r�c@r�)z7ProtocolTests.test_protocols_isinstance_py36.<locals>.CcS�
||_dSrI�r��r?r�rDrDrErs�rtz@ProtocolTests.test_protocols_isinstance_py36.<locals>.C.__init__cSr��NrrDr�rDrDrEr��r�z<ProtocolTests.test_protocols_isinstance_py36.<locals>.C.methN)rOrPrQrsr�rDrDrDrEr��r�r�c@rR)z9ProtocolTests.test_protocols_isinstance_py36.<locals>.BadNrTrDrDrDrE�Bad�r�r�r�rCror\)	r�r}r�r�r�r�r�r�r�)r?r�r�r�r�rDrDrE�test_protocols_isinstance_py36�s"z,ProtocolTests.test_protocols_isinstance_py36cCsftd�}tGdd�dt��}tGdd�dt|��}Gdd�d�}|�|d�|�|�|d�|�dS)	Nrc@r�)z7ProtocolTests.test_protocols_isinstance_init.<locals>.Pr�Nr�rDrDrDrEr,r�r,c@r�)z8ProtocolTests.test_protocols_isinstance_init.<locals>.PGr�Nr�rDrDrDrEr�r�r�c@r0)z7ProtocolTests.test_protocols_isinstance_init.<locals>.CcSr�rIr��r?r�rDrDrErsrtz@ProtocolTests.test_protocols_isinstance_init.<locals>.C.__init__Nr�rDrDrDrEr�r2r�r�)r
rrr�)r?rr,r�r�rDrDrE�test_protocols_isinstance_init
sz,ProtocolTests.test_protocols_isinstance_initc	Cs�Gdd�dtt�}Gdd�d|t�}Gdd�d�}Gdd�d�}|t}|�|�|�|�||�Gd	d
�d
|t�}Gdd�d|t�}|t}|�|�|�|�||�dS)
Nc@rR)z=ProtocolTests.test_protocol_checks_after_subscript.<locals>.PNrTrDrDrDrEr, r�r,c@rR)z=ProtocolTests.test_protocol_checks_after_subscript.<locals>.CNrTrDrDrDrEr�!r�r�c@rR)zBProtocolTests.test_protocol_checks_after_subscript.<locals>.Other1NrTrDrDrDrE�Other1"r�r�c@rR)zBProtocolTests.test_protocol_checks_after_subscript.<locals>.Other2NrTrDrDrDrE�Other2#r�r�c@rR)z>ProtocolTests.test_protocol_checks_after_subscript.<locals>.D1NrTrDrDrDrE�D1)r�r�c@rR)z>ProtocolTests.test_protocol_checks_after_subscript.<locals>.D2NrTrDrDrDrE�D2*r�r�)rrrr�rHrkr�rF)	r?r,r�r�r��CAr�r��CIrDrDrE�$test_protocol_checks_after_subscriptsz2ProtocolTests.test_protocol_checks_after_subscriptcCsvtGdd�dt��}Gdd�dt�}Gdd�d|�}Gdd�d�}|�|�|�|�|�|�|�|�|�|�dS)	Nc@r�)z8ProtocolTests.test_protocols_support_register.<locals>.Pr�Nr�rDrDrDrEr,1r�r,c@r0)z9ProtocolTests.test_protocols_support_register.<locals>.PMcSr�rIrDr`rDrDrEr�6r�z>ProtocolTests.test_protocols_support_register.<locals>.PM.methNr�rDrDrDrE�PM5r2r�c@rR)z8ProtocolTests.test_protocols_support_register.<locals>.DNrTrDrDrDrEr�8r�r�c@rR)z8ProtocolTests.test_protocols_support_register.<locals>.CNrTrDrDrDrEr�:r�r�)rrr�r�)r?r,r�r�r�rDrDrE�test_protocols_support_register0s

z-ProtocolTests.test_protocols_support_registercC�`tGdd�dt��}Gdd�d�}Gdd�d|�}Gdd�d�}|�|�|�|�|�|�dS)	Nc@r�)zNProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.Pr�Nr�rDrDrDrEr,Br�r,c@r�)zNProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.Ar�Nr�rDrDrDrEroFr�roc@�eZdZdZdS)zNProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.BNr�rDrDrDrEr�Ir�r�c@r0)zNProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.CcS�
d|_dSrIr�r`rDrDrErsMrtzWProtocolTests.test_none_on_non_callable_doesnt_block_implementation.<locals>.C.__init__Nr�rDrDrDrEr�Lr2r�)rrr��r?r,ror�r�rDrDrE�5test_none_on_non_callable_doesnt_block_implementationA�zCProtocolTests.test_none_on_non_callable_doesnt_block_implementationcCr�)	Nc@r0)zDProtocolTests.test_none_on_callable_blocks_implementation.<locals>.PcSr�rIrDr`rDrDrEr�Vr�zFProtocolTests.test_none_on_callable_blocks_implementation.<locals>.P.xNr�rDrDrDrEr,Tr�r,c@r0)zDProtocolTests.test_none_on_callable_blocks_implementation.<locals>.AcSr�rIrDr`rDrDrEr�Yr�zFProtocolTests.test_none_on_callable_blocks_implementation.<locals>.A.xNr�rDrDrDrEroXr2roc@r�)zDProtocolTests.test_none_on_callable_blocks_implementation.<locals>.BNr�rDrDrDrEr�[r�r�c@r0)zDProtocolTests.test_none_on_callable_blocks_implementation.<locals>.CcSr�rIr�r`rDrDrErs_rtzMProtocolTests.test_none_on_callable_blocks_implementation.<locals>.C.__init__Nr�rDrDrDrEr�^r2r�)rrr�r�rDrDrE�+test_none_on_callable_blocks_implementationSr�z9ProtocolTests.test_none_on_callable_blocks_implementationcCs�Gdd�dt�}tGdd�dt��}Gdd�d|�}Gdd�d|�}Gd	d
�d
�}Gdd�d�}|�|�|�|�|�|�|�||�|�||�|�|�|�|�||�dS)
Nc@r�)z5ProtocolTests.test_non_protocol_subclasses.<locals>.Pr�Nr�rDrDrDrEr,fr�r,c@r0)z6ProtocolTests.test_non_protocol_subclasses.<locals>.PRcSr�rIrDr`rDrDrEr�kr�z;ProtocolTests.test_non_protocol_subclasses.<locals>.PR.methNr�rDrDrDrE�PRir�rc@r�)z8ProtocolTests.test_non_protocol_subclasses.<locals>.NonPr�Nr�rDrDrDrE�NonPmr�rc@rR)z9ProtocolTests.test_non_protocol_subclasses.<locals>.NonPRNrTrDrDrDrE�NonPRpr�rc@r�)z5ProtocolTests.test_non_protocol_subclasses.<locals>.Cr�Nr�rDrDrDrEr�rr�r�c@r0)z5ProtocolTests.test_non_protocol_subclasses.<locals>.DcSr�rIrDr`rDrDrEr�vr�z:ProtocolTests.test_non_protocol_subclasses.<locals>.D.methNr�rDrDrDrEr�ur2r�r�)r?r,rrrr�r�rDrDrE�test_non_protocol_subclassesesz*ProtocolTests.test_non_protocol_subclassescCstGdd�dt�}Gdd�d�}Gdd�d�}Gdd�d|�}|�|�|�|�|�|�|�||�|�||�dS)	Nc@r�)z1ProtocolTests.test_custom_subclasshook.<locals>.Pr�Nr�rDrDrDrEr,�r�r,c@rR)z7ProtocolTests.test_custom_subclasshook.<locals>.OKClassNrTrDrDrDrE�OKClass�r�rc@r�)z8ProtocolTests.test_custom_subclasshook.<locals>.BadClassr�Nr�rDrDrDrE�BadClass�r�rc@r�)z1ProtocolTests.test_custom_subclasshook.<locals>.CcSs|j�d�S�N�OK)rO�
startswith�r@�otherrDrDrE�__subclasshook__�szBProtocolTests.test_custom_subclasshook.<locals>.C.__subclasshook__N�rOrPrQ�classmethodrrDrDrDrEr��r�r�)rr�r�rFrH)r?r,rrr�rDrDrE�test_custom_subclasshooksz&ProtocolTests.test_custom_subclasshookcCs^tGdd�dt��}Gdd�d�}|�t��t|�|�Wd�dS1s(wYdS)Nc@r�)z8ProtocolTests.test_issubclass_fails_correctly.<locals>.Pr�Nr�rDrDrDrEr,�r�r,c@rR)z8ProtocolTests.test_issubclass_fails_correctly.<locals>.CNrTrDrDrDrEr��r�r�)rrr]r^r<�r?r,r�rDrDrE�test_issubclass_fails_correctly�s"�z-ProtocolTests.test_issubclass_fails_correctlycCs�td�}td�}tGdd�dt||f��}Gdd�d|t|ft|�}|�t��|tWd�n1s9wY|�t��|ttfWd�n1sTwYGdd�d|t|f�}|�|t�|�dS)	Nr�Sc@r0)z9ProtocolTests.test_defining_generic_protocols.<locals>.PRcSr�rIrDr`rDrDrEr��r�z>ProtocolTests.test_defining_generic_protocols.<locals>.PR.methNr�rDrDrDrEr�r�rc@r�)z8ProtocolTests.test_defining_generic_protocols.<locals>.Pr�N�rOrPrQrErDrDrDrEr,�r�r,c@rR)z8ProtocolTests.test_defining_generic_protocols.<locals>.CNrTrDrDrDrEr��r�r�)r
rrrkr]r^r�r�)r?rrrr,r�rDrDrE�test_defining_generic_protocols�s
��z-ProtocolTests.test_defining_generic_protocolscs0td��td�}tGdd�dtt�|f��}Gdd�d|ttft�}|�t��t|ttf|�Wd�n1s=wY|�	||�|�t��|tWd�n1s\wYG�fdd�dtt��}G�fd	d
�d
t�t�}tGdd�d|tt��}Gd
d�d�}|�
|�|�dS)Nrrc@r0)zCProtocolTests.test_defining_generic_protocols_old_style.<locals>.PRcSr�rIrDr`rDrDrEr��r�zHProtocolTests.test_defining_generic_protocols_old_style.<locals>.PR.methNr�rDrDrDrEr�r�rc@r�)zBProtocolTests.test_defining_generic_protocols_old_style.<locals>.Pr�NrrDrDrDrEr,�r�r,c�eZdZd�defdd�ZdS)zCProtocolTests.test_defining_generic_protocols_old_style.<locals>.P1r�r�cSr�rIrDr�rDrDrErL�r�zGProtocolTests.test_defining_generic_protocols_old_style.<locals>.P1.barN�rOrPrQr�rLrDr�rDrEr���r�cr)zCProtocolTests.test_defining_generic_protocols_old_style.<locals>.P2r�r�cSr�rIrDr�rDrDrErL�r�zGProtocolTests.test_defining_generic_protocols_old_style.<locals>.P2.barNrrDr�rDrEr6�rr6c@r�)zEProtocolTests.test_defining_generic_protocols_old_style.<locals>.PSubr�Nr�rDrDrDrE�PSub�r�rc@s"eZdZdZdedefdd�ZdS)zEProtocolTests.test_defining_generic_protocols_old_style.<locals>.Testr�r�r�cSs|SrIrDr�rDrDrErL�r�zIProtocolTests.test_defining_generic_protocols_old_style.<locals>.Test.barN)rOrPrQr�r�rLrDrDrDrE�Test�sr)r
rrrrkr�r]r^r<rFr�)r?rrr,r�r6rrrDr�rE�)test_defining_generic_protocols_old_style�s$�
�z7ProtocolTests.test_defining_generic_protocols_old_stylecCs�td�}Gdd�dt|�}Gdd�d||�}|�|t�jd�Gdd�d�}Gd	d
�d
|||�}|�|t�jd�Gdd�d|||�}|�|t�jd�dS)
Nrc@rR)z)ProtocolTests.test_init_called.<locals>.PNrTrDrDrDrEr,�r�r,c@r0)z)ProtocolTests.test_init_called.<locals>.CcS�
d|_dSr��testr`rDrDrErs�rtz2ProtocolTests.test_init_called.<locals>.C.__init__Nr�rDrDrDrEr��r2r�rc@r0)z)ProtocolTests.test_init_called.<locals>.BcSrrrr`rDrDrErs�rtz2ProtocolTests.test_init_called.<locals>.B.__init__Nr�rDrDrDrEr��r2r�c@rR)z*ProtocolTests.test_init_called.<locals>.D1NrTrDrDrDrEr��rUr�c@rR)z*ProtocolTests.test_init_called.<locals>.D2NrTrDrDrDrEr��rUr�)r
rrgrkr)r?rr,r�r�r�r�rDrDrE�test_init_called�szProtocolTests.test_init_calledcCs�td�}Gdd�dt|�}Gdd�d||�}|�|t�jd�|�t��|td�Wd�n1s8wY|�t��|tdd�Wd�dS1sUwYdS)	Nrc@rR)z(ProtocolTests.test_new_called.<locals>.PNrTrDrDrDrEr,�r�r,c�eZdZ�fdd�Z�ZS)z(ProtocolTests.test_new_called.<locals>.Ccst�j|g|�R�}d|_|Sr)�super�__new__r)r@r�r?�r3rDrEr �sz0ProtocolTests.test_new_called.<locals>.C.__new__�rOrPrQr �
__classcell__rDrDr!rEr���r�rr\r
)r
rrgrkrr]r^�r?rr,r�rDrDrE�test_new_called�s�"�zProtocolTests.test_new_calledcCs$td�}td�}|�t��Gdd�dt||f�}Wd�n1s$wY|�t��Gdd�dtt�}Wd�n1sCwY|�t��Gdd�dt|t|�}Wd�n1sewY|�t��Gdd�dtj||ft|�}Wd�dS1s�wYdS)Nrrc@rR�z6ProtocolTests.test_protocols_bad_subscripts.<locals>.PNrTrDrDrDrEr,r�r,c@rRr'rTrDrDrDrEr,r�c@rRr'rTrDrDrDrEr,r�c@rRr'rTrDrDrDrEr,r�)r
r]r^rrkrJr��r?rrr,rDrDrE�test_protocols_bad_subscripts�s���""�z+ProtocolTests.test_protocols_bad_subscriptscCsdtd�}td�}Gdd�dt||f�}|�t|||f��d��|�t|ttf��d��dS)Nrrc@rR)z4ProtocolTests.test_generic_protocols_repr.<locals>.PNrTrDrDrDrEr,
r�r,z	P[~T, ~S]zP[int, str])r
r�
assertTruerh�endswithrkr�r(rDrDrE�test_generic_protocols_repr	s
 z)ProtocolTests.test_generic_protocols_reprcCs�td�}td�}Gdd�dt||f�}|�||�|�|t|f|t|f�|�|||ft||fttf|tttftttff�dS)Nrrc@rR)z2ProtocolTests.test_generic_protocols_eq.<locals>.PNrTrDrDrDrEr,r�r,)r
rrgrkrr�r(rDrDrE�test_generic_protocols_eqs"�z'ProtocolTests.test_generic_protocols_eqcCshtd�}Gdd�dt|�}|�|j|f�|�|tjd�|�|tjtf�|�|tj|�dS)Nrc@rR)zDProtocolTests.test_generic_protocols_special_from_generic.<locals>.PNrTrDrDrDrEr, r�r,rD)r
rrgr�rkr�r�r��r?rr,rDrDrE�+test_generic_protocols_special_from_genericsz9ProtocolTests.test_generic_protocols_special_from_genericcCs�tGdd�dt��}Gdd�dt�}td�}Gdd�dt|�}|�|j�|�|j�|�|j�|�|j�|�|j�|�|tj�|�t	�
|�dh�|�t	�
|�d	h�|�tt	�
|��td	dh��dS)
Nc@r�)zFProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PRr�Nr�rDrDrDrEr(r�rc@r0)zEProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PcSr�rIrDr`rDrDrEr�-r�zJProtocolTests.test_generic_protocols_special_from_protocol.<locals>.P.methNr�rDrDrDrEr,,r2r,rc@r�)zFProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PGr�cSr�rIrDr`rDrDrEr�5r�zKProtocolTests.test_generic_protocols_special_from_protocol.<locals>.PG.methN)rOrPrQr�r�rDrDrDrEr�2r�r�r�r�)rrr
r*�_is_protocolr��_is_runtime_protocolrkrgrJ�_get_protocol_attrs�	frozenset)r?rr,rr�rDrDrE�,test_generic_protocols_special_from_protocol's 
�z:ProtocolTests.test_generic_protocols_special_from_protocolcCs�|�t��tGdd�d��}Wd�n1swYGdd�dt�}|�t��tGdd�d|��}Wd�dS1sAwYdS)Nc@rR)z8ProtocolTests.test_no_runtime_deco_on_nominal.<locals>.CNrTrDrDrDrEr�ErUr�c@r�)z<ProtocolTests.test_no_runtime_deco_on_nominal.<locals>.Protor�Nr�rDrDrDrEr�Hr�r�c@rR)z?ProtocolTests.test_no_runtime_deco_on_nominal.<locals>.ConcreteNrTrDrDrDrEr�Lr�r�)r]r^rr)r?r�r�r�rDrDrE�test_no_runtime_deco_on_nominalCs�"�z-ProtocolTests.test_no_runtime_deco_on_nominalcCs�tGdd�dt��}Gdd�dt�}|�|�|�Gdd�d�}Gdd�d�}|�|�|�|�|�|�Gd	d
�d
�}Gdd�d�}|�|�|�|�|�|�dS)
Nc@r�)z4ProtocolTests.test_none_treated_correctly.<locals>.PNr�rDrDrDrEr,Qr�r,c@rR)z4ProtocolTests.test_none_treated_correctly.<locals>.BNrTrDrDrDrEr�Ur�r�c@r�)z4ProtocolTests.test_none_treated_correctly.<locals>.Cr�Nr�rDrDrDrEr�Yr�r�c@r�)z4ProtocolTests.test_none_treated_correctly.<locals>.DNr�rDrDrDrEr�\r�r�c@r0)z5ProtocolTests.test_none_treated_correctly.<locals>.CIcSrrRr�r`rDrDrErscrtz>ProtocolTests.test_none_treated_correctly.<locals>.CI.__init__Nr�rDrDrDrEr�br2r�c@r0)z5ProtocolTests.test_none_treated_correctly.<locals>.DIcSr�rIr�r`rDrDrErsgrtz>ProtocolTests.test_none_treated_correctly.<locals>.DI.__init__Nr�rDrDrDrE�DIfr2r6)rrr�r�r�)r?r,r�r�r�r�r6rDrDrE�test_none_treated_correctlyPsz)ProtocolTests.test_none_treated_correctlycCs@Gdd�dt�}tjtj|f}tj|tjf}|�||�dS)Nc@r�)z1ProtocolTests.test_protocols_in_unions.<locals>.PNr�rDrDrDrEr,nr�r,)rrJrr�rg)r?r,�Alias�Alias2rDrDrE�test_protocols_in_unionsmsz&ProtocolTests.test_protocols_in_unionsc	Cs�td�}tGdd�dt|��aGdd�dtt�at�}d|_d|_tt	j
d�D]E}t	�||�}t	�|�}|�
|jd�|�
|jd�|�
|jd�|�
|jddd	��t	�t|�}t	�|�}Gd
d�d�}|�|�|�q*dS)Nrc@r�)r,r�Nr�rDrDrDrEr,yr�r,c@rR)�CPNrTrDrDrDrEr;}rUr;r\rr�rMc@r�)z2ProtocolTests.test_protocols_pickleable.<locals>.Er�Nr�rDrDrDrEr��r�r�)r
rrr,rkr;rrLrrrr r!rgr��__dict__r�)	r?rr�rrFr�r#r�r�rDrDrE�test_protocols_pickleableus&

�z'ProtocolTests.test_protocols_pickleablecC� |�ttj�|�ttj�dSrI)rFrkrJ�SupportsIntrHr�r`rDrDrE�test_supports_int��zProtocolTests.test_supports_intcCr>rI)rFr�rJ�
SupportsFloatrHr�r`rDrDrE�test_supports_float�rAz!ProtocolTests.test_supports_floatcC�.Gdd�d�}|�|tj�|�ttj�dS)Nc@r0)z.ProtocolTests.test_supports_complex.<locals>.CcSr�)NyrDr`rDrDrE�__complex__�r�z:ProtocolTests.test_supports_complex.<locals>.C.__complex__N)rOrPrQrErDrDrDrEr��r2r�)rFrJ�SupportsComplexrHr�r�rDrDrE�test_supports_complex��z#ProtocolTests.test_supports_complexcCrD)Nc@r0)z,ProtocolTests.test_supports_bytes.<locals>.BcSr��N�rDr`rDrDrE�	__bytes__�r�z6ProtocolTests.test_supports_bytes.<locals>.B.__bytes__N)rOrPrQrKrDrDrDrEr��r2r�)rFrJ�
SupportsBytesrHr�)r?r�rDrDrE�test_supports_bytes�rHz!ProtocolTests.test_supports_bytescCs.|�ttj�|�ttj�|�ttj�dSrI)rFr�rJ�SupportsAbsrkrHr�r`rDrDrE�test_supports_abs�szProtocolTests.test_supports_abscCs:tttj�|�ttj�|�ttj�|�ttj�dSrI)r<r�rJ�
SupportsRoundrFrkrHr�r`rDrDrE�test_supports_round�sz!ProtocolTests.test_supports_roundcCr>rI)rFr�rJ�
ReversiblerHrkr`rDrDrE�test_reversible�rAzProtocolTests.test_reversiblecCr>rI)rFrkrJ�
SupportsIndexrHr�r`rDrDrE�test_supports_index�rAz!ProtocolTests.test_supports_indexcCsF|�dtj�Gdd�dtj�}Gdd�d|�}|�}|�||�dS)Nrc@r�)z>ProtocolTests.test_bundled_protocol_instance_works.<locals>.C1r�cSr�r[rDr`rDrDrE�__int__�r�zFProtocolTests.test_bundled_protocol_instance_works.<locals>.C1.__int__N)rOrPrQrkrVrDrDrDrEr&�r�r&c@rR)z>ProtocolTests.test_bundled_protocol_instance_works.<locals>.C2NrTrDrDrDrEr'�rUr')r�rJrNr?)r?r&r'r�rDrDrE�$test_bundled_protocol_instance_works�s
z2ProtocolTests.test_bundled_protocol_instance_workscCsRtGdd�dtjjt��}Gdd�d�}Gdd�d�}|�||�|�||�dS)Nc@r0)z@ProtocolTests.test_collections_protocols_allowed.<locals>.CustomcSr�rIrDr`rDrDrE�close�r�zFProtocolTests.test_collections_protocols_allowed.<locals>.Custom.closeN)rOrPrQrXrDrDrDrE�Custom�r�rYc@rR)z;ProtocolTests.test_collections_protocols_allowed.<locals>.ANrTrDrDrDrEro�r�roc@r�)z;ProtocolTests.test_collections_protocols_allowed.<locals>.BcSr�rIrDr`rDrDrE�__iter__�r�zDProtocolTests.test_collections_protocols_allowed.<locals>.B.__iter__cSr�r�rDr`rDrDrErX�r�zAProtocolTests.test_collections_protocols_allowed.<locals>.B.closeN)rOrPrQrZrXrDrDrDrEr��sr�)rrrr�rrFrH)r?rYror�rDrDrE�"test_collections_protocols_allowed�sz0ProtocolTests.test_collections_protocols_allowedcCsT|�t��Gdd�dtt�}Wd�n1swYGdd�dtjt�}dS)Nc@rR)zEProtocolTests.test_builtin_protocol_allowlist.<locals>.CustomProtocolNrTrDrDrDrE�CustomProtocol�rUr\c@rR)zKProtocolTests.test_builtin_protocol_allowlist.<locals>.CustomContextManagerNrTrDrDrDrE�CustomContextManager�rUr])r]r^rrrJ�ContextManager)r?r\r]rDrDrE�test_builtin_protocol_allowlist�s�z-ProtocolTests.test_builtin_protocol_allowlistcCsLGdd�dt�}|�td��td|�Wd�dS1swYdS)Nc@r|)zCProtocolTests.test_non_runtime_protocol_isinstance_check.<locals>.Pr�NryrDrDrDrEr,�r�r,z@runtime_checkabler�)rr-r^r_�r?r,rDrDrE�*test_non_runtime_protocol_isinstance_check�s"�z8ProtocolTests.test_non_runtime_protocol_isinstance_checkcCs*Gdd�dt�}Gdd�d|�}|�dS)Nc@r|)z-ProtocolTests.test_super_call_init.<locals>.Pr�NryrDrDrDrEr,�r�r,cr)z/ProtocolTests.test_super_call_init.<locals>.Foocst���dSrI)rrsr`r!rDrErs�ruz8ProtocolTests.test_super_call_init.<locals>.Foo.__init__�rOrPrQrsr#rDrDr!rErU�r$rU)r)r?r,rUrDrDrE�test_super_call_init�s
z"ProtocolTests.test_super_call_initN)3rOrPrQr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrr&r)r,r-r/r4r5r7r:r=r@rCrGrMrOrQrSrUrWr[r_rarcrDrDrDrEr�|sb #%G%
#	




r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1d_d`�Z2dadb�Z3dcdd�Z4dedf�Z5dgdh�Z6diS)j�GenericTestscCsRtttf}|�|jd�|�t��|tWd�n1s!wY|�t��|ttfWd�n1s<wYtttf}|�|jtf�|t|�t��|ttfWd�n1siwYtttf}|�t��
t	|t�Wd�n1s�wY|�
|�t�td�}|�tt
|tBj|f�dS)NrDr)rfr�rrgr�r]r^rdrkr<r�r
rr�r�)r?r�r��SM1rrDrDrEr��s*
���� zGenericTests.test_basicscCs�td�}td�}|�t��t||Wd�n1swY|�t��t||Wd�n1s9wY|�t��Gdd�dt|t|�}Wd�n1s[wY|�t��tgtt�Wd�n1swwY|�t��tttt�Wd�n1s�wY|�t��Gdd�dt�}Wd�n1s�wY|�t��Gdd�dt|t|�}Wd�n1s�wY|�t��Gd	d�dt|t|�}Wd�dS1s�wYdS)
Nrrc@rR)z+GenericTests.test_generic_errors.<locals>.CNrTrDrDrDrEr�r�r�c@rR)z4GenericTests.test_generic_errors.<locals>.NewGenericNrTrDrDrDrE�
NewGenericr�rfc@rR�z3GenericTests.test_generic_errors.<locals>.MyGenericNrTrDrDrDrE�	MyGenericr�rhc@rRrgrTrDrDrDrErhr�)	r
r]r^rr_rrkr<r�)r?rrr�rfrhrDrDrE�test_generic_errors	s4�������"�z GenericTests.test_generic_errorscCs�td�}td�}|�t��t||fWd�n1swY|�t��t|||fWd�dS1s;wYdS)Nrr)r
r]r^r)r?rrrDrDrE�	test_inits�"�zGenericTests.test_initcCs�Gdd�dtjt�}Gdd�d|�}|�|jd�|�t��|jWd�n1s-wYd|_d|_Gdd	�d	|�}Gd
d�d|t�}|�|jd�|�|jd�|�|jd�dS)Ncr)z*GenericTests.test_init_subclass.<locals>.Xcst�jdi|��d|_dS)Nr\rD)r�__init_subclass__r�)r@�kwargsr!rDrErk's
z<GenericTests.test_init_subclass.<locals>.X.__init_subclass__�rOrPrQrkr#rDrDr!rEr�&r$r�c@rR)z*GenericTests.test_init_subclass.<locals>.YNrTrDrDrDrEr�*rUr�r\r�rCc@rR)z*GenericTests.test_init_subclass.<locals>.ZNrTrDrDrDrE�Z1rUrnc@rR)z*GenericTests.test_init_subclass.<locals>.WNrTrDrDrDrE�W3rUro)rJrrrgr�r]�AttributeErrorrk)r?r�r�rnrorDrDrE�test_init_subclass%s�zGenericTests.test_init_subclasscCs4|�tt�dt�d��|�tt�dt�d��dS)Nz<class 'z.SimpleMapping'>z.MySimpleMapping'>)rgrhrfrOrpr`rDrDrEri9s

�

�zGenericTests.test_reprcCs�td�}td�}Gdd�dt|�}|t||f}|�||t||f�|�||t||f�||tf}|�|||tf�|�|||tf�|�|||tf�|t}|�||t�|�||t�|�|||�|�t|��d��dS)Nrrc@rR)z'GenericTests.test_chain_repr.<locals>.CNrTrDrDrDrEr�CrUr�z.C[typing.Tuple[str, int]])	r
rrrgr�rkr�r*r+)r?rrr�r�r�rnrDrDrE�test_chain_repr?s"
�zGenericTests.test_chain_reprcCs�td�}tddd�}td�}|�tt�d�|�tt|�d�|�tt|�d�|�tt||t�d	�|�ttt�d	�dS)
Nr�UTr�rztyping.Listztyping.List[~T]ztyping.List[+U]ztyping.List[int])r
rgrhrrk)r?rrsrrDrDrE�
test_new_reprWszGenericTests.test_new_reprcCs~td�}td�}|�ttj||f||f�d�|�ttt||ft|f�d�|�ttt||ftt�d�dS)Nr�TSztyping.Mapping[~TS, ~T]z"typing.List[typing.Tuple[int, ~T]]z=typing.List[typing.Tuple[typing.List[int], typing.List[int]]])r
rgrhrJr�rrrk)r?rrurDrDrE�test_new_repr_complexbs"��z"GenericTests.test_new_repr_complexcCsZtd�}|�tt|�d�|�ttj|�d�Gdd�dtjttf�}t|j�dS)Nrztyping.Generic[~T]ztyping.Protocol[~T]c@rR)z*GenericTests.test_new_repr_bare.<locals>.CNrTrDrDrDrEr�rr�r�)	r
rgrhrrJrrr�__mro__�r?rr�rDrDrE�test_new_repr_barens
zGenericTests.test_new_repr_barecCsptd�}Gdd�dt|�}|�}d|_|�|jddi�Gdd�d|t�}|�}d|_|�|jd	di�dS)
Nrc@rR)z!GenericTests.test_dict.<locals>.BNrTrDrDrDrEr�yrUr�r\rc@rR)z!GenericTests.test_dict.<locals>.CNrTrDrDrDrEr��rUr�rrL)r
rrrgr<rkrL)r?rr��br�r�rDrDrE�	test_dictvszGenericTests.test_dictcCsTtd�}Gdd�dt|�}|�|tjd�|�||tjd�d||t_|�|jd�|�|tjd�d|tt_|�|jd�|�|ttjd�|�|�jd�|�|tt�jd�Gdd�d||�}|�|tjd�|�|jd�d	|_d
|t_|�|jd�|�|tjd�|�|jd
�|�|tjd	�dS)Nrc@r�)z<GenericTests.test_subscripted_generics_as_proxies.<locals>.C�defNr�rDrDrDrEr��r�r�r|�changed�newc@rR)z<GenericTests.test_subscripted_generics_as_proxies.<locals>.DNrTrDrDrDrEr��rUr�zfrom derived zzfrom derived x)	r
rrgrkr�r�rrFr�r?rr�r�rDrDrE�$test_subscripted_generics_as_proxies�s*
z1GenericTests.test_subscripted_generics_as_proxiescCs`td�}Gdd�dtjjt|�}|�t�|�d|�|t|�d|�|��|�	�dS)Nrc@rR)z.GenericTests.test_abc_registry_kept.<locals>.CNrTrDrDrDrEr��r�r�r�)
r
rrr�rr�rkr��_abc_registry_clear�_abc_caches_clearrxrDrDrE�test_abc_registry_kept�s
z#GenericTests.test_abc_registry_keptcCs4Gdd�dtttf�}|�i|�|�t|�dS)Nc@rR)z5GenericTests.test_false_subclasses.<locals>.MyMappingNrTrDrDrDrE�	MyMapping�r�r�)rr�r�rHr�)r?r�rDrDrE�test_false_subclasses�sz"GenericTests.test_false_subclassescCs`Gdd�dtttf�}|���|�|�tjj�|�|�t�|�|�t�|�i|�dS)Nc@�4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)z'GenericTests.test_abc_bases.<locals>.MMcSr�rIrD�r?�krDrDrEri�r�z3GenericTests.test_abc_bases.<locals>.MM.__getitem__cSr�rIrD�r?r�r�rDrDrErl�r�z3GenericTests.test_abc_bases.<locals>.MM.__setitem__cSr�rIrDr�rDrDrE�__delitem__�r�z3GenericTests.test_abc_bases.<locals>.MM.__delitem__cS�td�Sr���iterr`rDrDrErZ�r�z0GenericTests.test_abc_bases.<locals>.MM.__iter__cSr�r�rDr`rDrDrE�__len__�r�z/GenericTests.test_abc_bases.<locals>.MM.__len__N�rOrPrQrirlr�rZr�rDrDrDrE�MM��r�)rr��updater�rrr�r)r?r�rDrDrE�test_abc_bases�s
zGenericTests.test_abc_basescCsVGdd�dtttftjj�}Gdd�dtjjtttf�}|�|jtjjtf�dS)Nc@rR)z-GenericTests.test_multiple_bases.<locals>.MM1NrTrDrDrDrE�MM1�rUr�c@rR)z-GenericTests.test_multiple_bases.<locals>.MM2NrTrDrDrDrE�MM2�rUr�)rr�rrrg�	__bases__r)r?r�r�rDrDrE�test_multiple_bases�sz GenericTests.test_multiple_basescCs@td�}Gdd�dtjt|f�}|�|jtjt|ff�dS)Nrc@rR)z'GenericTests.test_orig_bases.<locals>.CNrTrDrDrDrEr��r�r�)r
rJrr�rg�__orig_bases__rxrDrDrE�test_orig_bases�szGenericTests.test_orig_basescCspdd�}|�|dditjttf��|�|dditjttf��|�t��|dditjttf�Wd�n1s>wYdd�}Gdd�dt	t�}|�||t�|t��|�||t�|t��|�||t�t
��|�t��|gd	�|t�Wd�n1s�wYd
d�}Gdd
�d
t
t�}|�|gd	�|��|�|ddg|��dS)NcsBt|j�dkr	t�|jr|j\��t��fdd�|��D��SdS)Nrc3s(�|]\}}t|��ot|��VqdSrI)r_��.0r�r��r
rrDrE�	<genexpr>�s
��
�zSGenericTests.test_naive_runtime_checks.<locals>.naive_dict_check.<locals>.<genexpr>)r�r�r�r��all�items�r��tprDr�rE�naive_dict_check�s
��z@GenericTests.test_naive_runtime_checks.<locals>.naive_dict_checkr�r�cSst|d�st�|j|kS)Nr4)�hasattrr�r4r�rDrDrE�naive_generic_check�s

zCGenericTests.test_naive_runtime_checks.<locals>.naive_generic_checkc@rR)z4GenericTests.test_naive_runtime_checks.<locals>.NodeNrTrDrDrDrE�Node�r�r�rBcst�fdd�|D��S)Nc3s&�|]}t|�jdjd�VqdS)rN)r_r�r�)r�r��r�rDrEr��s��zXGenericTests.test_naive_runtime_checks.<locals>.naive_list_base_check.<locals>.<genexpr>)r�r�rDr�rE�naive_list_base_check�s�zEGenericTests.test_naive_runtime_checks.<locals>.naive_list_base_checkc@rR)z1GenericTests.test_naive_runtime_checks.<locals>.CNrTrDrDrDrEr��r�r�r	rz)r*rJrr�rkr�r]r�rrr)r?r�r�r�r�r�rDrDrE�test_naive_runtime_checks�s$
��z&GenericTests.test_naive_runtime_checkscCs"td�}td�}td�}Gdd�dt|||�}Gdd�d|t|||�}|�|j|f�|�|j|f�|�|tjd�|�|tjd�|�|tjtf�|�|tjtf�|�|jttf�|�|j|ttf�|�|j	t|||f�|�|j	|t|||f�dS)	Nrrsr�c@rR)z.GenericTests.test_multi_subscr_base.<locals>.CNrTrDrDrDrEr��r�r�c@rR)z.GenericTests.test_multi_subscr_base.<locals>.DNrTrDrDrDrEr��r�r�rD)
r
rrgr�rkr�r�r�rr�)r?rrsr�r�r�rDrDrE�test_multi_subscr_base�s"z#GenericTests.test_multi_subscr_basecCsjtd�}Gdd�dt�}|�t|t|�|�t|tf|t|tf�|�td|fjt|f�dS)Nrc@rR)z.GenericTests.test_subscript_meta.<locals>.MetaNrTrDrDrDrE�Metar�r�.)	r
rqrgr%rrkrr��Ellipsis)r?rr�rDrDrE�test_subscript_metas
 z GenericTests.test_subscript_metacCs�Gdd�dtt�}Gdd�dtt�}|�||�|�tjttjt�|�|j|j�|�tjj|jttjj|jt�|�||j�|�|tj�|�|tjj�|�|jtj�|�|jtjj�|�|t|jt�|�|tt	|jtt	�|�|ttjt�|�|ttjjt�|�|jt
tjt
�|�|jtt	tjjtt	�|�t|tt|jt�|�t|tt	t|jtt	�|�tt|tftttjtf�|�t|t|tft|ttjtf�|�t
j|tt
jtjjt�tjdd�dk�r]|�tt|t��d��|�tt|jt��d��|�tttjt��d	��|�tttjjt��d
��dSdS)Nc@rR)z+GenericTests.test_generic_hashes.<locals>.ANrTrDrDrDrEro
rUroc@s eZdZGdd�dee�ZdS)z+GenericTests.test_generic_hashes.<locals>.Bc@rR)z-GenericTests.test_generic_hashes.<locals>.B.ANrTrDrDrDrErorUroN)rOrPrQrrrorDrDrDrEr�sr�rC)rDrCz<locals>.A[str]]z<locals>.B.A[str]]zmod_generics_cache.A[str]]zmod_generics_cache.B.A[str]])rrrgr7ror�r�r�rrrkrrrJ�	FrozenSet�sys�version_infor*rhr+�r?ror�rDrDrE�test_generic_hashessL�"&&�����z GenericTests.test_generic_hashescCs�td�}td�}|�t||fttttf�|�tjt||f|tjt||f�|�t��t|tfdWd�n1sFwY|�t|tftt�|�t||ftttt	ffttt	f�Gdd�d�}Gdd�d|�}|�t||ft||ft||f�|�t��t|tfdWd�n1s�wY|�t
|g|ftt
tgtf�|�t
d	t|ftt
d	ttf�dS)
NrrsrDc@rR)z9GenericTests.test_extended_generic_rules_eq.<locals>.BaseNrTrDrDrDrE�BaseAr�r�c@rR)z<GenericTests.test_extended_generic_rules_eq.<locals>.DerivedNrTrDrDrDrE�DerivedBr�r�r�.)
r
rgrrkrJr�r]r^rr�rr
r)r?rrsr�r�rDrDrE�test_extended_generic_rules_eq7s" ,�,(�$,z+GenericTests.test_extended_generic_rules_eqcCs�td�}|�ttttf��dd�d�|�tttttf��dd�d�|�ttdt|ft��dd�d�|�ttgt	|ft��dd�d�dS)	Nrztyping.�zUnion[Tuple, Callable]zUnion[Tuple, Tuple[int]].zCallable[..., Optional[int]]zCallable[[], List[int]])
r
rgrhrrr�replacerkrrr�rDrDrE� test_extended_generic_rules_reprJs��"�"�z-GenericTests.test_extended_generic_rules_reprc
CsDdttdfdd�}dtttd�fdd�}dttd�tBfdd	�}Gd
d�d�}|�t|t�t��dtt|i�|�t|t�t��dtt|i�|�t|t�t��dt|tBtBi�td�}t	|df}d|fd
d�}|�
t|t�t��d|�tdt|f}d|fdd�}	|�
t|	t�t��d|�dS)Nr��CCcSr�rIrDr�rDrDrE�foobarVr�z5GenericTests.test_generic_forward_ref.<locals>.foobarcSr�rIrDr�rDrDrE�foobar2Wr�z6GenericTests.test_generic_forward_ref.<locals>.foobar2zCC | intcSr�rIrDr�rDrDrE�foobar3Xr�z6GenericTests.test_generic_forward_ref.<locals>.foobar3c@rR)z1GenericTests.test_generic_forward_ref.<locals>.CCNrTrDrDrDrEr�Yr�r.cSr�rIrDr�rDrDrE�barfooir�z5GenericTests.test_generic_forward_ref.<locals>.barfoocSr�rIrDr�rDrDrE�barfoo2lr�z6GenericTests.test_generic_forward_ref.<locals>.barfoo2)rr�r0rkrgrrr
r
rr�r)
r?r�r�r�r�r�ATr��CTr�rDrDrE�test_generic_forward_refUs.��� z%GenericTests.test_generic_forward_refcCs�Gdd�dtttf�}Gdd�dttdf�}Gdd�dtjt�}|�|jttf�|�|ttfj	ttf�|�|ttfj
|�|�|jtf�|�t|t��d�d	d
�|�|jtf�|�
|�tjj�|�|tjj�|�
|�t�|�|t�|�t��tttdftj�Wd�n1s�wY|�t��tttdftj�Wd�dS1s�wYdS)Nc@rR)z@GenericTests.test_extended_generic_rules_subclassing.<locals>.T1NrTrDrDrDrE�T1pr�r�c@rR)z@GenericTests.test_extended_generic_rules_subclassing.<locals>.T2NrTrDrDrDrE�T2qr�r�.c@r0)z@GenericTests.test_extended_generic_rules_subclassing.<locals>.C1cSr�)NFrD)r?�itemrDrDrE�__contains__sr�zMGenericTests.test_extended_generic_rules_subclassing.<locals>.C1.__contains__N)rOrPrQr�rDrDrDrEr&rr2r&�.���zC1[int])rrr
rJ�	Containerrgr�rkr�r�r�rh�splitr�rrrFr�r]r^r<�Sequencer�)r?r�r�r&rDrDrE�'test_extended_generic_rules_subclassingos&�"�z4GenericTests.test_extended_generic_rules_subclassingcCs�|�t��ttWd�n1swY|�t��ttWd�n1s-wY|�t��ttWd�n1sFwY|�t��tttWd�dS1sbwYdSrI)r]r^rrrrrrkr`rDrDrE�test_fail_with_bare_union�s
�
�
�"�z&GenericTests.test_fail_with_bare_unioncCs�td�}|�t��ttWd�n1swY|�t��tt|Wd�n1s3wY|�t��ttjWd�dS1sNwYdSr�)r
r]r^rrrrJrr�rDrDrE�test_fail_with_bare_generic�s
��"�z(GenericTests.test_fail_with_bare_genericcCs8td�}|��Gdd�dt||f�}|�|t�j|�|�|t�j|t�Gdd�dtj	||f�}|�|t�j|�|�|t�j|t�Gdd�dtj
t|f�}|�|t�j|�|�|t�j|t�tj
dkr�Gd	d
�d
tjt|f�}|�|t�j|�|�|t�j|t�dSdS)Nrc@rR)z5GenericTests.test_type_erasure_special.<locals>.MyTupNrTrDrDrDrE�MyTup�r�r�c@rR)z6GenericTests.test_type_erasure_special.<locals>.MyDictNrTrDrDrDrE�MyDict�r�r�c@rR)z5GenericTests.test_type_erasure_special.<locals>.MyDefNrTrDrDrDrE�MyDef�r�r��rDrDc@rR)z7GenericTests.test_type_erasure_special.<locals>.MyChainNrTrDrDrDrE�MyChain�r�r�)r
rNrr�rkr3rgr4rJr�DefaultDictr�r�r��ChainMap)r?rr�r�r�r�rDrDrE�test_type_erasure_special�s 
�z&GenericTests.test_type_erasure_specialcCs�dd�tjD�}|D]@}|�t|�d�|�||�t|dd�r1t|j�dkr1|�|tj	tf�t
|t�rJ|jD]}|�t|�d�|�||�q9q
dS)Ncss�|]}tt|�VqdSrI)�getattrrJ)r��elrDrDrEr��s�z4GenericTests.test_all_repr_eq_any.<locals>.<genexpr>r�r�r�)
rJ�__all__r�rhrgr�r�r�rr�r_rqrw)r?�objsr��baserDrDrE�test_all_repr_eq_any�s

��z!GenericTests.test_all_repr_eq_anyc

Cs�td�}Gdd�dt|�}Gdd�d|t�at�}d|_d|_ttjd�D]%}t�	||�}t�
|�}|�|jd�|�|jd�|�|jddd	��q(t
tttttttfttttd
ftdttgtftjtjtg}|D]}ttjd�D]}t�	||�}t�
|�}|�||�q|qsttjtjtttjtjtjtttfg}	|	D]}ttjd�D]}t�	||�}t�
|�}|�||�q�q�dS)Nrc@rR)z#GenericTests.test_pickle.<locals>.BNrTrDrDrDrEr��rUr�c@rR)r�NrTrDrDrDrEr��rUr�r\rr�rM.rD)r
rrkr�rrLrrrr r!rgr<rrrrrr�rr�rJr�r�r�r%r��AbstractSet)
r?rr�r�rrFr�r"r#�more_samplesrDrDrEr%�sB

 �
��
��zGenericTests.test_picklecCstd�}Gdd�dt|�}t|tft|tftdtd|fttgtftttf|||t|ttj|tjttjttj	tt
ftj	|tftttt|tdtdtftdtj
dtfg}|tgD]}|�|t|��|�|t|��qldS)Nrc@rR)z1GenericTests.test_copy_and_deepcopy.<locals>.NodeNrTrDrDrDrEr��r�r�rD.)rr)r
rrrkrrrrJr�rr�rrr�rgrr)r?rr��thingsr�rDrDrE�test_copy_and_deepcopy�s$"��z#GenericTests.test_copy_and_deepcopycCs�td�atdtd�atdtt�atttttj	t
tjtt
ttfD]}|�t|�|�|�t|�|�|�t�t�|��|�qtd�}tdtd�}tdtt�}|||fD]}|�t|�|�|�t|�|�qSdS)Nr��TPBr��TPV�TL�TLB�TLV)r
r�rkr�r�r�r�rrJr�rr�rrrrr�rrrr!r )r?r�r�r�r�rDrDrE�$test_immutability_by_copy_and_pickle�s ��z1GenericTests.test_immutability_by_copy_and_picklecs&td��G�fdd�dt��}|d�}|�t|�jd�|�t|�jd�|�t|�|�|�t|�|�d|_|�t|�jd�|�t|�jd�|td�}|�t|�jd�|�t|�jd�|�t|�|�|�t|�|�d|_|�t|�jd�|�t|�jd�|�|j|t�dS)NrcseZdZd�ddfdd�ZdS)z3GenericTests.test_copy_generic_instances.<locals>.Cr�r�NcSr�rIr�r�rDrDrErs	rtz<GenericTests.test_copy_generic_instances.<locals>.C.__init__r�rDr�rDrEr�	rr�r\r�)	r
rrgrr�r�assertIsNotrkr4)r?r�r��cirDr�rE�test_copy_generic_instances	s&z(GenericTests.test_copy_generic_instancesc	Csvtd�}tt|tftd|ftttfttttj	tt
ftjjt
tjdg}|D]}|�t�|��|�q,dS)Nr.�whatever)r
rrrkrrrrrJr�r��rer.r�r�rgrr)r?rr�r�rDrDrE�test_weakref_all	s ��zGenericTests.test_weakref_allcCs�td�}Gdd�dt|�}|�}|t�}d|_d|_|�t��d|_Wd�n1s/wY|�t��d|_Wd�n1sGwYd|dfdd�}|�t|t	�t
��d||�|�t|t�t|t��dS)Nrc@r�)z0GenericTests.test_parameterized_slots.<locals>.C)�potatoN�rOrPrQ�	__slots__rDrDrDrEr�%	r�r�rr�cSr�rIrDr�rDrDrEr2	r�z2GenericTests.test_parameterized_slots.<locals>.foo)
r
rrkr�r]rp�tomatorgrrr
rr)r?rr�r��c_intrrDrDrE�test_parameterized_slots#	s
��  z%GenericTests.test_parameterized_slotscCs�td�}Gdd�dt|�}|�}|t�}d|_d|_|�t��d|_Wd�n1s/wY|�t��d|_Wd�dS1sHwYdS)Nrc@seZdZddiZdS)z5GenericTests.test_parameterized_slots_dict.<locals>.D�bananar\Nr�rDrDrDrEr�8	r2r��yes�no)r
rrkr�r]rpr�)r?rr��d�d_intrDrDrE�test_parameterized_slots_dict6	s
�"�z*GenericTests.test_parameterized_slots_dictcCsP|�t��tttf}Gdd�dt|�}Wd�dS1s!wYdS)Nc@rR)z#GenericTests.test_errors.<locals>.CNrTrDrDrDrEr�I	rUr�)r]r^rfrdrr)r?r�r�rDrDrErlE	s"�zGenericTests.test_errorscCs�Gdd�dtt�}|�|jt�|�|jd�|t}|�|jt�|�t|��d�dd�Gdd�d|t�}|�|jt�|�|jd	�dS)
Nc@rR)�#GenericTests.test_repr_2.<locals>.CNrTrDrDrDrEr�M	rUr�r�r�r�zC[int]c@rR)�#GenericTests.test_repr_2.<locals>.YNrTrDrDrDrEr�W	rUr�r�)	rrrgrPrOrQrkrhr�)r?r�r�r�rDrDrE�test_repr_2L	s��zGenericTests.test_repr_2cCs8|�tt�|�tttt�|�tttt�dSrI)rgrrr�r
rr`rDrDrE�	test_eq_1^	szGenericTests.test_eq_1cCslGdd�dtt�}Gdd�dtt�}|�||�|�||�|�|t|t�|�|t|t�dS)Nc@rR)z!GenericTests.test_eq_2.<locals>.ANrTrDrDrDrEroe	rUroc@rR)z!GenericTests.test_eq_2.<locals>.BNrTrDrDrDrEr�h	rUr�)rrrgr�r�rDrDrE�	test_eq_2c	szGenericTests.test_eq_2cCsvGdd�dtttf�}Gdd�dtttf�}Gdd�d|ttfttttf|ttf�}|�|jtttf�dS)Nc@rR)z1GenericTests.test_multiple_inheritance.<locals>.ANrTrDrDrDrEror	rUroc@rR)z1GenericTests.test_multiple_inheritance.<locals>.BNrTrDrDrDrEr�u	rUr�c@rR)z1GenericTests.test_multiple_inheritance.<locals>.CNrTrDrDrDrEr�x	rUr�)rrrr
rgr�)r?ror�r�rDrDrE�test_multiple_inheritancep	s.z&GenericTests.test_multiple_inheritancecCsNtd�}Gdd�dt|�}Gdd�dtt|�}|�|j|t|ttf�dS)Nrc@rR)z9GenericTests.test_multiple_inheritance_special.<locals>.BNrTrDrDrDrEr�	r�r�c@rR)z9GenericTests.test_multiple_inheritance_special.<locals>.CNrTrDrDrDrEr��	r�r�)r
rrrkrgrwr�r�)r?rr�r�rDrDrE�!test_multiple_inheritance_special}	sz.GenericTests.test_multiple_inheritance_specialcs�Gdd�dt��G��fdd�d��Gdd�dtt��}|����Gdd�d|�}Wd�n1s5wY|����Gd	d�d|t�}Wd�dS1sUwYdS)
Nc@rR)zDGenericTests.test_init_subclass_super_called.<locals>.FinalExceptionNrTrDrDrDrE�FinalException�	rUr�cs"eZdZd���fdd�Z�ZS)z;GenericTests.test_init_subclass_super_called.<locals>.Finalr�Ncs<|jD]}|�urt|��r�|��qt�jdi|��dSr�)r�r<rrk)r@rlr�)rr�r3rDrErk�	s

�zMGenericTests.test_init_subclass_super_called.<locals>.Final.__init_subclass__)r�NrmrD�rr�r!rEr�	src@rR)z:GenericTests.test_init_subclass_super_called.<locals>.TestNrTrDrDrDrEr�	rUrc@rR�z>GenericTests.test_init_subclass_super_called.<locals>.SubclassNrTrDrDrDrE�Subclass�	rUrc@rRrrTrDrDrDrEr�	rU)�	Exceptionrrr]rk)r?rrrDr�rE�test_init_subclass_super_called�	s�"�z,GenericTests.test_init_subclass_super_calledcCsrt}Gdd�d|t�}|tjt}Gdd�d|�}|�}|�g�|�d�|�d�|�|��ddg�dS)Nc@s4eZdZdZdefdd�Zdd�Zdefdd	�ZdS)
z)GenericTests.test_nested.<locals>.VisitorNr	cSr�rIr
�r?r	rDrDrE�set�	rtz-GenericTests.test_nested.<locals>.Visitor.setcS�|jSrIr
r`rDrDrEro�	r�z-GenericTests.test_nested.<locals>.Visitor.getr�cSrrIr
r`rDrDrE�visit�	r�z/GenericTests.test_nested.<locals>.Visitor.visit)rOrPrQr	rrrorrDrDrDrE�Visitor�	s
rc@r�)z0GenericTests.test_nested.<locals>.IntListVisitorr�cSs|j�|�dSrI)r	�appendr�rDrDrEr	�	�z7GenericTests.test_nested.<locals>.IntListVisitor.appendN)rOrPrQrkr	rDrDrDrE�IntListVisitor�	�rr�r\)	rrrJrrkrr	rgro)r?�Grr�rr	rDrDrE�test_nested�	s



zGenericTests.test_nestedcsBtd��G�fdd�dt���d�f���fdd�}|d�dS)Nrcs(eZdZ		dd�ddddfdd�ZdS)	z,GenericTests.test_type_erasure.<locals>.NodeNr~�left�Node[T]�rightcSr�rI�r~rr)r?r~rrrDrDrErs�	s
z5GenericTests.test_type_erasure.<locals>.Node.__init__�NNr�rDr�rDrEr��	s���r�r�cs~�|�}��|�}�t|�}��t|�����t|�����t|�����|j|���|j|���|j|�dSrI)rr�rqrgr~)r�r	rzr��r�rr?rDrEr�	sz+GenericTests.test_type_erasure.<locals>.foor\�r
r�r?rrDrrEr5�	szGenericTests.test_type_erasurecCs�td�}Gdd�dt|�}Gdd�d|�}|�|jd�|�t��|tWd�n1s1wY|�t��|tWd�n1sJwY|�t��
||Wd�dS1sdwYdS)Nrc@rR)z)GenericTests.test_implicit_any.<locals>.CNrTrDrDrDrEr��	rUr�c@rR)z)GenericTests.test_implicit_any.<locals>.DNrTrDrDrDrEr��	rUr�rD)r
rrgr�r]r^rkrrrDrDrE�test_implicit_any�	s
�
�
"�zGenericTests.test_implicit_anycCsNGdd�dtt�}Gdd�d�}Gdd�d||�}|d�}|�|jd�dS)Nc@rR)z*GenericTests.test_new_with_args.<locals>.ANrTrDrDrDrEro�	rUrocr)z*GenericTests.test_new_with_args.<locals>.Bcst��|�}||_|SrI)rr r��r@r�r�r!rDrEr �	�z2GenericTests.test_new_with_args.<locals>.B.__new__r"rDrDr!rEr��	r$r�c@rR)z*GenericTests.test_new_with_args.<locals>.CNrTrDrDrDrEr��	rUr�r)rrrgr��r?ror�r�r�rDrDrE�test_new_with_args�	s
zGenericTests.test_new_with_argscCsLGdd�d�}Gdd�dtt|�}|d�}|�|jd�|�|jd�dS)Ncr)z+GenericTests.test_new_with_args2.<locals>.Acs||_t���dSrI)�from_arrsr�r!rDrErs�	sz4GenericTests.test_new_with_args2.<locals>.A.__init__rbrDrDr!rEro�	r$rocr)z+GenericTests.test_new_with_args2.<locals>.Ccs||_t��|�dSrI)�from_crrsr�r!rDrErs�	sz4GenericTests.test_new_with_args2.<locals>.C.__init__rbrDrDr!rEr��	r$r�r)rrrgrr)r?ror�r�rDrDrE�test_new_with_args2�	s
z GenericTests.test_new_with_args2cCs�Gdd�dtt�}|�t��|d�Wd�n1swYGdd�d�}Gdd�d||�}|d�}|�|jd�|�|jd�|�|jd	�dS)
Nc@rR)z(GenericTests.test_new_no_args.<locals>.ANrTrDrDrDrEro
rUrorcr)z(GenericTests.test_new_no_args.<locals>.Bcst��|�}d|_|S)Nrz)rr �from_b)r@r�r!rDrEr 
rz0GenericTests.test_new_no_args.<locals>.B.__new__r"rDrDr!rEr�
r$r�cs$eZdZdd�Z�fdd�Z�ZS)z(GenericTests.test_new_no_args.<locals>.CcSr�rIr�r�rDrDrErs
rtz1GenericTests.test_new_no_args.<locals>.C.__init__cst��|�}d|_|S)Nr�)rr rrr!rDrEr 
rz0GenericTests.test_new_no_args.<locals>.C.__new__)rOrPrQrsr r#rDrDr!rEr�
sr�rzr�)rrr]r^rgr�rrrrDrDrE�test_new_no_args
s
�
zGenericTests.test_new_no_argsc
Cs�tttttttftttdtttd�ft	tfD]@}|j
|d��0|�tdt
�d|����d���Gdd�d|�}Wd�n1sIwYWd�n1sXwYqdS)	NrHr,)rB�^zCannot subclass �$c@rR)z4GenericTests.test_subclass_special_form.<locals>.FooNrTrDrDrDrErU1
rUrU)rrkrrr�rrr3r2r6r�r-r^r��escape)r?r�rUrDrDrE�test_subclass_special_form#
s$
�	������z'GenericTests.test_subclass_special_formcCsBtddd�}Gdd�dt|�}td�}Gdd�d|t|�}dS)	Nr�Tr�c@rR)z2GenericTests.test_complex_subclasses.<locals>.BaseNrTrDrDrDrEr�7
rUr�rc@rR)z1GenericTests.test_complex_subclasses.<locals>.SubNrTrDrDrDrE�Sub=
rUr%r)r?r�r�rr%rDrDrE�test_complex_subclasses4
sz$GenericTests.test_complex_subclassescCs�|�ttjtf�|�tttjtf�Gdd�d�}ttfD]A}ttttj	tj
fD]5}|j||d��$|�t
d��||tWd�n1sMwYWd�n1s\wYq,q!|�t|�jtf�dS)Nc@seZdZefZdS)z0GenericTests.test_parameter_detection.<locals>.AN)rOrPrQrr�rDrDrDrEroC
r�ro)�generic�subz0.* is not a generic class|no type variables left)rgrrr�r�rkr
r2r�r�	UnionTyper�r-r^r�)r?ror	rzrDrDrE�test_parameter_detection@
s ������z%GenericTests.test_parameter_detectioncCs�td�}Gdd�dt|�}t|tttttjtjfD]�}t	t
fD]V}|j||d��E|�|||ft||tf�|�|||ft|t|f�||}|�
t��|tWd�n1sbwYWd�n1sqwYq ttjjfD]]}|j||d��L|�||g|ft||gtf�|�||g|ft|tg|f�||g|f}|�
t��|tWd�n1s�wYWd�n1s�wYq}qdS)Nrc@rR)z2GenericTests.test_non_generic_subscript.<locals>.GNrTrDrDrDrEr
S
rUr
)r�r()�callabler()r
rrkrr�r2r�rr)rr�r�rgr]r^rrr)r?rr
r#r�r	r�rDrDrE�test_non_generic_subscriptQ
s<�  
����$$
������z'GenericTests.test_non_generic_subscriptN)7rOrPrQr�rirjrqrirrrtrvryr{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�rlr�r�r�r�r�rrr5rrrr r$r&r*r,rDrDrDrErd�sj
$+
	$


rdc@r�)�
ClassVarTestscCs�|�t��tdWd�n1swY|�t��tttfWd�n1s/wY|�t��tttWd�dS1sKwYdSrR)r]r^rrkr�r`rDrDrEr�m
�
��"�zClassVarTests.test_basicscCsH|�tt�d�tt}|�t|�d�tt}|�t|�dt�dS)Nztyping.ClassVar�typing.ClassVar[int]ztyping.ClassVar[%s.Employee])rgrhrrkrSrO�r?�cvrDrDrEriu
s
zClassVarTests.test_reprcC�|�t��Gdd�dtt��}Wd�n1swY|�t��Gdd�dttt��}Wd�dS1s<wYdS)Nc@rR�z-ClassVarTests.test_cannot_subclass.<locals>.CNrTrDrDrDrEr�~
rUr�c@rRr3rTrDrDrDrEr��
rU)r]r^rqrrkr�rDrDrErs|
��"�z"ClassVarTests.test_cannot_subclasscC�|�t��t�Wd�n1swY|�t��
tt��Wd�n1s-wY|�t��tttt��Wd�dS1sLwYdSrI)r]r^rrqrrkr`rDrDrErS�
���"�zClassVarTests.test_cannot_initcC�r|�t��tdtt�Wd�n1swY|�t��ttt�Wd�dS1s2wYdSrR)r]r^r_rrkr<r`rDrDrE�test_no_isinstance�
��"�z ClassVarTests.test_no_isinstanceN�rOrPrQr�rirsrSr8rDrDrDrEr-k
sr-c@ry)�
FinalTestscCs�tt|�t��tdWd�n1swY|�t��tttfWd�n1s3wY|�t��tttWd�n1sNwY|�t��tttWd�dS1sjwYdSrR)rrkr]r^r�rr`rDrDrEr��
s
���"�zFinalTests.test_basicscC�d|�tt�d�tt}|�t|�d�tt}|�t|�dt�ttt}|�t|�d�dS)Nztyping.Finalztyping.Final[int]ztyping.Final[%s.Employee]ztyping.Final[tuple[int]])rgrhrrkrSrOr�r0rDrDrEri�
�zFinalTests.test_reprcCr2)Nc@rR�z*FinalTests.test_cannot_subclass.<locals>.CNrTrDrDrDrEr��
rUr�c@rRr>rTrDrDrDrEr��
rU)r]r^rqrrkr�rDrDrErs�
r4zFinalTests.test_cannot_subclasscCr5rI)r]r^rrqrrkr`rDrDrErS�
r6zFinalTests.test_cannot_initcCr7rR)r]r^r_rrkr<r`rDrDrEr8�
r9zFinalTests.test_no_isinstancecCsdd�}|�|t|��dS)NcSr�rIrDr�rDrDrE�func�
r�z.FinalTests.test_final_unmodified.<locals>.func)r�r)r?r?rDrDrE�test_final_unmodified�
sz FinalTests.test_final_unmodifiedN)	rOrPrQr�rirsrSr8r@rDrDrDrEr;�
s	r;c@r�)�	CastTestscCs�|�ttd�d�|�ttd�d�|�tttd��t�|�ttd�d�|�ttd�d�|�ttt	tfd�d�|�tt
d�d�|�tdd�d�dSr[)rgrrkr�r�rqrr�rr�rr`rDrDrEr��
szCastTests.test_basicscCstdd�tdd�dS)Nr\�hello)rr`rDrDrErl�
s
zCastTests.test_errorsN)rOrPrQr�rlrDrDrDrErA�
s
rAc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;S)<�ForwardRefTestscCs�Gdd�dtt�}|t}t|jt�t��}|�|dt|t�|�|dt|t�|�|d|d�|�|dtt�|�	d|�t|j
t�t��}|�|dt|t�t|jt�t��}|�|dt|t�dS)Nc@sVeZdZdefdd�Z			dddddd	efd
d�Zdedfd
d�Zdddd�Z	dS)z)ForwardRefTests.test_basics.<locals>.Noder~cSs||_d|_|_dSrIr)r?r~rDrDrErs�
sz2ForwardRefTests.test_basics.<locals>.Node.__init__NrzOptional[Node[T]]rr�stuffcSr�rI)rr)r?rrrD�blahrDrDrE�add_both�
s
z2ForwardRefTests.test_basics.<locals>.Node.add_both�nodecSs|�|d�dSrI�rF�r?rGrDrDrE�add_left�
r
z2ForwardRefTests.test_basics.<locals>.Node.add_leftcSs|�d|�dSrIrHrIrDrDrE�	add_right�
r
z3ForwardRefTests.test_basics.<locals>.Node.add_right)NNNrI)rGr)
rOrPrQrrsrkrFrrJrKrDrDrDrEr��
s���
�r�rrrDrErG)rrrkrrFrr
rgr�assertNotInrJrK)r?r�r��
both_hints�
left_hints�right_hintsrDrDrEr��
szForwardRefTests.test_basicscCsDt�d�}|�t��td|�Wd�dS1swYdS)Nrkr\)rJr0r]r^r_�r?�frrDrDrE�#test_forwardref_instance_type_error�
�
"�z3ForwardRefTests.test_forwardref_instance_type_errorcCsDt�d�}|�t��tt|�Wd�dS1swYdS)Nrk)rJr0r]r^r<rkrPrDrDrE�#test_forwardref_subclass_type_errorrSz3ForwardRefTests.test_forwardref_subclass_type_errorcCs:|�t��t�d�Wd�dS1swYdSrR)r]r^rJr0r`rDrDrE�test_forwardref_only_str_argrbz,ForwardRefTests.test_forwardref_only_str_argcCs�t�d�}|�|t�d��|�tdtt�|�|tjdtd��tjdtd�}|�|tjdtd��|�|tjddd��dS)Nrk��module�__other_name__)rJr0rgr�rrkrO)r?rQ�frmrDrDrE�test_forward_equality	s
z%ForwardRefTests.test_forward_equalitycCst�d�}t�d�}t�d�}t�d�}Gdd�d�}d|d|fdd�}|�t|t�t��||d��|�||�|�||�|�||�|�t|t|�|�t|t|�|�t|t|�|�t||ft|�|�t||t	ft|t	f�dS)Nr�c@rR)z4ForwardRefTests.test_forward_equality_gth.<locals>.CNrTrDrDrDrEr�rUr	rzcSr�rIrD�r	rzrDrDrErr�z6ForwardRefTests.test_forward_equality_gth.<locals>.foor[)
rJr0rgrrr
rr�rrk)r?r=�c1_gthr>�c2_gthr�rrDrDrE�test_forward_equality_gths



"z)ForwardRefTests.test_forward_equality_gthcCst�d�}t�d�}t�d�}t�d�}d|d|fdd�}t|t�t��|�t|�t|��|�t|�t|��|�t|�t|��tjdtd�}tjddd�}|�t|�t|��|�t|�t|��|�t|�t|��|�t|�ttjdtd���dS)Nrkr	rzcSr�rIrDr[rDrDrEr-r�z7ForwardRefTests.test_forward_equality_hash.<locals>.foorVrX)	rJr0rrr
rgr<rOr�)r?r=r\r>r]r�c3�c4rDrDrE�test_forward_equality_hash's



"z*ForwardRefTests.test_forward_equality_hashcCsBGdd�d�}dd�}dd�}|�|�|��|�|�|��dS)Nc@rR)z:ForwardRefTests.test_forward_equality_namespace.<locals>.ANrTrDrDrDrEro>rUrocSs,t�d�}d|fdd�}t|t�t��|S)Nror�cSr�rIrDr�rDrDrEr�Br�zPForwardRefTests.test_forward_equality_namespace.<locals>.namespace1.<locals>.fun�rJr0rrr
)r	r�rDrDrE�
namespace1@s
zCForwardRefTests.test_forward_equality_namespace.<locals>.namespace1cSs:t�d�}Gdd�d�}d|fdd�}t|t�t��|S)Nroc@rR)zNForwardRefTests.test_forward_equality_namespace.<locals>.namespace2.<locals>.ANrTrDrDrDrEroJrUr�cSr�rIrDr�rDrDrEr�Lr�zPForwardRefTests.test_forward_equality_namespace.<locals>.namespace2.<locals>.funrb)r	ror�rDrDrE�
namespace2Gs

zCForwardRefTests.test_forward_equality_namespace.<locals>.namespace2)rgr�)r?rorcrdrDrDrE�test_forward_equality_namespace=s
z/ForwardRefTests.test_forward_equality_namespacecCs|�ttd�d�dS)Nrkztyping.List[ForwardRef('int')])rgrhrr`rDrDrE�test_forward_reprUsz!ForwardRefTests.test_forward_reprcCstdtdfdd�}|�t|t�t��dtti�dttd�tBfdd�}|�t|t�t��dtttBi�dS)Nr	rcSr�rIrDr
rDrDrErZr�z/ForwardRefTests.test_union_forward.<locals>.foocSr�rIrDr
rDrDrEr`r�)	rrgrrr
rr�r0rkrrDrDrE�test_union_forwardXs
��z"ForwardRefTests.test_union_forwardcCsldtdfdd�}|�t|t�t��dtti�dttd�fdd�}|�t|t�t��dtti�dS)Nr	rcSr�rIrDr
rDrDrErhr�z/ForwardRefTests.test_tuple_forward.<locals>.foocSr�rIrDr
rDrDrErnr�)rrgrrr
rr�r0rrDrDrE�test_tuple_forwardfs
�
�z"ForwardRefTests.test_tuple_forwardcCs.ddd�}|�t|t�t��dtti�dS)Nr	�List['int']cSr�rIrDr
rDrDrErur�z0ForwardRefTests.test_double_forward.<locals>.foo)r	ri)rgrrr
rrkrrDrDrE�test_double_forwardts

�z#ForwardRefTests.test_double_forwardcCsDdd�}dd�}dd�}|�}|�}|�||�|�t|||�dS)NcS�0t�d�}|}d|fdd�}t|t�t��}|S)Nror�cSr�rIrDr�rDrDrEr�~r�zPForwardRefTests.test_forward_recursion_actually.<locals>.namespace1.<locals>.funrb�r	ror��retrDrDrErc{�

zCForwardRefTests.test_forward_recursion_actually.<locals>.namespace1cSrk)Nror�cSr�rIrDr�rDrDrEr��r�zPForwardRefTests.test_forward_recursion_actually.<locals>.namespace2.<locals>.funrbrlrDrDrErd�rnzCForwardRefTests.test_forward_recursion_actually.<locals>.namespace2cSs||kSrIrD)�o1�o2rDrDrE�cmp�r�z<ForwardRefTests.test_forward_recursion_actually.<locals>.cmp)r�r]�RecursionError)r?rcrdrq�r1�r2rDrDrE�test_forward_recursion_actuallyzsz/ForwardRefTests.test_forward_recursion_actuallycs�td�tt�f�G�fdd�d�}G��fdd�d�}G��fdd�d�}G��fdd	�d	�}|�t|t�t��t|t�t���|�t|t�t��d
tttttttdffi�|�t|t�t��d
ttttttdffi�|�t|t�t��d
ttttttttdffttttdffi�|�t|t�t��d
ttttttdftttttttdfffi�dS)N�ValuecseZdZUe�ed<dS)z7ForwardRefTests.test_union_forward_recursion.<locals>.CrN)rOrPrQrrzrD)rvrDrEr���
r�cseZdZUe��fed<dS)z7ForwardRefTests.test_union_forward_recursion.<locals>.DrN)rOrPrQrrzrD�rv�	ValueListrDrEr���
r�cs"eZdZUee��fed<dS)z7ForwardRefTests.test_union_forward_recursion.<locals>.ErN�rOrPrQrrrzrDrxrDrEr���
r�cs$eZdZUe�e��fed<dS)z7ForwardRefTests.test_union_forward_recursion.<locals>.FrNr{rDrxrDrEr��s
r�r)rrr�rgrrr
)r?r�r�r�r�rDrxrE�test_union_forward_recursion�s8$"��������z,ForwardRefTests.test_union_forward_recursioncCsBdtdgdffdd�}|�t|t�t��dttgtfi�dS)Nr	rcSr�rIrDr
rDrDrEr�r�z2ForwardRefTests.test_callable_forward.<locals>.foo)rrgrrr
rrrDrDrE�test_callable_forward�s�z%ForwardRefTests.test_callable_forwardcCs2ddd�}|�t|t�t��dtdtfi�dS)Nr	�Callable[..., T]cSr�rIrDr
rDrDrEr�r�z@ForwardRefTests.test_callable_with_ellipsis_forward.<locals>.foo.)r	r)rgrrr
rrrrDrDrE�#test_callable_with_ellipsis_forward�s
�z3ForwardRefTests.test_callable_with_ellipsis_forwardcCs�Gdd�d�}Gdd�d�}|�t|t��dtt�|�t|t��dtt�|�t��t|t��fWd�dS1sBwYdS)Nc@s.eZdZUdZeded<dZeded<dS)z5ForwardRefTests.test_special_forms_forward.<locals>.CrJ)�
ClassVar[int])rDrKr	)�
Final[int]�constrzN)rOrPrQr	r/rzrzrDrDrDrEr���
r�c@�eZdZUdZeded<dS)z6ForwardRefTests.test_special_forms_forward.<locals>.CFrJr�rzN)rOrPrQrzrrzrDrDrDrE�CF�rzr�r	rz)rgrrrrkrr]r^)r?r�r�rDrDrE�test_special_forms_forward�s"�z*ForwardRefTests.test_special_forms_forwardcCr�)Nz/T)r]�SyntaxErrorrr`rDrDrE�test_syntax_error�s
"�z!ForwardRefTests.test_syntax_errorcCsBddd�}|�t��
t|�Wd�dS1swYdS)Nr	�Node[TcSr�rIrDr
rDrDrEr�r�z6ForwardRefTests.test_delayed_syntax_error.<locals>.foo)r	r�)r]r�rrrDrDrE�test_delayed_syntax_error�s

"�z)ForwardRefTests.test_delayed_syntax_errorcCsJdtdfdd�}|�t��
t|�Wd�dS1swYdS)Nr	�42cSr�rIrDr
rDrDrEr�r�z,ForwardRefTests.test_type_error.<locals>.foo)rr]r^rrrDrDrE�test_type_error�s
"�zForwardRefTests.test_type_errorcCsFddd�}|�t��t|t��Wd�dS1swYdS)Nr	�Noode[T]cSr�rIrDr
rDrDrEr�r�z,ForwardRefTests.test_name_error.<locals>.foo)r	r�)r]�	NameErrorrr
rrDrDrE�test_name_error�s
"�zForwardRefTests.test_name_errorcCs.tdddifdd��}t|�}|�|i�dS)Nr	�	whateversr�cSr�rIrDr
rDrDrEr�r�z/ForwardRefTests.test_no_type_check.<locals>.foo)r"rrg)r?r�thrDrDrE�test_no_type_check�sz"ForwardRefTests.test_no_type_checkcCsDtGdd�d��}t|j�}|�|i�t|�j�}|�|i�dS)Nc@�eZdZdddifdd�ZdS)z3ForwardRefTests.test_no_type_check_class.<locals>.Cr	r�r�cSr�rIrDr
rDrDrEr�r�z7ForwardRefTests.test_no_type_check_class.<locals>.C.fooN�rOrPrQrrDrDrDrEr���r�)r"rrrg)r?r��cth�ithrDrDrE�test_no_type_check_class�s
z(ForwardRefTests.test_no_type_check_classcs@Gdd�d��tG�fdd�d���}|�t�j�dti�dS)Nc@r�)z6ForwardRefTests.test_no_type_check_no_bases.<locals>.Cr�cSr�rIrDr�rDrDrEr�r�z;ForwardRefTests.test_no_type_check_no_bases.<locals>.C.methN�rOrPrQrkr�rDrDrDrEr�r�r�cseZdZ�ZdS)z6ForwardRefTests.test_no_type_check_no_bases.<locals>.DN)rOrPrQr�rD�r�rDrEr�r�r�r�)r"rgrr�rk�r?r�rDr�rE�test_no_type_check_no_basessz+ForwardRefTests.test_no_type_check_no_basescCslGdd�d�}Gdd�d�}Gdd�d�}Gdd�d�}d	tjti}||||fD]
}|�t|�|�q)dS)
Nc@s eZdZUdZejeed<dS)zCForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.C�rN)rOrPrQrrJrrkrzrDrDrDrEr�
�
r�c@seZdZUdZeeed<dS)zCForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.Dr�rN)rOrPrQrrrkrzrDrDrDrEr�rzr�c@�eZdZUdZded<dS)zCForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.Er�r/rN�rOrPrQrrzrDrDrDrEr�rwr�c@r�)zCForwardRefTests.test_no_type_check_forward_ref_as_string.<locals>.Fr�r�rNr�rDrDrDrEr�rwr�r)rJrrkrgr)r?r�r�r�r��expected_result�clazzrDrDrE�(test_no_type_check_forward_ref_as_strings�z8ForwardRefTests.test_no_type_check_forward_ref_as_stringc	Cs`Gdd�d�}Gdd�d�}||fD]}|�t��t|�Wd�n1s(wYqdS)Nc@r�)zGForwardRefTests.test_nested_classvar_fails_forward_ref_check.<locals>.Er�z%typing.ClassVar[typing.ClassVar[int]]rNr�rDrDrDrEr�rwr�c@r�)zGForwardRefTests.test_nested_classvar_fails_forward_ref_check.<locals>.Fr�r�rN)rOrPrQrrrzrDrDrDrEr�rzr�)r]r^r)r?r�r�r�rDrDrE�,test_nested_classvar_fails_forward_ref_checks
���z<ForwardRefTests.test_nested_classvar_fails_forward_ref_checkcCs�tdd��}|�|jd�|dddifdd��}|Gd	d
�d
��}|�|jd�t|�}|�|i�t|j�}|�|i�t|�j�}|�|i�dS)NcSs|SrIrD)r?rDrDrE�magic_decorator&r�z@ForwardRefTests.test_meta_no_type_check.<locals>.magic_decoratorr�r	r�r�cSr�rIrDr
rDrDrEr,r�z4ForwardRefTests.test_meta_no_type_check.<locals>.fooc@r�)z2ForwardRefTests.test_meta_no_type_check.<locals>.Cr	r�r�cSr�rIrDr
rDrDrEr2r�z6ForwardRefTests.test_meta_no_type_check.<locals>.C.fooNr�rDrDrDrEr�0r�r�r)r#rgrOrr)r?r�rr�r�r�r�rDrDrE�test_meta_no_type_check$s

z'ForwardRefTests.test_meta_no_type_checkcCs>d}i}t||�t|dj�}|�||d|dd��dS)Nz^class C:
    def foo(self, a: 'C') -> 'D': pass
class D:
    def bar(self, b: 'D') -> C: pass
r�r�)r	r�)r�rrrg)r?r��ns�hintsrDrDrE�test_default_globals=s

z$ForwardRefTests.test_default_globalscCsT|�ttt��dtt�|�ttt��dtt�|�ttt��dt�dS)Nr�)rg�gth�Looprrr�rkr`rDrDrE�test_final_forward_refHsz&ForwardRefTests.test_final_forward_refN) rOrPrQr�rRrTrUrZr^rarerfrgrhrjrur}r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�rDrDrDrErC�
s<$	 		
rCc@r�)�
OverloadTestscCsNddlm}|�t��|dd��}|�Wd�dS1s wYdS)Nr��overloadcSr�rIrDrDrDrDrErEUr�z/OverloadTests.test_overload_fails.<locals>.blah)rJr�r]�RuntimeError�r?r�rErDrDrE�test_overload_failsPs
"�z!OverloadTests.test_overload_failscCs*ddlm}|dd��}dd�}|�dS)Nrr�cSr�rIrDrDrDrDrErE^r�z2OverloadTests.test_overload_succeeds.<locals>.blahcSr�rIrDrDrDrDrErEbr�)rJr�r�rDrDrE�test_overload_succeeds[s


z$OverloadTests.test_overload_succeedsN)rOrPrQr�r�rDrDrDrEr�Nsr�a�
import asyncio

T_a = TypeVar('T_a')

class AwaitableWrapper(typing.Awaitable[T_a]):

    def __init__(self, value):
        self.value = value

    def __await__(self) -> typing.Iterator[T_a]:
        yield
        return self.value

class AsyncIteratorWrapper(typing.AsyncIterator[T_a]):

    def __init__(self, value: typing.Iterable[T_a]):
        self.value = value

    def __aiter__(self) -> typing.AsyncIterator[T_a]:
        return self

    async def __anext__(self) -> T_a:
        data = await self.value
        if data:
            return data
        else:
            raise StopAsyncIteration

class ACM:
    async def __aenter__(self) -> int:
        return 42
    async def __aexit__(self, etype, eval, tb):
        return None
FT)�
ann_module�ann_module2�ann_module3�ann_module5�ann_module6)�AsyncContextManagerc@r|)rorEN)rOrPrQr�rzrDrDrDrEro�r�roc@s2eZdZUdZeeded<eed<eed<dS)r�Nr�rErz)rOrPrQr�rrrzrkrDrDrDrEr��s
r�c@s eZdZUe�Zeded<dS)�CSubrFN)rOrPrQr�rFrrzrDrDrDrEr��r�r�c@s"eZdZUgZeeeed<dS)r
�lstN)rOrPrQr�rrrrzrDrDrDrEr
�r|r
c@seZdZUeded<dS)r�r�N)rOrPrQrrzrDrDrDrEr��rwr�c@seZdZUded<ded<dS)�NoneAndForward�parentN�meaningr�rDrDrDrEr��r{r�c@�eZdZUeed<eed<dS)�CoolEmployee�name�coolN�rOrPrQr�rzrkrDrDrDrEr��r{r�c@s"eZdZUeed<dZeed<dS)�CoolEmployeeWithDefaultr�rr�N)rOrPrQr�rzr�rkrDrDrDrEr��s
r�c@�eZdZUeed<dd�ZdS)�XMethr�cCs
d|jS)NrCr�r`rDrDrE�double�rtzXMeth.doubleN)rOrPrQrkrzr�rDrDrDrEr��r{r�c@s2eZdZUeed<dZeed<dd�Zdd�ZdS)	�XReprr�r�rEcCs|j�d|j��S)Nz -> r�r`rDrDrE�__str__��z
XRepr.__str__cCr�r�rD�r?r
rDrDrE�__add__�r�z
XRepr.__add__N)rOrPrQrkrzrEr�r�rDrDrDrEr��s

r��Labelr~c@rw)�Point2Dr�rENryrDrDrDrEr��r{r�c@r|)rVrzNryrDrDrDrErV�r�rV��totalc@rR)�LabelPoint2DNrTrDrDrDrEr��r�r�c@r�)�Options�	log_level�log_pathNr�rDrDrDrEr��r{r�c@seZdZUded<ded<dS)�HasForeignBaseClassr��
some_xreprzmod_generics_cache.A�other_aNr�rDrDrDrEr��r{r��amc	�sB�|4IdH�
}|Wd�IdHS1IdHswYdSrIrD)r�r�rDrDrE�g_with�s�0�r�r\c@s2eZdZejddd��Zejejddd���ZdS)�
ForRefExampler?cCr�rIrDr`rDrDrEr?�r�zForRefExample.funccCr�rIrDr`rDrDrE�nested�szForRefExample.nestedN)r?r�)rOrPrQr��decr?r�rDrDrDrEr��sr�c@s�eZdZdd�Zdd�Zed�dd��Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$S)%�GetTypeHintTestscCs�|�t��td�Wd�n1swY|�t��td�Wd�n1s-wY|�t��
td�Wd�dS1sGwYdS)N�{r)r]r^r�r`rDrDrE�(test_get_type_hints_from_various_objects�s
�
�
"�z9GetTypeHintTests.test_get_type_hints_from_various_objectscCsPdtttfttttBd�}|�tt�|�|�tt�i�|�tt�i�dS)NrC)r�rMr�rEr�)	rrkr�r�rgr�r�r�r�)r?�ann_module_type_hintsrDrDrE�test_get_type_hints_modules�sz,GetTypeHintTests.test_get_type_hints_modulesz	known bugcCs*ttjttjd�}|�tt�|�dS)N)�	default_a�	default_b)rr7ror�rgr�)r?�	mgc_hintsrDrDrE�&test_get_type_hints_modules_forwardref�s�z7GetTypeHintTests.test_get_type_hints_modules_forwardrefcCs<|�ttj�dttji�|�ttj�t�|�ttj�dt	d��|�ttj
�ttttjd��|�ttj�dt
i�|�ttj�dttji�|�ttj�ttd��|�ttj�dt
i�|�tt�tt	d�d��|�tt�ttjtjd	��|�ttj�t
t
d��|�ttj�tjjtjjtjd
��dS)NrEr�)�123r�)�jr�rErFr�r�)r�r�)r�r��some_b)�my_inner_a1�my_inner_a2�
my_outer_a)rgr�r�r�rr��j_classr��Mrqr�r�r�rk�h_classrrr�r�r�r7ror�r r`rDrDrE�test_get_type_hints_classes
s>���
�
�����z,GetTypeHintTests.test_get_type_hints_classescC�&Gdd�d�}|�t|�dti�dS)Nc@seZdZUdZeed<dS)zZGetTypeHintTests.test_get_type_hints_classes_no_implicit_optional.<locals>.WithNoneDefaultN�field)rOrPrQr�rkrzrDrDrDrE�WithNoneDefault
rwr�r�)rgr�rk)r?r�rDrDrE�0test_get_type_hints_classes_no_implicit_optional
szAGetTypeHintTests.test_get_type_hints_classes_no_implicit_optionalcCs�tGdd�d��}|�|j�|�|jjj�|�ttjj	�i�Gdd�dt
t�}tGdd�d|��}|�t|j	�dti�dS)Nc@seZdZGdd�d�ZdS)z>GetTypeHintTests.test_respect_no_type_check.<locals>.NoTpCheckc@seZdZddd�ZdS)zBGetTypeHintTests.test_respect_no_type_check.<locals>.NoTpCheck.Innr��
not a typecSr�rIrDr�rDrDrErs$
r�zKGetTypeHintTests.test_respect_no_type_check.<locals>.NoTpCheck.Inn.__init__N)r�r�r�rDrDrDrE�Inn#
r�r�N)rOrPrQr�rDrDrDrE�	NoTpCheck!
rr�c@r�)z:GetTypeHintTests.test_respect_no_type_check.<locals>.ABaser�cSr�rIrDr�rDrDrEr�)
r�z?GetTypeHintTests.test_respect_no_type_check.<locals>.ABase.methNr�rDrDrDrE�ABase(
r�r�c@rR)z8GetTypeHintTests.test_respect_no_type_check.<locals>.DerNrTrDrDrDrE�Der*
rUr�r�)
r"r*�__no_type_check__r�rsrgr�r��NTCr�rrrk)r?r�r�r�rDrDrE�test_respect_no_type_check 
sz+GetTypeHintTests.test_respect_no_type_checkcCs||�tt�i�|�tt�i�|�tt�i�|�tt�i�|�ttj�i�|�tt�j�i�|�ttj	�i�dSrI)
rgr�rkrq�dirr�r�r�r��joinr`rDrDrE� test_get_type_hints_for_builtins.
sz1GetTypeHintTests.test_get_type_hints_for_builtinscCsLdd�}d|jd<|�t|�dti�ddd�}|�t|�dtd�i�dS)NcSr�rIrDr�rDrDrE�testf9
r�z6GetTypeHintTests.test_previous_behavior.<locals>.testfrkr�cSr�rIrDr�rDrDrE�testg<
r�z6GetTypeHintTests.test_previous_behavior.<locals>.testg)r�N)rzrgr�rkrq)r?rrrDrDrE�test_previous_behavior8
s


z'GetTypeHintTests.test_previous_behaviorcCsHGdd�d�}Gdd�d�}|�}ddi|_|�t|t��d|i�dS)Nc@rR)zKGetTypeHintTests.test_get_type_hints_for_object_with_annotations.<locals>.ANrTrDrDrDrEro@
r�roc@rR)zKGetTypeHintTests.test_get_type_hints_for_object_with_annotations.<locals>.BNrTrDrDrDrEr�A
r�r�r�)rzrgr�r
)r?ror�rzrDrDrE�/test_get_type_hints_for_object_with_annotations?
s

z@GetTypeHintTests.test_get_type_hints_for_object_with_annotationsc	Cs�|�ttjtj�dtjtji�|�ttt��t	tt
tt	d��|�ttt��ttt	t	tt
td��|�tt�dtt
ti�dS)N�var)rEr�rz)rFrErzr�r�)rgr�r��CVr<rJrr�rrkrr�r
rrr`rDrDrE�test_get_type_hints_ClassVarF
s��

�� z-GetTypeHintTests.test_get_type_hints_ClassVarcCs0dti}|�ttj�|�|�ttj�|�dS)Nr?)r�rgr�r?r�)r?�expectsrDrDrE�,test_get_type_hints_wrapped_decoratored_funcP
sz=GetTypeHintTests.test_get_type_hints_wrapped_decoratored_funcc
Cs�dtdfdd�}ttdf}|�t|t�t��dtti�|�t|t�t�dd�dtttdfi�dttd�fdd�}ttdf}|�t|t�t��dtti�|�t|t�t�dd�dtttdfi�t	tt
d	fd
f}d|fdd�}|�t|t�t��dt	t
d
f�|�t|t�t�dd�d|�ttt
d	fd
f}d|fd
d�}|�t|t�t��dtt
d
f�|�t|t�t�dd�d|�dt
jd
ttt
dffdt
jttt
dfffdd�}|�t|t�t��t
jd
tt
ft
jtt
fd��t
jd
tt
f}d|fdd�}|�t|t�t�dd�d|�t
jttBdf}d|fdd�}	|�t|	t�t��dttBi�|�t|	t�t�dd�dt
jttBdfi�dS)Nr�r�cSr�rIrDr�rDrDrEr�V
r�z>GetTypeHintTests.test_get_type_hints_annotated.<locals>.foobar�r�r�T��include_extrascSr�rIrDr�rDrDrEr�a
r�)r�r.cSr�rIrDr�rDrDrEr�m
r�z>GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoocSr�rIrDr�rDrDrEr�u
r�r�rE�mutablecSr�rIrDr�rDrDrEr�|
r�z?GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo2r�cSr�rIrDr�rDrDrE�barfoo3�
r�z?GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo3cSr�rIrDr�rDrDrE�barfoo4�
r�z?GetTypeHintTests.test_get_type_hints_annotated.<locals>.barfoo4)rr/rkrgrrr
r�r0rrr�r�rJrrr�)
r?r�r��BAr�r��BA2r
�BA3rrDrDrE�test_get_type_hints_annotatedU
sr
��
��$�$�
� ��
��z.GetTypeHintTests.test_get_type_hints_annotatedc	CsfdttttdfBfdd�}|�t|�dtttBi�|�t|dd�dttttdfBi�dS)Nr��metacSr�rIrDr�rDrDrE�
with_union�
r�zKGetTypeHintTests.test_get_type_hints_annotated_in_union.<locals>.with_unionTr
)rkr�r/r�rgr)r?rrDrDrE�&test_get_type_hints_annotated_in_union�
s
�z7GetTypeHintTests.test_get_type_hints_annotated_in_unioncs�ttdf�G�fdd�dtt�}|�t|jt�t��|t|td��|�t|jt�t�dd��|t|td��|�t|jt�t��|t|td��dS)N�Constcs,eZdZd
dd�Zd�dddfdd�Zd	S)zBGetTypeHintTests.test_get_type_hints_annotated_refs.<locals>.MySetr
�Const[MySet[T]]r��MySet[T]cSr�rIrDr�rDrDrE�__ior__�
r�zJGetTypeHintTests.test_get_type_hints_annotated_refs.<locals>.MySet.__ior__cSr�rIrDr�rDrDrE�__iand__�
r�zKGetTypeHintTests.test_get_type_hints_annotated_refs.<locals>.MySet.__iand__N)r
rr�r)rOrPrQrrrD�rrDrE�MySet�
s
r)r
r�Tr
)	r/rrrgrrrr
r)r?rrDrrE�"test_get_type_hints_annotated_refs�
s���z3GetTypeHintTests.test_get_type_hints_annotated_refscCr�)Nc@seZdZUeZded<dS)zIGetTypeHintTests.test_get_type_hints_classes_str_annotations.<locals>.FoorEr�N)rOrPrQr�rErzrDrDrDrErU�
s
rUr�)rgrr��r?rUrDrDrE�+test_get_type_hints_classes_str_annotations�
sz<GetTypeHintTests.test_get_type_hints_classes_str_annotationscCs6Gdd�d�}d|_|�dtj�|�t|�i�dS)Nc@rR)zBGetTypeHintTests.test_get_type_hints_bad_module.<locals>.BadModuleNrTrDrDrDrE�	BadModule�
rUr �bad)rPrLr��modulesrgr)r?r rDrDrE�test_get_type_hints_bad_module�
sz/GetTypeHintTests.test_get_type_hints_bad_modulecCsRGdd�d�}Gdd�d|�}d|_|_|�dtj�|�t|�ttd��dS)Nc@r|)zJGetTypeHintTests.test_get_type_hints_annotated_bad_module.<locals>.BadBaserN)rOrPrQr�rzrDrDrDrE�BadBase�
r�r$c@r|)zJGetTypeHintTests.test_get_type_hints_annotated_bad_module.<locals>.BadTyperLN)rOrPrQr�rzrDrDrDrE�BadType�
r�r%r!rM)rPrLr�r"rgrr�r�)r?r$r%rDrDrE�(test_get_type_hints_annotated_bad_module�
s
z9GetTypeHintTests.test_get_type_hints_annotated_bad_moduleN)rOrPrQr�r�rr�r�r�r�r�rrrrrrrrr#r&rDrDrDrEr��s&	


?	r�c@�,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�GetUtilitiesTestCasecCs�td�}td�}Gdd�dt|�}|�t|t�|�|�t||�|�|�tt�d�|�ttt�t�|�ttttf�t�|�tt	d�t	�|�tt
tt�t
�|�tt�t�|�tt|�t�|�ttt||ft�t
�|�tt|df�t�|�tt�t
�|�tt�t�|�tt�tjj�|�tt
t�t
�|�tt
�d�|�tt
tB�tj�|�t|j�|�|�t|j�|�dS)Nrr,c@rR)z/GetUtilitiesTestCase.test_get_origin.<locals>.CNrTrDrDrDrEr��
r�r��r\�+r�)r
r2rr�rrkrrr�rrrrr�r/r�rrrr�r)r�rlr%rDrDrE�test_get_origin�
s, z$GetUtilitiesTestCase.test_get_originc	CsPtd�}Gdd�dt|�}|�t|t�tf�|�t||�|f�|�tt�d�|�ttt�tf�|�ttttf�ttf�|�ttd�d�|�tt	t
t�t
tf�|�tttt|tfft�ttttff�|�ttj
tt||fftt�ttttttff�|�ttg|ft�gtf�|�ttdtf�dtf�|�ttttt|dfgtff�ttt|dfgtff�|�tttdf�tdf�|�ttd�d�|�tt|dd	d
gf�|dd	d
gf�|�tt
�d�|�tt�d�|�tt�d�|�ttt�tf�|�tt�d�|�ttjjtgtf�tgtf�|�ttjjdtf�dtf�|�ttjjgtf�gtf�|�ttjjtgtf�tttgtf��td�}|�tt|tf�|tf�|�tttt|ftf�tt|ftf�|�tttB�ttf�dS)Nrc@rR)z-GetUtilitiesTestCase.test_get_args.<locals>.CNrTrDrDrDrEr��
r�r�rDr).)rD�onerC�threer,)r
rrgr rkrrr�rrrrrJrrrr/r�rrr2r3)r?rr�r,rDrDrE�
test_get_args�
sP�$� $�($  ��z"GetUtilitiesTestCase.test_get_argscCs:tt�}|�|dtti�ttj�}|�|dti�dS)Nr�rj)rr�rgrr��MyClass)r?r�rDrDrE�test_forward_ref_and_finals
z/GetUtilitiesTestCase.test_forward_ref_and_finalcCs:|�td��
tt�Wd�dS1swYdS)Nz4typing.ClassVar\[int\] is not valid as type argument)r-r^rr�r`rDrDrE�test_top_level_class_vars�
"�z-GetUtilitiesTestCase.test_top_level_class_varN)rOrPrQr+r.r0r1rDrDrDrEr(�
s
%r(c@s�eZdZdd�Zdd�Zdd�Zeed�dd	��Zeed�d
d��Z	eed�dd
��Z
eed�dd��Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Z d:d;�Z!d<d=�Z"d>d?�Z#d@dA�Z$ee%j&dBkdC�dDdE��Z'ee%j&dBkdC�dFdG��Z(dHdI�Z)dJdK�Z*dLdM�Z+dNdO�Z,dPdQ�Z-dRdS�Z.dTdU�Z/dVdW�Z0dXdY�Z1dZd[�Z2d\d]�Z3d^d_�Z4d`da�Z5dbdc�Z6ddde�Z7dfdg�Z8dhdi�Z9djdk�Z:dlS)m�CollectionsAbcTestscCs |�dtj�|�gtj�dSr[)r�rJ�Hashabler�r`rDrDrE�
test_hashable#rAz!CollectionsAbcTests.test_hashablecCsX|�gtj�|�gtj�|�gtj�|�dtj�|�ttj�|�ttj�dSr[)r�rJr�r�rFr�r`rDrDrE�
test_iterable'sz!CollectionsAbcTests.test_iterablecCs(tg�}|�|tj�|�dtj�dSr[)r�r�rJ�Iteratorr�)r?�itrDrDrE�
test_iterator2sz!CollectionsAbcTests.test_iteratorz&Python 3.5 and multithreading requiredcCsJi}tdt�|�|d}|�}|�|tj�|�|tj�|�d�dS)NzPasync def foo() -> typing.Awaitable[int]:
    return await AwaitableWrapper(42)
r)r�rr�rJ�	Awaitabler��send�r?r�r�grDrDrE�test_awaitable7s�z"CollectionsAbcTests.test_awaitablecCs�i}tdt�|�|d}|�}|�|tj�|�t��t|tjt�Wd�n1s/wY|�	|tj�z|�
d�WdStyMYdSw)Nzasync def foo():
    return
r)r�rr�rJ�	Coroutiner]r^r_rkr�r:�
StopIterationr;rDrDrE�test_coroutineDs"���z"CollectionsAbcTests.test_coroutinecCs>td�}t|�}|�|tj�|�|tj�|�dtj�dS�Nr�r\)r�AsyncIteratorWrapperr�rJ�
AsyncIterabler��r?�base_itr7rDrDrE�test_async_iterableVs
z'CollectionsAbcTests.test_async_iterablecCs0td�}t|�}|�|tj�|�dtj�dSrA)rrBr�rJ�
AsyncIteratorr�rDrDrDrE�test_async_iterator^sz'CollectionsAbcTests.test_async_iteratorcC� |�gtj�|�dtj�dSr[)r�rJ�Sizedr�r`rDrDrE�
test_sizederAzCollectionsAbcTests.test_sizedcCrIr[)r�rJr�r�r`rDrDrE�test_containerirAz"CollectionsAbcTests.test_containercCs@|�t�tj�|�t�tj�|�ttj�|�dtj�dSr[)r�r�rJ�
Collectionr3rFr�r�r`rDrDrE�test_collectionmsz#CollectionsAbcTests.test_collectioncCs"|�t�tj�|�dtj�dSr[)r�rrJr�r�r`rDrDrE�test_abstractsetssz$CollectionsAbcTests.test_abstractsetcCs$|�t�tj�|�t�tj�dSrI)r�rrJ�
MutableSetr�r3r`rDrDrE�test_mutablesetwsz#CollectionsAbcTests.test_mutablesetcC� |�itj�|�dtj�dSr[)r�rJr�r�r`rDrDrE�test_mapping{rAz CollectionsAbcTests.test_mappingcCrRr[)r�rJrr�r`rDrDrE�test_mutablemappingrAz'CollectionsAbcTests.test_mutablemappingcCrIr[)r�rJr�r�r`rDrDrE�
test_sequence�rAz!CollectionsAbcTests.test_sequencecCrIr�)r�rJ�MutableSequencer�r`rDrDrE�test_mutablesequence�rAz(CollectionsAbcTests.test_mutablesequencecCs$|�dtj�|�td�tj�dSrI)r�rJ�
ByteString�	bytearrayr`rDrDrE�test_bytestring�sz#CollectionsAbcTests.test_bytestringcC�|�ttj�dSrI)rFr�rJrr`rDrDrE�	test_list�r�zCollectionsAbcTests.test_listcCs:|�tjtj�Gdd�dtjt�}|�|�tj�dS)Nc@rR)z/CollectionsAbcTests.test_deque.<locals>.MyDequeNrTrDrDrDrE�MyDeque�r�r])rFr�dequerJ�Dequerkr�)r?r]rDrDrE�
test_deque�szCollectionsAbcTests.test_dequecCs|�tjtj�dSrI)rFr�CounterrJr`rDrDrE�test_counter�rjz CollectionsAbcTests.test_countercCr>rI)rFrrJ�SetrHr3r`rDrDrE�test_set�rAzCollectionsAbcTests.test_setcCr>rI)rFr3rJr�rHrr`rDrDrE�test_frozenset�rAz"CollectionsAbcTests.test_frozensetcCr[rI)rFr�rJrr`rDrDrEr{�r�zCollectionsAbcTests.test_dictcCs td�}td�}|�t||fttftttf�|�t|tfttttf�|�tt|fttttf�|�t|t|fttfttttf�|�t|ttftttttf�|�t|t|fttfttttf�|�t|ttftttttf�dS)N�Kr�)r
rgrr�rkrr�)r?rfr�rDrDrE�test_dict_subscribe�s$  ,(,,z'CollectionsAbcTests.test_dict_subscribecC�|�t��t��Wd�n1swY|�t��tjt�Wd�n1s/wY|�t��tjt�Wd�dS1sKwYdSrI)r]r^rJrrrkr`rDrDrE�test_no_list_instantiation�r.z.CollectionsAbcTests.test_no_list_instantiationcCsRGdd�dtjt�}|�}|�||�|�|tj�|�|t�|�t|�dS)Nc@rR)z6CollectionsAbcTests.test_list_subclass.<locals>.MyListNrTrDrDrDrE�MyList�rUrj)rJrrkr�r�rFr�rH)r?rjr	rDrDrE�test_list_subclass�sz&CollectionsAbcTests.test_list_subclasscCs�|�t��t��Wd�n1swY|�t��tjttf�Wd�n1s1wY|�t��tjttf�Wd�dS1sOwYdSrI)r]r^rJrr
rr�rkr`rDrDrE�test_no_dict_instantiation��
��"�z.CollectionsAbcTests.test_no_dict_instantiationcCsVGdd�dtjttf�}|�}|�||�|�|tj�|�|t�|�t|�dS)Nc@rR)z6CollectionsAbcTests.test_dict_subclass.<locals>.MyDictNrTrDrDrDrEr��rUr�)	rJrr�rkr�rrFr�rH)r?r�r�rDrDrE�test_dict_subclass�sz&CollectionsAbcTests.test_dict_subclasscCsV|�tt���tj�|�ttjttf��tj�|�ttjtt	f��tj�dSrI)
r�rqrJr�r�defaultdictr
rr�rkr`rDrDrE�test_defaultdict_instantiation��"z2CollectionsAbcTests.test_defaultdict_instantiationcCsLGdd�dtjttf�}|�}|�||�|�|tj�|�tj|�dS)Nc@rR)z@CollectionsAbcTests.test_defaultdict_subclass.<locals>.MyDefDictNrTrDrDrDrE�	MyDefDict�rUrr)	rJr�r�rkr�rFrrorH)r?rr�ddrDrDrE�test_defaultdict_subclass��
z-CollectionsAbcTests.test_defaultdict_subclasscCsV|�tt���tj�|�ttjttf��tj�|�ttjttf��tj�dSrI)	r�rqrJ�OrderedDictrr
rr�rkr`rDrDrE�test_ordereddict_instantiation�rqz2CollectionsAbcTests.test_ordereddict_instantiationcC�LGdd�dtjttf�}|�}|�||�|�|tj�|�tj|�dS)Nc@rR)z@CollectionsAbcTests.test_ordereddict_subclass.<locals>.MyOrdDictNrTrDrDrDrE�	MyOrdDict�rUry)rJrvr�rkr�rFrrH)r?ry�odrDrDrE�test_ordereddict_subclass�ruz-CollectionsAbcTests.test_ordereddict_subclassr�zChainMap was added in 3.3cCs�|�tt���tj�|�ttjttf��tj�|�ttjttf��tj�Gdd�dtjttf�}|�t|ttf��|�dS)Nc@rR)z;CollectionsAbcTests.test_chainmap_instantiation.<locals>.CMNrTrDrDrDrE�CM�r�r|)	r�rqrJr�rr
rr�rk)r?r|rDrDrE�test_chainmap_instantiation�s
z/CollectionsAbcTests.test_chainmap_instantiationcCrx)Nc@rR)z>CollectionsAbcTests.test_chainmap_subclass.<locals>.MyChainMapNrTrDrDrDrE�
MyChainMaprUr~)rJr�r�rkr�rFrrH)r?r~�cmrDrDrE�test_chainmap_subclasss
z*CollectionsAbcTests.test_chainmap_subclasscCsz|�tt���tj�|�ttjt��tj�|�ttjt��tj�Gdd�dtjt�}|�t|t��|�dS)Nc@rR)z7CollectionsAbcTests.test_deque_instantiation.<locals>.DNrTrDrDrDrEr�r�r�)r�rqrJr_rr^rrkr�rDrDrE�test_deque_instantiation�
z,CollectionsAbcTests.test_deque_instantiationcCsz|�tt���tj�|�ttjt��tj�|�ttjt��tj�Gdd�dtjt�}|�t|t��|�dS)Nc@rR)z9CollectionsAbcTests.test_counter_instantiation.<locals>.CNrTrDrDrDrEr�r�r�)r�rqrJrarrrkr�rDrDrE�test_counter_instantiationr�z.CollectionsAbcTests.test_counter_instantiationcCsHGdd�dtjt�}|�}|�||�|�|tj�|�|tj�dS)Nc@rR)zJCollectionsAbcTests.test_counter_subclass_instantiation.<locals>.MyCounterNrTrDrDrDrE�	MyCounterrUr�)rJrarkr�r)r?r�r�rDrDrE�#test_counter_subclass_instantiations
z7CollectionsAbcTests.test_counter_subclass_instantiationcCrhrI)r]r^rJrcrrkr`rDrDrE�test_no_set_instantiation$r.z-CollectionsAbcTests.test_no_set_instantiationcC�,Gdd�dtjt�}|�}|�||�dS)Nc@rR)zBCollectionsAbcTests.test_set_subclass_instantiation.<locals>.MySetNrTrDrDrDrEr.rUr)rJrcrkr�)r?rr�rDrDrE�test_set_subclass_instantiation,�z3CollectionsAbcTests.test_set_subclass_instantiationcCrhrI)r]r^rJr�rrkr`rDrDrE�test_no_frozenset_instantiation4r.z3CollectionsAbcTests.test_no_frozenset_instantiationcCr�)Nc@rR)zNCollectionsAbcTests.test_frozenset_subclass_instantiation.<locals>.MyFrozenSetNrTrDrDrDrE�MyFrozenSet>rUr�)rJr�rkr�)r?r�r�rDrDrE�%test_frozenset_subclass_instantiation<r�z9CollectionsAbcTests.test_frozenset_subclass_instantiationcCs�|�t��t�Wd�n1swY|�t��
tt�Wd�n1s-wY|�t��tt�Wd�dS1sHwYdSrI)r]r^rrrkr`rDrDrE�test_no_tuple_instantiationDs��"�z/CollectionsAbcTests.test_no_tuple_instantiationcCs$dd�}|�}|�t|�tj�dS)Ncs��dVdSr[rDrDrDrDrErMs�
z/CollectionsAbcTests.test_generator.<locals>.foo)rFrqrJ�	Generator)r?rr<rDrDrE�test_generatorLsz"CollectionsAbcTests.test_generatorcCs�|�t��t��Wd�n1swY|�t��tjtttf�Wd�n1s2wY|�t��tjtttf�Wd�dS1sQwYdSrI)r]r^rJr�rrkr`rDrDrE�test_no_generator_instantiationRs
��"�z3CollectionsAbcTests.test_no_generator_instantiationcCs2i}tdt�|�|d�}|�t|�tj�dS)Nzasync def f():
    yield 42
rM)r�rrFrqrJ�AsyncGenerator)r?r�r<rDrDrE�test_async_generatorZs�
z(CollectionsAbcTests.test_async_generatorcCs�|�t��t��Wd�n1swY|�t��tjttf�Wd�n1s1wY|�t��tjttf�Wd�dS1sOwYdSrI)r]r^rJr�rrkr`rDrDrE�%test_no_async_generator_instantiationarmz9CollectionsAbcTests.test_no_async_generator_instantiationcCsbGdd�dtj�}|�t��|�Wd�n1swYGdd�d|�}|�t|��d�t|j�s9J�|�|�tj	�Gdd�dtjt
tf�}|�t|��d�|�t|ttf��d�|�t|t
tf��d�|�
t|�|�
t|�|�|tj	�|�|tj	�|�|tj	�|�|t
tf�tj	�|�|t
tf�tjj	�|�|tjj	�|�|tjj	�|�|tjj	�|�t��t|ttftj	�Wd�n1s�wY|�||�Gdd	�d	tj�}|�
t|�Gd
d�dtjtttf�}dd
�}|�|tj�|�|tj�|�|tjj�|�|tjj�|�
t|�|�dS)Nc@rR)z1CollectionsAbcTests.test_subclassing.<locals>.MMANrTrDrDrDrE�MMAkrUr�c@r�)z1CollectionsAbcTests.test_subclassing.<locals>.MMCcSr�rIrDr�rDrDrErirr�z=CollectionsAbcTests.test_subclassing.<locals>.MMC.__getitem__cSr�rIrDr�rDrDrErltr�z=CollectionsAbcTests.test_subclassing.<locals>.MMC.__setitem__cSr�rIrDr�rDrDrEr�vr�z=CollectionsAbcTests.test_subclassing.<locals>.MMC.__delitem__cSr�r�r�r`rDrDrErZxr�z:CollectionsAbcTests.test_subclassing.<locals>.MMC.__iter__cSr�r�rDr`rDrDrEr�zr�z9CollectionsAbcTests.test_subclassing.<locals>.MMC.__len__Nr�rDrDrDrE�MMCqr�r�rc@r�)z1CollectionsAbcTests.test_subclassing.<locals>.MMBcSr�rIrDr�rDrDrEri�r�z=CollectionsAbcTests.test_subclassing.<locals>.MMB.__getitem__cSr�rIrDr�rDrDrErl�r�z=CollectionsAbcTests.test_subclassing.<locals>.MMB.__setitem__cSr�rIrDr�rDrDrEr��r�z=CollectionsAbcTests.test_subclassing.<locals>.MMB.__delitem__cSr�r�r�r`rDrDrErZ�r�z:CollectionsAbcTests.test_subclassing.<locals>.MMB.__iter__cSr�r�rDr`rDrDrEr��r�z9CollectionsAbcTests.test_subclassing.<locals>.MMB.__len__Nr�rDrDrDrE�MMB�r�r�c@rR)z/CollectionsAbcTests.test_subclassing.<locals>.INrTrDrDrDrE�I�r�r�c@rR)z/CollectionsAbcTests.test_subclassing.<locals>.GNrTrDrDrDrEr
�r�r
csr�r�rDrDrDrDrEr<�s�
z/CollectionsAbcTests.test_subclassing.<locals>.g)rJrr]r^rgr�r+r�r�r�r
rr�rHr�rFrrr<r�r�r�rkrq)r?r�r�r�r�r
r<rDrDrE�test_subclassingisF��z$CollectionsAbcTests.test_subclassingcCs�Gdd�dtjttf�}i}tdt�|�|d}|�|tj�|�|tj�|�|tjj�|�|tjj�|�	t
|�|�|�}|�|tj�|�|tj�|�|tjj�|�|tjj�|�t
|�|�|�||�dS)Nc@seZdZdd�Zddd�ZdS)z?CollectionsAbcTests.test_subclassing_async_generator.<locals>.GcSr�rIrD)r?rjrDrDrE�asend�r�zECollectionsAbcTests.test_subclassing_async_generator.<locals>.G.asendNcSr�rIrD)r?�typ�val�tbrDrDrE�athrow�r�zFCollectionsAbcTests.test_subclassing_async_generator.<locals>.G.athrowr)rOrPrQr�r�rDrDrDrEr
�sr
zasync def g(): yield 0r<)
rJr�rkr�rrFrCrrrHrqr�r�)r?r
r�r<�instancerDrDrE� test_subclassing_async_generator�s z4CollectionsAbcTests.test_subclassing_async_generatorcCsfGdd�dtj�}Gdd�d|�}Gdd�d�}Gdd�d�}|�||�|�||�|�||�dS)	Nc@r�)z?CollectionsAbcTests.test_subclassing_subclasshook.<locals>.BasecSs|jdkrdSdS)NrUTF)rOr	rDrDrEr�s
zPCollectionsAbcTests.test_subclassing_subclasshook.<locals>.Base.__subclasshook__NrrDrDrDrEr��r�r�c@rR)z<CollectionsAbcTests.test_subclassing_subclasshook.<locals>.CNrTrDrDrDrEr��r�r�c@rR)z>CollectionsAbcTests.test_subclassing_subclasshook.<locals>.FooNrTrDrDrDrErU�r�rUc@rR)z>CollectionsAbcTests.test_subclassing_subclasshook.<locals>.BarNrTrDrDrDrErV�r�rV)rJr�rFrH)r?r�r�rUrVrDrDrE�test_subclassing_subclasshook�sz1CollectionsAbcTests.test_subclassing_subclasshookcCs�Gdd�dtj�}Gdd�d|�}Gdd�d�}|�|�|�||�|�||�Gdd�d�}|�|�|�||�|�||�Gd	d
�d
�}tjj�|�|�|tj�dS)Nc@rR)z8CollectionsAbcTests.test_subclassing_register.<locals>.ANrTrDrDrDrEro�r�roc@rR)z8CollectionsAbcTests.test_subclassing_register.<locals>.BNrTrDrDrDrEr��r�r�c@rR)z8CollectionsAbcTests.test_subclassing_register.<locals>.CNrTrDrDrDrEr��r�r�c@rR)z8CollectionsAbcTests.test_subclassing_register.<locals>.DNrTrDrDrDrEr��r�r�c@rR)z8CollectionsAbcTests.test_subclassing_register.<locals>.MNrTrDrDrDrEr��r�r�)	rJr�r�rFrHrrrr�)r?ror�r�r�r�rDrDrE�test_subclassing_register�s

z-CollectionsAbcTests.test_subclassing_registercCs�Gdd�dtjj�}|�|tj�|�|tj�Gdd�dtjj�}|�|tj�|�|tj�Gdd�dtjj�}|�|tj�Gdd�dtjjtjd	�}Gd
d�d�}|�|�|�|tj�dS)Nc@rR)z7CollectionsAbcTests.test_collections_as_base.<locals>.MNrTrDrDrDrEr��r�r�c@rR)z7CollectionsAbcTests.test_collections_as_base.<locals>.SNrTrDrDrDrEr�r�rc@rR)z7CollectionsAbcTests.test_collections_as_base.<locals>.INrTrDrDrDrEr��r�r�c@rR)z7CollectionsAbcTests.test_collections_as_base.<locals>.ANrTrDrDrDrEro�r�ro)�	metaclassc@rR)z7CollectionsAbcTests.test_collections_as_base.<locals>.BNrTrDrDrDrEr��r�r�)	rrr�rFrJr�rV�ABCMetar�)r?r�rr�ror�rDrDrE�test_collections_as_base�s
z,CollectionsAbcTests.test_collections_as_basecCsD|�tjtjBttjtjf�|�tjtjBttjtjf�dSrI)rgrJrJr9rr>r3r`rDrDrEr�s $z#CollectionsAbcTests.test_or_and_rorN);rOrPrQr4r5r8r�ASYNCIOr=r@rFrHrKrLrNrOrQrSrTrUrWrZr\r`rbrdrer{rgrirkrlrnrprtrwr{r�r�r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrDrDrDrEr2!sv






Er2c@s&eZdZdd�Zeed�dd��ZdS)�
OtherABCTestscCs4tjdd��}|�}|�|tj�|�dtj�dS)Ncsr�r[rDrDrDrDrE�manager��
z2OtherABCTests.test_contextmanager.<locals>.managerr\)�
contextlib�contextmanagerr�rJr^r�)r?r�rrDrDrE�test_contextmanagers

z!OtherABCTests.test_contextmanagerzPython 3.5 requiredcCs�Gdd�d�}|�t�tj�|�|�tj�tjdd��}|�}|�|tj�|�tjtj	tf�|�
t��tdtjt�Wd�n1sKwY|�
t��tjtt
fWd�dS1shwYdS)Nc@rR)z7OtherABCTests.test_async_contextmanager.<locals>.NotACMNrTrDrDrDrE�NotACMrUr�csr�r[rDrDrDrDrEr�r�z8OtherABCTests.test_async_contextmanager.<locals>.managerr\)r��ACMrJr�r�r�r�rgrkr�r]r^r_r�)r?r�r�rrDrDrE�test_async_contextmanagers
�"�z'OtherABCTests.test_async_contextmanagerN)rOrPrQr�rr�r�rDrDrDrEr�s	r�c@�$eZdZdd�Zdd�Zdd�ZdS)�	TypeTestscCsPGdd�d�}Gdd�d|�}Gdd�d|�}dt|d|fd	d
�}||�dS)Nc@rR)z'TypeTests.test_type_basic.<locals>.UserNrTrDrDrDrE�User#r�r�c@rR)z,TypeTests.test_type_basic.<locals>.BasicUserNrTrDrDrDrE�	BasicUser$r�r�c@rR)z*TypeTests.test_type_basic.<locals>.ProUserNrTrDrDrDrE�ProUser%r�r��
user_classr�cS�|�SrIrD�r�rDrDrE�new_user'r�z+TypeTests.test_type_basic.<locals>.new_userr$)r?r�r�r�r�rDrDrE�test_type_basic!s
zTypeTests.test_type_basiccCs\Gdd�d�}Gdd�d|�}Gdd�d|�}td|d�}d	t|d
|fdd�}||�dS)
Nc@rR)z)TypeTests.test_type_typevar.<locals>.UserNrTrDrDrDrEr�.r�r�c@rR)z.TypeTests.test_type_typevar.<locals>.BasicUserNrTrDrDrDrEr�/r�r�c@rR)z,TypeTests.test_type_typevar.<locals>.ProUserNrTrDrDrDrEr�0r�r�rsr�r�r�cSr�rIrDr�rDrDrEr�4r�z-TypeTests.test_type_typevar.<locals>.new_user)r
r%)r?r�r�r�rsr�rDrDrE�test_type_typevar,szTypeTests.test_type_typevarcCsHttt}d|dttfdd�}t|t�t�sJ�|d�dus"J�dS)Nr	r�cSs|durdS|�SrIrDr
rDrDrEr<sz)TypeTests.test_type_optional.<locals>.foo)rr%�
BaseExceptionr_�KeyboardInterrupt)r?rorrDrDrE�test_type_optional9szTypeTests.test_type_optionalN)rOrPrQr�r�r�rDrDrDrEr�s
r�c@sdeZdZedd��Zedd��Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dS)�NewTypeTestscCs tdt�at|jdt�|_dS)N�UserId�	.UserName)r&rkr�rQr��UserName�r@rDrDrE�
setUpClassGs
zNewTypeTests.setUpClasscCs
b|`dSrI)r�r�r�rDrDrE�
tearDownClassMszNewTypeTests.tearDownClasscCs|��dSrI)rNr`rDrDrE�tearDownSszNewTypeTests.tearDowncCs:|�td�t�|�|�d�t�|�td�dd�dS)NrK�Joer��)r�r�rkr�r�rgr`rDrDrErVszNewTypeTests.test_basiccCst|�t��
ttt�Wd�n1swY|�t��Gdd�dt�}Wd�dS1s3wYdS)Nc@rR)z#NewTypeTests.test_errors.<locals>.DNrTrDrDrDrEr�_rUr�)r]r^r<r�rkr�rDrDrErl[s�"�zNewTypeTests.test_errorsc	Cs�t|jfD]H}|j|d��8|�t|Btt|f�|�|tBt|tf�|�tt|B�t|f�|�t|tB�|tf�Wd�n1sHwYqdS)Nr�)rkr�r�rgr�rr )r?r@rDrDrEr�bs���zNewTypeTests.test_orcCs�|�tjd�|�tjd�|�tjt�|�tjt�|j}|�|jd�|�|j|jjd�|�|jt�|�|jt	�dS)Nr�r�r�)
rgr�rOrQrP�
__supertype__rkr�r3r�)r?r�rDrDrE�test_special_attrsks
�zNewTypeTests.test_special_attrscCs<|�tt�t�d��|�t|j�t�d|jj�d��dS)Nz.UserIdr�r�)rgrhr�rOr�r3rQr`rDrDrErixs�zNewTypeTests.test_reprc
Cs�tdt�}ttjd�D]X}|j|d��Ht�t|�}t�|�}|�	|t�t�|j
|�}t�|�}|�	||j
�|�tj��t�||�Wd�n1sPwYWd�n1s_wYqdS)N�UserAger�)r)
r&r�rrrr�r r�r!r�r�r]�
PicklingError)r?r�r�pickledr$rDrDrEr%}s 


�����zNewTypeTests.test_picklecCr�)Nz-import typing
NT = typing.NewType('NT', int)
r�r�rDrDrEr��sz!NewTypeTests.test_missing__name__N)rOrPrQr
r�r�r�rrlr�r�rir%r�rDrDrDrEr�Fs

	
r�c@steZdZGdd�de�Zdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�NamedTupleTestsc@r�)zNamedTupleTests.NestedEmployeer�r�Nr�rDrDrDrE�NestedEmployee�r{r�cCs�tddtfdtfg�}|�|t�|dd�}|ddd�}|�||�|�|t�|�|jd�|�|jd�|�|jd�|�|jd�|�|j	d�|�|j
d�|�|jt�
dtfdtfg��dS)	N�Empr��idr�r\�Jimr��r�r�)r'r�rkrFr�r�rgr�r�rO�_fieldsrzrrv)r?r��joe�jimrDrDrEr��s
�zNamedTupleTests.test_basicscCs�tjdd�dkrE|�t��tdttd�Wd�n1s wY|�t��Gdd�dt�}Wd�dS1s>wYdSdS)NrC)rDr��Name)r,r
c@r�)z9NamedTupleTests.test_namedtuple_pyversion.<locals>.NotYetrN)rOrPrQr�rDrDrDrE�NotYet�r�r�)r�r�r]r^r'rkr�)r?r�rDrDrE�test_namedtuple_pyversion�s�"��z)NamedTupleTests.test_namedtuple_pyversioncCsvtdd�}|�|t�|�|t�|�|jd�|�|jd�|�tjd�|�tjd�|�tjt	j
ttd��dS)N�Timi(#r��r�r�)
r�r�r�rgr�r�rOr�rzrrvr�rk)r?�timrDrDrE�test_annotation_usage�s
�z%NamedTupleTests.test_annotation_usagecCs�td�}|�|t�|�|t�|�|jd�|�|jd�tdd�}|�|jd�|�tjd�|�tjd�|�tjt	t
td��|�tjt	dd��|�
t��Gdd	�d	t�}Wd�dS1sfwYdS)
N�Jeller�Sjoerdr�r�r�)r�c@s"eZdZUdZeed<eed<dS)zRNamedTupleTests.test_annotation_usage_with_default.<locals>.NonDefaultAfterDefaultrDr�rEN)rOrPrQr�rkrzrDrDrDrE�NonDefaultAfterDefault�s
r�)r�r�r�rgr�r�rOr�rzr�r�rk�_field_defaultsr]r^r')r?�jelle�cooler_employeer�rDrDrE�"test_annotation_usage_with_default�s 

�"�z2NamedTupleTests.test_annotation_usage_with_defaultcCs�|�td���d�|�td�jtd�d�|�ttd��d�|�tdd�td�d�|�t��Gdd�dt�}Wd�n1sFwY|�t��Gd	d
�d
t�}Wd�dS1sdwYdS)Nr�rCr\rz42 -> 1rDc@r�)zDNamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBadr�cSr�)Nzno chance for thisrDr`rDrDrEr��r�zLNamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBad._fieldsN)rOrPrQrkrzr�rDrDrDrE�XMethBad�r{r�c@r�)zENamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBad2r�cSr�)Nzno chance for this as wellrDr`rDrDrE�_source�r�zMNamedTupleTests.test_annotation_usage_with_methods.<locals>.XMethBad2._sourceN)rOrPrQrkrzr�rDrDrDrE�	XMethBad2�r{r�)	rgr�r�r�r�r�r]rpr')r?r�r�rDrDrE�"test_annotation_usage_with_methods�s�"�z2NamedTupleTests.test_annotation_usage_with_methodscCsPGdd�d�}|�t��Gdd�dt|�}Wd�dS1s!wYdS)Nc@rR)z4NamedTupleTests.test_multiple_inheritance.<locals>.ANrTrDrDrDrEro�rUroc@r|)z4NamedTupleTests.test_multiple_inheritance.<locals>.Xr�NryrDrDrDrEr��r�r�)r]r^r')r?ror�rDrDrEr��s"�z)NamedTupleTests.test_multiple_inheritancecCs�tdttd�}|dd�}|�|t�|�|jd�|�|jd�|�|jd�|�|j	t
ttd��|�t��tddtfgtd�Wd�n1sLwY|�t��tddd	d
�Wd�dS1siwYdS)N�
LocalEmployee)r��age�Nick�r�r��rEr�r	r�)
r'r�rkr�r�rgr�rOr�rzr�r]r^)r?r��nickrDrDrE�test_namedtuple_keyword_usage�s
�"�z-NamedTupleTests.test_namedtuple_keyword_usagecCs�tdttttd�}|�|jd�|�|jd�|tdddtfgd�}|�|j	t�|�|j
d�|�|jd�|�|jdtfg�dS)Nr�)r@r?�typename�fieldsr\rrL)
r'rqr�r�r�rgrOr�r�r@r?r�r�)r?r�r	rDrDrE�%test_namedtuple_special_keyword_names�sz5NamedTupleTests.test_namedtuple_special_keyword_namesc	Cs�td�}Gdd�dt�}||fD]4}|j|d��$|�|jd�|�|ji�|�|ji�|�|�|�Wd�n1s?wYqdS)Nr�c@rR)z2NamedTupleTests.test_empty_namedtuple.<locals>.CNTNrTrDrDrDrE�CNTrUr�)�structrD)r'r�rgr�r�rzr�)r?r�r�r�rDrDrE�test_empty_namedtuple�s���z%NamedTupleTests.test_empty_namedtuplecCsX|�t��t��Wd�n1swY|�t��t�Wd�n1s,wY|�t��tddtfgd�Wd�n1sJwY|�t��tddtfg�Wd�n1sgwY|�t��tdttd�Wd�n1s�wY|�t��tddtfdtfgd�Wd�dS1s�wYdS)Nr�r��_name)r�r�r�r�)r�)r]r^r'r r�r�rkr`rDrDrE�test_namedtuple_errorss$
�����"�z&NamedTupleTests.test_namedtuple_errorsc	Cs�tddtfdtfg�att|jfD]^}|j|d��N|dd�}ttj	d�D]}t�
||�}t�|�}|�||�|�
||�q&t|�}|�||�|�
||�t|�}|�||�|�
||�Wd�n1sjwYqdS)Nr�r�r�r��jane�%r�)r'r�rkr�r�r�r�rrrr r!rgr�rr)r?r@r�rrF�jane2rDrDrE�test_copy_and_pickles$

���z$NamedTupleTests.test_copy_and_pickleN)rOrPrQr'r�r�r�r�r�r�r�r�r�r�r�r�rDrDrDrEr��s


r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �TypedDictTestscCs�tdttd��}|�|t�|�|tj�|�|tj	j
�|ddd�}|�t|�t�|�
|dd�|�
|dd�|�
|jd�|�
|jt�|�
|jtf�|�
|jttd��|�
|jd�dS�Nr�r�r�r�r�r�T�r(r�rkrFr�rJrrHrrr�r�rqrgrOrPr�rz�	__total__�r?r�r�rDrDrE�test_basics_functional_syntax0sz,TypedDictTests.test_basics_functional_syntaxcCs�tdttd�}|�|t�|�|tj�|�|tj	j
�|ddd�}|�t|�t�|�
|dd�|�
|dd�|�
|jd�|�
|jt�|�
|jtf�|�
|jttd��|�
|jd�dSr�r�r�rDrDrE�test_basics_keywords_syntax?sz*TypedDictTests.test_basics_keywords_syntaxc
Cs�tdttttttd�}|�|jd�|�|j	ttttttd��|tddddt
fgdthd�}|�|dt�|�|d	d�|�|d
d�|�|dd�|�|ddt
fg�|�|d
dth�dS)N�TD)r@r?r��	_typenamer�r�r\r�5rLrOr@r?r�rr�r�)r(rqr�r�rkr�r�rgrOrzr�r)r?rr	rDrDrE�$test_typeddict_special_keyword_namesNsz3TypedDictTests.test_typeddict_special_keyword_namescCs|�t��t��Wd�n1swY|�t��t�Wd�n1s,wY|�t��tddtfgd�Wd�n1sJwY|�t��tdttd�Wd�n1sfwY|�t��tdttd�d�Wd�dS1s�wYdS)Nr�r�)rr�r�r�)r�)r]r^r(r r�rkr`rDrDrE�test_typeddict_create_errorsZs
����"�z+TypedDictTests.test_typeddict_create_errorscCs|tdttd��}|�tjd�|ddd�}|�t��
ti|�Wd�n1s*wY|�t��
t||�Wd�n1sDwY|�t��
tt	|�Wd�n1s^wY|�t��tddd�Wd�n1sywY|�t��tddtfd	g�Wd�n1s�wY|�t��tddtfgtd
�Wd�dS1s�wYdS)Nr�r�rJr�r��Hir�r�)rEr�r�)
r(r�rkrgrPr]r^r_r<r�r�rDrDrE�test_typeddict_errorsgs*�����"�z$TypedDictTests.test_typeddict_errorscCs�|�tjd�|�tjt�|�tjtttd��|�tjtf�|�tj	d�|�
ttj�t
ddd�}|�|dd�|�|dd�tddd	d�}|�|d
d	�dS)Nr�r�Trr�r�r�rE�hir~)rgr�rOrPrzrkr�r�r�r�rHrJr�r�)r?�
not_originr
rDrDrE�test_py36_class_syntax_usagexsz+TypedDictTests.test_py36_class_syntax_usagecCs�tdttd�atddd��}ttjd�D]2}t�||�}t�|�}|�	||�|�	|ddd��t�t|�}t�|�}|�	|ddd��|�qdS)N�EmpDr�r�r�r�)
r(r�rkrrrrr r!rg)r?r�rrFr��ZZ�EmpDnewrDrDrEr%�s

�zTypedDictTests.test_picklecCsFtdttd�}|�tj|tjd|f�|�tj|tj	|�dS)Nrr�)
r(r�rkrgrJrrr�rr)r?rrDrDrEr��szTypedDictTests.test_optionalcCs�tddtidd�}|�|�i�|�|dd�ddi�|�|jd�|�|jt��|�|jdh�|�t�i�|�tdd�d	di�|�tjd�|�tjt��|�tjd	d
h�dS)Nr�r�Fr�r�r�rC)r�r�r�)r(rkrgr��__required_keys__r3�__optional_keys__r�r�rDrDrE�
test_total�szTypedDictTests.test_totalcCsBGdd�dtdd�}|jtddg�ksJ�|jtdg�ksJ�dS)Nc@r|)z6TypedDictTests.test_optional_keys.<locals>.Point2Dor3DrFNryrDrDrDrE�Point2Dor3D�r�rFr�r�rErF)r�rr3r)r?rrDrDrE�test_optional_keys�sz!TypedDictTests.test_optional_keyscCs�Gdd�dt�}Gdd�d|dd�}Gdd�d|�}|jtd	g�ks$J�|jtg�ks-J�|jd	tiks6J�|jtd	g�ks@J�|jtd
dg�ksKJ�|jtttd�ksVJ�|jtd	d
g�ksaJ�|jtd
dg�kslJ�|jttttd�ksxJ�dS)Nc@r|)z8TypedDictTests.test_keys_inheritance.<locals>.BaseAnimalr�NrrDrDrDrE�
BaseAnimal�r�rc@r�)z4TypedDictTests.test_keys_inheritance.<locals>.Animal�voice�tailN)rOrPrQr�rzrrDrDrDrE�Animal�r{rFr�c@r|)z1TypedDictTests.test_keys_inheritance.<locals>.Cat�	fur_colorNrrDrDrDrE�Cat�r�rr�rr)r�rrr)rr�rr)r(rr3rrzr�r)r?rrrrDrDrE�test_keys_inheritance�s*��z$TypedDictTests.test_keys_inheritancec

Cs>Gdd�dt�}Gdd�dt�}Gdd�dtdd�}td	d
ti�}Gdd�d�}Gd
d�d||�}|�|jtgd���|�|jtg��|�|jtttd��Gdd�d||�}|�|jtddg��|�|jtdg��|�|jtttd��Gdd�d||dd�}|�|jtdg��|�|jtddg��|�|jtttd��Gdd�d||�}	|�|	jtd
dg��|�|	jtdg��|�|	jtttd��||f||f|||f||f||fg}
|
D];}|j	|d��*|�
td��Gdd�dg|�R�}Wd�n	1�swYWd�n	1�swYq�dS)Nc@r|)z5TypedDictTests.test_multiple_inheritance.<locals>.Oner,NryrDrDrDrE�One�r�rc@r|)z5TypedDictTests.test_multiple_inheritance.<locals>.Two�twoNrrDrDrDrE�Two�r�rc@r|)z9TypedDictTests.test_multiple_inheritance.<locals>.Untotal�untotalNrrDrDrDrE�Untotal�r�rFr��Inline�inlinec@rR)z9TypedDictTests.test_multiple_inheritance.<locals>.RegularNrTrDrDrDrE�Regular�rUr"c@r|)z7TypedDictTests.test_multiple_inheritance.<locals>.Child�childN�rOrPrQrrzrDrDrDrE�Child�r�r%)r,rr#c@r|)zCTypedDictTests.test_multiple_inheritance.<locals>.ChildWithOptionalr#Nr$rDrDrDrE�ChildWithOptional�r�r&r,r#r)r,rr#c@r|)zETypedDictTests.test_multiple_inheritance.<locals>.ChildWithTotalFalser#Nr$rDrDrDrE�ChildWithTotalFalse�r�r'c@r|)zLTypedDictTests.test_multiple_inheritance.<locals>.ChildWithInlineAndOptionalr#Nr$rDrDrDrE�ChildWithInlineAndOptionalr�r()r!rr#)�basesz=cannot inherit from both a TypedDict type and a non-TypedDictc@rR)z7TypedDictTests.test_multiple_inheritance.<locals>.WrongNrTrDrDrDrE�Wrong!rUr*)r(rrgrr3rrzrkr�r�r-r^)
r?rrrr r"r%r&r'r(�wrong_basesr)r*rDrDrEr��s�
��
�
��
��
�
�
��
��������z(TypedDictTests.test_multiple_inheritancecCs>tt�dusJ�ttttf�dusJ�tt��dusJ�dS)NTF)r!r�rr�rkr`rDrDrE�test_is_typeddict$sz TypedDictTests.test_is_typeddictcCs |�tt�tjttd��dS)Nr[)rgrrVrJrrkr`rDrDrE�test_get_type_hints*s�z"TypedDictTests.test_get_type_hintscCsrGdd�dt�}|t}|�|j|�|�|jd�|�|jtf�|dd�}|�t|�t�|�|ddi�dS)Nc@r|)z5TypedDictTests.test_non_generic_subscript.<locals>.TDr	N)rOrPrQrrzrDrDrDrEr3r�rrDr�r
r	)	r(rkrgr�r�r�r�rqr�)r?rror	rDrDrEr,0s
z)TypedDictTests.test_non_generic_subscriptN)rOrPrQrrrrrrr%r�rrrr�r,r-r,rDrDrDrEr�/s 


 Wr�c@r')
�IOTestscCs0dtdtfdd�}|jd}|�|jtf�dS)Nr	r�cS�|��SrI��readliner
rDrDrErDBr�zIOTests.test_io.<locals>.stuff)r*rrzrgr��r?rDr	rDrDrE�test_io@s
zIOTests.test_iocC�.dtdtfdd�}|jd}|�|jd�dS)Nr	r�cSr/rIr0r
rDrDrErDJr�z"IOTests.test_textio.<locals>.stuffrD)r+r�rzrgr�r2rDrDrE�test_textioH�
zIOTests.test_textiocCr4)Nr	r�cSr/rIr0r
rDrDrErDRr�z$IOTests.test_binaryio.<locals>.stuffrD)r,r�rzrgr�r2rDrDrE�
test_binaryioPr6zIOTests.test_binaryiocCsnddlm}m}m}m}m}|�|tj�|�|tj�|�|tj�|�t	|�t	gd���|�|d�dS)Nr)r*r+r,r�rOr)z	typing.io)
�	typing.ior*r+r,r�rOr�rJrgr)r?r*r+r,r�rOrDrDrE�test_io_submoduleXszIOTests.test_io_submoduleN)rOrPrQr3r5r7r9rDrDrDrEr.>s
r.c@ry)�RETestscCs�t�dtj�}|�|jt�|�t|�t�|�|t�|�d�}|�|jt	�|�t|�t	�|�|t	�tt
ttft	t
ttfdS)Nz[a-z]+z12345abcde.....)
r��compiler�rFr3r-rqr��searchr.rr�r�)r?r.�matrDrDrEr�ds
zRETests.test_basicscCsP|�tttt�|�tttt�|�tttt�|�ttt�dSrI)rgr-r�r�r�r.r`rDrDrE�test_alias_equalitysszRETests.test_alias_equalitycCs�ttttf}|�t��|tWd�n1swY|�t��tdtt�Wd�n1s8wY|�t��ttttt�Wd�dS1sWwYdSr[)	r.rr�r�r]r^r_r-r<)r?�mrDrDrErlys
��"�zRETests.test_errorscCst|�tt�d�|�ttt�d�|�ttt�d�|�tt�d�|�ttt�d�|�ttt�d�dS)Nztyping.Patternztyping.Pattern[str]ztyping.Pattern[bytes]ztyping.Matchztyping.Match[str]ztyping.Match[bytes])rgrhr-r�r�r.r`rDrDrEri�szRETests.test_reprcCs\ddlm}m}m}m}|�|tj�|�|tj�|�t|�tddg��|�|d�dS)Nr)r.r-r�rOr.r-z	typing.re)	�	typing.rer.r-r�rOr�rJrgr)r?r.r-r�rOrDrDrE�test_re_submodule�s
zRETests.test_re_submodulecCsR|�t��}Gdd�dtj�}Wd�n1swY|�t|j�d�dS)Nc@rR)z'RETests.test_cannot_subclass.<locals>.ANrTrDrDrDrEro�rUroz.type 're.Match' is not an acceptable base type)r]r^rJr.rgr��	exception)r?�exrorDrDrErs�s��zRETests.test_cannot_subclassN)	rOrPrQr�r>rlrirArsrDrDrDrEr:asr:c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)S)*�AnnotatedTestscCs8|�td��t�Wd�dS1swYdS)Nz%Type Annotated cannot be instantiated�r-r^r/r`rDrDrE�test_new�s�"�zAnnotatedTests.test_newcCs<|�tttddf�d�|�ttttddf�d�dS)NrJrKztyping.Annotated[int, 4, 5]z(typing.Annotated[typing.List[int], 4, 5])rgrhr/rkrr`rDrDrEri�s��zAnnotatedTests.test_reprcCsJtttdfdf}|�|ttddf�|�|jd�|�|jt�dS)NrJrKrI)r/rkrg�__metadata__r�rrrDrDrErc�szAnnotatedTests.test_flattencCs�tttdf}tttdf}|�|ttttdf�|�|tjd�|�|tjtt�|�t��|tWd�n1sFwY|�t��|tt	fWd�dS1sbwYdS)N�
my decoration)rH)
r/rrrkrgrGr�r]r^r�)r?�L�LIrDrDrE�test_specialize�s
�"�zAnnotatedTests.test_specializecCs�|�tttddfttddfh�d�|�ttddfttddf�|�ttddfttddf�|�ttdfttddf�|�ttddfttddfttddfhttddfttddfh�dS)NrJrKr�)rgr�r/rkr�r�rr`rDrDrE�test_hash_eq�s(  &�zAnnotatedTests.test_hash_eqcs^G�fdd�d��t�df}|d�}�d�}|�||�|�|j|j�|�|j|j�dS)Ncs$eZdZdZdd�Z�fdd�ZdS)z*AnnotatedTests.test_instantiate.<locals>.CrJcSr�rIr�r�rDrDrErs�rtz3AnnotatedTests.test_instantiate.<locals>.C.__init__cst|��stS|j|jkSrI)r_�NotImplementedr�r�r�rDrE�__eq__�s
z1AnnotatedTests.test_instantiate.<locals>.C.__eq__N)rOrPrQ�classvarrsrNrDr�rDrEr��sr��a decorationrK)r/rgr�rO)r?ror	r�rDr�rE�test_instantiate�szAnnotatedTests.test_instantiatecCsNttjtdf}|�|gd��ddd��|�|tgd��ddd��dS)NrH)rJrJrKrCr�rI)r/rJrarrgrk)r?�MyCountrDrDrE�test_instantiate_generic�s"z'AnnotatedTests.test_instantiate_genericcCs@td}|�t��
|d�Wd�dS1swYdS)N)rk�rKr�rK)r/r]r^rrrDrDrE�test_cannot_instantiate_forward�s
"�z.AnnotatedTests.test_cannot_instantiate_forwardcCsDttdf}|�t��
|d�Wd�dS1swYdS)NrTrK)r/rr]r^rrrDrDrE� test_cannot_instantiate_type_var�s
"�z/AnnotatedTests.test_cannot_instantiate_type_varcCs>|�t��ttdfjWd�dS1swYdS)N)rKr�)r]rpr/rr�r`rDrDrE�test_cannot_getattr_typevar�r�z*AnnotatedTests.test_cannot_getattr_typevarcCs@Gdd�d�}t|df}|�|jd�d|_|�|jd�dS)Nc@r�)z/AnnotatedTests.test_attr_passthrough.<locals>.CrJN)rOrPrQrOrDrDrDrEr��r�r�rPrJrK)r/rgrOr�)r?r�rorDrDrE�test_attr_passthrough�s
z$AnnotatedTests.test_attr_passthroughcCsJGdd�d�}|�t|t��dtt�|�t|t��dtt�dS)Nc@s>eZdZUdZeeedfed<dZee	edfed<dS)z7AnnotatedTests.test_special_form_containment.<locals>.CrJrPrOrr�N)
rOrPrQrOr/rrkrzr�rrDrDrDrEr��s
r�rOr�)rgrrrrkrr�rDrDrE�test_special_form_containment�s z,AnnotatedTests.test_special_form_containmentcCsB|�td��Gdd�dt�}Wd�dS1swYdS)NzCannot subclass .*Annotatedc@rR)z.AnnotatedTests.test_cannot_subclass.<locals>.CNrTrDrDrDrEr�rUr�rEr�rDrDrErss"�z#AnnotatedTests.test_cannot_subclasscCsB|�t��tdttdf�Wd�dS1swYdS)NrK�positive)r]r^r_r/rkr`rDrDrE�test_cannot_check_instance�"�z)AnnotatedTests.test_cannot_check_instancecCsB|�t��ttttdf�Wd�dS1swYdS)NrZ)r]r^r<rkr/r`rDrDrE�test_cannot_check_subclassr\z)AnnotatedTests.test_cannot_check_subclasscCs:|�td��
ttWd�dS1swYdS)Nzat least two arguments)r-r^r/rkr`rDrDrE�test_too_few_type_argss
"�z%AnnotatedTests.test_too_few_type_argsc

Cs6tjtjttftjtttdftjtgtfg}|D]:}t	|df}t
tjd�D]*}|j
||d��t�||�}t�|�}|�||�Wd�n1sPwYq+qGdd�dtt�at	ttdf}d|_d	|_t
tjd�D]"}t�||�}	t�|	�}|�|jd�|�|jd	�|�|jd�qvdS)
N.r	r�)�protocolrqc@r�)�_Annotated_test_Gr�Nr�rDrDrDrEr`#r�r`zA decorationr\r)rJrrrkr�rrrr�r/rrrr�r r!rgrrr`rrLr�)
r?r"r�r��protr��restoredr
rrFrDrDrEr%s2�
���
�zAnnotatedTests.test_picklecCs�d}d}tt|f}|�|ttt|f�|�|tt|ftt||f�ttt|f}|�|tttt|f�|�t��|ttfWd�n1sSwY|�||tttt||f�ttjt	t
f|f}|�|ttfttjttf|f�|�t��|tWd�n1s�wYtt|f}|�t��|dWd�n1s�wY|t}|�t��
|dWd�dS1s�wYdS)NrPzanother decoration)r/rrgrkrr]r^rJrr
rr�)r?r��dec2rrIr��ItrJrDrDrE�
test_subst1s0"�"&
�
�
"�zAnnotatedTests.test_substcCs0tttdf}|�|ttttdf�dS)NrK)rr/rrgrkr�rDrDrE�test_annotated_in_other_typesNs z,AnnotatedTests.test_annotated_in_other_typescCs2Gdd�dttdf�}|�|j|ttfd�dS)Nc@rR)z,AnnotatedTests.test_annotated_mro.<locals>.XNrTrDrDrDrEr�Sr�r�r	z Annotated should be transparent.)r/rkrgrwr�r�rDrDrE�test_annotated_mroRs�z!AnnotatedTests.test_annotated_mroN)rOrPrQrFrircrKrLrQrSrUrVrWrXrYrsr[r]r^r%rerfrgrDrDrDrErD�s*

	rDc@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TypeAliasTestscC�t}dSrI�rS�r?r8rDrDrE�-test_canonical_usage_with_variable_annotationYr�z<TypeAliasTests.test_canonical_usage_with_variable_annotationcCrirIrjrkrDrDrE�&test_canonical_usage_with_type_comment\r�z5TypeAliasTests.test_canonical_usage_with_type_commentcCs6|�t��t�Wd�dS1swYdSrI)r]r^r1r`rDrDrErv_s"�z&TypeAliasTests.test_cannot_instantiatecCrZr[)r]r^r_r1r`rDrDrEr8crbz!TypeAliasTests.test_no_isinstancecCr�)Nc@seZdZUded<dS)z/TypeAliasTests.test_stringized_usage.<locals>.Ar1r	Nr�rDrDrDrErohr�ror	)rgrr1rrrDrDrE�test_stringized_usagegsz$TypeAliasTests.test_stringized_usagecCrcrI)r]r^r<rSr1r`rDrDrE�test_no_issubclassls�"�z!TypeAliasTests.test_no_issubclasscCrm)Nc@rR�z.TypeAliasTests.test_cannot_subclass.<locals>.CNrTrDrDrDrEr�urUr�c@rRrprTrDrDrDrEr�yrU)r]r^r1rqr�rDrDrErsss�"�z#TypeAliasTests.test_cannot_subclasscCrf)Nztyping.TypeAlias)rgrhr1r`rDrDrEri|rjzTypeAliasTests.test_reprcCr}rI)r]r^r1rkr`rDrDrE�test_cannot_subscriptrz$TypeAliasTests.test_cannot_subscriptN)rOrPrQrlrmrvr8rnrorsrirqrDrDrDrErhXs	rhc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�ParamSpecTestscCr�)Nr,)r2rgr�r`rDrDrEr��r�zParamSpecTests.test_basic_plaincCs�td�}td�}t|tf}|�|j|tf�|�|j|f�t||f}|�|j||f�|�|j||f�tjj|tf}|�|j|tf�|�|j|f�tjj||f}|�|j||f�|�|j||f�dS�Nr,r)	r2r
rrkrgr�r�rr�r?r,rr&r'r(r)rDrDrE�test_valid_uses�szParamSpecTests.test_valid_usescCstd�}td�}|�dt|��|�dt|��|�|jt�|�|jt�|�|jj	|�|�|jj	|�|�
|j|j�|�
|j|j�|�|j|j�|�|j|j�|�|j|j�|�|j|j�|�|j|j�|�
t|j�d�|�
t|j�d�dS)Nr,�P_2r�rl�P.args�P.kwargs)
r2r�r�r�r�r4rlr5r�r�rgr�rh)r?r,rvrDrDrE�test_args_kwargs�s"zParamSpecTests.test_args_kwargscCshtd�}Gdd�dt|�}|�t|t�t��dt|tfi�|�t|jt�t��|j	|j
d��dS)Nr,c@s(eZdZUedefed<d
dd�Zd	S)z)ParamSpecTests.test_stringized.<locals>.Cr,r?r�rwrlrxc_r�rIrD)r?r�rlrDrDrEr�r�z-ParamSpecTests.test_stringized.<locals>.C.fooN)r�rwrlrx)rOrPrQrrkrzrrDrDrDrEr��s
r�r?)r�rl)r2rrgr�rr
rrkrr�rlrrDrDrE�test_stringized�s$�zParamSpecTests.test_stringizedcs�td��td��td�}G��fdd�dt��f�}|t|f}|�|jt|f�|�|j|f�|�td��|tWd�n1sGwY|�td��|t|t	fWd�n1sdwY|tt
t|ff}|�|jtt
t|ff�|�|j|f�|tttgf}|�|jtttff�|�|jd�|td	f}|�|jttf�|�|jd�G�fd
d�dt��}|tt	tg}|�|jtt	tff�|�|jd�|tt	tf}	|�|	jtt	tff�|�|	jd�|�|j|	j�|�|j
|	j
�|�|j|	j�|�||	�|t}
|�|
jtff�|�|
jd�|�td��|tt	gtfWd�n	1�sBwY|�td��||tfWd�dS1�s`wYdS)Nrr,rvcs&eZdZUe�efed<�ed<dS)z,ParamSpecTests.test_user_generics.<locals>.XrMr�N�rOrPrQrrkrzrD�r,rrDrEr��s
r�r:r9rD.cseZdZUe�efed<dS)z,ParamSpecTests.test_user_generics.<locals>.ZrMNr{rD)r,rDrErn�rzrn)r
r2rrkrgr�r�r-r^r�r3rr�r�)r?rvr��G1�G2�G3�G4rn�G5�G6�G7rDr|rE�test_user_generics�sT
���$�z!ParamSpecTests.test_user_genericscs�td��td��G��fdd�dt��f�}|ttgtgf}|tgttgf}|�||�|�|jttftff�|�|jtfttff�dS)Nr,r6cs.eZdZUe�efed<e�efed<dS)zCParamSpecTests.test_multiple_paramspecs_in_user_generics.<locals>.XrMr<N)rOrPrQrrkrzr�rD�r,r6rDrEr��r�r�)r2rrkr�r�r�rgr�)r?r�r}r~rDr�rE�)test_multiple_paramspecs_in_user_generics�sz8ParamSpecTests.test_multiple_paramspecs_in_user_genericsc
Cs�td�}td�}dtd|ttBtttff}|D]Y}|j|d��I|�t��tj	||f|tfWd�n1s<wY|�t��t
jj	||f|tfWd�n1s]wYWd�n1slwYqdS)Nrr,r\r�)r
r2rkr�rr�r]r^rJrrr)r?rr,�bad_argsr�rDrDrEr��s������z(ParamSpecTests.test_bad_var_substitutioncCs�td�}td�}|�|t|j�|�|t||fj�|�|t|j�|�|t||fj�|�|t|t	Bj�|�|t||ft	Bj�dS�Nrr,)
r
r2rLrr�r�rr�r�rkr.rDrDrE�"test_no_paramspec_in__parameters__
sz1ParamSpecTests.test_no_paramspec_in__parameters__cCs�td�}td�}t||f}t|}t|}t|tB}|�|j||f�|�|j||f�|�|j||f�tttgt	f}|�|ttgt	ft|�|�|ttgt	ft|�|�|ttgt	ft|tB�dSr�)
r
r2rrr�rkrgr�r�r�)r?rr,r&r}r~rr�rDrDrE�!test_paramspec_in_nested_genericss$z0ParamSpecTests.test_paramspec_in_nested_genericscCsVtd�}td�}t|tf}|�|j|f�|�||j|f�|�|tjd�|�|ttfjtf�|�|tt|fj|f�|�|tt|fjt|f�|�|djd�ttt|ftf}|�|j|f�|�||j|f�|�|tjd�|�|ttfjtf�|�|tt|fj|f�|�|tt|fjt|f�dS)Nr,r6rD.)r2rrkrgr�r�rr3)r?r,r6r&r'rDrDrE�test_paramspec_gets_copied,s""z)ParamSpecTests.test_paramspec_gets_copiedN)
rOrPrQr�ruryrzr�r�r�r�r�r�rDrDrDrErr�s6rrc@r�)�ConcatenateTestscCs2td�}Gdd�d�}t||f}|�|t�dS)Nr,c@rR)z-ConcatenateTests.test_basics.<locals>.MyClassNrTrDrDrDrEr/Er�r/)r2r3r�)r?r,r/r�rDrDrEr�CszConcatenateTests.test_basicscCs td�}td�}ttt|ftf}|�|jtt|ftf�|�|j|f�ttt||f|f}|�|jtt||f|f�|�|j||f�tj	jtt|ftf}|�|jtt|ftf�|�|j|f�tj	jtt||f|f}|�|jtt||f|f�|�|j||f�dSrs)
r2r
rr3rkrgr�r�rrrtrDrDrEruIsz ConcatenateTests.test_valid_usescCs�td�}td�}td�}t||f}|�|t|ftt|f�|�|tttgftttf�|�|tgftf�|�|ttt|ffttt|f�|�t��|tdfWd�n1scwYtt|f}|�||tt|f�|�|ttgtttf�|�|ttftttf�|�|gtf�|�|tt|fttt|f�|�t��
|dWd�dS1s�wYdS)Nrr,r6.)	r
r2r3rgrkr�r�r]r^)r?rr,r6r�rDrDrEr+[s,��"
"�z&ConcatenateTests.test_var_substitutionN)rOrPrQr�rur+rDrDrDrEr�Bsr�c@r�)�TypeGuardTestscCs6ttdttfdd�}|�t|�dtti�dS)Nr�cSr�rIrDr�rDrDrErur�z'TypeGuardTests.test_basics.<locals>.foo)r6rkrgr�rrDrDrEr�rszTypeGuardTests.test_basicscCr<)Nztyping.TypeGuardztyping.TypeGuard[int]ztyping.TypeGuard[%s.Employee]ztyping.TypeGuard[tuple[int]])rgrhr6rkrSrOr�r0rDrDrErixr=zTypeGuardTests.test_reprcCr2)Nc@rR�z.TypeGuardTests.test_cannot_subclass.<locals>.CNrTrDrDrDrEr��rUr�c@rRr�rTrDrDrDrEr��rU)r]r^rqr6rkr�rDrDrErs�r4z#TypeGuardTests.test_cannot_subclasscCr5rI)r]r^r6rqrrkr`rDrDrErS�r6zTypeGuardTests.test_cannot_initcCr7rR)r]r^r_r6rkr<r`rDrDrEr8�r9z!TypeGuardTests.test_no_isinstanceNr:rDrDrDrEr�qs	r��
SpecialAttrsP�
SpecialAttrsTc@s0eZdZdd�Ze�de�Zdd�Zdd�Z	dS)	�SpecialAttrsTestsc Cs�itjd�tjd�tjd�tjd�tjd�tjd�tjd�tjd�tj	d	�tj
d
�tjd�tjd�tj
d
�tjd�tjd�tjd�tjd�itjd�tjd�tjd�tjd�tjd�tjd�tjd�tjd�tjd�tjd�tjd�tjd�tjd�tjd�tj d �tj!d!�tj"d"��itj#d#�tj$d$�tj%d%�tj&d&�tjt'd�tjt'd�tjt't'fd�tjt'd�tjt'd�tjt'd�tjgt'fd�tjd't'fd�tj	t't'fd	�tj
t'd
�tjt'd�tjt'd�tj
t't't'fd
��itjt'd�tjt't'fd�tjt'd�tjt't'fd�tjt'd�tjt't't'fd�tjt't'fd�tjt'd�tjt'd�tjt'd�tjt'd�tjt't'fd�tjt'd�tjt't'fd�tjt'd�tjt'd�tjt't'fd��itj t'd �tj!t'd!�tj"t'd"�tj$t'd$�tj$t'd'fd$�tj%t'd%�tj&t'd&�tj(d(�tj'd)�tj)d*�tj*d+�tj+d,�tj,d-�tj-d.�tj.d/�tj/d0�tj0d1��tj1d2tj2d3tj3d4tj4d5tj(t'd6fd(tj)t'd*tj*t't5fd+tj+t'd,tj-t'd.tj-d7d.tj-d8d.tj0t'd1tj2t'd3tj4t'd)tj4t6t7fd5i�}|�8�D]V\}}|j9|d9��B|�:|j;|t<|��|�:|j=|t<|��|�:|j>d:t<|��t?t@jAd;�D]}t@�B||�}t@�C|�}|�D||��qCWd�n	1�scwY�qdS)<Nr�r�r�rCrGr9rXrr�rMr�r^r>rar�r_rr�r�r3�	ItemsViewr�r6�KeysViewrr��MappingViewrrVrPrvrRr�rcrJrr%�
ValuesView.r/rrr3rr0rr&r	rr1r6r
r�
AnnotationrHrZr�rJr�)ErJr�r�r�rCrGr9rXrr�rMr�r^r>rar�r_rr�r�r3r�r�r6r�rr�r�rrVrPrvrRr�rcrJrr%r�rr/rr3rr0rr&r	rr1r6r
rr�rkr�r�r�rgrOr�rQrPrrrr r!r�)r?�cls_to_checkr@r�rr#r$rDrDrEr��s��������	�
���
������������������� �!�"�#�$�%�&�'�
)�
*�+�
,�
-�
.�/�0�1�
2�
3�
4�5�
6�7�
8�9�
:�;�<�
=�
>�
?�
@�A�
B�C�
D�
E�F�
G�
H�
I�
J�K�
L�
M�O�P�Q�R�S�T�U�V�W�X�Y







�p
����z$SpecialAttrsTests.test_special_attrs�SpecialAttrsTests.TypeNamec	Cs�t�d�}|�t|d��|�t|d��|�|jd�ttjd�D]}|�	t
��t�||�Wd�n1s;wYq#|�tj
jd�|�tj
jd�|�tj
jt�ttjd�D]}t�tj
|�}t�|�}|�tj
|�q`|�tjd�|�ttd��|�tjt�ttjd�D]}t�t|�}t�|�}|�t|�q�|�tjd	�|�ttd��|�tjt�ttjd�D]}t�t|�}t�|�}|�t|�q�dS)
Nzset[Any]rOrQrJr��TypeNamer�r�r�)rJr0r�r�rgrPrrrr]r^r r�r�rOrQr!r�r�r�)r?rQrr#r$rDrDrE�test_special_attrs2sJ
����


�z%SpecialAttrsTests.test_special_attrs2cCs@Gdd�dtt�}|�dt|t��|�dt|t��dS)Nc@seZdZdd�ZdZdS)z4SpecialAttrsTests.test_genericalias_dir.<locals>.FoocSr�rIrDr`rDrDrErLOr�z8SpecialAttrsTests.test_genericalias_dir.<locals>.Foo.barrDN)rOrPrQrLrOrDrDrDrErUNsrUrLrO)rrr�r�rkrrDrDrE�test_genericalias_dirMsz'SpecialAttrsTests.test_genericalias_dirN)
rOrPrQr�rJr&rr�r�r�rDrDrDrEr��s
{2r�c@s eZdZdZdd�Zdd�ZdS)�AllTestszTests for __all__.cCs�ddlm}|�d|�|�d|�|�d|�|�d|�|�d|�|�d|�|�d	|�|�d
|�|�d|�|�d|�|�d
|�|�d|�|�d|�dS)Nr)r�r�r�rr�r^r��ior��osr��TextrLrF)rJr�r�rLrrDrDrE�test_all[szAllTests.test_allcs4ttj���fdd�tt���D�}|�|��dS)Ncsnh|]3\}}|�vs3|�d�s5|tjjvr5|tjjvr5|dvr5|�d�s5|��|ks5t|dd�tjkr|�qS)�_>r�r�)r��_contra�_corPN)	rrJr�r�r�r+�upperr�rOr���
actual_allrDrE�	<setcomp>ss���
z3AllTests.test_all_exported_names.<locals>.<setcomp>)rrJr��varsr��assertSetEqual)r?�computed_allrDr�rE�test_all_exported_namesqs



�z AllTests.test_all_exported_namesN)rOrPrQ�__doc__r�r�rDrDrDrEr�Xsr��__main__)�r�rrr�r��unittestrrrrrrrJrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r%r&r'r(r*r+r,r-r.r/r0r1r2r3r4r5r6rrr�rr7r8r9rSrVrWrXrYrzr�r�r�r�r;r@rAr�r�rdrerfrprxr}r�r�r�r�r�r�r�r�r�r�rdr-r;rArCr��
ASYNCIO_TESTSr��ImportErrorr�r�r�r�r�r�r�ror�r�r
r�r�r�r�r�r�r�r�rUrVr�r�r�rkr�r�r:r?�er�r�r�r�r(r2r�r�r�r�r�r.r:rDrhrrr�r�r�r��complexr�r�r�rOrDrDrDrE�<module>s8*"l,u^~}'1{$� ��jOc'M#<<,?/
'=
0
�

Youez - 2016 - github.com/yon3zu
LinuXploit