Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_descr.cpython-311.opt-2.pyc
�

�Ke���2�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZddlmZ	ddlZn
#e$rdZYnwxYwGd�de
j��ZGd�de
j��ZGd	�d
e
j��ZGd�de
j��ZGd
�de
j��ZGd�de
j��ZGd�de
j��ZGd�de��ZGd�de
j��Ze dkre
j!��dSdS)�N)�deepcopy)�redirect_stdout)�supportc���eZdZd�Zdd�Zd d�Zd!d
�Zd"d
�Zd#d�Zd$d�Z	d�Z
d�Zgfd�Zd�Z
d�Zd�Zd�Zejd��d���Zejd��d���Zd�ZdS)%�
OperatorsTestc�*�tjj|g|�Ri|��idd�dd�dd�dd�d	d
�dd�d
d
�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"d#d$��|_t	|j�����D].\}}|���r|d%z}nd&|z}||j|<�/ddd'd(d)d*d+�|_t	|j�����D].\}}|���r|d,z}nd-|z}||j|<�/dS).N�add�+�sub�-�mul�*�matmul�@�truediv�/�floordivz//�divmod�powz**�lshiftz<<�rshiftz>>�and�&�xor�^�or�|�cmp�lt�<�le�<=�eq�==�!=�>�>=)�ne�gt�gez(a, b)za %s b�abs�~�int�float)�pos�negr+�invertr-r.z(a)z%s a)�unittest�TestCase�__init__�binops�list�items�islower�unops)�self�args�kwargs�name�exprs     �9/usr/local/apps/python3/lib/python3.11/test/test_descr.pyr4zOperatorsTest.__init__s�����"�4�9�$�9�9�9�&�9�9�9�
��3�
��3�
�
�3�
�
�c�	
�

�s�
�
��

�
�h�
�
�4�
�
�d�
�
�d�
�
�3�
�
�3�
�
�#�
�
�5�
�
�#�
� 
�$�!
�"
�$�#
�$���)
�
�
���.�t�{�0�0�2�2�3�3�	%�	%�J�D�$��|�|�~�~�
'��h�����$��� $�D�K����������

�
��
��t�z�/�/�1�1�2�2�	$�	$�J�D�$��|�|�~�~�
%��e�|�����}��#�D�J�t���	$�	$��len(a)�__len__c���d|i}|�t||��|��t|��}t||��}||jvr|jd}||jv�|�t|d|��|j|��|�||��|��t||��}|�|��|��dS)N�ar�im_func��assertEqual�eval�type�getattr�__dict__�	__bases__)	r:rD�resr>�meth�d�t�m�bms	         r?�	unop_testzOperatorsTest.unop_testKs���
�!�H������d�A����,�,�,���G�G���A�t�����!�*�$�$���A��A��!�*�$�$�	
�����I�q�1�1�1�:�d�3C�D�D�D������1���s�#�#�#�
�Q��
�
���������s�#�#�#�#�#r@�a+b�__add__c���||d�}|�t||��|��t|��}t||��}||jvr|jd}||jv�|�t|d|��|j|��|�|||��|��t||��}	|�|	|��|��dS)N�rD�brrErF)
r:rDrXrMr>rNrOrPrQrRs
          r?�
binop_testzOperatorsTest.binop_test[s����!��������d�A����,�,�,���G�G���A�t�����!�*�$�$���A��A��!�*�$�$�	
�����I�q�1�1�1�:�d�3C�D�D�D������1�a���#�&�&�&�
�Q��
�
�������A����$�$�$�$�$r@�a[b:c]�__getitem__c	��|||d�}|�t||��|��t|��}t||��}	||jvr|jd}||jv�|�t|	d|	��|j|��|�|	|t
||����|��t||��}
|�|
t
||����|��dS)N�rDrX�crrE)rGrHrIrJrKrL�slice)r:rDrXr^rMr>rNrOrPrQrRs           r?�sliceop_testzOperatorsTest.sliceop_testjs���!�!�$�$������d�A����,�,�,���G�G���A�t�����!�*�$�$���A��A��!�*�$�$�	
�����I�q�1�1�1�:�d�3C�D�D�D������1�e�A�q�k�k�*�*�C�0�0�0�
�Q��
�
�������E�!�Q�K�K���#�.�.�.�.�.r@�a+=b�__iadd__c�|�t|��|d�}t||��|�|d|��t|��}t	||��}||jvr|jd}||jv�|�t	|d|��|j|��t|��|d<||d|��|�|d|��t|��|d<t	|d|��}	|	|��|�|d|��dS)NrWrDrrE�r�execrGrIrJrKrL)
r:rDrXrM�stmtrNrOrPrQrRs
          r?�
setop_testzOperatorsTest.setop_testxs3���1�+�+�A�&�&���T�1�
�
�
�����3���%�%�%���G�G���A�t�����!�*�$�$���A��A��!�*�$�$�	
�����I�q�1�1�1�:�d�3C�D�D�D��!����#��	��!�C�&�!��������3���%�%�%��!����#��
�Q�s�V�T�
"�
"��
��1��������3���%�%�%�%�%r@�a[b]=c�__setitem__c��t|��||d�}t||��|�|d|��t|��}t	||��}	||jvr|jd}||jv�|�t	|	d|	��|j|��t|��|d<|	|d||��|�|d|��t|��|d<t	|d|��}
|
||��|�|d|��dS)Nr]rDrrErd)r:rDrXr^rMrfrNrOrPrQrRs           r?�set2op_testzOperatorsTest.set2op_test�s9���1�+�+�A�A�.�.���T�1�
�
�
�����3���%�%�%���G�G���A�t�����!�*�$�$���A��A��!�*�$�$�	
�����I�q�1�1�1�:�d�3C�D�D�D��!����#��	��!�C�&�!�Q��������3���%�%�%��!����#��
�Q�s�V�T�
"�
"��
��1�a��������3���%�%�%�%�%r@�a[b:c]=dc��t|��|||d�}t||��|�|d|��t|��}	||	jvr|	jd}	||	jv�t
|	|��}
|�t
|
d|
��|	j|��t|��|d<|
|dt||��|��|�|d|��t|��|d<t
|d|��}|t||��|��|�|d|��dS)N)rDrXr^rOrDrrE)rrerGrIrKrLrJr_)r:rDrXr^rOrMrfrN�
dictionaryrPrQrRs            r?�setsliceop_testzOperatorsTest.setsliceop_test�sT��#�A�;�;�Q�Q�Q�?�?�
��T�:��������C��#�.�.�.���G�G���!�*�$�$���A��A��!�*�$�$��A�t����	
�����I�q�1�1�1�:�d�3C�D�D�D�"�1�+�+�
�3��	��*�S�/�5��A�;�;��*�*�*�����C��#�.�.�.�"�1�+�+�
�3��
�Z��_�d�
+�
+��
��5��A�;�;���������C��#�.�.�.�.�.r@c	��|�dgdgddgdd��|�gd�dddd��|�gd�dd	dd��|�gd�ddd
d��|�gd�d	dddgdd��|�dgdgddgd
d��|�ddgdgd�dd��|�gd�ddd��|�ddgdgd�dd��|�ddgdgd�dd��|�ddgddddgdd��|�gd�ddddggd�dd��dS) N��rTrU�rqrr��b in a�__contains__�r�a[b]r[rZrarbrt�rqrrrqrrrqrr�a*=b�__imul__rArB�a*b�__mul__�b*a�__rmul__rhri�rqrrrtrw���rqr�r�rwrl)rYr`rgrSrkro�r:s r?�
test_listszOperatorsTest.test_lists�s���	
�����a�S�1�Q�%��	�:�:�:��������A�x��@�@�@��������A�x��@�@�@��������A�v�}�=�=�=����'�'�'�1�a�!�A���-�H�H�H������a�S�1�Q�%���<�<�<�����1��q�-�-�-���D�D�D����w�w�w��8�Y�7�7�7�����1��q�-�-�-��	�B�B�B�����1��q�-�-�-��
�C�C�C����!�A���1�q��e�X�}�E�E�E����Y�Y�Y��1�q��e�Y�Y�Y�
�%�	'�	'�	'�	'�	'r@c	��|�ddd�dddd��|�ddd�dddd��|�ddd�dddd	��ddd�}g}t|�����D]}|�|���g}t	|��D]}|�|���|�||��g}|���D]}|�|���|�||��g}t�|��D]}|�|���|�||��ddd�}|�|dd
d��|�tt|��i��|��|�t|���i��|��|�ddd�dddddd
�dd��dS)Nrrrw�rqrtrqrurvrrxr[rArBrtrsrhri)
rYr6�keys�append�iterrG�__iter__�dictrSrH�repr�__repr__rk)r:rO�l1�i�ls     r?�
test_dictszOperatorsTest.test_dicts�s�����1�q�	�	�1�a��>�B�B�B����1�q�	�	�1�a��>�B�B�B����1�q�	�	�1�a���?�?�?��A�J�J��
���a�f�f�h�h���	�	�A��I�I�a�L�L�L�L����a���	�	�A�
�H�H�Q�K�K�K�K�����B�����������	�	�A�
�H�H�Q�K�K�K�K�����B���������q�!�!�	�	�A�
�H�H�Q�K�K�K�K�����B�����A�J�J�����q�!�X�y�1�1�1�����d�1�g�g�r�*�*�A�.�.�.�����a�j�j�l�l�B�/�/��3�3�3����A����A�q�Q��Q�-�-��%�	'�	'�	'�	'�	'r@c��||d�}|j���D]G\}}||vr>d|z}t||��r)t||��}|�|||||���Ht|j�����D]F\}}||vr=d|z}t||��r(t||��}|�||||���GdS)NrWz__%s__)r5r7�hasattrrHrYr6r9rS)r:rDrX�skipr�r=r>rMs        r?�number_operatorszOperatorsTest.number_operators�s���Q�����+�+�+�-�-�	;�	;�J�D�$��4����$����1�d�#�#�;��t�T�*�*�C��O�O�A�q�#�t�T�:�:�:���t�z�/�/�1�1�2�2�	7�	7�J�D�$��4����$����1�d�#�#�7��t�T�*�*�C��N�N�1�c�4��6�6�6��	7�	7r@c��|�dd��|�d���d��|�d���d��Gd�dt��}|�|d��d��	|��dz|�d	��dS#t
$rYdSwxYw)
N�drtrqrc��eZdZd�ZdS)�"OperatorsTest.test_ints.<locals>.Cc��tS�N��NotImplemented�r:�others  r?rUz*OperatorsTest.test_ints.<locals>.C.__add__����%�%r@N)�__name__�
__module__�__qualname__rU�r@r?�Cr���#������
&�
&�
&�
&�
&r@r�r��z+NotImplemented should have caused TypeError)r�rG�__bool__r-�fail�	TypeError�r:r�s  r?�	test_intszOperatorsTest.test_ints�s������c�1�%�%�%����!������+�+�+����!������+�+�+�	&�	&�	&�	&�	&��	&�	&�	&�	
�����1���q�!�!�!�	E�
�A�C�C�"�H�H�
�I�I�C�D�D�D�D�D���	�	�	��D�D�	���s�
B>�>
C�Cc�2�|�dd��dS)NgY@�@)r�r�s r?�test_floatszOperatorsTest.test_floatss�����e�S�)�)�)�)�)r@c��|�ddgd����Gd�dt��}|dd�	��}|�t|��d
��|�|jd��||d�	��}|�t|��d��|�|jd��|d
��}|�t|��d��|�|jd��dS)NyY@�@)	rr!r)r*r-r.rr�mod)r�c�$�eZdZdgZd�Zd�ZeZdS)�,OperatorsTest.test_complexes.<locals>.Number�precc�`�tj|g|�R�}|�dd��|_|S)Nr��)�complex�__new__�getr�)�clsr;�kwds�results    r?r�z4OperatorsTest.test_complexes.<locals>.Number.__new__s3�� ���4�t�4�4�4��"�h�h�v�r�2�2����
r@c��|j}|jdkrd||jfzS|jdkrd||jfzSd||j||jfzS)N��%.*gz%.*gjz(%.*g+%.*gj))r��imag�real)r:r�s  r?r�z5OperatorsTest.test_complexes.<locals>.Number.__repr__s_���y���9��#�#�!�T�4�9�$5�5�5��9��#�#�"�d�D�I�%6�6�6�%��t�y�$��	�(J�J�Jr@N)r�r�r��	__slots__r�r��__str__r�r@r?�Numberr�
s=��������I�
�
�
�
K�
K�
K��G�G�Gr@r�g��Q�	@r��r�z3.14rrz3.1gPm@z234.5r�)r�r�rGr�r�)r:r�rDs   r?�test_complexeszOperatorsTest.test_complexess9�����f�d�2O�2O�2O��	P�	P�	P�
	�
	�
	�
	�
	�W�
	�
	�
	�
�F�4�a� � � ������a���&�)�)�)�������#�#�#��F�1�1���������a���%�(�(�(�������#�#�#��F�5�M�M������a���'�*�*�*�������$�$�$�$�$r@c���|�t�dd��tdd����|�t�dd��d��dS)Nr�g@r�rqg�)rGr��__radd__r.�__rsub__r�s r?�test_explicit_reverse_methodsz+OperatorsTest.test_explicit_reverse_methods(s\������)�)�"�c�2�2�G�C��4E�4E�F�F�F��������Q�/�/��6�6�6�6�6r@�"the module 'xxsubtype' is internalc
�d�ddl}ddl}d%d�}||j|j<|�|dg��|dg��|ddg��dd��|�|gd���dddd	��|�|gd���d
ddd	��|�|gd���dddd��|�|gd���dd|ddg��d
d��|�|dg��|dg��|ddg��dd��|�|ddg��d|gd���dd��|�|gd���ddd��|�|ddg��d|gd���dd��|�|ddg��d|gd���dd��|�|ddg��dd|ddg��dd��|�	|gd���dd|ddg��|gd���d d��Gd!�d"|j��}|��}|�
|g��|�
|���d��|�d#��|�
|d#g��|�
|�
��d��|�d$��|�
|�
��d$��dS)&Nrc�4�ddl}|�|��S�Nr)�	xxsubtype�spamlist)r��memo�spams   r?r�z/OperatorsTest.test_spam_lists.<locals>.spamlist2s ��$�$�$�$��=�=��#�#�#r@rqrrrTrUrsrurvrwrxr[rZrarbrtryrzr{rArBr|r}r~rrhrir�r�r�r�rlc��eZdZd�ZdS)�(OperatorsTest.test_spam_lists.<locals>.Cc��dS�Nrqr�r�s r?�fooz,OperatorsTest.test_spam_lists.<locals>.C.fooO���!�!r@N�r�r�r�r�r�r@r?r�r�N�������#�#�#�#�#r@r�r��*r�)�copyr��_deepcopy_dispatchr�rYr`rgrSrkrorGr�r��getstate�setstate)r:r�r�r�r�rDs      r?�test_spam_listszOperatorsTest.test_spam_lists-s���	'�&�&�&�&�&�&�&�	$�	$�	$�	$�
2:����
�.������!��
�
�x�x���}�}�h�h��!�u�o�o�u� �	"�	"�	"���������)�)�1�a��>�J�J�J���������)�)�1�a��>�J�J�J���������)�)�1�a���G�G�G����(�(�7�7�7�+�+�Q��8�8�Q�q�E�?�?�H�'�	)�	)�	)������!��
�
�x�x���}�}�h�h��!�u�o�o�v�"�	$�	$�	$������!�A�����H�H�]�]�]�,C�,C�V�"�	$�	$�	$����x�x����(�(�!�X�y�A�A�A������!�A�����H�H�]�]�]�,C�,C�U�!�	#�	#�	#������!�A�����H�H�]�]�]�,C�,C�U�"�	$�	$�	$������1�Q�%���!�Q���!�A�����&�	(�	(�	(����X�X�i�i�i�0�0�!�Q���!�A����%�X�i�i�i�0�0�*�m�	M�	M�	M�	$�	$�	$�	$�	$��
�	$�	$�	$�
�A�C�C������B������������!�$�$�$�	����
�
�
�����S�E�"�"�"���������q�)�)�)�	�
�
�2������������r�*�*�*�*�*r@c��ddl}ddl}dd�}||j|j<|�|ddd���dddd��|�|ddd���dddd��|�|ddd���ddd	d
��|ddd���}g}t|�����D]}|�|���g}t|��D]}|�|���|�	||��g}|�
��D]}|�|���|�	||��g}t|i�����
|��D]}|�|���|�	||��ddd�}||��}	|�|	ddd��|�|	t|��d
d��|�|ddd���dd|dddd���dd��Gd�d|j��}
|
��}|�	t|�����g��|�	|���d��d|d<|�	t|�����dg��|�	|���d��|�d��|�	|���d��dS)Nrc��ddl}|���}t|�����D]
\}}|||<�|Sr�)r��spamdictr6r7)rOr�r��sd�k�vs      r?r�z/OperatorsTest.test_spam_dicts.<locals>.spamdict]sL��$�$�$�$������B��Q�W�W�Y�Y���
�
���1���1����Ir@rrrwr�rqrurvrxr[rArBzrepr(a)r�rtrsrhric��eZdZd�ZdS)�(OperatorsTest.test_spam_dicts.<locals>.Cc��dSr�r�r�s r?r�z,OperatorsTest.test_spam_dicts.<locals>.C.foo�r�r@Nr�r�r@r?r�r��r�r@r��barr��r�r�r�r�)r�r�r�r�rYr6r�r�r�rGr�rIrSr�rkr7r�r�r�)r:r�r�r�rOr�r�r��	straightd�spamdr�rDs            r?�test_spam_dictszOperatorsTest.test_spam_dictsYsu��	'�&�&�&�&�&�&�&�	�	�	�	�2:����
�.������A����+�+�Q��8�^�L�L�L������A����+�+�Q��8�^�L�L�L������A����+�+�Q��6�=�I�I�I��H��A�Y�Y����
���a�f�f�h�h���	�	�A��I�I�a�L�L�L�L����a���	�	�A�
�H�H�Q�K�K�K�K�����B�����������	�	�A�
�H�H�Q�K�K�K�K�����B�������h�h�r�l�l�#�#�,�,�Q�/�/�	�	�A�
�H�H�Q�K�K�K�K�����B�����A�J�J�	����#�#�����u�a��9�5�5�5����u�d�9�o�o�y�*�E�E�E������Q��)�)�,�,�a��H�H��A��]�]�4K�4K��]�	,�	,�	,�	$�	$�	$�	$�	$��
�	$�	$�	$�
�A�C�C������a�g�g�i�i���"�-�-�-���������!�$�$�$���%������a�g�g�i�i���>�*:�;�;�;���������q�)�)�)�	�
�
�3������������s�+�+�+�+�+r@c��|�ttj�����tj��dSr�)rG�range�sys�maxsizerBr�s r?�test_wrap_lenfunc_bad_castz(OperatorsTest.test_wrap_lenfunc_bad_cast�s6������s�{�+�+�3�3�5�5�s�{�C�C�C�C�Cr@N)rArB)rTrU)rZr[)rarb)rhri)rlri)r�r�r�r4rSrYr`rgrkror�r�r�r�r�r�r�r�impl_detailr�r�r�r�r@r?rrs}������.$�.$�.$�`$�$�$�$� 
%�
%�
%�
%�/�/�/�/�&�&�&�&�&&�&�&�&�&/�/�/�/�&'�'�'�"'�'�'�<+-�7�7�7�7�"E�E�E�$*�*�*�%�%�%�B7�7�7�
�W��=�>�>�)+�)+�?�>�)+�V�W��=�>�>�/,�/,�?�>�/,�bD�D�D�D�Dr@rc���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z�fd�Zejd���Zejd��d���Zd�Zejd���Zejd��d���Zd�Z d�Z!d�Z"e#j$d���Z%d �Z&e#j$d!���Z'd"�Z(d#�Z)d$�Z*d%�Z+ejd&��d'���Z,d(�Z-d)�Z.d*�Z/d+�Z0e#j1e2j3j4d,kd-��d.���Z5ej6d/���Z7d0�Z8d1�Z9d2�Z:�fd3�Z;d4�Z<d5�Z=d6�Z>d7�Z?d8�Z@d9�ZAd:�ZBd;�ZCd<�ZDd=�ZEd>�ZFd?�ZGd@�ZHdA�ZIdB�ZJdC�ZKdD�ZLdE�ZMdF�ZNdG�ZOdH�ZPdI�ZQdJ�ZRdK�ZSdL�ZTdM�ZUdN�ZVdO�ZWdP�ZXdQ�ZYdR�ZZdS�Z[dT�Z\dU�Z]dV�Z^dW�Z_dX�Z`dY�ZadZ�Zbd[�Zcd\�Zdejd]��d^���Zed_�Zfd`�Zgda�Zhdb�Zidc�Zjdd�Zkde�Zldf�Zmdg�Zndh�Zodi�Zpdj�Zqdk�Zrdl�Zsdm�Ztdn�Zudo�Zvdp�Zwdq�Zxdr�Zyds�Zzdt�Z{du�Z|dv�Z}dw�Z~dx�Zdy�Z�dz�Z�d{�Z�d|�Z�d}�Z�d~�Z��fd�Z�e#j1e�d�ud���d����Z�d��Z��xZ�S)��ClassPropertiesAndMethodsc�X�|�t||��|�d|����dS)Nz has no attribute )�
assertTruer��r:�objr=s   r?�
assertHasAttrz'ClassPropertiesAndMethods.assertHasAttr�sA�������T�*�*�47�C�C���>�	@�	@�	@�	@�	@r@c�X�|�t||��|�d|����dS)Nz has unexpected attribute )�assertFalser�r�s   r?�assertNotHasAttrz*ClassPropertiesAndMethods.assertNotHasAttr�sC�������d�+�+�=@�S�S�$�$�G�	I�	I�	I�	I�	Ir@c�����ttt������it��t��}��|i����|jt����|t��G�fd�dt��}��t|t����|d��}��|jd��|dd���}��|ddko|dd��|��}��|jd	����|���d	��|�	d
����|jd
����|���d
��|�	d����|jd����|���d����|dd
��d
|d<��|dd
��d}t|��D]/}|��||<t|��D]}||z|||<��0t|��D]9}t|��D]'}��|||||z���(�:dS)Nc�:��eZdZdZ�fd�Zd�Z�fd�Zd�Zd�ZdS)�6ClassPropertiesAndMethods.test_python_dicts.<locals>.C���c����|r0��t|��d��|d|_|r,t|�����D]\}}|||<�dSdS�Nrqr)rG�len�stater6r7)�
self_localrD�kwr�r�r:s     �r?r4z?ClassPropertiesAndMethods.test_python_dicts.<locals>.C.__init__�s}����,��$�$�S��V�V�Q�/�/�/�'(��t�J�$��*� $�R�X�X�Z�Z� 0� 0�*�*���1�()�
�1�
�
�*�*�*�*r@c�.�|�|d��Sr�)r��r:�keys  r?r[zBClassPropertiesAndMethods.test_python_dicts.<locals>.C.__getitem__�s���x�x��Q�'�'�'r@c�����|td����t�|||��dSr�)�assertIsInstancerIr�ri)r	r
�valuer:s   �r?rizBClassPropertiesAndMethods.test_python_dicts.<locals>.C.__setitem__�s=����%�%�c�4��7�7�3�3�3�� � ��S�%�8�8�8�8�8r@c��||_dSr��r�r:rs  r?r�z?ClassPropertiesAndMethods.test_python_dicts.<locals>.C.setstate��
��"��
�
�
r@c��|jSr�rr�s r?r�z?ClassPropertiesAndMethods.test_python_dicts.<locals>.C.getstate��
���z�!r@N)	r�r�r�rr4r[rir�r�r�s�r?r�r�sy��������E�
*�
*�
*�
*�
*�
(�
(�
(�
9�
9�
9�
9�
9�
#�
#�
#�
"�
"�
"�
"�
"r@r�r�rqrrr�r�r�rr�
r���2)r��
issubclassr�rrG�assertIs�	__class__rr�r�r�)	r:rOr��a1�a2rD�Nr��js	`        r?�test_python_dictsz+ClassPropertiesAndMethods.test_python_dicts�s�������
�4��.�.�/�/�/����b�$�'�'�'��F�F������B�����
�
�a�k�4�(�(�(����a��&�&�&�	"�	"�	"�	"�	"�	"�	"��	"�	"�	"�$	
���
�1�d�+�+�,�,�,�
�Q�r�U�U�������2�&�&�&�
�Q�1�!�_�_�_������A��%��1�B�q�E�5�9�9�9�
�A�C�C�������"�%�%�%���������r�*�*�*�	�
�
�1�
�
�
������!�$�$�$���������q�)�)�)�	�
�
�2���������"�%�%�%���������r�*�*�*�����2���"�"�"���"������2���#�#�#����q���	�	�A��1�3�3�A�a�D��1�X�X�
�
���A�#��!��Q���
��q���	/�	/�A��1�X�X�
/�
/��� � ��1��a��!�A�#�.�.�.�.�
/�	/�	/r@c�R�Gd�dt��}|��}|�gd���|�|dd��|�|dd��|�|dd	��|�|dd
�d��dS)Nc��eZdZd�ZdS)�6ClassPropertiesAndMethods.test_python_lists.<locals>.Cc��t|t��r|j|jfSt�||��dzS�Nr�)�
isinstancer_�start�stopr6r[�r:r�s  r?r[zBClassPropertiesAndMethods.test_python_lists.<locals>.C.__getitem__�s=���a��'�'�+��7�A�F�?�*��'�'��a�0�0�3�6�6r@N�r�r�r�r[r�r@r?r�r$�s#������
7�
7�
7�
7�
7r@r��rrqrrrr�rq�err�f��)r�r/)r6�extendrG�r:r�rDs   r?�test_python_listsz+ClassPropertiesAndMethods.test_python_lists�s���	7�	7�	7�	7�	7��	7�	7�	7�

�A�C�C��	�������������1��s�#�#�#�����1��s�#�#�#�����1��s�#�#�#�����3�s�7��Y�/�/�/�/�/r@c����������Gd�dt���}|��}|�|���d��|�d��|�|���d��Gd�dt��}Gd�d	|���}|�|���|��|��}|�|j|��Gd
�dt��}Gd�d|���}|�|jd
��|��}|�|jd
��Gd�dt���G�fd�dt��}Gd�d|���}|�|jd��|�|j	d��|�
d|j��|��}|�|���d��G�fd�dt���Gd�d����}	Gd�d|	��}
Gd�d|	��}Gd�d	||
��}|�|���
��d��Gd�d |
|��}|�|���
��d!��G�fd"�d#t���Gd$�d����}	|	��}|�|d%��d&|_|�|jd&��|�|jd'��Gd(�d)����}Gd*�d|���}	Gd+�d|	��}
Gd,�d|	��}Gd-�d	||
��}|�|��jd��G�fd.�d/t���Gd0�d����}|��jd
��|��}|�t|��|��|��jd
��Gd1�dt��}|��}|��|�d2��n#t&$rYnwxYwGd3�dt��}	Gd4�dt��}
Gd5�dt|	���}Gd6�d	|
|��}|�|	t|����g�G�fd7�d8t��}
G�fd9�d:|
��}Gd;�d|
���}	|�d8g�������Gd<�d|���}
|�d:d8g�������Gd=�d|	|
��}|�d:d8g�������|�
d>|j��Gd?�d@|
|	��}|�d:d8g�������|�
d>|j��GdA�d	|t���}|�d:d8g�������|�
d>|j��GdB�d ||
���}|�d:d8g�������|�
d>|j��t����fdC�}GdD�dE|���}GdF�dGt|���}GdH�dI||���}|��|��|��|��|��|��g�G��fdJ�dK��}G��fdL�dM|��}GdN�d|���}	|�|t|	����|�dKg�������|�dKg�������GdO�d|���}
|�|t|
����|�dMdKg�������|�dMdKg�������GdP�d|	|
��}|�|t|����|�dMdKg�������|�dMdKg�������GdQ�d@|
|	��}|�|t|����|�dMdKg�������|�dMdKg�������|�t&��5GdR�d	|t���}ddd��n#1swxYwYGdS�d ||���}|�|t|����|�dMdKg�������|�dMdKg�������GdT�dUt��|��}|�|t|����|�dMdKg�������|�dMdKg�������GdV�dW|t����}|�|t|����|�dMdKg�������|�dMdKg�������|�t&��5GdX�dE|t1����}ddd��n#1swxYwY|�t&��5GdY�dEt1��|��}ddd��dS#1swxYwYdS)ZNc� �eZdZd�Zd�Zd�ZdS)�3ClassPropertiesAndMethods.test_metaclass.<locals>.Cc��d|_dSr���	_C__stater�s r?r4z<ClassPropertiesAndMethods.test_metaclass.<locals>.C.__init__��
�� ����r@c��|jSr�r7r�s r?r�z<ClassPropertiesAndMethods.test_metaclass.<locals>.C.getstate��
���|�#r@c��||_dSr�r7rs  r?r�z<ClassPropertiesAndMethods.test_metaclass.<locals>.C.setstate��
��$����r@N�r�r�r�r4r�r�r�r@r?r�r5��A������
!�
!�
!�
$�
$�
$�
%�
%�
%�
%�
%r@r���	metaclassrrc��eZdZd�ZdS)�<ClassPropertiesAndMethods.test_metaclass.<locals>._metaclassc��|Sr�r��r�s r?�myselfzCClassPropertiesAndMethods.test_metaclass.<locals>._metaclass.myself�s��C�Zr@N)r�r�r�rFr�r@r?�
_metaclassrC�s������'�'�'�'�'r@rGc��eZdZdS��3ClassPropertiesAndMethods.test_metaclass.<locals>.DN�r�r�r�r�r@r?�DrJ���������Dr@rLc��eZdZd�ZdS)�4ClassPropertiesAndMethods.test_metaclass.<locals>.M1c�F�d|d<t�||||��S)Nrq�__spam__�rIr�)r�r=�basesr�s    r?r�z<ClassPropertiesAndMethods.test_metaclass.<locals>.M1.__new__�s$��#$��Z� ��|�|�C��u�d�;�;�;r@N�r�r�r�r�r�r@r?�M1rO�s#������
<�
<�
<�
<�
<r@rUc��eZdZdS�r5NrKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.C�rMr@rqc��eZdZdS)�;ClassPropertiesAndMethods.test_metaclass.<locals>._instanceNrKr�r@r?�	_instancerY�rMr@rZc�0��eZdZed���Z�fd�ZdS)�4ClassPropertiesAndMethods.test_metaclass.<locals>.M2c�d�t�|��}||_||_||_|Sr�)�objectr�r=rSr�)r�r=rSr�r:s     r?r�z<ClassPropertiesAndMethods.test_metaclass.<locals>.M2.__new__�s-���~�~�c�*�*�� ��	�"��
� ��	��r@c	������}|jD]H}|�d��r�t|||j|�||�����I|S)N�__)r��
startswith�setattr�__get__)r:�itr
rZs   �r?�__call__z=ClassPropertiesAndMethods.test_metaclass.<locals>.M2.__call__sh����Y�[�[���9�G�G�C��~�~�d�+�+�!� ��B��T�Y�s�^�%;�%;�B��%E�%E�F�F�F�F��	r@N)r�r�r��staticmethodr�re)rZs�r?�M2r\�sG�������
�
�
��\�
�
�
�
�
�
�
�
r@rgc��eZdZd�ZdS)r5c��dS�Nr�r�r�s r?r�z8ClassPropertiesAndMethods.test_metaclass.<locals>.C.spam����rr@N�r�r�r�r�r�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.C�#������
�
�
�
�
r@r�r�r�c�"���eZdZ��fd�Z�xZS)�;ClassPropertiesAndMethods.test_metaclass.<locals>.autosuperc����t�|���||||��}|dd�dkr|dd�}|dd�dk�|rd|z}nd}t||t|����|S)Nrq�_z
_%s__super�__super)�superr�rb)rAr=rSr�r�r�	autosupers     ��r?r�zCClassPropertiesAndMethods.test_metaclass.<locals>.autosuper.__new__s�����I�y�1�1�9�9�)�:>��t�M�M���2�A�2�h�#�o�o�����8�D��2�A�2�h�#�o�o��%�'�$�.�D�D�$�D���T�5��:�:�.�.�.��
r@�r�r�r�r��
__classcell__)rrts@�r?rtros>��������
�
�
�
�
�
�
�
�
�
r@rtc��eZdZd�ZdS)�3ClassPropertiesAndMethods.test_metaclass.<locals>.Ac��dS�N�Ar�r�s r?rNz8ClassPropertiesAndMethods.test_metaclass.<locals>.A.meth&����sr@N�r�r�r�rNr�r@r?r{rx%�#������
�
�
�
�
r@r{c��eZdZd�ZdS)�3ClassPropertiesAndMethods.test_metaclass.<locals>.Bc�:�d|j���zS�N�B��	_B__superrNr�s r?rNz8ClassPropertiesAndMethods.test_metaclass.<locals>.B.meth)����T�\�.�.�0�0�0�0r@Nr}r�r@r?r�r�(�#������
1�
1�
1�
1�
1r@r�c��eZdZd�ZdS)r5c�:�d|j���zS�Nr���	_C__superrNr�s r?rNz8ClassPropertiesAndMethods.test_metaclass.<locals>.C.meth,r�r@Nr}r�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.C+r�r@c��eZdZd�ZdS)rJc�:�d|j���zS�NrL)�	_D__superrNr�s r?rNz8ClassPropertiesAndMethods.test_metaclass.<locals>.D.meth/r�r@Nr}r�r@r?rLz3ClassPropertiesAndMethods.test_metaclass.<locals>.D.r�r@�DCBAc��eZdZd�ZdS)�3ClassPropertiesAndMethods.test_metaclass.<locals>.Ec�:�d|j���zS)N�E)�	_E__superrNr�s r?rNz8ClassPropertiesAndMethods.test_metaclass.<locals>.E.meth3r�r@Nr}r�r@r?r�r�2r�r@r��EBCAc�"���eZdZ��fd�Z�xZS)�>ClassPropertiesAndMethods.test_metaclass.<locals>.autopropertyc����i}|���D]�\}}|�d��r-|dd�}|�|d��\}}|}||f||<�G|�d��r,|dd�}|�|d��\}}|}||f||<��|���D]\}\}}t||��||<�t	�
|���||||��S)N�_get_r��NN�_set_)r7rar��propertyrsr�)rAr=rSr��hitsr
�valr��setr�autopropertys         ��r?r�zFClassPropertiesAndMethods.test_metaclass.<locals>.autoproperty.__new__:s����� $�
�
���
-�
-�H�C���~�~�g�.�.�	-�!�!�"�"�g��#'�8�8�C��#>�#>���S�!��$'��H��S�	�	�����0�0�-�!�!�"�"�g��#'�8�8�C��#>�#>���S�!��$'��H��S�	��'+�z�z�|�|�3�3�O�C��#�s� (��c� 2� 2�D��I�I��\�9�5�5�=�=�i�<@�%��O�O�Or@ru)rr�s@�r?r�r�7sH��������
O�
O�
O�
O�
O�
O�
O�
O�
O�
Or@r�c��eZdZd�Zd�ZdS)rxc��|jSr���_A__xr�s r?�_get_xz:ClassPropertiesAndMethods.test_metaclass.<locals>.A._get_xLs����y� r@c��||_dSr�r��r:�xs  r?�_set_xz:ClassPropertiesAndMethods.test_metaclass.<locals>.A._set_xNs���2����r@N)r�r�r�r�r�r�r@r?r{z3ClassPropertiesAndMethods.test_metaclass.<locals>.AKs2������
!�
!�
!�
�
�
�
�
r@r�r�i�c��eZdZdS)�@ClassPropertiesAndMethods.test_metaclass.<locals>.multimetaclassNrKr�r@r?�multimetaclassr�V��������Dr@r�c��eZdZd�ZdS)rxc��dSrzr�r�s r?r�z:ClassPropertiesAndMethods.test_metaclass.<locals>.A._get_xZr|r@N�r�r�r�r�r�r@r?r{z3ClassPropertiesAndMethods.test_metaclass.<locals>.AYr~r@c��eZdZd�ZdS)r�c�:�d|j���zSr�)r�r�r�s r?r�z:ClassPropertiesAndMethods.test_metaclass.<locals>.B._get_x]����T�\�0�0�2�2�2�2r@Nr�r�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.B\�#������
3�
3�
3�
3�
3r@c��eZdZd�ZdS)r5c�:�d|j���zSr�)r�r�r�s r?r�z:ClassPropertiesAndMethods.test_metaclass.<locals>.C._get_x`r�r@Nr�r�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.C_r�r@c��eZdZd�ZdS)rJc�:�d|j���zSr�)r�r�r�s r?r�z:ClassPropertiesAndMethods.test_metaclass.<locals>.D._get_xcr�r@Nr�r�r@r?rLz3ClassPropertiesAndMethods.test_metaclass.<locals>.Dbr�r@c���eZdZdZ�fd�ZdS)�3ClassPropertiesAndMethods.test_metaclass.<locals>.Trc�(���xjdz
c_dSr���counter)r:r;�Ts  �r?r4z<ClassPropertiesAndMethods.test_metaclass.<locals>.T.__init__js����	�	�Q��	�	�	�	r@N)r�r�r�r�r4)r�s�r?r�r�hs3��������G�
�
�
�
�
�
�
r@r�c��eZdZdSrWrKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.ClrMr@c��eZdZdSrWrKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.Cs��������r@z5calling object w/o call method should raise TypeErrorc��eZdZd�ZdS)rxc�$�tj|i|��Sr�rR�r;r<s  r?r�z;ClassPropertiesAndMethods.test_metaclass.<locals>.A.__new__|s���|�T�4�V�4�4�4r@NrTr�r@r?r{z3ClassPropertiesAndMethods.test_metaclass.<locals>.A{�#������
5�
5�
5�
5�
5r@c��eZdZdS�r�NrKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.BrMr@c��eZdZdSrWrKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.C�rMr@c��eZdZdSrIrKr�r@r?rLz3ClassPropertiesAndMethods.test_metaclass.<locals>.D�rMr@c�H���eZdZe��fd���Zed���Z�xZS)�7ClassPropertiesAndMethods.test_metaclass.<locals>.AMetac�v����d��t���||||��S)N�AMeta�r�rsr���mclsr=rS�nsr�	new_callss    ��r?r�z?ClassPropertiesAndMethods.test_metaclass.<locals>.AMeta.__new__��3���� � ��)�)�)��w�w���t�T�5�"�=�=�=r@c��iSr�r�)r�r=rSs   r?�__prepare__zCClassPropertiesAndMethods.test_metaclass.<locals>.AMeta.__prepare__�s���	r@�r�r�r�rfr��classmethodr�rv�rr�s@�r?r�r��sc��������
�
>�
>�
>�
>�
>��\�
>��
�
��[�
�
�
�
�
r@r�c�L���eZdZe��fd���Ze�fd���Z�xZS)�7ClassPropertiesAndMethods.test_metaclass.<locals>.BMetac�v����d��t���||||��S)N�BMetar�r�s    ��r?r�z?ClassPropertiesAndMethods.test_metaclass.<locals>.BMeta.__new__�r�r@c�V��t���||��}d|d<|S)NT�BMeta_was_here)rsr�)r�r=rSr�rs    �r?r�zCClassPropertiesAndMethods.test_metaclass.<locals>.BMeta.__prepare__�s,����W�W�(�(��u�5�5��'+��#�$��	r@r�r�s@�r?r�r��sm��������
�
>�
>�
>�
>�
>��\�
>��
�
�
�
��[�
�
�
�
�
r@r�c��eZdZdS�rxNrKr�r@r?r{z3ClassPropertiesAndMethods.test_metaclass.<locals>.A�rMr@c��eZdZdSr�rKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.B�rMr@c��eZdZdSrWrKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.C�rMr@r�c��eZdZdS��4ClassPropertiesAndMethods.test_metaclass.<locals>.C2NrKr�r@r?�C2r��rMr@r�c��eZdZdSrIrKr�r@r?rLz3ClassPropertiesAndMethods.test_metaclass.<locals>.D�rMr@c��eZdZdS�r�NrKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.E�rMr@c����Sr�r�)r;r<�markers  �r?�funcz6ClassPropertiesAndMethods.test_metaclass.<locals>.func�s����Mr@c��eZdZdS��3ClassPropertiesAndMethods.test_metaclass.<locals>.XNrKr�r@r?�Xr��rMr@r�c��eZdZdS)�3ClassPropertiesAndMethods.test_metaclass.<locals>.YNrKr�r@r?�Yr��rMr@r�c��eZdZdS)�3ClassPropertiesAndMethods.test_metaclass.<locals>.ZNrKr�r@r?�Zr��rMr@r�c�<���eZdZ��fd�Ze�fd���Z�xZS)�:ClassPropertiesAndMethods.test_metaclass.<locals>.ANotMetac�p����d��t���|��S�N�ANotMetar��r�r;r<rr�s   ��r?r�zBClassPropertiesAndMethods.test_metaclass.<locals>.ANotMeta.__new__��-���� � ��,�,�,��w�w���t�,�,�,r@c�2����d��iSr��r�)r�r=rS�
prepare_callss   �r?r�zFClassPropertiesAndMethods.test_metaclass.<locals>.ANotMeta.__prepare__�s����$�$�Z�0�0�0��	r@�r�r�r�r�r�r�rv�rr�rs@��r?r�r��sc��������
-�
-�
-�
-�
-�
-��
�
�
�
��[�
�
�
�
�
r@r�c�>���eZdZ��fd�Ze��fd���Z�xZS)�:ClassPropertiesAndMethods.test_metaclass.<locals>.BNotMetac�p����d��t���|��S�N�BNotMetar�r�s   ��r?r�zBClassPropertiesAndMethods.test_metaclass.<locals>.BNotMeta.__new__�r�r@c�r����d��t���||��Sr)r�rsr�)r�r=rSrrs   ��r?r�zFClassPropertiesAndMethods.test_metaclass.<locals>.BNotMeta.__prepare__�s1����$�$�Z�0�0�0��w�w�*�*�4��7�7�7r@rrs@��r?r	r�sh��������
-�
-�
-�
-�
-�
-��
8�
8�
8�
8�
8��[�
8�
8�
8�
8�
8r@r	c��eZdZdSr�rKr�r@r?r{z3ClassPropertiesAndMethods.test_metaclass.<locals>.A�rMr@c��eZdZdSr�rKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.B�rMr@c��eZdZdSrWrKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.C�rMr@c��eZdZdSr�rKr�r@r?r�z4ClassPropertiesAndMethods.test_metaclass.<locals>.C2rMr@c��eZdZdSrIrKr�r@r?rLz3ClassPropertiesAndMethods.test_metaclass.<locals>.D
��������r@c��eZdZdSr�rKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.ErMr@c��eZdZdS)�3ClassPropertiesAndMethods.test_metaclass.<locals>.FNrKr�r@r?�FrrMr@rc��eZdZdS)�4ClassPropertiesAndMethods.test_metaclass.<locals>.F2NrKr�r@r?�F2r rMr@rc��eZdZdSr�rKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.X+rr@c��eZdZdSr�rKr�r@r?r�z3ClassPropertiesAndMethods.test_metaclass.<locals>.X.rr@)rIrGr�r�rFrrQr^r=rS�assertInr�r�rNrr�r�r�r�r�r�clearrK�assertRaisesr-)r:r�rDrGrLrOrUr^rgr{r�r�r�r�r�r�r�r�r�r�r�r	rrr�rZr�rtr�r�rs                        @@@@@@@r?�test_metaclassz(ClassPropertiesAndMethods.test_metaclass�sU���������	%�	%�	%�	%�	%�$�	%�	%�	%�	%�
�A�C�C����������q�)�)�)�	�
�
�2������������r�*�*�*�	(�	(�	(�	(�	(��	(�	(�	(�	�	�	�	�	�*�	�	�	�	���������Q�'�'�'�
�A�C�C�������a�(�(�(�	<�	<�	<�	<�	<��	<�	<�	<�	�	�	�	�	�"�	�	�	�	������Q�'�'�'�
�A�C�C�������Q�'�'�'�	�	�	�	�	��	�	�	�	�	�	�	�	�	�	��	�	�	� 	�	�	�	�	�"�	�	�	�	�	
������%�%�%������"�%�%�%��
�
�f�a�f�%�%�%�
�A�C�C����������2�&�&�&�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	�)�	�	�	�	�	1�	1�	1�	1�	1��	1�	1�	1�	1�	1�	1�	1�	1��	1�	1�	1�	1�	1�	1�	1�	1��1�	1�	1�	1�	
�����������V�,�,�,�	1�	1�	1�	1�	1��1�	1�	1�	1�	
�����������V�,�,�,�	O�	O�	O�	O�	O�	O�	O�4�	O�	O�	O�(	�	�	�	�	�,�	�	�	�	�

�A�C�C�����a��%�%�%���������b�!�!�!������#�&�&�&�	�	�	�	�	�\�9�	�	�	�	�	�	�	�	�.�	�	�	�	�	3�	3�	3�	3�	3��	3�	3�	3�	3�	3�	3�	3�	3��	3�	3�	3�	3�	3�	3�	3�	3��1�	3�	3�	3�	
���������'�'�'�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	�!�	�	�	�	������A�&�&�&�
�A�C�C������a���!�$�$�$������A�&�&�&����������
�A�C�C��
�Q�S�S�S��i�i�$�%�%�%�%������$�$�����
	5�	5�	5�	5�	5��	5�	5�	5�	�	�	�	�	��	�	�	�	�	�	�	�	��!�	�	�	�	�	�	�	�	�	��1�	�	�	��
�
�a��a���!�!�!��	�	�	�	�	�	�	�	�D�	�	�	�		�		�		�		�		�		�		�E�		�		�		�	�	�	�	�	�%�	�	�	�	����'��I�.�.�.�������	�	�	�	�	�%�	�	�	�	�	
���'�7�+�Y�7�7�7�������	�	�	�	�	��1�	�	�	�	
���'�7�+�Y�7�7�7��������
�
�&��
�3�3�3�	�	�	�	�	��A�	�	�	����'�7�+�Y�7�7�7��������
�
�&���4�4�4�	�	�	�	�	��T�	�	�	�	����'�7�+�Y�7�7�7��������
�
�&��
�3�3�3�	�	�	�	�	��U�	�	�	�	����'�7�+�Y�7�7�7��������
�
�&��
�3�3�3�����	�	�	�	�	�	�	�	�	�	�$�	�	�	�	�	�	�	�	�	��$�	�	�	�	�	�	�	�	�	��T�	�	�	�	��
�
�f�a� � � ��
�
�f�a� � � ��
�
�f�a� � � ��
�	�	�	�	�	�	�	�	�	�	�	�	8�	8�	8�	8�	8�	8�	8�	8�x�	8�	8�	8�	�	�	�	�	�(�	�	�	�	��
�
�h��Q���(�(�(����*��}�5�5�5����������*��y�1�1�1�������	�	�	�	�	�(�	�	�	�	��
�
�h��Q���(�(�(����*�j�1�=�A�A�A����������*�j�1�9�=�=�=�������	�	�	�	�	��1�	�	�	��
�
�h��Q���(�(�(����*�j�1�9�=�=�=����������*�j�1�=�A�A�A�������	�	�	�	�	��A�	�	�	��
�
�h��R���)�)�)����*�j�1�9�=�=�=����������*�j�1�=�A�A�A��������
�
�y�
)�
)�	�	�
�
�
�
�
�A��
�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	��X�	�	�	�	��
�
�h��Q���(�(�(����*�j�1�9�=�=�=����������*�j�1�=�A�A�A�������	�	�	�	�	����!�	�	�	��
�
�h��Q���(�(�(����*�j�1�9�=�=�=����������*�j�1�=�A�A�A�������	�	�	�	�	��F�H�H�	�	�	��
�
�h��R���)�)�)����*�j�1�9�=�=�=����������*�j�1�=�A�A�A��������
�
�y�
)�
)�	�	�
�
�
�
�
�A�s�u�u�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�y�
)�
)�	�	�
�
�
�
�
�C�E�E�1�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	sH�%
R�
R�R�)h�h�h�'p�p�p�4q�q!�$q!c������	�g�tt���G��fd�d���}|d��}d|_|j}|`|��gd���	Gd�dtjt��}|�d��n#t$rYnwxYwd	��	Gd
�d�����	fd�td
��D��}|���
��|��dS)Nc�>��eZdZ�fd�Z��fd�Z��fd�Z��fd�ZdS)�<ClassPropertiesAndMethods.test_module_subclasses.<locals>.MMc�4����||��dSr�)r4)r:r=�MTs  �r?r4zEClassPropertiesAndMethods.test_module_subclasses.<locals>.MM.__init__6s������D�$�'�'�'�'�'r@c�^����d|f����||��S)NrJ)r��__getattribute__�r:r=r"�logs  ��r?r$zMClassPropertiesAndMethods.test_module_subclasses.<locals>.MM.__getattribute__8s0����
�
�I�t�,�-�-�-��*�*�4��6�6�6r@c�f����d||f����|||��dS)Nrb)r��__setattr__)r:r=rr"r&s   ��r?r(zHClassPropertiesAndMethods.test_module_subclasses.<locals>.MM.__setattr__;s8����
�
�I�t�U�3�4�4�4����t�T�5�1�1�1�1�1r@c�b����d|f����||��dS)N�delattr)r��__delattr__r%s  ��r?r+zHClassPropertiesAndMethods.test_module_subclasses.<locals>.MM.__delattr__>s4����
�
�I�t�,�-�-�-����t�T�*�*�*�*�*r@N)r�r�r�r4r$r(r+)r"r&s��r?�MMr 5s��������
(�
(�
(�
(�
(�
7�
7�
7�
7�
7�
7�
2�
2�
2�
2�
2�
2�
+�
+�
+�
+�
+�
+�
+�
+r@r,rDr�))rbr�r��rJr�)r*r�c��eZdZdS)�@ClassPropertiesAndMethods.test_module_subclasses.<locals>.ModuleNrKr�r@r?�Moduler/Krr@r0z?inheriting from ModuleType and str at the same time should failc�h�d�tjtjd�����S)Nr�r)r�)�join�random�choices�string�
ascii_lettersr�r@r?�random_namezEClassPropertiesAndMethods.test_module_subclasses.<locals>.random_nameTs&���7�7�6�>�&�*>�"�E�E�E�F�F�Fr@c��eZdZdS)�;ClassPropertiesAndMethods.test_module_subclasses.<locals>.ANrKr�r@r?r{r9VrMr@r{c�D��g|]}t����fi����Sr��rI)�.0r�r{r7s  ��r?�
<listcomp>zDClassPropertiesAndMethods.test_module_subclasses.<locals>.<listcomp>Xs-���H�H�H��d�;�;�=�=�1�$��3�3�H�H�Hr@r�)rIr�r�rG�types�
ModuleType�strr�r�r��__subclasses__)
r:r,rDr�r0�
subclassesr{r"r&r7s
      @@@@r?�test_module_subclassesz0ClassPropertiesAndMethods.test_module_subclasses1s���������
�#�Y�Y��	+�	+�	+�	+�	+�	+�	+�	+��	+�	+�	+�
�B�s�G�G�����
�E��
�E�����3�3�3�	4�	4�	4�
	%�
�
�
�
�
��)�3�
�
�
�

�I�I�$�
%�
%�
%�
%���	�	�	��D�	����	G�	G�	G�	�	�	�	�	�	�	�	�H�H�H�H�H�U�3�Z�Z�H�H�H�
�����)�)�+�+�Z�8�8�8�8�8s� B�
B!� B!c�:��Gd�dt������}|�|���d��|�d��|�|���d��G�fd�dt���}|��}|�t|�����g��d|d<|�t|�����d	g��|�|dd��|�|���d��|�d��|�|���d��|�|j|t�tf��Gd
�dt��}Gd�d
|t
��}|�|���	��d��|�t|����d��|�|���	��d��|�t|����d��dS)Nc� �eZdZd�Zd�Zd�ZdS)�>ClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Cc��d|_dSr�r7r�s r?r4zGClassPropertiesAndMethods.test_multiple_inheritance.<locals>.C.__init__^r9r@c��|jSr�r7r�s r?r�zGClassPropertiesAndMethods.test_multiple_inheritance.<locals>.C.getstate`r;r@c��||_dSr�r7rs  r?r�zGClassPropertiesAndMethods.test_multiple_inheritance.<locals>.C.setstatebr=r@Nr>r�r@r?r�rF]r?r@r�rrc���eZdZ�fd�ZdS)�>ClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Dc�v��ti���|����|��dSr�)rIr4r�s �r?r4zGClassPropertiesAndMethods.test_multiple_inheritance.<locals>.D.__init__is5����R���!�!�$�'�'�'��
�
�4� � � � � r@N�r�r�r�r4�r�s�r?rLrKhs.�������
!�
!�
!�
!�
!�
!�
!r@rL�world�hello)rPrOc��eZdZd�Zd�ZdS)�AClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Nodec�D�t|�����Sr�)r-r�r�s r?�__int__zIClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Node.__int__xs���4�8�8�:�:���&r@c��dS)N�23r�r�s r?r�zEClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Node.fooz����tr@N)r�r�r�rTr�r�r@r?�NoderRws2������
'�
'�
'�
�
�
�
�
r@rXc��eZdZd�ZdS)�AClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Fragc��dS)N�42r�r�s r?r�zEClassPropertiesAndMethods.test_multiple_inheritance.<locals>.Frag.foo}rWr@Nr�r�r@r?�FragrZ|�#������
�
�
�
�
r@r]�r�)r^rGr�r�r�r6r�r7�__mro__rTr-)r:rDrLrOrXr]r�s      @r?�test_multiple_inheritancez3ClassPropertiesAndMethods.test_multiple_inheritance[s����	%�	%�	%�	%�	%��	%�	%�	%�
�A�C�C����������q�)�)�)�	�
�
�2������������r�*�*�*�	!�	!�	!�	!�	!�	!�	!��a�	!�	!�	!�
�A�C�C������a�f�f�h�h����,�,�,���'�
�����a�g�g�i�i���+=�*>�?�?�?�����7��W�-�-�-���������q�)�)�)�	�
�
�2������������r�*�*�*������Q��a��$8�9�9�9�	�	�	�	�	�6�	�	�	�
	�	�	�	�	�4��	�	�	�	
���������)�)�2�.�.�.�����T�T�V�V���b�)�)�)����������)�)�2�.�.�.�����T�T�V�V���b�)�)�)�)�)r@c�l�Gd�dt��}|�|�����d��Gd�d|��}|�|�����d��|�|�����d��Gd�d|��}|�|�����d��|�|�����d��Gd�d||��}|�|�����d��|�|�����d��|�|j||||tf��Gd	�d
||��}|�|�����d��|�|�����d��|�|j||||tf��	Gd�d||��}|�d
��n#t$rYnwxYw	Gd�d||��}|�d��dS#t$rYdSwxYw)Nc��eZdZd�ZdS)�=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Ac��dSrzr�r�s r?r�zBClassPropertiesAndMethods.test_diamond_inheritance.<locals>.A.spam����3�3r@Nrlr�r@r?r{rd�s������&�&�&�&�&r@r{c��eZdZd�Zd�ZdS)�=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Bc��dSr�r�r�s r?�boozAClassPropertiesAndMethods.test_diamond_inheritance.<locals>.B.boo����#�#r@c��dSr�r�r�s r?r�zBClassPropertiesAndMethods.test_diamond_inheritance.<locals>.B.spam�rfr@N)r�r�r�rjr�r�r@r?r�rh�s"������%�%�%�&�&�&�&�&r@r�c��eZdZd�ZdS)�=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.Cc��dSr�r�r�s r?rjzAClassPropertiesAndMethods.test_diamond_inheritance.<locals>.C.boo�rkr@N)r�r�r�rjr�r@r?r�rn�s������%�%�%�%�%r@r�c��eZdZdS)�=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.DNrKr�r@r?rLrq�r�r@rLc��eZdZdS)�=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.ENrKr�r@r?r�rs�r�r@r�c��eZdZdS)�=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.FNrKr�r@r?rru�r�r@rz#expected MRO order disagreement (F)c��eZdZdS)�=ClassPropertiesAndMethods.test_diamond_inheritance.<locals>.GNrKr�r@r?�Grw�r�r@rxz#expected MRO order disagreement (G))r^rGr�rjr`r�r�)r:r{r�r�rLr�rrxs        r?�test_diamond_inheritancez2ClassPropertiesAndMethods.test_diamond_inheritance�s���	'�	'�	'�	'�	'��	'�	'�	'������������S�)�)�)�	'�	'�	'�	'�	'��	'�	'�	'�	
�����������S�)�)�)������������C�(�(�(�	&�	&�	&�	&�	&��	&�	&�	&������������S�)�)�)������������C�(�(�(�������1���������������S�)�)�)������������C�(�(�(������Q��1�a��$8�9�9�9�������1���������������S�)�)�)������������C�(�(�(������Q��1�a��$8�9�9�9�	=������A�q����
�I�I�;�<�<�<�<���	�	�	��D�	����	=������A�q����
�I�I�;�<�<�<�<�<���	�	�	��D�D�	���s$�	I.�.
I;�:I;�?J%�%
J3�2J3c
� �Gd�dt��}Gd�dt��}Gd�dt��}Gd�d|��}Gd	�d
|��}Gd�d||||��}|�|j||||||tf��dS)
Nc��eZdZdS)�<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.ANrKr�r@r?r{r|�r�r@r{c��eZdZdS)�<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.BNrKr�r@r?r�r~�r�r@r�c��eZdZdS)�<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.CNrKr�r@r?r�r��r�r@r�c��eZdZdS)�<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.XNrKr�r@r?r�r��r�r@r�c��eZdZdS)�<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.YNrKr�r@r?r�r��r�r@r�c��eZdZdS)�<ClassPropertiesAndMethods.test_ex5_from_c3_switch.<locals>.ZNrKr�r@r?r�r��r�r@r��r^rGr`)r:r{r�r�r�r�r�s       r?�test_ex5_from_c3_switchz1ClassPropertiesAndMethods.test_ex5_from_c3_switch�s������������������������������������������������������!�A�a���������Q��1�a��A�v�$>�?�?�?�?�?r@c���Gd�dt��}Gd�d|��}Gd�d|��}Gd�d|��}Gd	�d
|��}Gd�d||��}Gd
�d|��}Gd�d||��}|�|j|||||tf��|�|j||||tf��|�|j||||||||tf	��dS)Nc��eZdZdS)�9ClassPropertiesAndMethods.test_monotonicity.<locals>.BoatNrKr�r@r?�Boatr��r�r@r�c��eZdZdS)�<ClassPropertiesAndMethods.test_monotonicity.<locals>.DayBoatNrKr�r@r?�DayBoatr��r�r@r�c��eZdZdS)�>ClassPropertiesAndMethods.test_monotonicity.<locals>.WheelBoatNrKr�r@r?�	WheelBoatr��r�r@r�c��eZdZdS)�?ClassPropertiesAndMethods.test_monotonicity.<locals>.EngineLessNrKr�r@r?�
EngineLessr��r�r@r�c��eZdZdS)�CClassPropertiesAndMethods.test_monotonicity.<locals>.SmallMultihullNrKr�r@r?�SmallMultihullr��r�r@r�c��eZdZdS)�CClassPropertiesAndMethods.test_monotonicity.<locals>.PedalWheelBoatNrKr�r@r?�PedalWheelBoatr��r�r@r�c��eZdZdS)�CClassPropertiesAndMethods.test_monotonicity.<locals>.SmallCatamaranNrKr�r@r?�SmallCatamaranr��r�r@r�c��eZdZdS)�;ClassPropertiesAndMethods.test_monotonicity.<locals>.PedaloNrKr�r@r?�Pedalor��r�r@r�r�)	r:r�r�r�r�r�r�r�r�s	         r?�test_monotonicityz+ClassPropertiesAndMethods.test_monotonicity�sy�� � � � � �6� � � �!�!�!�!�!�d�!�!�!�#�#�#�#�#��#�#�#�'�'�'�'�'��'�'�'�+�+�+�+�+�W�+�+�+�8�8�8�8�8�Z�	�8�8�8�2�2�2�2�2�^�2�2�2�9�9�9�9�9�^�N�9�9�9�����/��z�7�I�t�V�L�	N�	N�	N�����/��~�w��f�E�	G�	G�	G�������~�z�>��w�	�4��A�	B�	B�	B�	B�	Br@c
� �Gd�dt��}Gd�dt��}Gd�dt��}Gd�d||��}Gd	�d
||��}Gd�d||��}|�|j||||||tf��dS)
Nc��eZdZdS)�AClassPropertiesAndMethods.test_consistency_with_epg.<locals>.PaneNrKr�r@r?�Paner��r�r@r�c��eZdZdS)�KClassPropertiesAndMethods.test_consistency_with_epg.<locals>.ScrollingMixinNrKr�r@r?�ScrollingMixinr��r�r@r�c��eZdZdS)�IClassPropertiesAndMethods.test_consistency_with_epg.<locals>.EditingMixinNrKr�r@r?�EditingMixinr��r�r@r�c��eZdZdS)�KClassPropertiesAndMethods.test_consistency_with_epg.<locals>.ScrollablePaneNrKr�r@r?�ScrollablePaner��r�r@r�c��eZdZdS)�IClassPropertiesAndMethods.test_consistency_with_epg.<locals>.EditablePaneNrKr�r@r?�EditablePaner��r�r@r�c��eZdZdS)�SClassPropertiesAndMethods.test_consistency_with_epg.<locals>.EditableScrollablePaneNrKr�r@r?�EditableScrollablePaner��r�r@r�r�)r:r�r�r�r�r�r�s       r?�test_consistency_with_epgz3ClassPropertiesAndMethods.test_consistency_with_epg�s��� � � � � �6� � � �*�*�*�*�*�V�*�*�*�(�(�(�(�(�6�(�(�(�7�7�7�7�7�T�.�7�7�7�3�3�3�3�3�4��3�3�3�G�G�G�G�G�^�L�G�G�G����/�7�%�~�|�T���f�6�	7�	7�	7�	7�	7r@c	���d}�fd�}Gd�dt��}Gd�d|��}Gd�dt��}|td	td
||fi��|t|td
||fi��|t|td
|||fi��Gd�dt��}Gd
�d|��}Gd�d|��}Gd�d||��}	Gd�d||��}
|t|td|	|
fi��dS)NzCCannot create a consistent method resolution
order (MRO) for bases c�<��	||���d|z��dS#|$rt}tj��rPt|���|��s4��dt|���d|����Yd}~dSYd}~dSYd}~dSd}~wwxYw)NzExpected %szMessage z, expected )r�r�check_impl_detailr@ra)�exc�expected�callabler;�msgr:s     �r?�raisesz?ClassPropertiesAndMethods.test_mro_disagreement.<locals>.raises�s���	
/���$����	�	�-�#�-�.�.�.�.�.���
8�
8�
8��,�.�.�8��s�8�8�.�.�x�8�8�8��	�	�	�#&�s�8�8�8�8�X�X�#7�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�����
8���s�"�B�AB�Bc��eZdZdS)�:ClassPropertiesAndMethods.test_mro_disagreement.<locals>.ANrKr�r@r?r{r��r�r@r{c��eZdZdS)�:ClassPropertiesAndMethods.test_mro_disagreement.<locals>.BNrKr�r@r?r�r��r�r@r�c��eZdZdS)�:ClassPropertiesAndMethods.test_mro_disagreement.<locals>.CNrKr�r@r?r�r��r�r@r�zduplicate base class Ar�c��eZdZdS)�CClassPropertiesAndMethods.test_mro_disagreement.<locals>.GridLayoutNrKr�r@r?�
GridLayoutr��r�r@r�c��eZdZdS)�GClassPropertiesAndMethods.test_mro_disagreement.<locals>.HorizontalGridNrKr�r@r?�HorizontalGridr��r�r@r�c��eZdZdS)�EClassPropertiesAndMethods.test_mro_disagreement.<locals>.VerticalGridNrKr�r@r?�VerticalGridr��r�r@r�c��eZdZdS)�?ClassPropertiesAndMethods.test_mro_disagreement.<locals>.HVGridNrKr�r@r?�HVGridr��r�r@r�c��eZdZdS)�?ClassPropertiesAndMethods.test_mro_disagreement.<locals>.VHGridNrKr�r@r?�VHGridr��r�r@r��ConfusedGrid)r^r�rI)r:�mro_err_msgr�r{r�r�r�r�r�r�r�s`          r?�test_mro_disagreementz/ClassPropertiesAndMethods.test_mro_disagreement�s������
	/�
	/�
	/�
	/�
	/�	���������������������������	��y�2��S�1�a�&�"�	&�	&�	&���y�+��S�1�a�&�"�	&�	&�	&���y�+��S�1�a��)�R�	)�	)�	)�	'�&�&�&�&��&�&�&�.�.�.�.�.�Z�.�.�.�,�,�,�,�,�:�,�,�,�8�8�8�8�8�^�\�8�8�8�8�8�8�8�8�\�>�8�8�8���y�+��^�f�f�%5�r�	;�	;�	;�	;�	;r@c���t��}|�|jt��|�t|��t��t��}|�||��|�|d��	d|_|�d��n#ttf$rYnwxYw|�t��d��Gd�dt��}|��}|�|j
i��d|_|�|jd��|�|j
ddi��dS)Nr�r�z1object() should not allow setting a foo attributerKc��eZdZdS)�:ClassPropertiesAndMethods.test_object_class.<locals>.CdictNrKr�r@r?�Cdictr�rMr@r�rq)r^rGrrI�assertNotEqualrr�r��AttributeErrorr�rK)r:rDrXr�r�s     r?�test_object_classz+ClassPropertiesAndMethods.test_object_class�sj���H�H�������f�-�-�-�����a���&�)�)�)��H�H�����A�q�!�!�!����a��'�'�'�	K��A�E�
�I�I�I�J�J�J�J���	�*�	�	�	��D�	����	
���f�h�h�
�3�3�3�	�	�	�	�	�F�	�	�	��E�G�G�������R�(�(�(����������"�"�"������e�Q�Z�0�0�0�0�0s�B/�/C�Cc�r�Gd�dtj��}tjd��}|�|jtju��|�t|d����||_|�|j|u��|�t|d����tj|_|�|jtju��|�t|d����Gd�dt��}|�t��5|d_ddd��n#1swxYwYGd�d	t��}|�t��5|d
_ddd��n#1swxYwYGd�dt��}|�t��5|d
_ddd��n#1swxYwYGd�dt��}|�t��5|d_ddd��n#1swxYwYGd�dt��}|�t��5|d_ddd��n#1swxYwYGd�dt��}|�t��5|d_ddd��n#1swxYwYGd�dt��}	|�t��5|	t��_ddd��dS#1swxYwYdS)Nc��eZdZdZdS)�jClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.SubTyperqN�r�r�r�rDr�r@r?�SubTyper�s�������A�A�Ar@r�rQrDc��eZdZdZdS)�hClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyIntr�N�r�r�r�r�r�r@r?�MyIntr�.��������I�I�Ir@r�rqc��eZdZdZdS)�jClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyFloatr�Nr�r�r@r?�MyFloatr�3r�r@r���?c��eZdZdZdS)�lClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyComplexr�Nr�r�r@r?�	MyComplexr�8r�r@r�y�?@c��eZdZdZdS)�hClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyStrr�Nr�r�r@r?�MyStrr�=r�r@r�c��eZdZdZdS)�jClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyBytesr�Nr�r�r@r?�MyBytesr�Br�r@r��ac��eZdZdZdS)�jClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyTupler�Nr�r�r@r?�MyTupler�Gr�r@r�r�c��eZdZdZdS)�nClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypes.<locals>.MyFrozenSetr�Nr�r�r@r?�MyFrozenSetr�Lr�r@r�)r>r?r�rr�r�r-rr�r.r�r@�bytes�tuple�	frozenset)
r:r�rQr�r�r�r�r�r�r�s
          r?�?test_object_class_assignment_between_heaptypes_and_nonheaptypeszYClassPropertiesAndMethods.test_object_class_assignment_between_heaptypes_and_nonheaptypess@��	�	�	�	�	�e�&�	�	�	�
��S�!�!�������u�'7�7�8�8�8������C���)�)�)���������w�.�/�/�/������3���(�(�(��&��������u�'7�7�8�8�8������C���)�)�)�	�	�	�	�	�C�	�	�	�
�
�
�y�
)�
)�	"�	"�!�Q�M�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	�	�	�	�	�e�	�	�	�
�
�
�y�
)�
)�	&�	&�%�S�O�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	�	�	�	�	��	�	�	�
�
�
�y�
)�
)�	+�	+�!*�V��	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	�	�	�	�	�C�	�	�	�
�
�
�y�
)�
)�	"�	"�!�C�M�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	�	�	�	�	�e�	�	�	�
�
�
�y�
)�
)�	%�	%�$�D�N�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	�	�	�	�	�e�	�	�	�
�
�
�y�
)�
)�	#�	#�"�B�L�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	�	�	�	�	�)�	�	�	�
�
�
�y�
)�
)�	0�	0�$/�I�K�K�!�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s~�E�E�E�F#�#F'�*F'�G/�/G3�6G3�'H;�;H?�H?�3J�J�J�?K�K�K�L,�,L0�3L0c�p�����Gd�dt��}|��}��|d����|d��Gd�dt��}|��}��|d����|d��d|_��|jd��d|_��|jd��|`��|d��Gd	�d
t��}|��}��|d����|d����|d����|d��d|_d
|_d|_��|jd����|jd
����|jd��Gd�dt��}|d��}��|d����|d����|���d��	d|_��d��n#t$rYnwxYw	Gd�dt��}��d��n#t$rYnwxYw	Gd�dt��}��d��n#t$rYnwxYw	Gd�dt��}��d��n#t$rYnwxYw	Gd�dt��}��d��n#t$rYnwxYw	Gd�dt��}��d��n#t$rYnwxYwGd �dt��}Gd!�dt��}|��}d|_��|jd��Gd"�dt��}|��}d|_��|jd��d#�G�fd$�dt��}|��}d|_��|jd����
t�d%��t��	Gd&�dt��}��d'��n#tt f$rYnwxYwG�fd(�d)t���Gd*�dt��}|��}���|_���|_���|_���jd��~t%j�����jd%��Gd+�d,|��}|��}���|_���|_���jd
��~t%j�����jd%��Gd-�d.|��}	|	��}���|_���|_���|_���jd��~t%j�����jd%��Gd/�d0t��}
|
��}���|g|_���jd��d}t%j�����jd%��t-t.d1��r�Gd2�d3t��}|��}
t1t/j����}t5d4��D]}|
|
k�	t1t/j����}��||��G�fd5�d6t��}t%jd7��5}|��}~ddd��n#1swxYwY��|���d8��Gd9�d:t��}��t��5|��`ddd��n#1swxYwYGd;�d:t��}��td<��5|��jddd��n#1swxYwYGd=�d>t���G�fd?�d:t��}d|��_��td<��5|��jddd��dS#1swxYwYdS)@Nc��eZdZgZdS)�0ClassPropertiesAndMethods.test_slots.<locals>.C0Nr�r�r@r?�C0rSr�r@rrKr�c��eZdZdgZdS)�0ClassPropertiesAndMethods.test_slots.<locals>.C1rDNr�r�r@r?�C1rY���������I�I�Ir@rrDrqc��eZdZgd�ZdS)�0ClassPropertiesAndMethods.test_slots.<locals>.C3r]Nr�r�r@r?�C3r	e�������'���I�I�Ir@r
rXr^rrrtc�"�eZdZ	dgZd�Zd�ZdS)�0ClassPropertiesAndMethods.test_slots.<locals>.C4�__ac��||_dSr���_C4__a�r:rs  r?r4z9ClassPropertiesAndMethods.test_slots.<locals>.C4.__init__v�
�� ����r@c��|jSr�rr�s r?r�z4ClassPropertiesAndMethods.test_slots.<locals>.C4.getx�	���x�r@N)r�r�r�r�r4r�r�r@r?�C4r
ss<������(���I�
!�
!�
!�
 �
 �
 �
 �
 r@rr�rr�z$Double underscored names not mangledc��eZdZdgZdS��/ClassPropertiesAndMethods.test_slots.<locals>.CNr�r�r@r?r�r�s������!�F�	�	�	r@r�z[None] slots not caughtc��eZdZdgZdS)rzfoo barNr�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C�s������&�K�	�	�	r@z['foo bar'] slots not caughtc��eZdZdgZdS)rzfoobarNr�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C�s������'�L�	�	�	r@z['foo\0bar'] slots not caughtc��eZdZdgZdS)r�1Nr�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C�s������ �E�	�	�	r@z['1'] slots not caughtc��eZdZdgZdS)rr�Nr�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C�s�������D�	�	�	r@z[''] slots not caughtc��eZdZgd�ZdS)r)rD�a_b�_a�A0123456789ZNr�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C�s������:�:�:�I�I�Ir@c��eZdZdZdS�r�abcNr�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C���������I�I�Ir@c��eZdZdZdSr$r�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C�r&r@r�c���eZdZ�ZdSrr�)�slotss�r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C�s��������I�I�Ir@rc�&�eZdZed��gZdS)r�N)r�r�r��chrr�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C�s������ �S��X�X�J�	�	�	r@zhr(128)] slots not caughtc�(��eZdZdZ�fd�Z�fd�ZdS)�5ClassPropertiesAndMethods.test_slots.<locals>.Countedrc�(���xjdz
c_dSr�r��r:�Counteds �r?r4z>ClassPropertiesAndMethods.test_slots.<locals>.Counted.__init__��������1�$����r@c�(���xjdzc_dSr�r�r0s �r?�__del__z=ClassPropertiesAndMethods.test_slots.<locals>.Counted.__del__�r2r@N)r�r�r�r�r4r4)r1s�r?r1r.�sL��������G�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%r@r1c��eZdZgd�ZdS)rr]Nr�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.C�rr@c��eZdZdS)�/ClassPropertiesAndMethods.test_slots.<locals>.DNrKr�r@r?rLr7�rMr@rLc��eZdZdgZdS)�/ClassPropertiesAndMethods.test_slots.<locals>.E�eNr�r�r@r?r�r9�rr@r�c��eZdZddgZdS)�/ClassPropertiesAndMethods.test_slots.<locals>.FrDrXNr�r�r@r?rr<���������c�
�I�I�Ir@r�get_objectsc��eZdZd�ZdS)�/ClassPropertiesAndMethods.test_slots.<locals>.Gc��dS)NFr�r�s  r?�__eq__z6ClassPropertiesAndMethods.test_slots.<locals>.G.__eq__s�� �5r@N�r�r�r�rBr�r@r?rxr@�s#������!�!�!�!�!r@rxrc�(��eZdZddgZd�Z�fd�ZdS)�/ClassPropertiesAndMethods.test_slots.<locals>.HrDrXc�"�d|_d|_dS�NrqrrrWr�s r?r4z8ClassPropertiesAndMethods.test_slots.<locals>.H.__init__s���������r@c�t����|jd����|jd��dSrG)rGrDrX)�self_r:s �r?r4z7ClassPropertiesAndMethods.test_slots.<locals>.H.__del__s9���� � ���!�,�,�,�� � ���!�,�,�,�,�,r@N)r�r�r�r�r4r4r�s�r?�HrE	sF��������c�
�I�
�
�
�
-�
-�
-�
-�
-�
-�
-r@rJ�stderrr�c��eZdZdZdS��/ClassPropertiesAndMethods.test_slots.<locals>.XrDNr�r�r@r?r�rN��������I�I�Ir@r�c��eZdZdZdSrMr�r�r@r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.XrOr@z'X' object has no attribute 'a'c��eZdZdS)�4ClassPropertiesAndMethods.test_slots.<locals>.SubStrNrKr�r@r?�SubStrrR"rMr@rSc�(��eZdZ�d��fZdS)rNr�Nr�)rSs�r?r�z/ClassPropertiesAndMethods.test_slots.<locals>.X$s�������������I�I�Ir@) r^rrDrGrXr^r��_ClassPropertiesAndMethods__ar�r�r�r%r�rrIr@�UnicodeEncodeErrorr�r�
gc_collect�zr:r��gcrr>r��captured_output�getvaluer�assertRaisesRegexr�)r:rr�rr
rr�r^rLr�r�srx�g�orig_objectsr��new_objectsrJ�hr�r1rSr)s`                   @@@r?�
test_slotsz$ClassPropertiesAndMethods.test_slotsQs�������	�	�	�	�	��	�	�	��B�D�D�����a��,�,�,����a��'�'�'�	�	�	�	�	��	�	�	��B�D�D�����a��,�,�,����a��%�%�%���������a� � � ���������d�#�#�#�
�C����a��%�%�%�	(�	(�	(�	(�	(��	(�	(�	(��B�D�D�����a��,�,�,����a��%�%�%����a��%�%�%����a��%�%�%���������������a� � � ������a� � � ������a� � � �	 �	 �	 �	 �	 ��	 �	 �	 �
�B�q�E�E�����a��,�,�,����a��'�'�'���������!�$�$�$�	>��A�E�
�I�I�<�=�=�=�=���	�	�	��D�	����	1�
#�
#�
#�
#�
#�F�
#�
#�
#�

�I�I�/�0�0�0�0���	�	�	��D�	����	6�
(�
(�
(�
(�
(�F�
(�
(�
(�

�I�I�4�5�5�5�5���	�	�	��D�	����	8�
)�
)�
)�
)�
)�F�
)�
)�
)�

�I�I�6�7�7�7�7���	�	�	��D�	����	0�
"�
"�
"�
"�
"�F�
"�
"�
"�

�I�I�.�/�/�/�/���	�	�	��D�	����	/�
!�
!�
!�
!�
!�F�
!�
!�
!�

�I�I�-�.�.�.�.���	�	�	��D�	����	;�	;�	;�	;�	;��	;�	;�	;�	�	�	�	�	��	�	�	�
�A�C�C�����������"�"�"�	�	�	�	�	��	�	�	�
�A�C�C�����������"�"�"���	�	�	�	�	�	�	��	�	�	�
�A�C�C�����������"�"�"��
�
�d�5��8�n�n�c�*�*�*�	5�
'�
'�
'�
'�
'�F�
'�
'�
'�

�I�I�3�4�4�4�4���-�.�	�	�	��D�	����	%�	%�	%�	%�	%�	%�	%�f�	%�	%�	%�	(�	(�	(�	(�	(��	(�	(�	(�
�A�C�C���g�i�i����g�i�i����g�i�i��������!�,�,�,�
�����������!�,�,�,�	�	�	�	�	��	�	�	�
�A�C�C���g�i�i����g�i�i��������!�,�,�,�
�����������!�,�,�,�	�	�	�	�	��	�	�	�
�A�C�C���g�i�i����g�i�i����g�i�i��������!�,�,�,�
�����������!�,�,�,�	#�	#�	#�	#�	#��	#�	#�	#�
�A�C�C���w�y�y�!�n��������!�,�,�,�������������!�,�,�,��2�}�%�%�		8�
!�
!�
!�
!�
!�F�
!�
!�
!�����A��r�~�/�/�0�0�L��2�Y�Y�
�
���1�����b�n�.�.�/�/�K����\�;�7�7�7�	-�	-�	-�	-�	-�	-�	-��	-�	-�	-��
$�X�
.�
.�	�!�����A��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
��������r�*�*�*�	�	�	�	�	��	�	�	�
�
�
�~�
.�
.�	�	������	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	��	�	�	�
�
#�
#�N�4U�
V�
V�	�	�
�A�C�C�E�E�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	�S�	�	�	�	'�	'�	'�	'�	'�	'�	'��	'�	'�	'�������
�
#�
#�N�4U�
V�
V�	�	�
�A�C�C�E�E�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s��I�
I+�*I+�/J�
J%�$J%�)K�
K�K�#L�
L�L�M�
M�M�N�
N
�N
�R<�<S�S�
_%�%_)�,_)�a�a �#a �b1�1b5�8b5�d+�+d/�2d/c�r�Gd�dt��}|��}|�|d��|�|d��d|_|�|jddi��Gd�dt��}|��}|�|d��|�|d��	d|_|�d	��n#t$rYnwxYwGd
�d||��}|��}|�|d��|�|d��d|_|�|jddi��Gd�d
||��}|��}|�|d��|�|d��d|_|�|jddi��dS)Nc��eZdZdgZdS)�7ClassPropertiesAndMethods.test_slots_special.<locals>.DrKNr�r�r@r?rLre,�������#��I�I�Ir@rLrK�__weakref__r�r�c��eZdZdgZdS)�7ClassPropertiesAndMethods.test_slots_special.<locals>.WrgNr�r�r@r?�Wri4�������&��I�I�Ir@rjz!shouldn't be allowed to set a.fooc��eZdZgZdS)�8ClassPropertiesAndMethods.test_slots_special.<locals>.C1Nr�r�r@r?rrm@r�r@rc��eZdZgZdS)�8ClassPropertiesAndMethods.test_slots_special.<locals>.C2Nr�r�r@r?r�roHr�r@r�)r^r�rr�rGrKr�r�)r:rLrDrjrr�s      r?�test_slots_specialz,ClassPropertiesAndMethods.test_slots_special*s?��	%�	%�	%�	%�	%��	%�	%�	%�
�A�C�C�����1�j�)�)�)����a��/�/�/���������e�R�[�1�1�1�	(�	(�	(�	(�	(��	(�	(�	(�
�A�C�C�����1�m�,�,�,����a��,�,�,�	;��A�E�
�I�I�9�:�:�:�:���	�	�	��D�	����
	�	�	�	�	��A�	�	�	��B�D�D�����1�j�)�)�)����1�m�,�,�,���������e�R�[�1�1�1�	�	�	�	�	��A�	�	�	��B�D�D�����1�j�)�)�)����1�m�,�,�,���������e�R�[�1�1�1�1�1s�8C�
C"�!C"c����G�fd�dt��}Gd�d��}Gd�d||d���}��|jdtj��|��}��|jd	����|d��d	|_��|jd	����	t��5Gd
�d��}ddd��n#1swxYwYGd�d
|d���}��|j|jdd�d
z����|jdtj��|��}��|d��d|_��|jd����	t��5Gd�d��}ddd��dS#1swxYwYdS)Nc�"���eZdZ��fd�Z�xZS)�;ClassPropertiesAndMethods.test_slots_special2.<locals>.Metac�x����||��t���||||��Sr�)rrsr�)r�r=rS�	namespace�attrrr:s     ��r?r�zCClassPropertiesAndMethods.test_slots_special2.<locals>.Meta.__new__Ss3����
�
�d�I�.�.�.��w�w���s�D�%��C�C�Cr@ru�rr:s@�r?�MetarsRsH��������
D�
D�
D�
D�
D�
D�
D�
D�
D�
Dr@rxc��eZdZd�ZdS)�9ClassPropertiesAndMethods.test_slots_special2.<locals>.C1c��d|_dSrj)rXr�s r?r4zBClassPropertiesAndMethods.test_slots_special2.<locals>.C1.__init__Xs
������r@NrMr�r@r?rrzWr^r@rc�$��eZdZdgZ�fd�Z�xZS)�9ClassPropertiesAndMethods.test_slots_special2.<locals>.C2rvc�H��t�����dSr��rsr4)r:rs �r?r4zBClassPropertiesAndMethods.test_slots_special2.<locals>.C2.__init__\s������ � �"�"�"�"�"r@)r�r�r�r�r4rv�rs@r?r�r}Zs@�������(�)�I�
#�
#�
#�
#�
#�
#�
#�
#�
#r@r�rv)rArvr�c��eZdZdZdgZdS)�9ClassPropertiesAndMethods.test_slots_special2.<locals>.C3r�rvN)r�r�r�rvr�r�r@r?r
r�fs������ "�
�,�-�	�	�	r@r
c��eZdZdgZdS)�9ClassPropertiesAndMethods.test_slots_special2.<locals>.Q1r�Nr�r�r@r?�Q1r�js������'�(�I�I�Ir@r�r�����qc�(�eZdZe��ZdgZdS)�9ClassPropertiesAndMethods.test_slots_special2.<locals>.Q2r�N)r�r�r�r^r�r�r@r?�Q2r�ts!������%�v�x�x��+�,�	�	�	r@r�)rIrrKr>�MemberDescriptorTyperGrXrrvrr�r�)	r:rxrr�r^r
r�r�r�s	`        r?�test_slots_special2z-ClassPropertiesAndMethods.test_slots_special2Ps���	D�	D�	D�	D�	D�	D�	D�4�	D�	D�	D�
	�	�	�	�	�	�	�	�	#�	#�	#�	#�	#��t�/�	#�	#�	#�	#�	
���b�k�/�:�#�8�	:�	:�	:��B�D�D�������b�!�!�!����a��1�1�1���������"�-�-�-�
�
�
�y�
)�
)�	.�	.�
.�
.�
.�
.�
.�
.�
.�
.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�
	)�	)�	)�	)�	)�4�n�	)�	)�	)�	)������"�/�#�2�#�*>��*E�F�F�F����b�k�.�9�#�8�	:�	:�	:��B�D�D�����a��0�0�0����������-�-�-�
�
�
�y�
)�
)�	-�	-�
-�
-�
-�
-�
-�
-�
-�
-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s$�C1�1C5�8C5�>G�G� Gc��ddl}Gd�d|j���}Gd�dt��}|�|��|��}|�||��|�t|jj|d��dS)Nrc��eZdZdZdS)�>ClassPropertiesAndMethods.test_slots_descriptor.<locals>.MyABCrDNr�r�r@r?�MyABCr�|rOr@r�r@c��eZdZdS)�BClassPropertiesAndMethods.test_slots_descriptor.<locals>.UnrelatedNrKr�r@r?�	Unrelatedr�rMr@r�rt)	r%�ABCMetar^�registerrrr�rD�__set__)r:r%r�r��us     r?�test_slots_descriptorz/ClassPropertiesAndMethods.test_slots_descriptorxs���	�
�
�
�	�	�	�	�	�c�k�	�	�	�	�	�	�	�	�	��	�	�	�
���y�!�!�!��I�K�K�����a��'�'�'�	
���)�U�W�_�a��;�;�;�;�;r@c���Gd�dt��}Gd�d|��}Gd�d|��}d|_|�|jd��|�|jd��|�|jd��Gd�d	t��}|��}|�|d
��d|_|�|jd��d�|_|�|���d
��d�|_|�t|��d��d�|_|�t|��d��|�|jd��|�|d��d�}||_
|�|jd��d|_|�|jd��d�}||_
|�t��5d|_ddd��n#1swxYwY|�|jd��Gd�d|��}|��}d|_|�|jd��Gd�dt��}	|�d|	d��zd��|�|	d��dzd��|�d|	d��zd��|�|	d��dzd��|�|	d��|	d��zd��Gd�dt ��}
Gd �d!|
�"��}|�|t��dS)#Nc��eZdZdS��2ClassPropertiesAndMethods.test_dynamics.<locals>.DNrKr�r@r?rLr��rMr@rLc��eZdZdS)�2ClassPropertiesAndMethods.test_dynamics.<locals>.ENrKr�r@r?r�r��rMr@r�c��eZdZdS)�2ClassPropertiesAndMethods.test_dynamics.<locals>.FNrKr�r@r?rr��rMr@rrqc��eZdZdS)�2ClassPropertiesAndMethods.test_dynamics.<locals>.CNrKr�r@r?r�r��rMr@r��foobarrrc��dSrjr�r�s r?�<lambda>z9ClassPropertiesAndMethods.test_dynamics.<locals>.<lambda>�s���r@r�c��dS)N�C()r�r�s r?r�z9ClassPropertiesAndMethods.test_dynamics.<locals>.<lambda>�s��%�r@r�c��dSr&r�r�s r?r�z9ClassPropertiesAndMethods.test_dynamics.<locals>.<lambda>�s���r@r�r�c� �|dkrdSt��Nr��r��r:r=s  r?�	mygetattrz:ClassPropertiesAndMethods.test_dynamics.<locals>.mygetattr�s���v�~�~��v� � r@r�c�T�|dkrt�t�|||��Sr�)r�r^r()r:r=rs   r?�	mysetattrz:ClassPropertiesAndMethods.test_dynamics.<locals>.mysetattr�s)���v�~�~�$�$��%�%�d�D�%�8�8�8r@znot spamc��eZdZdSr�rKr�r@r?rLz2ClassPropertiesAndMethods.test_dynamics.<locals>.D�rMr@c��eZdZdS)�2ClassPropertiesAndMethods.test_dynamics.<locals>.INrKr�r@r?�Ir��rMr@r�rD�aartr�c��eZdZdS)�AClassPropertiesAndMethods.test_dynamics.<locals>.dynamicmetaclassNrKr�r@r?�dynamicmetaclassr��rMr@r�c��eZdZdS)�:ClassPropertiesAndMethods.test_dynamics.<locals>.someclassNrKr�r@r?�	someclassr��rMr@r�r@)r^r�rGrr��methodr�r�rTr-�__getattr__r��newr(rr�rIr�)r:rLr�rr�rDr�r�rOr�r�r�s            r?�
test_dynamicsz'ClassPropertiesAndMethods.test_dynamics�sq��	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	����������"�"�"�������"�"�"�������"�"�"�	�	�	�	�	��	�	�	�
�A�C�C�����a��*�*�*���������1�%�%�%�"�?�����������R�(�(�(�'�'��
�����a���%�(�(�(�$�$��	�����Q����%�%�%������1�%�%�%����a��(�(�(�	!�	!�	!�"��
�������(�(�(����������#�#�#�	9�	9�	9�"��
�
�
�
�~�
.�
.�	 �	 ��A�F�	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	
������(�(�(�	�	�	�	�	��	�	�	�
�A�C�C�����������"�"�"�	�	�	�	�	��	�	�	�����Q�Q�q�T�T��4�(�(�(������1���c��4�(�(�(�����1�1�Q�4�4���#�#�#������1���a���#�#�#������1���a�a��d�d��A�&�&�&�	�	�	�	�	�t�	�	�	�	�	�	�	�	�"2�	�	�	�	����I�v�.�.�.�.�.s�?H�H�Hc��	Gd�dtt��}|�d��n#t$rYnwxYw	Gd�dtd��}|�d��n#t$rYnwxYwGd�d��}	Gd�dtt����}|�d	��n#t$rYnwxYw	Gd
�dt��}|�d��n#t$rYnwxYw	Gd�dt��}|�d
��n#t$rYnwxYwGd�dt
��}Gd�dt
��}Gd�dt|���}Gd�dt|���}	Gd�d||��}|�d��dS#t$rYdSwxYw)Nc��eZdZdS��0ClassPropertiesAndMethods.test_errors.<locals>.CNrKr�r@r?r�r��rr@r�z5inheritance from both list and dict should be illegalc��eZdZdSr�rKr�r@r?r�z0ClassPropertiesAndMethods.test_errors.<locals>.C�rr@z+inheritance from non-type should be illegalc��eZdZdS)�6ClassPropertiesAndMethods.test_errors.<locals>.ClassicNrKr�r@r?�Classicr��rMr@r�c��eZdZdSr�rKr�r@r?r�z0ClassPropertiesAndMethods.test_errors.<locals>.C�rr@z,inheritance from CFunction should be illegalc��eZdZdZdS�r�rqNr�r�r@r?r�z0ClassPropertiesAndMethods.test_errors.<locals>.C�s�������	�	�	r@z__slots__ = 1 should be illegalc��eZdZdgZdSr�r�r�r@r?r�z0ClassPropertiesAndMethods.test_errors.<locals>.C�s�������C�	�	�	r@z!__slots__ = [1] should be illegalc��eZdZdS)�1ClassPropertiesAndMethods.test_errors.<locals>.M1NrKr�r@r?rUr��rMr@rUc��eZdZdS)�1ClassPropertiesAndMethods.test_errors.<locals>.M2NrKr�r@r?rgr��rMr@rgc��eZdZdS)�1ClassPropertiesAndMethods.test_errors.<locals>.A1NrKr�r@r?�A1r��rMr@r�r@c��eZdZdS)�1ClassPropertiesAndMethods.test_errors.<locals>.A2NrKr�r@r?�A2r��rMr@r�c��eZdZdS)�0ClassPropertiesAndMethods.test_errors.<locals>.BNrKr�r@r?r�r�rr@r�z5finding the most derived metaclass should have failed)r6r�r�r�r^rIr)r:r�r�rUrgr�r�r�s        r?�test_errorsz%ClassPropertiesAndMethods.test_errors�sk��	O�
�
�
�
�
�D�$�
�
�
�

�I�I�M�N�N�N�N���	�	�	��D�	����
	E�
�
�
�
�
�F�D�
�
�
�

�I�I�C�D�D�D�D���	�	�	��D�	����	�	�	�	�	�	�	�	�	F�
�
�
�
�
�D��I�I�
�
�
�

�I�I�D�E�E�E�E���	�	�	��D�	����
	9�
�
�
�
�
�F�
�
�
�

�I�I�7�8�8�8�8���	�	�	��D�	����
	;�
 �
 �
 �
 �
 �F�
 �
 �
 �

�I�I�9�:�:�:�:���	�	�	��D�	����
	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��2�	�	�	�	�	�	�	�	�	��2�	�	�	�	�	O�
�
�
�
�
�B��
�
�
�

�I�I�M�N�N�N�N�N���	�	�	��D�D�	���sf�1�
>�>�A,�,
A9�8A9�
 C�
C
�C
�C:�:
D�D�D4�4
E�E�F;�;
G	�G	c�
��Gd�dt��}|��}|�|�d��|df��|�|�d��|df��|�|�d��|df��Gd�d|��}|��}|�|�d��|df��|�|�d��|df��|�|�d��|df��|�|�|d��|df��d�}t	|��}|�|�dt��d��tdf��|�|�d��d��tdf��|�|jj|��|�|jj|��|�t||��jj|��|�t||��jj|��|�t||�����|f��|�t||�����|f��t	d���d��}|�	t|��	t	|d�	��|�d
��n#t$rYnwxYwt	|��}idtd|j
d
�}	|�|j|	��d|_|�|jd��|�|jddi|	���|`|�|d��dS)Nc�*�eZdZd�Zee��ZdS)�6ClassPropertiesAndMethods.test_classmethods.<locals>.Cc��|Sr�r��rDs r?r�z:ClassPropertiesAndMethods.test_classmethods.<locals>.C.foo����r@N�r�r�r�r�r��goor�r@r?r�r�
�&������!�!�!��+�c�"�"�C�C�Cr@r�rqc��eZdZdS)�6ClassPropertiesAndMethods.test_classmethods.<locals>.DNrKr�r@r?rLr�rMr@rLc��	||fSr�r�)r��args  r?�fz6ClassPropertiesAndMethods.test_classmethods.<locals>.fs�����:�r@rr��r
z)classmethod shouldn't accept keyword argszf docstringr�)�__annotations__�__doc__r�r�r�r�)r^rGr�r�r�rcr-�__self__rsrr�r�r�r�rKr�r)r:r�r^rLrOr��ffrN�cm�cm_dictrs          �r?�test_classmethodsz+ClassPropertiesAndMethods.test_classmethodss����	#�	#�	#�	#�	#��	#�	#�	#�
�A�C�C��������q���A�q�6�*�*�*�������q���A�q�6�*�*�*�������q���A�q�6�*�*�*�	�	�	�	�	��	�	�	�
�A�C�C��������q���A�q�6�*�*�*�������q���A�q�6�*�*�*�������q���A�q�6�*�*�*�������q�!���q�!�f�-�-�-�	�	�	���^�^�����+����A�s�+�+�B�/�/�#�r��;�;�;��������A���r�*�*�S�"�I�6�6�6�	
�������+�+�+��������+�+�+�����q�����0�!�4�4�4�����q�����0�!�4�4�4�����q������)�)�A�4�0�0�0�����q������)�)�A�4�0�0�0��1�~�~�%�%�a�(�(�����)�T�*�*�*�	C���a� � � � �
�I�I�A�B�B�B�B���	�	�	��D�	����
��^�^��&(�+�!)�"�#$�>�	3�3��
	
�����g�.�.�.���������r�"�"�"������s�R�&;�7�&;�<�<�<��D����b�#�&�&�&�&�&s�7M�
M+�*M+c��tjtd��}td��}|��}t	d��D]}|�d���|�|��|z
dd���dS�N�gettotalrefcountr�rr)�delta)r�
get_attributer�r�r�r4�assertAlmostEqual)r:r�r��refs_beforer�s     r?�%test_refleaks_in_classmethod___init__z?ClassPropertiesAndMethods.test_refleaks_in_classmethod___init__Bs���"�0��6H�I�I��
��
�
��&�&�(�(���s���	�	�A��K�K���������/�/�1�1�K�?��"��M�M�M�M�Mr@r�c���ddl}d}ddi}|jj|i|��\}}}|�||j��|�||��|�||��|���j|i|��\}}}|�||j��|�||��|�||��|jjd}||jg|�Ri|��\}}	}
|�||j��|�|	|��|�|
|��Gd�d|j��}||g|�Ri|��\}}	}
|�||��|�|	|��|�|
|��|�t��5}|��ddd��n#1swxYwY|�t|j��d��|�t��5}||�����ddd��n#1swxYwY|�t|j��d	��|�t��5}|t��ddd��n#1swxYwYd
}
|�t|j��|
��|�t��5}|�
dt��ddd��n#1swxYwY|�t|j��|
��dS)Nrrsr%�{�	classmethc��eZdZdS)�AClassPropertiesAndMethods.test_classmethods_in_c.<locals>.SubSpamNrKr�r@r?�SubSpamr�^r�r@r�zGdescriptor 'classmeth' of 'xxsubtype.spamlist' object needs an argumentzfdescriptor 'classmeth' for type 'xxsubtype.spamlist' needs a type, not a 'xxsubtype.spamlist' as arg 2zUdescriptor 'classmeth' requires a subtype of 'xxsubtype.spamlist' but received 'list')r�r�r�rGrKrr�r@�	exceptionr6rc)r:r�rDrOr�r�d1�spam_cm�x2r�d2r�r��expected_errmsgs              r?�test_classmethods_in_cz0ClassPropertiesAndMethods.test_classmethods_in_cKsq��	!� � � ���
�C�L��+�D�M�+�Q�4�!�4�4�	��2�r�����D�M�*�*�*�����B��������B����-�D�M�M�O�O�-�q�6�A�6�6�	��2�r�����D�M�*�*�*�����B��������B�����-�(��5���W�T�]�4�Q�4�4�4�!�4�4�
��B������T�]�+�+�+�����R� � � �����R� � � �*�*�*�*�*�d�m�*�*�*��W�W�.�q�.�.�.�A�.�.�
��B������W�%�%�%�����R� � � �����R� � � �
�
�
�y�
)�
)�	�R��G�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	���������
'�	(�	(�	(�
�
�
�y�
)�
)�	%�R��G�D�M�M�O�O�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%���������
@�	A�	A�	A�
�
�
�y�
)�
)�	�R��G�D�M�M�M�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
"�	�	
����R�\�*�*�O�<�<�<�
�
�
�y�
)�
)�	(�R��O�O�D�$�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�����R�\�*�*�O�<�<�<�<�<sH�?G�G�G�#I
�
I�I�J7�7J;�>J;�L.�.L2�5L2c���Gd�dt��}|��}|�|�d��d��|�|�d��d��|�|�d��|df��Gd�d|��}|��}|�|�d��d��|�|�d��d��|�|�d��|df��|�|�|d��|df��t	d��}|�|jddi��d|_|�|jd��|�|jddd	���|`|�|d
��dS)Nc�*�eZdZd�Zee��ZdS)�7ClassPropertiesAndMethods.test_staticmethods.<locals>.Cc��|Sr�r�r�s r?r�z;ClassPropertiesAndMethods.test_staticmethods.<locals>.C.foo�r�r@N)r�r�r�r�rfr�r�r@r?r�rs&������!�!�!��,�s�#�#�C�C�Cr@r�rq�rqc��eZdZdS)�7ClassPropertiesAndMethods.test_staticmethods.<locals>.DNrKr�r@r?rLr	�rMr@rLr�r�)r�r�r�)r^rGr�r�rfrKr�r)r:r�r^rLrO�sms      r?�test_staticmethodsz,ClassPropertiesAndMethods.test_staticmethods}s���	$�	$�	$�	$�	$��	$�	$�	$�
�A�C�C��������q���4�(�(�(�������q���4�(�(�(�������q���A�q�7�+�+�+�	�	�	�	�	��	�	�	�
�A�C�C��������q���4�(�(�(�������q���4�(�(�(�������q���A�q�6�*�*�*�������q�!���q�!�f�-�-�-�
�$�
�
�������y�$�&7�8�8�8���������r�"�"�"������R�D�&A�&A�B�B�B��D����b�#�&�&�&�&�&r@c��tjtd��}td��}|��}t	d��D]}|�d���|�|��|z
dd���dSr�)rr�r�rfr�r4r�)r:r�r
r�r�s     r?�&test_refleaks_in_staticmethod___init__z@ClassPropertiesAndMethods.test_refleaks_in_staticmethod___init__�s���"�0��6H�I�I��
�$�
�
��&�&�(�(���s���	�	�A��K�K���������/�/�1�1�K�?��"��M�M�M�M�Mr@c��ddl}d}ddi}|jj|i|��\}}}|�|d��|�||��|�||��|���j|i|��\}}}|�|d��|�||��|�||��dS)Nrrsr%r�)r�r��
staticmethrG)r:r�rDrOr�rr�rs        r?�test_staticmethods_in_cz1ClassPropertiesAndMethods.test_staticmethods_in_c�s���	!� � � ���
�C�L��,�D�M�,�a�5�1�5�5�	��2�r�����D�!�!�!�����B��������B����.�D�M�M�O�O�.��7�Q�7�7�	��2�r�����D�!�!�!�����B��������B�����r@c����Gd�d������}|���d���df��|�|�d���df��|�|�d��|df��Gd�d���}|��}|�|�d��|df��|�|�d��|df��|�|�d��|df��|�|�|d��|df��G�fd�d��}|�|��jj�j��|�t�j���������d����dS)	Nc�*�eZdZd�Zee��ZdS)�1ClassPropertiesAndMethods.test_classic.<locals>.Cc��|Sr�r�r�s r?r�z5ClassPropertiesAndMethods.test_classic.<locals>.C.foo�r�r@Nr�r�r@r?r�r�r�r@r�rqc��eZdZdS)�1ClassPropertiesAndMethods.test_classic.<locals>.DNrKr�r@r?rLr�rMr@rLc���eZdZ�jZdS)�1ClassPropertiesAndMethods.test_classic.<locals>.ENr�rNs�r?r�r����������%�C�C�Cr@r��<bound method )rGr�r��__func__r�r�rcra)r:r^rLrOr�r�s     @r?�test_classicz&ClassPropertiesAndMethods.test_classic�s���	#�	#�	#�	#�	#�	#�	#�	#�
�A�C�C��������q���A�q�6�*�*�*�������q���A�q�6�*�*�*�������q���A�q�6�*�*�*�	�	�	�	�	��	�	�	�
�A�C�C��������q���A�q�6�*�*�*�������q���A�q�6�*�*�*�������q���A�q�6�*�*�*�������q�!���q�!�f�-�-�-�	�	�	�	�	�	�	�	�	�	���������)�1�5�1�1�1�����Q�U�]�]�1�1�3�3�/�/�0�0�;�;�<L�M�M�N�N�N�N�Nr@c�V�Gd�dt��}|��}|�|jd��|�|jd��d|_|�|jd��|�|jd��|`|�|d��dS)Nc�\�eZdZGd�de��Zd�Zd�Zd�Zd�Zeeee��Z	dS)�2ClassPropertiesAndMethods.test_compattr.<locals>.Cc�*�eZdZdd�Zdd�Zd�Zd�ZdS)�EClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attributeNc�0�||_||_||_dSr�)�_computed_attribute__get�_computed_attribute__set�_computed_attribute__delete)r:r�r��deletes    r?r4zNClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attribute.__init__�s��!$�D�J�!$�D�J�$*�D�M�M�Mr@c�,�|�|��Sr�)r#)r:r�rIs   r?rczMClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attribute.__get__�s���:�:�c�?�?�*r@c�.�|�||��Sr�)r$�r:r�rs   r?r�zMClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attribute.__set__�s���:�:�c�5�1�1�1r@c�,�|�|��Sr�)r%�r:r�s  r?�
__delete__zPClassPropertiesAndMethods.test_compattr.<locals>.C.computed_attribute.__delete__�s���=�=��-�-�-r@r�r�)r�r�r�r4rcr�r,r�r@r?�computed_attributer!�sZ������+�+�+�+�+�+�+�+�2�2�2�.�.�.�.�.r@r-c��d|_dSr���_C__xr�s r?r4z;ClassPropertiesAndMethods.test_compattr.<locals>.C.__init__��
������r@c�(�|j}|dz|_|Sr�r/r�s  r?�__get_xz:ClassPropertiesAndMethods.test_compattr.<locals>.C.__get_x�s���H���Q�3����r@c��||_dSr�r/r�s  r?�__set_xz:ClassPropertiesAndMethods.test_compattr.<locals>.C.__set_x�r1r@c�
�|`dSr�r/r�s r?�
__delete_xz=ClassPropertiesAndMethods.test_compattr.<locals>.C.__delete_x�����H�H�Hr@N)
r�r�r�r^r-r4�	_C__get_x�	_C__set_x�_C__delete_xr�r�r@r?r�r�s�������

.�

.�

.�

.�

.�V�

.�

.�

.�
�
�
�
�
�
�
�
�
�
�
�
�"�"�7�G�Z�@�@�A�A�Ar@r�rrqr�r�)r^rGr�rr1s   r?�
test_compattrz'ClassPropertiesAndMethods.test_compattr�s���	A�	A�	A�	A�	A��	A�	A�	A�.
�A�C�C�������a� � � ������a� � � ���������b�!�!�!������b�!�!�!�
�C����a��%�%�%�%�%r@c�H�Gd�dt��}|��}|�|jd��|�|j|��Gd�d|��}|��}|�|jd��|�|j|��dS)Nc��eZdZd�Zd�ZdS)�2ClassPropertiesAndMethods.test_newslots.<locals>.Cc�H�t�|��}d|_|Sr�)r6r�r��r�r:s  r?r�z:ClassPropertiesAndMethods.test_newslots.<locals>.C.__new__�s���|�|�C�(�(������r@c�$�|jdz|_dS�Nrr�r�r�s r?r4z;ClassPropertiesAndMethods.test_newslots.<locals>.C.__init__�s���8�a�<����r@N�r�r�r�r�r4r�r@r?r�r@�s2������
�
�
�
(�
(�
(�
(�
(r@r�rtc��eZdZdS)�2ClassPropertiesAndMethods.test_newslots.<locals>.DNrKr�r@r?rLrH�rMr@rL)r6rGr�r)r:r�rDrLrXs     r?�
test_newslotsz'ClassPropertiesAndMethods.test_newslots�s���	(�	(�	(�	(�	(��	(�	(�	(�
�A�C�C��������"�"�"������a�(�(�(�	�	�	�	�	��	�	�	�
�A�C�C��������"�"�"������a�(�(�(�(�(r@c��|�ttj��|�ttjd��|�ttjt��|�ttjt��Gd�dt��}|�t|��Gd�dt��}|�t|��dS)Nr�c��eZdZejZdS��1ClassPropertiesAndMethods.test_bad_new.<locals>.CN)r�r�r�r6r�r�r@r?r�rM�s�������l�G�G�Gr@r�c��eZdZejZdSrL)r�r�r�r^r�r�r@r?r�z1ClassPropertiesAndMethods.test_bad_new.<locals>.C�s�������n�G�G�Gr@)rr�r^r�r6r�s  r?�test_bad_newz&ClassPropertiesAndMethods.test_bad_new�s������)�V�^�4�4�4����)�V�^�R�8�8�8����)�T�\�6�:�:�:����)�V�^�T�:�:�:�	#�	#�	#�	#�	#��	#�	#�	#����)�Q�'�'�'�	%�	%�	%�	%�	%��	%�	%�	%����)�Q�'�'�'�'�'r@c�
�Gd�dt��}t�|��|�ttj|d��t�|����|�ttj|��d��Gd�dt��}t�|��t�|d��t�|d����|�ttj|d��d��Gd�dt��}t�|��|�ttj|d��t�|d����t�|d��d��Gd�dt��}t�|��|�ttj|d��t�|d����|�ttj|d��d��dS)Nc��eZdZdS)�4ClassPropertiesAndMethods.test_object_new.<locals>.ANrKr�r@r?r{rRrMr@r{r�c��eZdZd�ZdS)rRc��||_dSr�rE�r:r�s  r?r4z=ClassPropertiesAndMethods.test_object_new.<locals>.A.__init__�
������r@NrMr�r@r?r{z4ClassPropertiesAndMethods.test_object_new.<locals>.A�#������
�
�
�
�
r@rtc��eZdZd�ZdS)rRc�6�t�|��Sr��r^r��r�r�s  r?r�z<ClassPropertiesAndMethods.test_object_new.<locals>.A.__new__����~�~�c�*�*�*r@NrTr�r@r?r{z4ClassPropertiesAndMethods.test_object_new.<locals>.As#������
+�
+�
+�
+�
+r@c��eZdZd�Zd�ZdS)rRc�6�t�|��Sr�rZr[s  r?r�z<ClassPropertiesAndMethods.test_object_new.<locals>.A.__new__r\r@c��||_dSr�rErUs  r?r4z=ClassPropertiesAndMethods.test_object_new.<locals>.A.__init__rVr@NrFr�r@r?r{z4ClassPropertiesAndMethods.test_object_new.<locals>.As2������
+�
+�
+�
�
�
�
�
r@)r^r�rr�r4�r:r{s  r?�test_object_newz)ClassPropertiesAndMethods.test_object_newsR��	�	�	�	�	��	�	�	����q�������)�V�^�Q��:�:�:��������������)�V�_�a�a�c�c�1�=�=�=�	�	�	�	�	��	�	�	�	���q�������q�!���������!���������)�V�_�a�a��d�d�A�>�>�>�	+�	+�	+�	+�	+��	+�	+�	+�	���q�������)�V�^�Q��:�:�:������!�����������!���a� � � �	�	�	�	�	��	�	�	�
	���q�������)�V�^�Q��:�:�:������!���������)�V�_�a�a��d�d�A�>�>�>�>�>r@c���Gd�dt��}|�t|��Gd�d|��}tj��5tjdt��|d��}ddd��n#1swxYwY|�|jd��|�|j	|��|`
|�t|��|`
tj��5tjdt��|d��}ddd��n#1swxYwY|�|jd��|�|j	|��dS)Nc��eZdZd�ZdS)�=ClassPropertiesAndMethods.test_restored_object_new.<locals>.Ac��t�r���AssertionError)r�r;r<s   r?r�zEClassPropertiesAndMethods.test_restored_object_new.<locals>.A.__new__(s��$�$r@NrTr�r@r?r{rd'�#������
%�
%�
%�
%�
%r@r{c�"�eZdZejZd�ZdS)�=ClassPropertiesAndMethods.test_restored_object_new.<locals>.Bc��||_dSr�rErUs  r?r4zFClassPropertiesAndMethods.test_restored_object_new.<locals>.B.__init__-rVr@N)r�r�r�r^r�r4r�r@r?r�rj+s*�������n�G�
�
�
�
�
r@r��errorrt)r^rrg�warnings�catch_warnings�simplefilter�DeprecationWarningrGr�rr�)r:r{r�rXs    r?�test_restored_object_newz2ClassPropertiesAndMethods.test_restored_object_new%s��	%�	%�	%�	%�	%��	%�	%�	%�	
���.�!�,�,�,�	�	�	�	�	��	�	�	��
$�
&�
&�	�	��!�'�+=�>�>�>���!���A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
������"�"�"������a�(�(�(�
�I����.�!�,�,�,�
�I�
�
$�
&�
&�	�	��!�'�+=�>�>�>���!���A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
������"�"�"������a�(�(�(�(�(s$�&B�B�	B�5&D'�'D+�.D+c	��Gd�dt��}Gd�d|��}Gd�d|��}Gd�d||��}|�|���|tg��|�|j|tf��|�|���||tg��|�|j||tf��|�|���||tg��|�|j||tf��|�|���||||tg��|�|j||||tf��|�|�����d��Gd	�d
t
��}Gd�d|||||�
��}|�|jt|||||f��|�|�����d��	Gd�dt
��}Gd�dt|�
��}t�|��}d|d<|�d��n#t$rYnwxYw	Gd�dt
��}Gd�dt|�
��}|�d��n#t$rYnwxYw	Gd�dt
��}Gd�dt|�
��}|�d��dS#t$rYdSwxYw)Nc��eZdZd�ZdS)�0ClassPropertiesAndMethods.test_altmro.<locals>.Ac��dSrzr�r�s r?r�z2ClassPropertiesAndMethods.test_altmro.<locals>.A.f@����r@N�r�r�r�r�r�r@r?r{rt?r�r@r{c��eZdZdS)�0ClassPropertiesAndMethods.test_altmro.<locals>.BNrKr�r@r?r�ryArMr@r�c��eZdZd�ZdS)�0ClassPropertiesAndMethods.test_altmro.<locals>.Cc��dSr�r�r�s r?r�z2ClassPropertiesAndMethods.test_altmro.<locals>.C.fDrvr@Nrwr�r@r?r�r{Cr�r@r�c��eZdZdS)�0ClassPropertiesAndMethods.test_altmro.<locals>.DNrKr�r@r?rLr~ErMr@rLc��eZdZd�ZdS)�?ClassPropertiesAndMethods.test_altmro.<locals>.PerverseMetaTypec�b�t�|��}|���|Sr�)rI�mro�reverse)r��Ls  r?r�zCClassPropertiesAndMethods.test_altmro.<locals>.PerverseMetaType.mroRs#���H�H�S�M�M���	�	�����r@N�r�r�r�r�r�r@r?�PerverseMetaTyper�Qs#������
�
�
�
�
r@r�c��eZdZdS��0ClassPropertiesAndMethods.test_altmro.<locals>.XNrKr�r@r?r�r�VrMr@r�r@c��eZdZd�ZdS)�9ClassPropertiesAndMethods.test_altmro.<locals>._metaclassc� �|ttgSr�)r�r^r�s r?r�z=ClassPropertiesAndMethods.test_altmro.<locals>._metaclass.mro]s�� �$��/�/r@Nr�r�r@r?rGr�\s#������0�0�0�0�0r@rGc��eZdZdSr�rKr�r@r?r�z0ClassPropertiesAndMethods.test_altmro.<locals>.X_rr@r�r�zdevious mro() return not caughtc��eZdZd�ZdS)r�c��dgSr�r�r�s r?r�z=ClassPropertiesAndMethods.test_altmro.<locals>._metaclass.mrops	���3�Jr@Nr�r�r@r?rGz9ClassPropertiesAndMethods.test_altmro.<locals>._metaclassos#����������r@c��eZdZdSr�rKr�r@r?r�z0ClassPropertiesAndMethods.test_altmro.<locals>.Xrrr@z!non-class mro() return not caughtc��eZdZd�ZdS)r�c��dSr�r�r�s r?r�z=ClassPropertiesAndMethods.test_altmro.<locals>._metaclass.mro{s���1r@Nr�r�r@r?rGz9ClassPropertiesAndMethods.test_altmro.<locals>._metaclasszs#����������r@c��eZdZdSr�rKr�r@r?r�z0ClassPropertiesAndMethods.test_altmro.<locals>.X}rr@z$non-sequence mro() return not caught)	r^rGr�r`r�rIr�r�r�)	r:r{r�r�rLr�r�rGr�s	         r?�test_altmroz%ClassPropertiesAndMethods.test_altmro=sx��	$�	$�	$�	$�	$��	$�	$�	$�	�	�	�	�	��	�	�	�	$�	$�	$�	$�	$��	$�	$�	$�	�	�	�	�	��1�	�	�	���������1�f�+�.�.�.������Q��K�0�0�0���������1�a��.�1�1�1������Q��6�N�3�3�3���������1�a��.�1�1�1������Q��6�N�3�3�3���������1�a��A�v�"6�7�7�7������Q��1�a��$8�9�9�9������������#�&�&�&�	�	�	�	�	�t�	�	�	�
	�	�	�	�	��!�A�a�#3�	�	�	�	������V�Q��1�a��$;�<�<�<������������#�&�&�&�	9�
0�
0�
0�
0�
0�T�
0�
0�
0�
�
�
�
�
�F�j�
�
�
�
����q�!�!�A��A�a�D�
�I�I�7�8�8�8�8���	�	�	��D�	����
		;�
�
�
�
�
�T�
�
�
�
�
�
�
�
�F�j�
�
�
�
�

�I�I�9�:�:�:�:���	�	�	��D�	����
		>�
�
�
�
�
�T�
�
�
�
�
�
�
�
�F�j�
�
�
�
�

�I�I�<�=�=�=�=�=���	�	�	��D�D�	���s7�:AJ�
J$�#J$�((K&�&
K3�2K3�7(L6�6
M�Mc����Gd�dt���G�fd�d���}|��}|�|jd��d|_|�|jd��|`|�|jd��|�|dd	��d
|d<|�|jd��|d=|�|jd��|�|dd
�dtdd
��f��d|dd
�<|�|jtdd
��df��|dd
�=|�|jtdd
����dS)Nc��eZdZdS)�5ClassPropertiesAndMethods.test_overloading.<locals>.BNrKr�r@r?r�r��s������J�Jr@r�c�<��eZdZd�Z�fd�Z�fd�Zd�Zd�Zd�ZdS)�5ClassPropertiesAndMethods.test_overloading.<locals>.Cc�$�|dkrd|fSt�)Nr�rJr�r�s  r?r�zAClassPropertiesAndMethods.test_overloading.<locals>.C.__getattr__�s���5�=�=�%�t�,�,�(�(r@c�T��|dkr||f|_dS��|||��S�Nr�)rbr()r:r=rr�s   �r?r(zAClassPropertiesAndMethods.test_overloading.<locals>.C.__setattr__�s1����5�=�=�$(�%�=�D�L�L�L��=�=��t�U�;�;�;r@c�N��|dkr	||_dS��||��Sr�)r*r+)r:r=r�s  �r?r+zAClassPropertiesAndMethods.test_overloading.<locals>.C.__delattr__�s+����5�=�=�#'�D�L�L�L��=�=��t�4�4�4r@c�
�d|fS)N�getitemr�rs  r?r[zAClassPropertiesAndMethods.test_overloading.<locals>.C.__getitem__�s
��!�3�'�'r@c��||f|_dSr�)�setitem)r:r
rs   r?rizAClassPropertiesAndMethods.test_overloading.<locals>.C.__setitem__�s�� #�U�|����r@c��||_dSr�)�delitemrs  r?�__delitem__zAClassPropertiesAndMethods.test_overloading.<locals>.C.__delitem__�s
��"����r@N)	r�r�r�r�r(r+r[rir�)r�s�r?r�r��s��������
)�
)�
)�

<�
<�
<�
<�
<�

5�
5�
5�
5�
5�
(�
(�
(�
,�
,�
,�
#�
#�
#�
#�
#r@r�r-r�)r�r�r�)r�r��)r�r�rrr�)r^rGr�rbr*r�r�r_)r:r�rDr�s   @r?�test_overloadingz*ClassPropertiesAndMethods.test_overloading�s����	K�	K�	K�	K�	K��	K�	K�	K�	#�	#�	#�	#�	#�	#�	#��	#�	#�	#�0
�A�C�C������� 2�3�3�3���������K�0�0�0�
�E������E�*�*�*�����2���0�0�0���"�������H�-�-�-�
�b�E������B�'�'�'�����1�R�4��9�e�A�r�l�l�";�<�<�<���!�B�$�������U�1�b�\�\�5�$9�:�:�:�
�a��d�G������U�1�b�\�\�3�3�3�3�3r@c	�^�Gd�d��}d�d�td��D����}d|�d�}i}t||��|d}td	��D]C}|�||����t	td�������DdS)
Nc��eZdZd�ZdS)�FClassPropertiesAndMethods.test_load_attr_extended_arg.<locals>.Numbersc�F�t|�d����S)Nrq)r-�lstrip�r:rvs  r?r�zRClassPropertiesAndMethods.test_load_attr_extended_arg.<locals>.Numbers.__getattr__�s���4�;�;�s�+�+�,�,�,r@N�r�r�r�r�r�r@r?�Numbersr��s#������
-�
-�
-�
-�
-r@r��, c3�"K�|]
}d|d��V��dS)zZ._�03dNr�)r<�ns  r?�	<genexpr>zHClassPropertiesAndMethods.test_load_attr_extended_arg.<locals>.<genexpr>�s*����<�<�A�-��-�-�-�<�<�<�<�<�<r@iz"def number_attrs(Z):
    return [ z ]�number_attrs�)r2r�rerGr6)r:r��attrs�coder�r�rqs       r?�test_load_attr_extended_argz5ClassPropertiesAndMethods.test_load_attr_extended_arg�s���	-�	-�	-�	-�	-�	-�	-�	-��	�	�<�<��s���<�<�<�<�<��>�U�>�>�>��
���T�2�����.�)���r���	H�	H�A����\�\�'�'�)�)�4�4�d�5��:�:�6F�6F�G�G�G�G�	H�	Hr@c	�����Gd�dt����d���|�����d��G��fd�d���}|d��}|�|���d��|�|���d��|�|���d��G�fd�dt��}|�|��jj�j��|�t�j��d�������	d	����dS)
Nc��eZdZd�Zd�ZdS)�1ClassPropertiesAndMethods.test_methods.<locals>.Cc��||_dSr��r�r�s  r?r4z:ClassPropertiesAndMethods.test_methods.<locals>.C.__init__��
������r@c��|jSr�r�r�s r?r�z5ClassPropertiesAndMethods.test_methods.<locals>.C.foo�s	���v�
r@N)r�r�r�r4r�r�r@r?r�r��s2������
�
�
�
�
�
�
�
r@r�rqc�,��eZdZ�jZ�jZdS)�1ClassPropertiesAndMethods.test_methods.<locals>.DN)r�r�r�r�rjr�)r��c1s��r?rLr��s��������%�C��&�C�C�Cr@rLrrc���eZdZ�jZdS)�1ClassPropertiesAndMethods.test_methods.<locals>.ENr�rNs�r?r�r��rr@r�r)
r^rGr�rjr�rr�r�rcra)r:rLrr�r�r�s    @@r?�test_methodsz&ClassPropertiesAndMethods.test_methods�s�����	�	�	�	�	��	�	�	�
�Q�q�T�T����������1�%�%�%�	�	�	�	�	�	�	�	��	�	�	��Q�q�T�T����������1�%�%�%���������1�%�%�%���������1�%�%�%�	�	�	�	�	�	�	��	�	�	���������)�1�5�1�1�1�����Q�U�]�]�1�1�Q�4�4�0�0�1�1�<�<�=M�N�N�O�O�O�O�Or@z)testing error message from implementationc��tj}d}|�t��5}|��ddd��n#1swxYwY|�|jjd|��d}|�t��5}|d��ddd��n#1swxYwY|�|jjd|��|�t��5}|�d��ddd��n#1swxYwY|�|jjd|��dS)Nz*unbound method set.add() needs an argumentrzBdescriptor 'add' for 'set' objects doesn't apply to a 'int' object)r�r	rr�rGr�r;rc)r:�set_addrr�s    r?�test_methods_in_cz+ClassPropertiesAndMethods.test_methods_in_c�s���
�'��F��
�
�
�y�
)�
)�	�R��G�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������*�1�-��?�?�?�^��
�
�
�y�
)�
)�	�R��G�A�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������*�1�-��?�?�?�
�
�
�y�
)�
)�	�R��O�O�A����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	������*�1�-��?�?�?�?�?s5�A�A�A�
B%�%B)�,B)�0D�D�Dc������d�}d�}d�}d�}d�}d�}d�}d/d�}d	�}	d
�}
�fd�}�fd�}d
�}
d�}dt|t��ifdt|t��ifdt|t��||d�fdtj|t��ifd|	|t��ifd||td��ifd|
|td��ifd||t��d|
ifd||
t��d|ifdt|t��ifdt|t��ifdtj	|t��ifdtj
|t��ifdtj|t��ifd t|t��ifd!t|t��ifg}G��fd"�d#t��}G�fd$�d%t��}Gd&�d't���G�fd(�d)t��}|D�]W\}}}�}Gd*�d+|��}|���D]\}}t#|||���t#|||��||����g�Gd,�d+|��}|���D]\}}t#|||���t#||||����||�������d-g|��Gd.�d+|��}|���D]\}}t#|||���t#|||�������||������YdS)0Nc�>�|5	ddd��dS#1swxYwYdSr�r�)�managers r?�run_contextzIClassPropertiesAndMethods.test_special_method_lookup.<locals>.run_context�so���
�
��
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
s���c��|Sr�r�r�s r?�idenzBClassPropertiesAndMethods.test_special_method_lookup.<locals>.iden�s���Kr@c��dS)Nshellor�r�s r?rPzCClassPropertiesAndMethods.test_special_method_lookup.<locals>.hello�s���8r@c��gSr�r�r�s r?�	empty_seqzGClassPropertiesAndMethods.test_special_method_lookup.<locals>.empty_seq�s���Ir@c��dSr�r�r�s r?�zerozBClassPropertiesAndMethods.test_special_method_lookup.<locals>.zero�s���1r@c��dS)N��?r�r�s r?�complex_numzIClassPropertiesAndMethods.test_special_method_lookup.<locals>.complex_num�s���2r@c��t�r�)�
StopIterationr�s r?r)zBClassPropertiesAndMethods.test_special_method_lookup.<locals>.stops���r@c��dS)NTr�)r:�things  r?�return_truezIClassPropertiesAndMethods.test_special_method_lookup.<locals>.return_trues���4r@c�,�tt|��Sr�)r'r-�r�s r?�
do_isinstancezKClassPropertiesAndMethods.test_special_method_lookup.<locals>.do_isinstance����c�3�'�'�'r@c�,�tt|��Sr�)rr-r�s r?�
do_issubclasszKClassPropertiesAndMethods.test_special_method_lookup.<locals>.do_issubclassr�r@c���Gd�d|jt��}��|��dd��dS)Nc��eZdZdS)�^ClassPropertiesAndMethods.test_special_method_lookup.<locals>.do_dict_missing.<locals>.DictSubNrKr�r@r?�DictSubr�	rr@r��hirw)rr�rG)�checkerr�r:s  �r?�do_dict_missingzMClassPropertiesAndMethods.test_special_method_lookup.<locals>.do_dict_missingsX���
�
�
�
�
�'�+�T�
�
�
����W�W�Y�Y�t�_�a�0�0�0�0�0r@c�4����|d��dS)Nr�rw�rG)rIr
r:s  �r?�some_numberzIClassPropertiesAndMethods.test_special_method_lookup.<locals>.some_numbers������S�$�'�'�'��1r@c��dSr�r��r;s r?�swallowzEClassPropertiesAndMethods.test_special_method_lookup.<locals>.swallow����r@c��dS�NrPr�)r:�specs  r?�format_implzIClassPropertiesAndMethods.test_special_method_lookup.<locals>.format_impls���7r@�	__bytes__�__reversed__�__length_hint__)r��__next__�
__sizeof__�__instancecheck__�__missing__r��__subclasscheck__�rL�	__enter__�__exit__�__complex__�
__format__�	__floor__�	__trunc__�__ceil__�__dir__�	__round__c�(��eZdZ�fd�Z�f�fd�	ZdS)�EClassPropertiesAndMethods.test_special_method_lookup.<locals>.Checkerc�V�|�d�|����dS)Nz__getattr__ called with {0})r��format)r:rv�tests   r?r�zQClassPropertiesAndMethods.test_special_method_lookup.<locals>.Checker.__getattr__-s)���	�	�7�>�>�t�D�D�E�E�E�E�Er@c���|�vr(|�d�|����t�||��S)Nz __getattribute__ called with {0})r�r	r^r$)r:rvr
�oks   �r?r$zVClassPropertiesAndMethods.test_special_method_lookup.<locals>.Checker.__getattribute__/sC����r�>�>��I�I�@�G�G��M�M�N�N�N��.�.�t�T�:�:�:r@N�r�r�r�r�r$)rr:s��r?�Checkerr,sQ�������-1�
F�
F�
F�
F�26�
;�
;�
;�
;�
;�
;�
;�
;r@rc� ��eZdZd�Z�fd�ZdS)�JClassPropertiesAndMethods.test_special_method_lookup.<locals>.SpecialDescrc��||_dSr�)�impl)r:rs  r?r4zSClassPropertiesAndMethods.test_special_method_lookup.<locals>.SpecialDescr.__init__4�
�� ��	�	�	r@c�d����d��|j�||��Sr�)r�rrc)r:r��owner�records   �r?rczRClassPropertiesAndMethods.test_special_method_lookup.<locals>.SpecialDescr.__get__6s-����
�
�a� � � ��y�(�(��e�4�4�4r@N)r�r�r�r4rc)rs�r?�SpecialDescrr3s=�������
!�
!�
!�
5�
5�
5�
5�
5�
5�
5r@rc��eZdZdS)�IClassPropertiesAndMethods.test_special_method_lookup.<locals>.MyExceptionNrKr�r@r?�MyExceptionr9rMr@rc���eZdZ�fd�ZdS)�FClassPropertiesAndMethods.test_special_method_lookup.<locals>.ErrDescrc�����r�r�)r:r�rrs   �r?rczNClassPropertiesAndMethods.test_special_method_lookup.<locals>.ErrDescr.__get__<s	���!�!r@N�r�r�r�rc)rs�r?�ErrDescrr;�.�������
"�
"�
"�
"�
"�
"�
"r@rc��eZdZdS��?ClassPropertiesAndMethods.test_special_method_lookup.<locals>.XNrKr�r@r?r�r#@rr@r�c��eZdZdSr"rKr�r@r?r�z?ClassPropertiesAndMethods.test_special_method_lookup.<locals>.XHrr@rqc��eZdZdSr"rKr�r@r?r�z?ClassPropertiesAndMethods.test_special_method_lookup.<locals>.XPrr@r�)r�r��reversedr6r��	getsizeofr�r	�math�floor�trunc�ceil�dir�roundr^�	Exceptionr7rbrGr)r:r�r�rPr�r�r�r)r�r�r�r�r�r�r��specialsrrrr=�runner�	meth_impl�envr�rvr�rrrs`                         @@@r?�test_special_method_lookupz4ClassPropertiesAndMethods.test_special_method_lookup�s�������	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	 �	 �	 �	�	�	�	�	(�	(�	(�	(�	(�	(�	1�	1�	1�	1�	1�	�	�	�	�	�	!� � �	�	�	��%�����r�2�
�X�y�#�%�%��<�
��d�C�E�E��d�
3�
3�
5�
�3�=�$����r�:�
 �-��c�e�e�R�H�
�O�[�
��
 �
 �"�
&�
 �-��
��
 �
 �"�
&�
�+�t�S�U�U�Z�'�4J�K�
��g�s�u�u�{�T�6J�K�
�G�[�#�%�%��<�
�6�;����r�:�
�$�*�d�C�E�E�2�6�
�$�*�d�C�E�E�2�6�
���D�#�%�%��4�
��Y����r�2�
�%��s�u�u�b�1�'��,	;�	;�	;�	;�	;�	;�	;�	;�f�	;�	;�	;�	5�	5�	5�	5�	5�	5�	5�6�	5�	5�	5�	�	�	�	�	�)�	�	�	�	"�	"�	"�	"�	"�	"�	"�v�	"�	"�	"�19�	8�	8�,�D�&�)�R��
�
�
�
�
�G�
�
�
� �Y�Y�[�[�
&�
&�	��c���4��%�%�%�%��A�t�Y�'�'�'��F�1�1�3�3�K�K�K��F�
�
�
�
�
�G�
�
�
� �Y�Y�[�[�
&�
&�	��c���4��%�%�%�%��A�t�\�\�)�4�4�5�5�5��F�1�1�3�3�K�K�K����V�a�S�$�/�/�/�
�
�
�
�
�G�
�
�
� �Y�Y�[�[�
&�
&�	��c���4��%�%�%�%��A�t�X�X�Z�Z�(�(�(����k�6�1�1�3�3�7�7�7�7�-	8�	8r@c�
�Gd�dt��}|��}|��}|�|��|�t|��t|����t	|��t	|��|�||��|�||k��|�||k��|�||k��|�t|���	d��d��|�t|��t|����|�d|��td��D]}|�
||���|�d|��Gd�dt��}|��}|��}|�|��|�t|��t|����t	|��t	|��|�||��|�||��|�||k��|�||k��|�t|���	d	��d��|�t|��t|����|�d|��td��D]}|�
||���|�d|��Gd
�dt��}|d��}	|d��}
|d��}|�|	��|�|
��|�t	|	��t	d����|�|	|	��|�|	|
��|�|	|	k��|�|	|
��|�|	|
k��|�|	|
k��|�|
|	k��|�|
|	k��|�t|	��d
��|�t|	��d��|td����}|�d|��td��D]}|�
||���|�d|��dS)Nc��eZdZd�ZdS)�2ClassPropertiesAndMethods.test_specials.<locals>.Cc�4�d|cxkrdkrnn|St��Nrr��
IndexErrorr*s  r?r[z>ClassPropertiesAndMethods.test_specials.<locals>.C.__getitem__]�%����;�;�;�;�B�;�;�;�;�;�q�� � r@Nr+r�r@r?r�r6\�#������
!�
!�
!�
!�
!r@r�zC object at rrrc��eZdZd�ZdS)�2ClassPropertiesAndMethods.test_specials.<locals>.Dc�4�d|cxkrdkrnn|St�r8r9r*s  r?r[z>ClassPropertiesAndMethods.test_specials.<locals>.D.__getitem__tr;r@Nr+r�r@r?rLr>sr<r@rLzD object at c�V�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
S)�6ClassPropertiesAndMethods.test_specials.<locals>.Proxyc��||_dSr�r�r�s  r?r4z?ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__init__�r�r@c��|jSr�r�r�s r?r�z?ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__bool__�s��#�v�:�~�%r@c�*�t|j��Sr�)�hashr�r�s r?�__hash__z?ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__hash__�s���D�F�|�|�#r@c��|j|kSr�r�r�s  r?rBz=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__eq__�����v���&r@c��|j|kSr�r�r�s  r?�__ne__z=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__ne__�rHr@c��|j|kSr�r�r�s  r?�__ge__z=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__ge__�rHr@c��|j|kSr�r�r�s  r?�__gt__z=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__gt__�����v��~�%r@c��|j|kSr�r�r�s  r?�__le__z=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__le__�rHr@c��|j|kSr�r�r�s  r?�__lt__z=ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__lt__�rOr@c��d|jzS)NzProxy:%sr�r�s r?r�z>ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__str__�s��!�D�F�*�*r@c��d|jzS)Nz	Proxy(%r)r�r�s r?r�z?ClassPropertiesAndMethods.test_specials.<locals>.Proxy.__repr__�s��"�T�V�+�+r@c��||jvSr�r�rs  r?rvzCClassPropertiesAndMethods.test_specials.<locals>.Proxy.__contains__�s������&r@N)r�r�r�r4r�rFrBrJrLrNrQrSr�r�rvr�r@r?�ProxyrA�s�������
�
�
�
&�
&�
&�
$�
$�
$�
'�
'�
'�
'�
'�
'�
'�
'�
'�
&�
&�
&�
'�
'�
'�
&�
&�
&�
+�
+�
+�
,�
,�
,�
'�
'�
'�
'�
'r@rWrqzProxy:0zProxy(0))r^r�r��idrErGr��assertGreaterEqualr@�findr��assertNotInr�r)
r:r�r��c2r�rLr�rrW�p0�p1�p_1�p10s
             r?�
test_specialsz'ClassPropertiesAndMethods.test_specialsWs ��
	!�	!�	!�	!�	!��	!�	!�	!��Q�S�S��
�Q�S�S�����R�� � � ����B�r�F�F�B�r�F�F�+�+�+��R�����R��������R� � � �����b��!�!�!�����r��"�"�"�����r��"�"�"�	
����B�����^� <� <�a�@�@�@�����R���$�r�(�(�+�+�+�����R� � � ��r���	!�	!�A��M�M�!�R� � � � �����R� � � �	!�	!�	!�	!�	!��	!�	!�	!��Q�S�S��
�Q�S�S�����R�� � � ����B�r�F�F�B�r�F�F�+�+�+��R�����R��������R� � � ����B��#�#�#�����r��"�"�"�����r��"�"�"�	
����B�����^� <� <�a�@�@�@�����R���$�r�(�(�+�+�+�����R� � � ��r���	!�	!�A��M�M�!�R� � � � �����R� � � �	'�	'�	'�	'�	'�F�	'�	'�	'�2�U�1�X�X��
�U�1�X�X���e�B�i�i������������R�� � � �����b���4��7�7�+�+�+�����R� � � ����B��#�#�#�����r��"�"�"����R���$�$�$�����R�� � � �����b��!�!�!�����R�� � � �����b��!�!�!�����R���)�,�,�,�����b���:�.�.�.��e�E�"�I�I��������S�!�!�!��r���	"�	"�A��M�M�!�S�!�!�!�!�����S�!�!�!�!�!r@c��ddl}Gd�dt��}|��}|j|��}|�|��|��~t	j��|�|��d��~Gd�dt��}|��}	|j|��|�d��n:#t$r-}|�dt|����Yd}~nd}~wwxYwGd�d	t��}|��}	|j|	��}|�|��|	��~	t	j��|�|��d��~dS)
Nrc��eZdZdS)�2ClassPropertiesAndMethods.test_weakrefs.<locals>.CNrKr�r@r?r�rd�rMr@r�c��eZdZdgZdS)�7ClassPropertiesAndMethods.test_weakrefs.<locals>.NoWeakr�Nr�r�r@r?�NoWeakrf�s��������I�I�Ir@rgz!weakref.ref(no) should be illegalzweak referencec��eZdZddgZdS)�5ClassPropertiesAndMethods.test_weakrefs.<locals>.Weakr�rgNr�r�r@r?�Weakri�s�������
�.�I�I�Ir@rj)
�weakrefr^�refrGrrWr�r�rr@)
r:rkr�r^�rrg�nor�rj�yess
          r?�
test_weakrefsz'ClassPropertiesAndMethods.test_weakrefs�s�������	�	�	�	�	��	�	�	�
�A�C�C���G�K��N�N���������a� � � �
�������������d�#�#�#�
�	 �	 �	 �	 �	 �V�	 �	 �	 �
�V�X�X��	;��G�K��O�O�O�
�I�I�9�:�:�:�:���	6�	6�	6��M�M�*�C��H�H�5�5�5�5�5�5�5�5�����	6����	/�	/�	/�	/�	/�6�	/�	/�	/��d�f�f���G�K������������c�"�"�"��������������d�#�#�#�
�A�As�!C�
C>�#C9�9C>c
��Gd�dt��}|��}|�|d��d|_|�|jd��|�|jd��|`|�|d��|�|d��|j�|d��|�|j�|��d��|j�|��|�|d��|jd}|�	|t��t|��}|�d|��|�d|��|�d	|��|�d
|��|�|j
d��|�|j|jd��|�|j|jd
��|�|j|jd��dD]�}	t%||d��|�d|z���-#t($rX}t+|���d��dkr(|�d|�dt+|������Yd}~��d}~wwxYwd|_
|�|j
d��Gd�dt��}|��}	|D]}	t+|	���	|�d��dS#t.$rYdSwxYw)Nc�>�eZdZd�Zd�Zd�Zeeeed���ZdS)�4ClassPropertiesAndMethods.test_properties.<locals>.Cc��|jSr�r/r�s r?�getxz9ClassPropertiesAndMethods.test_properties.<locals>.C.getx�rr@c��||_dSr�r/rs  r?�setxz9ClassPropertiesAndMethods.test_properties.<locals>.C.setx�rr@c�
�|`dSr�r/r�s r?�delxz9ClassPropertiesAndMethods.test_properties.<locals>.C.delx�r8r@�I'm the x property.��docN)r�r�r�rurwryr�r�r�r@r?r�rs�sT������
 �
 �
 �
!�
!�
!�
�
�
����t�T�/D�E�E�E�A�A�Ar@r�r�r�r0r�r��fget�fset�fdelrzrurwry)r}r~rzIexpected AttributeError from trying to set readonly %r attr on a property�readonlyrzwhen setting readonly attr z2 on a property, got unexpected AttributeError msg c�&�eZdZed���ZdS)�4ClassPropertiesAndMethods.test_properties.<locals>.Dc��ddzSrr�)r]s r?r�z=ClassPropertiesAndMethods.test_properties.<locals>.D.<lambda>	s
��Q�q�S�r@N)r�r�r�r�r[r�r@r?rLr�	s������"�(�=�=�1�1�K�K�Kr@rLz,expected ZeroDivisionError from bad property)r^rr�rGr0r�rcr,rKrr�r,rr�rr}r~rrbr�r�r@rZ�ZeroDivisionError)
r:r�rD�rawr�rvr�rLrOr�s
          r?�test_propertiesz)ClassPropertiesAndMethods.test_properties�s���	F�	F�	F�	F�	F��	F�	F�	F�
�A�C�C�����a��%�%�%���������"�%�%�%������b�!�!�!�
�C����a��%�%�%����a��)�)�)�	����A�s�����������Q����-�-�-�	����q�������a��%�%�%��j��o�����c�8�,�,�,��C�����
�
�i��'�'�'��
�
�f�e�$�$�$��
�
�f�e�$�$�$��
�
�f�e�$�$�$������&;�<�<�<��
�
�c�h��
�6� 2�3�3�3��
�
�c�h��
�6� 2�3�3�3��
�
�c�h��
�6� 2�3�3�3�*�		7�		7�D�
7���T�2�&�&�&��	�	�/�15�6�7�7�7�7��"�
Y�
Y�
Y��s�8�8�=�=��,�,�q�0�0��I�I�I�HL���c�RU�h�h�h�X�Y�Y�Y����������
Y������������b�)�)�)�	2�	2�	2�	2�	2��	2�	2�	2�
�A�C�C��	F��
�
���A�����
�

�I�I�D�E�E�E�E�E��!�	�	�	��D�D�	���s+�9I#�#
K�-AK�K�L4�4
M�Mrrz)Docstrings are omitted with -O2 and abovec�2��G�fd�dt��}dS)Nc���eZdZd�Zd�Zee��Z��ejd��ee���Z	��e	jd��dS)�?ClassPropertiesAndMethods.test_properties_doc_attrib.<locals>.Ec��	dSr�r�r�s r?�getterzFClassPropertiesAndMethods.test_properties_doc_attrib.<locals>.E.getter	s
����qr@c��	dSr�r�)rIrs  r?�setterzFClassPropertiesAndMethods.test_properties_doc_attrib.<locals>.E.setter	s
����r@z
getter method)r~N)
r�r�r�r�r�r��proprGr��prop2r�s�r?r�r�	s��������
�
�
�
�
�
��8�F�#�#�D����T�\�?�;�;�;��H�&�)�)�)�E����U�]�D�1�1�1�1�1r@r��r^)r:r�s` r?�test_properties_doc_attribz4ClassPropertiesAndMethods.test_properties_doc_attrib	sA���
	2�
	2�
	2�
	2�
	2�
	2�
	2��
	2�
	2�
	2�
	2�
	2r@c�^��	ddl�G�fd�dt��}dS#t$rYdSwxYw)Nrc�0��eZdZe�j��ZdS)�>ClassPropertiesAndMethods.test_testcapi_no_segfault.<locals>.XN)r�r�r�r��test_with_docstring�p)�	_testcapis�r?r�r�.	s!��������H�Y�:�;�;���r@r�)r�r^�ImportError)r:r�r�s  @r?�test_testcapi_no_segfaultz3ClassPropertiesAndMethods.test_testcapi_no_segfault&	sv���	<�����
<�
<�
<�
<�
<�
<�
<�F�
<�
<�
<�
<�
<���	�	�	��D�D�	���s��
,�,c�0���Gd�dt������}|��jjd��|�|d��d|_|�|d��|�|jd��|�|jd��|`|�|d��|�|d��G�fd�d	���}|��}d
|_|�|jd
��|`|`Gd�dt������}d|_|�|jd��|`G�fd
�d���}|��}d|_|�|jd��|`dS)Nc��eZdZed���Zejd���Zejd���Zejd���ZdS)�9ClassPropertiesAndMethods.test_properties_plus.<locals>.CrPr{c��|jSr���_foor�s r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.C.foo4	�
���y� r@c�.�t|��|_dSr��r+r�rs  r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.C.foo7	�����J�J��	�	�	r@c�
�|`dSr�r�r�s r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.C.foo:	����I�I�Ir@N)r�r�r�r�r�r�r��deleterr�r@r?r�r�2	sw�������(�w�'�'�'�C�
�Z�
!�
!��Z�
!�
�Z�
'�
'��Z�
'�
�[�
�
��[�
�
�
r@r�rPr�i���r�r�c�:��eZdZ�jjd���ZdS)�9ClassPropertiesAndMethods.test_properties_plus.<locals>.Dc�.�	|`dS#t$rYdSwxYwr�)r�r�r�s r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.D.fooI	s2����	�	�	��%�����D�D����s��
�N)r�r�r�r�r�rNs�r?rLr�H	s2�������
�U�]�
�
��]�
�
�
r@rLrc��eZdZed���Zejd���Zejd���Zejdd���ZdS)�9ClassPropertiesAndMethods.test_properties_plus.<locals>.Ec��|jSr�r�r�s r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.E.fooV	r�r@c��t�r�)�RuntimeErrorrs  r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.E.fooY	s��"�"r@c�.�t|��|_dSr�r�rs  r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.E.foo\	r�r@Nc�
�|`dSr�r�rs  r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.E.foo_	r�r@r�)r�r�r�r�r�r�r�r�r@r?r�r�U	s�������
�
!�
!��X�
!�
�Z�
#�
#��Z�
#�
�Z�
'�
'��Z�
'�
�[�
�
�
��[�
�
�
r@r�c�Z��eZdZ�jjd���Zejd���ZdS)�9ClassPropertiesAndMethods.test_properties_plus.<locals>.Fc�
�|`dSr�r�r�s r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.F.fooi	r�r@c�0�td|��|_dSr�)�maxr�rs  r?r�z=ClassPropertiesAndMethods.test_properties_plus.<locals>.F.fool	s����5�M�M��	�	�	r@N)r�r�r�r�r�r�)r�s�r?rr�h	sM�������
�U�]�
�
��]�
�
�Z�
*�
*��Z�
*�
*�
*r@r���r)r^rGr�r�rr�r�)	r:r^rLrOr:rr�r�r�s	       @@r?�test_properties_plusz.ClassPropertiesAndMethods.test_properties_plus1	s����
	�
	�
	�
	�
	��
	�
	�
	�
�A�C�C���������0�0�0����a��'�'�'�������1�f�%�%�%�������$�$�$�������#�#�#�
�E����a��(�(�(����a��'�'�'�	�	�	�	�	�	�	��	�	�	�
�A�C�C�����������#�#�#�
�E�
�E�	�	�	�	�	��	�	�	�
�A�C�C�����������#�#�#�
�E�	*�	*�	*�	*�	*�	*�	*��	*�	*�	*�
�A�C�C�����������"�"�"�
�E�E�Er@c	�f�t��}|�|i��ti��}|�|i��tddd���}|�|ddd���|�|tt|���������|�|tt	|���������tddd���}|�|tdd�����|�|td#i|����|�|tddid�����|�|tdgd�	����|�|td
dgfi|����|�|td#i|����ddd
ddgdfD]d}	t|��|�d|z���+#t$rY�7t$r"|dkrn|�d|z��Y�awxYw|�t��5tii��ddd��n#1swxYwYGd�d��}	t|����|�d��n#t$rYnwxYwd�|_	d�|_
t|����}|�||j��Gd�d��}t|dd��|dd��|dd��|dd��g��}|�|ddd���tttd��tdd������}|�|td�td��D������d gd!gfD]:}	t|��|�d"|z���+#t$rY�7wxYwdS)$NrrrX)rqrDrq)�one�twor�)r�)r�rr)r�)r�r�)r�r/ry�0�rzno TypeError from dict(%r)c��eZdZdddd�ZdS)�AClassPropertiesAndMethods.test_dict_constructors.<locals>.Mappingrrrwr�)rqrtrDN)r�r�r�r�r�r@r?�Mappingr��	s�������1�"�%�%�D�D�Dr@r�z*no TypeError from dict(incomplete mapping)c�N�t|j�����Sr�)r6r�r�r�s r?r�zBClassPropertiesAndMethods.test_dict_constructors.<locals>.<lambda>�	s��D�����)9�)9�$:�$:�r@c��|j|Sr�)r�r*s  r?r�zBClassPropertiesAndMethods.test_dict_constructors.<locals>.<lambda>�	s��d�i��l�r@c��eZdZd�Zd�ZdS)�JClassPropertiesAndMethods.test_dict_constructors.<locals>.AddressBookEntryc�"�||_||_dSr�)�first�last)r:r�r�s   r?r4zSClassPropertiesAndMethods.test_dict_constructors.<locals>.AddressBookEntry.__init__�	s��"��
� ��	�	�	r@c�8�t|j|jg��Sr�)r�r�r�r�s r?r�zSClassPropertiesAndMethods.test_dict_constructors.<locals>.AddressBookEntry.__iter__�	s���T�Z���3�4�4�4r@N)r�r�r�r4r�r�r@r?�AddressBookEntryr��	s2������
!�
!�
!�
5�
5�
5�
5�
5r@r��Tim�Warsaw�Barry�Peters)r�r�rwr�c��g|]	}||dzf��
Srr��r<r�s  r?r=zDClassPropertiesAndMethods.test_dict_constructors.<locals>.<listcomp>�	s ��!=�!=�!=�q�1�a��c�(�!=�!=�!=r@)�tooshort)�too�longzby 1zno ValueError from dict(%r)r�)
r�rGr6r7r�r�r��
ValueErrorrr�r[�zipr�)r:rO�badargr�r��bads      r?�test_dict_constructorsz0ClassPropertiesAndMethods.test_dict_constructorst	s���F�F������B������H�H������B�����Q�S�!�!�"�"��������,�,�-�-�-�����D��a�g�g�i�i���1�1�2�2�2�����D��a�g�g�i�i���1�1�2�2�2����#�#�$�$������D�Q�A�.�.�.�/�/�/�����D�I�I�1�I�I�&�&�&�����D�%����3�3�3�4�4�4�����D�*��1�5�5�5�6�6�6�����D�,��!=�C�C��C�C�D�D�D�����D�I�I�1�I�I�&�&�&���B��a�S�$�.�	A�	A�F�

A��V�����	�	�6��?�@�@�@�@���
�
�
����
E�
E�
E��S�=�=���I�I�:�V�C�D�D�D���
E�����
�
�y�
)�
)�	�	���R�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	&�	&�	&�	&�	&�	&�	&�	&�	D������O�O�O�
�I�I�B�C�C�C�C���	�	�	��D�	����
;�:���:�:��������O�O������G�L�)�)�)�	5�	5�	5�	5�	5�	5�	5�	5�
�"�"�5�(�3�3�"�"�7�H�5�5�"�"�5�(�3�3�"�"�7�H�5�5�7�
8�
8��	
����h�x�@�@�A�A�A���U�1�X�X�u�Q��{�{�+�+�,�,������D�!=�!=�E�!�H�H�!=�!=�!=�>�>�?�?�?�"�?�%<�$=�=�	?�	?�C�
?��S�	�	�	��	�	�7�#�=�>�>�>�>���
�
�
���
����	?�	?sN�,H�
I� (I�
I�(J�J	�J	�K�
K�K�9P!�!
P.�-P.c����d}|�t��ddg��~dddddgddd	ddit|jfD]}t|���d
�}Gd�dt��}d
dg}|�|t|����|��|��}|�|t|����|��d|_d�|_|�|t|����|ddgz��Gd�d|��}ddg|z}|�|t|����|��|��}	|�|t|	����|��d|	_d�|	_|�|t|	����|ddgz��Gd�dtt����}
|
d��}d|_
d|_gd���fd�t|��D��}|�|d d!g��Gd"�d#|
��}
|
d$��}d|_
d|_|�|jd%��|�
t��5t|��ddd��n#1swxYwY|�tt	����tt����G�fd&�d't���G�fd(�dt��}t|����dS))Nr��junkr:rry@g@�2�2�rrc��d�|D��S)Nc�<�g|]}|�d���|��S)rq)ra)r<r]s  r?r=zKClassPropertiesAndMethods.test_dir.<locals>.interesting.<locals>.<listcomp>�	s)��@�@�@�!�a�l�l�3�.?�.?�@�A�@�@�@r@r�)�stringss r?�interestingz7ClassPropertiesAndMethods.test_dir.<locals>.interesting�	s��@�@�w�@�@�@�@r@c��eZdZdZd�ZdS)�-ClassPropertiesAndMethods.test_dir.<locals>.Crqc��dSr�r�r�s r?�Cmethodz5ClassPropertiesAndMethods.test_dir.<locals>.C.Cmethod�	r�r@N)r�r�r��Cdatar�r�r@r?r�r��	��������E�#�#�#�#�#r@r�r�r�c��dSr�r�r�s r?r�z4ClassPropertiesAndMethods.test_dir.<locals>.<lambda>�	����r@�cdata�cmethodc��eZdZdZd�ZdS)�-ClassPropertiesAndMethods.test_dir.<locals>.Arqc��dSr�r�r�s r?�Amethodz5ClassPropertiesAndMethods.test_dir.<locals>.A.Amethod�	r�r@N)r�r�r��Adatar�r�r@r?r{r��	r�r@r{r�r�r�c��dS)Nrtr�r�s r?r�z4ClassPropertiesAndMethods.test_dir.<locals>.<lambda>�	r�r@�adata�amethodc��eZdZdS)�-ClassPropertiesAndMethods.test_dir.<locals>.MNrKr�r@r?�Mr��	rMr@r�rQrq)r�r��__package__�
__loader__�__spec__c���g|]}|�v�|��	Sr�r�)r<r��default_attributess  �r?r=z6ClassPropertiesAndMethods.test_dir.<locals>.<listcomp>�	s$���J�J�J�q�a�7I�.I�.I��.I�.I�.Ir@rDrXc�*�eZdZd�Zee��ZdS)�.ClassPropertiesAndMethods.test_dir.<locals>.M2c��dS)N�Not a dict!r�r�s r?�getdictz6ClassPropertiesAndMethods.test_dir.<locals>.M2.getdict�	s��$�}r@N)r�r�r�r�r�rKr�r@r?rgr��	s,������
%�
%�
%��x��(�(�H�H�Hr@rg�m2r�c�6��eZdZd�Zd�Z�fd�Zd�Z�fd�ZdS)�3ClassPropertiesAndMethods.test_dir.<locals>.Wrapperc��||_dSr���
_Wrapper__objr+s  r?r4z<ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__init__
�
�� ��
�
�
r@c�0�dt|j��zS)NzWrapper(%s))r�rr�s r?r�z<ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__repr__
s��$�t�D�J�'7�'7�7�7r@c�0���|j|��Sr�r)r:r
�Wrappers  �r?r[z?ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__getitem__
s����w�t�z�#��/�/�/r@c�*�t|j��Sr�)rrr�s r?rBz;ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__len__
s���4�:���&r@c�@���t|j|����Sr�)rJr)r:r=rs  �r?r�z?ClassPropertiesAndMethods.test_dir.<locals>.Wrapper.__getattr__
s����w�w�t�z�4�8�8�9�9�9r@N)r�r�r�r4r�r[rBr��rs�r?rr
st�������
!�
!�
!�
8�
8�
8�
0�
0�
0�
0�
0�
'�
'�
'�
:�
:�
:�
:�
:�
:�
:r@rc�0��eZdZ�fd�Zee��ZdS)r�c�4���t|����Sr�r;)r:rs �r?�
__getclassz8ClassPropertiesAndMethods.test_dir.<locals>.C.__getclass
s����w�t�D�z�z�*�*�*r@N)r�r�r��_C__getclassr�rrs�r?r�z-ClassPropertiesAndMethods.test_dir.<locals>.C
s7�������
+�
+�
+�
+�
+� ���,�,�I�I�Ir@)rGr,rI�test_dirr^r�r�r�r�r�rXrDrKrr��Ellipsis)r:r�r�r�r��cstuffr^r{�astuffrDr��	minstance�namesrg�
m2instancerr�s               @@r?rz"ClassPropertiesAndMethods.test_dir�	s,�������������� 0�1�1�1���a��S�1�#�s�D�$��1��t�T�]�R�	�	�C���H�H�H�H�	A�	A�	A�	$�	$�	$�	$�	$��	$�	$�	$��9�%�������S��V�V�,�,�f�5�5�5�
�A�C�C�������S��V�V�,�,�f�5�5�5����"�N��	������S��V�V�,�,�f���7K�.K�L�L�L�	$�	$�	$�	$�	$��	$�	$�	$��9�%��.�������S��V�V�,�,�f�5�5�5�
�A�C�C�������S��V�V�,�,�f�5�5�5����"�N��	������S��V�V�,�,�f���7K�.K�L�L�L�	�	�	�	�	��S�	�	�	�	�	��A�c�F�F�	��	���	��8�8�8��J�J�J�J�C�	�N�N�J�J�J�������c�
�+�+�+�	)�	)�	)�	)�	)��	)�	)�	)�
�R��X�X�
��
���
������,�m�<�<�<�
�
�
�y�
)�
)�	�	��
�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
	
����V�X�X����H�
�
�6�6�6�
	:�
	:�
	:�
	:�
	:�
	:�
	:�f�
	:�
	:�
	:�	-�	-�	-�	-�	-�	-�	-��	-�	-�	-�
	�A�A�C�C�����s�J1�1J5�8J5c����	�
���Gd�dt��}|�|���d��d��G�fd�d|���|�����d��d��Gd	�d
|��}t|��|_|�|���d��d��G�	fd
�d|����	|��	���d��d��G�fd�dt���G�
�fd�d�	���
|��
���d��d��Gd�d�
��}�|��|_|�|���d��d��	t�	d��|�d��n#t$rYnwxYw	t�	|����|�d��n#t$rYnwxYw	t�	���d��|�d��n#t$rYnwxYw	t�	���|����|�d ��n#t$rYnwxYwGd!�d"t��}Gd#�d$|��}|��}|�|j	d%��|�t||��j	d��Gd&�d't��}G�fd(�d)|���|���
��|j��|�t��5t|d�*��ddd��dS#1swxYwYdS)+Nc��eZdZd�ZdS)�0ClassPropertiesAndMethods.test_supers.<locals>.Ac��d|zS)NzA(%r)r��r:rDs  r?rNz5ClassPropertiesAndMethods.test_supers.<locals>.A.meth#
s����{�"r@Nr}r�r@r?r{r"
�#������
#�
#�
#�
#�
#r@r{rqzA(1)c�(���eZdZ��fd�Zd�Z�xZS)�0ClassPropertiesAndMethods.test_supers.<locals>.Bc�2��t�|��|_dSr�)rsr�)r:r�rs ��r?r4z9ClassPropertiesAndMethods.test_supers.<locals>.B.__init__)
s���$�Q��~�~����r@c�B�d|z|j�|��zS)NzB(%r)r�rs  r?rNz5ClassPropertiesAndMethods.test_supers.<locals>.B.meth+
�!����{�T�\�%6�%6�q�%9�%9�9�9r@)r�r�r�r4rNrv)rr�s@�r?r�r(
sM��������
.�
.�
.�
.�
.�
.�
:�
:�
:�
:�
:�
:�
:r@r�rrzB(2)A(2)c��eZdZd�ZdS)�0ClassPropertiesAndMethods.test_supers.<locals>.Cc�B�d|z|j�|��zS)NzC(%r)r�rs  r?rNz5ClassPropertiesAndMethods.test_supers.<locals>.C.meth1
r!r@Nr}r�r@r?r�r#0
s#������
:�
:�
:�
:�
:r@r�rtzC(3)A(3)c�"���eZdZ��fd�Z�xZS)�0ClassPropertiesAndMethods.test_supers.<locals>.Dc�V��d|zt�|���|��zS)NzD(%r))rsrN)r:rDrLrs  ��r?rNz5ClassPropertiesAndMethods.test_supers.<locals>.D.meth8
s(�����{�U�1�d�^�^�%8�%8��%;�%;�;�;r@)r�r�r�rNrv)rrLs@�r?rLr&7
�>��������
<�
<�
<�
<�
<�
<�
<�
<�
<�
<r@rLrwzD(4)C(4)B(4)A(4)c�"���eZdZ��fd�Z�xZS)�6ClassPropertiesAndMethods.test_supers.<locals>.mysuperc�4��t�|��j|�Sr�r)r:r;r�mysupers  ��r?r4z?ClassPropertiesAndMethods.test_supers.<locals>.mysuper.__init__@
s���4�u�W�d�+�+�4�d�;�;r@)r�r�r�r4rv)rr,s@�r?r,r*?
r(r@r,c���eZdZ��fd�ZdS)�0ClassPropertiesAndMethods.test_supers.<locals>.Ec�N��d|z��|���|��zS)NzE(%r))rN)r:rDr�r,s  ��r?rNz5ClassPropertiesAndMethods.test_supers.<locals>.E.methD
s,�����{�W�W�Q��%5�%5�%:�%:�1�%=�%=�=�=r@Nr})r�r,s��r?r�r.C
s3�������
>�
>�
>�
>�
>�
>�
>�
>r@r�r�zE(5)D(5)C(5)B(5)A(5)c��eZdZd�ZdS)�0ClassPropertiesAndMethods.test_supers.<locals>.Fc�b�|j}d|�d|jj�d�|�|��zS)NzF(z)[�])�	_F__superrr�rN)r:rDr]s   r?rNz5ClassPropertiesAndMethods.test_supers.<locals>.F.methJ
s4���L���&'�a�a���)=�)=�)=�>�������J�Jr@Nr}r�r@r?rr1I
s(������
K�
K�
K�
K�
Kr@rr�z!F(6)[mysuper]E(6)D(6)C(6)B(6)A(6)r�zshouldn't allow super(D, 42)zshouldn't allow super(D, C())r�z$shouldn't allow super(D).__get__(12)z%shouldn't allow super(D).__get__(C())c�*�eZdZd�Zee��ZdS)�5ClassPropertiesAndMethods.test_supers.<locals>.DDbasec��dSrjr�r�s r?ruz:ClassPropertiesAndMethods.test_supers.<locals>.DDbase.getxs
s��2�2r@N�r�r�r�rur�r�r�r@r?�DDbaser6r
s$������%�%�%������A�A�Ar@r9c�*�eZdZd�Zee��ZdS)�4ClassPropertiesAndMethods.test_supers.<locals>.DDsubc��dSr�r�r�s r?ruz9ClassPropertiesAndMethods.test_supers.<locals>.DDsub.getxw
s��7�7r@Nr8r�r@r?�DDsubr;v
s$������*�*�*������A�A�Ar@r=rPc�&�eZdZed���ZdS)�3ClassPropertiesAndMethods.test_supers.<locals>.Basec��dSr�r�r�s r?r�z<ClassPropertiesAndMethods.test_supers.<locals>.Base.<lambda>�
s��%�r@N)r�r�r�r��aPropr�r@r?�Baser?�
s!�������H�/�/�0�0�E�E�Er@rBc�2���eZdZe��fd���Z�xZS)�2ClassPropertiesAndMethods.test_supers.<locals>.Subc�.��t�|��jSr�)rsrA)�klass�Subrs ��r?r
z7ClassPropertiesAndMethods.test_supers.<locals>.Sub.test�
s����S��'�'�-�-r@)r�r�r�r�r
rv)rrGs@�r?rGrD�
sH��������
�
.�
.�
.�
.�
.��[�
.�
.�
.�
.�
.r@rGr�)
r^rGrNrsr�r4r�r�rcr�r
rAr)r:r{r�rr9r=�ddrBr�rLr�rGr,rs        @@@@@�r?�test_supersz%ClassPropertiesAndMethods.test_supers
ss��������	#�	#�	#�	#�	#��	#�	#�	#�	
���������!���f�-�-�-�	:�	:�	:�	:�	:�	:�	:��	:�	:�	:�	
���������!���j�1�1�1�	:�	:�	:�	:�	:��	:�	:�	:��A�h�h������������!���j�1�1�1�	<�	<�	<�	<�	<�	<�	<��1�	<�	<�	<�	
���������!���&8�9�9�9�	<�	<�	<�	<�	<�	<�	<�e�	<�	<�	<�	>�	>�	>�	>�	>�	>�	>�	>��	>�	>�	>�	
���������!���&<�=�=�=�	K�	K�	K�	K�	K��	K�	K�	K��g�a�j�j������������!���&I�J�J�J�	6��!�R�L�L�L�
�I�I�4�5�5�5�5���	�	�	��D�	����
	7��!�Q�Q�S�S�M�M�M�
�I�I�5�6�6�6�6���	�	�	��D�	����
	>��!�H�H���R� � � �
�I�I�<�=�=�=�=���	�	�	��D�	����
	?��!�H�H���Q�Q�S�S�!�!�!�
�I�I�=�>�>�>�>���	�	�	��D�	����	�	�	�	�	�V�	�	�	�	�	�	�	�	�F�	�	�	��U�W�W�������w�'�'�'�����u�b�)�)�+�R�0�0�0�
	1�	1�	1�	1�	1�6�	1�	1�	1�	.�	.�	.�	.�	.�	.�	.�$�	.�	.�	.�
	
��������T�Z�0�0�0��
�
�y�
)�
)�	�	��$�1�����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	sZ�G.�.
G;�:G;�?H-�-
H:�9H:�>"I6�6
J�J�*K�
K�K�0O�O�Oc��=���G�fd�dt���|�t�d��dz��d��|�t�d��dz��d���d��}|�|d��|�t|��d��|�t|��jt��|�t|��td����|�|
jt��|�|d	z	jt��|�|d	zjt��|��d	��d
zjt��|��d	��d
z	jt��G�fd�dt���|�t
�d
��dz��d��|�t
d�d��z��d���d��}|�|d��|�t|��d��|�t|��td����|�t|��jt��|�|
jt��|�|jt��|��d	��jt��|�|d	z	jt��|�|d	zjt��|�|d	z
jt��|�|dzjt��|�|dzjt��|�|dzjt��|�d|zjt��|�|d	zjt��|�|d	zjt��|�|dzjt��|��d	��d
zjt��|��d	��d
z	jt��|�t�d	����jt��Gd�dt��}|d��}|�|d	zjt��|�d	|zjt��|d��}|�|ji��|�t|��d��Gd�dt��}|�t|d����d��|d��}|�|d��|�t|��d��|�t|��jt��|�t|��td����|�|
jt��Gd�dt��}|dd��}|�t|��d��tdd��}|�|jt��|�||��|�t|��|��|�t|��jt��||��}|�t|��d��|�||��|�t|��|��|�t|��jt��|�t|��t|����|�|
jt��|�|d	zjt��|�|d	z|��|�|d	z
jt��|�|d	z
|��|�|dzjt��|�|dz|��|�|dzjt��|�|dz|��Gd �d!t��}|d"��}|�|d"��|�|���|d#����|�|������|d"����td$��D]X}|t|����}|���}	|	���}
|�|
|���Y|d%��}|�t|��d%��|�t|��jt��|�t|��td%����|�|dd�jt��|�|dzjt��|�|d	zjt��|�|d&zjt��|d&��}|�t|��d&��|�t|��jt��|�||zjt��|�|d	zjt��|�|dzjt��|�|d'zjt��|�|dd�jt��Gd(�d)t��}|d*��}|�|d*��|�|���|d+����|�|������|d*����td,��D]~}|d-�tt t|��������}|���}|���}	|�|	|���|d.��}|�t
|��d.��|�t
|��jt��d/}||��}|�||��|�t
|��|��|�t
|��jt��|�t|��t|����|�|di|d��|�|di|d��|�|d-zjt��|�|d-z|��|�d-|zjt��|�d-|z|��|�|d	zjt��|�|d	zd-��|�|dzjt��|�|dz|��|�|d'zjt��|�|d'z||z��|�|dd�jt��|�|dd�|��|�|d	d	�jt��|�|d	d	�d-��|�|���jt��|�|���|��|�|���jt��|�|���|��|�|���jt��|�|���|��i}
|�|�|
��jt��|�|�|
��|��|�|�d0d0��jt��|�|�d0d0��|��|�|�t/|����jt��|�|�t/|����|��|�|�t/|����jt��|�|�t/|����|��|�|�t/|����jt��|�|�t/|����|��|�|���jt��|�|���|��Gd1�d2t��}|d3��}	|�|	d3��|�|	���|d4����|�|	������|d3����d.}||��}	|�t
|	��|��|�t
|	��jt��|�t|	��t|����|�|	di|d��|�|di|	d��|�|	���jt��|�|	���|��|�|	���jt��|�|	���|��|�|	���jt��|�|	���|��|�|	�d0d0��jt��|�|	�d0d0��|��|�|	�d5d5��jt��|�|	�d5d5��|��|�|	�t/|	����jt��|�|	�t/|	����|��|�|	�t/|	����jt��|�|	�t/|	����|��|�|	�t/|	����jt��|�|	�t/|	����|��|�|	���jt��|�|	���|��|�|	���jt��|�|	���|��|�|	���jt��|�|	���|��|�|	���jt��|�|	���|��|�|	d-zjt��|�|	d-z|��|�d-|	zjt��|�d-|	z|��|�|	d	zjt��|�|	d	zd-��|�|	dzjt��|�|	dz|��|�|	d'zjt��|�|	d'z||z��|�|	dd�jt��|�|	dd�|��|�|	d	d	�jt��|�|	d	d	�d-��Gd6�d7t<��}|td����}|�|t=td������|�d8��|�|t=td����d8gz��d|d<|�|t=td9������|� td9d:����|�|t=td:������g|d;d�<|�|t=td<������|d=d<�=|�t/|��d=��|�|t=td=������|�t=|��t=td=������|�|d	d	��|�|dd��|�|d>d	��|�|dd��|�|dd�t=td������dS)?Nc� ��eZdZd�Z�fd�ZdS)�@ClassPropertiesAndMethods.test_basic_inheritance.<locals>.hexintc� �t|��Sr�)�hexr�s r?r�zIClassPropertiesAndMethods.test_basic_inheritance.<locals>.hexint.__repr__�
����4�y�y� r@c�L���t�||����Sr�)r-rU)r:r��hexints  �r?rUzHClassPropertiesAndMethods.test_basic_inheritance.<locals>.hexint.__add__�
s!����v�c�k�k�$��6�6�7�7�7r@N)r�r�r�r�rU)rQs�r?rQrL�
s=�������
!�
!�
!�
8�
8�
8�
8�
8�
8�
8r@rQ��	�0x10i��0x3efi90rr�c�0���eZdZgZd�Z��fd�ZeZ�xZS)�AClassPropertiesAndMethods.test_basic_inheritance.<locals>.octlongc� �t|��Sr�)�octr�s r?r�zIClassPropertiesAndMethods.test_basic_inheritance.<locals>.octlong.__str__�
rOr@c�p��|�t�|���|����Sr�)rrsrU)r:r�r�octlongs  ��r?rUzIClassPropertiesAndMethods.test_basic_inheritance.<locals>.octlong.__add__�
s-����~�~�e�G�T�&:�&:�&B�&B�5�&I�&I�J�J�Jr@)r�r�r�r�r�rUr�rv)rr[s@�r?r[rW�
sQ���������I�
!�
!�
!�
K�
K�
K�
K�
K�
K��H�H�H�H�Hr@r[rtr��0o10i��0o5675rqrc��eZdZdS)�CClassPropertiesAndMethods.test_basic_inheritance.<locals>.longcloneNrKr�r@r?�	longcloner_�
rMr@r`c�"�eZdZdgZdd�Zd�ZdS)�CClassPropertiesAndMethods.test_basic_inheritance.<locals>.precfloatr�r�r�c�.�t|��|_dSr�)r-r�)r:rr�s   r?r4zLClassPropertiesAndMethods.test_basic_inheritance.<locals>.precfloat.__init__�
s����I�I��	�	�	r@c��d|j|fzS)Nr�r�r�s r?r�zLClassPropertiesAndMethods.test_basic_inheritance.<locals>.precfloat.__repr__�
s�����D� 1�1�1r@N)r�r�)r�r�r�r�r4r�r�r@r?�	precfloatrb�
s>��������I�
&�
&�
&�
&�
2�
2�
2�
2�
2r@reg�������?z1.1g��@c��eZdZd�ZdS)�DClassPropertiesAndMethods.test_basic_inheritance.<locals>.madcomplexc�$�d|j|jfzS)Nz%.17gj%+.17g�r�r�r�s r?r�zMClassPropertiesAndMethods.test_basic_inheritance.<locals>.madcomplex.__repr__�
s��%���D�I�(>�>�>r@N)r�r�r�r�r�r@r?�
madcomplexrg�
s#������
?�
?�
?�
?�
?r@rj���rwz4j-3c��eZdZdZd�ZdS)�BClassPropertiesAndMethods.test_basic_inheritance.<locals>.madtupleNc��|j�|jSt|��}|���|�|��|_|jSr�)�_revr6r�r�r:r�s  r?�revzFClassPropertiesAndMethods.test_basic_inheritance.<locals>.madtuple.rev�
sE���9�(��9�$���J�J���	�	���� �N�N�1�-�-��	��y� r@�r�r�r�rorqr�r@r?�madtuplerm�
�(�������D�
!�
!�
!�
!�
!r@rs)
rqrrrtrwr�r�rR�rSr)
rrSrurRr�r�rwrtrrrqi)rqrrrtrwr�r�rrc��eZdZdZd�ZdS)�CClassPropertiesAndMethods.test_basic_inheritance.<locals>.madstringNc���|j�|jSt|��}|���|�d�|����|_|jS�Nr��ror6r�rr2rps  r?rqzGClassPropertiesAndMethods.test_basic_inheritance.<locals>.madstring.rev!�O���9�(��9�$���J�J���	�	���� �N�N�2�7�7�1�:�:�6�6��	��y� r@rrr�r@r?�	madstringrwrtr@r|�abcdefghijklmnopqrstuvwxyz�zyxwvutsrqponmlkjihgfedcba�r��12345zr�c��eZdZdZd�ZdS)�DClassPropertiesAndMethods.test_basic_inheritance.<locals>.madunicodeNc���|j�|jSt|��}|���|�d�|����|_|jSryrzrps  r?rqzHClassPropertiesAndMethods.test_basic_inheritance.<locals>.madunicode.revar{r@rrr�r@r?�
madunicoder�_rtr@r��ABCDEF�FEDCBA�xyc��eZdZdS)�AClassPropertiesAndMethods.test_basic_inheritance.<locals>.sublistNrKr�r@r?�sublistr��rMr@r�rPr������rr�)!r-rGr�rrrEr@r+rKr.r�r�rqr�r2�mapr,�stripr��rstrip�	translate�replace�ljustr�rjust�center�lower�upper�
capitalize�titler6r�r0)r:rDr`rerj�basersr�rPr�r�r|r]�identitytabr�r�rQr[s                @@r?�test_basic_inheritancez0ClassPropertiesAndMethods.test_basic_inheritance�
s�����	8�	8�	8�	8�	8�	8�	8�S�	8�	8�	8�	
����f�f�Q�i�i�!�m�,�,�f�5�5�5�����f�f�T�l�l�Q�.�/�/��9�9�9��F�5�M�M������E�"�"�"�����Q����'�'�'��
�
�c�!�f�f�&��,�,�,�����a���$�u�+�+�.�.�.��
�
��r�n�c�*�*�*��
�
�q�A�v�(�#�.�.�.��
�
�q�A�v�(�#�.�.�.��
�
�v�v�a�y�y�B��1�3�7�7�7��
�
�v�v�a�y�y�B��1�3�7�7�7�	�	�	�	�	�	�	�c�	�	�	�	
����W�W�Q�Z�Z�!�^�,�,�f�5�5�5�	
����Q������.�/�/��:�:�:��G�E�N�N������E�"�"�"�����Q����'�'�'�����a���$�u�+�+�.�.�.��
�
�c�!�f�f�&��,�,�,��
�
��r�n�c�*�*�*��
�
��r�n�c�*�*�*��
�
����
�
�{�-�s�3�3�3��
�
�q�A�v�(�#�.�.�.��
�
�q�A�v�(�#�.�.�.��
�
�q�1�u�'��-�-�-��
�
�q�1�u�'��-�-�-��
�
�q�A�v�(�#�.�.�.��
�
�q�A�v�(�#�.�.�.��
�
�q�1�u�'��-�-�-��
�
�q�1�u�'��-�-�-��
�
�q�1�u�'��-�-�-��
�
�q�2�v�(�#�.�.�.��
�
�w�w�q�z�z�R�'�2�C�8�8�8��
�
�w�w�q�z�z�R�'�2�C�8�8�8��
�
�c�'�'�!�*�*�o�o�/��5�5�5�	�	�	�	�	��	�	�	��I�a�L�L���
�
�q�1�u�'��-�-�-��
�
�q�1�u�'��-�-�-�
�I�b�M�M�������R�(�(�(�����Q����$�$�$�	2�	2�	2�	2�	2��	2�	2�	2�	
����i�i��n�n�-�-�u�5�5�5��I�e��������G�$�$�$�����q���7�+�+�+��
�
�e�A�h�h�(�%�0�0�0�����a���$�w�-�-�0�0�0��
�
��r�n�e�,�,�,�	?�	?�	?�	?�	?��	?�	?�	?�
�J�r�1��������a���&�)�)�)��r�1�~�~��������1�1�1�����D�!�!�!��������T�*�*�*��������-�w�7�7�7��J�q�M�M������a���&�)�)�)�����D�!�!�!��������T�*�*�*��������-�w�7�7�7�����a���$�t�*�*�-�-�-����1�"���1�1�1����!�a�%�*�G�4�4�4�����Q���%�%�%����!�a�%�*�G�4�4�4�����Q���%�%�%����!�a�%�*�G�4�4�4�����Q���%�%�%����!�a�%�*�G�4�4�4�����Q���%�%�%�	!�	!�	!�	!�	!�u�	!�	!�	!�
�H�*�+�+������1�2�2�2���������(�(�+@�"A�"A�B�B�B���������������1F�(G�(G�H�H�H��s���	#�	#�A����q���"�"�A������A������A����Q��"�"�"�"��H�[�!�!������q���;�/�/�/��
�
�e�A�h�h�(�%�0�0�0�����a���$�{�"3�"3�4�4�4��
�
�a����d�n�e�,�,�,��
�
�q�1�u�'��/�/�/��
�
�q�1�u�'��/�/�/��
�
�q�2�v�(�%�0�0�0��H�R�L�L������q���2�&�&�&��
�
�e�A�h�h�(�%�0�0�0��
�
�q�1�u�'��/�/�/��
�
�q�1�u�'��/�/�/��
�
�q�1�u�'��/�/�/��
�
�q�1�u�'��/�/�/��
�
�a����d�n�e�,�,�,�	!�	!�	!�	!�	!��	!�	!�	!�
�I�2�3�3������8�9�9�9���������)�)�,H�"I�"I�J�J�J�������������	�	�2N�(O�(O�P�P�P��s���	#�	#�A��	�"�'�'�#�c�5��8�8�"4�"4�5�5�6�6�A������A������A����Q��"�"�"�"��I�g��������Q����)�)�)��
�
�c�!�f�f�&��,�,�,����I�d�O�O������D�!�!�!�����Q����&�&�&��
�
�c�!�f�f�&��,�,�,�����a���$�t�*�*�-�-�-����!�Q����q�)�)�)����$���1��q�)�)�)��
�
�q�2�v�(�#�.�.�.�����R���&�&�&��
�
�r�A�v�(�#�.�.�.�����a���&�&�&��
�
�q�1�u�'��-�-�-�����Q���#�#�#��
�
�q�1�u�'��-�-�-�����Q���%�%�%��
�
�q�1�u�'��-�-�-�����Q���t��,�,�,��
�
�a����d�n�c�*�*�*�����1�1�1��t�$�$�$��
�
�a��!��f�&��,�,�,�����1�Q�3���$�$�$��
�
�a�g�g�i�i�)�3�/�/�/���������D�)�)�)��
�
�a�h�h�j�j�*�C�0�0�0���������T�*�*�*��
�
�a�h�h�j�j�*�C�0�0�0���������T�*�*�*����
�
�a�k�k�+�.�.�8�#�>�>�>�������[�1�1�4�8�8�8��
�
�a�i�i��S�)�)�3�S�9�9�9�������3��,�,�d�3�3�3��
�
�a�g�g�c�!�f�f�o�o�/��5�5�5��������Q�����$�/�/�/��
�
�a�g�g�c�!�f�f�o�o�/��5�5�5��������Q�����$�/�/�/��
�
�a�h�h�s�1�v�v�&�&�0�#�6�6�6�������#�a�&�&�)�)�4�0�0�0��
�
�a�g�g�i�i�)�3�/�/�/���������D�)�)�)�	!�	!�	!�	!�	!��	!�	!�	!�
�J�x� � ������H�%�%�%���������*�*�X�"6�"6�7�7�7�������������
�
�8�(<�(<�=�=�=����J�t��������Q����&�&�&��
�
�c�!�f�f�&��,�,�,�����a���$�t�*�*�-�-�-����!�Q����q�)�)�)����$���1��q�)�)�)��
�
�a�g�g�i�i�)�3�/�/�/���������D�)�)�)��
�
�a�h�h�j�j�*�C�0�0�0���������T�*�*�*��
�
�a�h�h�j�j�*�C�0�0�0���������T�*�*�*��
�
�a�i�i��S�)�)�3�S�9�9�9�������3��,�,�d�3�3�3��
�
�a�i�i��d�+�+�5�s�;�;�;�������4��.�.��5�5�5��
�
�a�h�h�s�1�v�v�&�&�0�#�6�6�6�������#�a�&�&�)�)�4�0�0�0��
�
�a�g�g�c�!�f�f�o�o�/��5�5�5��������Q�����$�/�/�/��
�
�a�g�g�c�!�f�f�o�o�/��5�5�5��������Q�����$�/�/�/��
�
�a�g�g�i�i�)�3�/�/�/���������D�)�)�)��
�
�a�g�g�i�i�)�3�/�/�/���������D�)�)�)��
�
�a�l�l�n�n�.��4�4�4����������.�.�.��
�
�a�g�g�i�i�)�3�/�/�/���������D�)�)�)��
�
�q�2�v�(�#�.�.�.�����R���&�&�&��
�
�r�A�v�(�#�.�.�.�����a���&�&�&��
�
�q�1�u�'��-�-�-�����Q���#�#�#��
�
�q�1�u�'��-�-�-�����Q���%�%�%��
�
�q�1�u�'��-�-�-�����Q���t��,�,�,��
�
�a����d�n�c�*�*�*�����1�1�1��t�$�$�$��
�
�a��!��f�&��,�,�,�����1�Q�3���$�$�$�	�	�	�	�	�d�	�	�	��G�E�!�H�H��������D��q���N�N�+�+�+�	�����������D��q���N�N�g�Y�6�7�7�7���!������D��q���N�N�+�+�+�	����q�"����������D��r���O�O�,�,�,���"�#�#������D��r���O�O�,�,�,�
�b��e�H�����Q����$�$�$�����D��r���O�O�,�,�,�����a���$�u�R�y�y�/�/�2�2�2�����1��q�!�!�!�����1��q�!�!�!�����3���#�#�#�����2���"�"�"�����2�A�2���U�1�X�X���/�/�/�/�/r@c��|�td��5td���ddd��n#1swxYwY|�td��5td���ddd��n#1swxYwY|�td��5t	d���ddd��n#1swxYwY|�t
dd���t
dd����|�td�	��d
��|�tdd�
��d��|�td��5ttd�����ddd��n#1swxYwY|�td��5td���ddd��n#1swxYwYttttttttfD]7}	|d���|�d|z���(#t$rY�4wxYwdS)Nzkeyword argumentrqr�rrr�i�rii�r��500�abc�strict)r^�errorsr%rt)�sequencer,)�bogus_keyword_argz4expected TypeError from bogus keyword argument to %r)r\r�r-r.�boolrGr�r@r�r�r6r�)r:�constructors  r?�
test_keywordsz'ClassPropertiesAndMethods.test_keywords�sl��
�
#�
#�I�/A�
B�
B�	�	��!�H�H�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
#�
#�I�/A�
B�
B�	�	��A�J�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
#�
#�I�/A�
B�
B�	�	��1�I�I�I�I�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����b�s�3�3�3�W�S�"�5E�5E�F�F�F�����C����%�0�0�0�����F�8�<�<�<�e�D�D�D�
�
#�
#�I�/A�
B�
B�	%�	%��5��8�8�$�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�
�
#�
#�I�/A�
B�
B�	%�	%��)�$�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%� ���W�c�3�!�4�)�	+�	+�K�
+���a�0�0�0�0��	�	�P�)�*�+�+�+�+���
�
�
���
����		+�	+sg�9�=�=�A<�<B�B�"B?�?C�C�!F�F�F�1G�G�G�H3�3
I�?Ic����G�fd�dt���|��d��d��|�d�d����|�t�d����d���d��d�d��d	�d
��di}|�|�d��d��|�|�d��d	��|�|�d
��d��|��d��|��|�|��d����d��dS)Nc�(��eZdZ	d�Z�fd�Zd�ZdS)�FClassPropertiesAndMethods.test_str_subclass_as_dict_key.<locals>.cistrc�j�|���|_t|j��|_dSr�)r��	canonicalrE�hashcoders  r?r4zOClassPropertiesAndMethods.test_str_subclass_as_dict_key.<locals>.cistr.__init__�s&��!&������� $�T�^� 4� 4��
�
�
r@c�Z��t|���s�|��}|j|jkSr�)r'r�)r:r��cistrs  �r?rBzMClassPropertiesAndMethods.test_str_subclass_as_dict_key.<locals>.cistr.__eq__s1���!�%��/�/�)�!�E�%�L�L�E��~���8�8r@c��|jSr�)r�r�s r?rFzOClassPropertiesAndMethods.test_str_subclass_as_dict_key.<locals>.cistr.__hash__s
���}�$r@N)r�r�r�r4rBrF)r�s�r?r�r��sQ�������
�

5�
5�
5�
9�
9�
9�
9�
9�

%�
%�
%�
%�
%r@r��ABCr%�aBcr�rqr�rr�tHreert�tWo�THrEE�ONe�thrEE)r@rGrr�)r:rOr�s  @r?�test_str_subclass_as_dict_keyz7ClassPropertiesAndMethods.test_str_subclass_as_dict_key�sx���	%�	%�	%�	%�	%�	%�	%�C�	%�	%�	%�$	
�����u���u�-�-�-�������e���-�-�-�����U�U�5�\�\�*�*�E�2�2�2�
�U�5�\�\�1�e�e�E�l�l�A�u�u�W�~�~�q�A������5�5��<�<��!�,�,�,�����5�5��<�<��!�,�,�,�����5�5��>�>�*�A�.�.�.��
�
�e�e�E�l�l�A�&�&�&�������u�u�W�~�~�.�.��2�2�2�2�2r@c�j�
�Gd�d��}|ttfD�]}G�
fd�d|���
�
d��}�
d��}�
d��}|�|d��|||d�}dD]�}dD]�}d	D]�}	|�td
|	z��td|	z��d||fz��|�td
|	z��td|	z��d||fz��|�td|	z��td|	z��d||fz����������dS)Nc��eZdZdS)�CClassPropertiesAndMethods.test_classic_comparisons.<locals>.classicNrKr�r@r?�classicr�rMr@r�c�R��eZdZd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Z	dS)	�=ClassPropertiesAndMethods.test_classic_comparisons.<locals>.Cc�.�t|��|_dSr��r-rrs  r?r4zFClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__init__���!$�U���D�J�J�Jr@c���t|���r|j|jkSt|t��st|t��r|j|kStSr��r'rr-r��r:r�r�s  �r?rBzDClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__eq__�Z���!�%��+�+�9�#�z�U�[�8�8�!�%��-�-�3��E�3�1G�1G�3�#�z�U�2�2�)�)r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rJzDClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__ne__%r�r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rSzDClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__lt__+�Z���!�%��+�+�8�#�z�E�K�7�7�!�%��-�-�2��E�3�1G�1G�2�#�z�E�1�1�)�)r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rQzDClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__le__1r�r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rNzDClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__gt__7r�r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rLzDClassPropertiesAndMethods.test_classic_comparisons.<locals>.C.__ge__=r�r@N)
r�r�r�r4rBrJrSrQrNrLrNs�r?r�r�s��������,�,�,�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*r@r�rqrrrtrs�r r"r$r%r&r'�c[x] %s c[y]�x %s y�
x=%d, y=%d�	c[x] %s y�	x %s c[y])r-r^rGrH)r:r�r�r�r\�c3r^r��y�opr�s          @r?�test_classic_comparisonsz2ClassPropertiesAndMethods.test_classic_comparisonss����	�	�	�	�	�	�	�	��c�6�*�9	<�9	<�D�&
*�&
*�&
*�&
*�&
*�&
*�&
*�D�&
*�&
*�&
*�P��1���B���1���B���1���B����R��#�#�#��2�"�%�%�A��
<�
<�� �
<�
<�A�>�	<�	<���(�(��n�r�.A�)B�)B�%)�(�R�-�%8�%8�%1�Q��F�%:�<�<�<��(�(��k�B�.>�)?�)?�%)�(�R�-�%8�%8�%1�Q��F�%:�<�<�<��(�(��k�B�.>�)?�)?�%)�(�R�-�%8�%8�%1�Q��F�%:�<�<�<�<�	<�
<�
<�]9	<�9	<r@c����Gd�dt��}|d��}��|d����d|��Gd�dt��}|d��}��|d����d|��Gd�d	��}|tttfD�]}G��fd
�d|����d��}�d��}�d
��}	��|d��|||	d�}
dD]�}dD]�}dD]�}
��td|
z��td|
z��d||fz����td|
z��td|
z��d||fz����td|
z��td|
z��d||fz����������dS)Nc��eZdZdS)�:ClassPropertiesAndMethods.test_rich_comparisons.<locals>.ZNrKr�r@r?r�r�XrMr@r�rqy�?c��eZdZd�ZdS)�;ClassPropertiesAndMethods.test_rich_comparisons.<locals>.ZZc�L�	t||z
��dkS#tcYSxYw)Ng���ư>)r+r�r�s  r?rBzBClassPropertiesAndMethods.test_rich_comparisons.<locals>.ZZ.__eq__^s3��*��t�e�|�,�,��4�4��*�)�)�)�)���s��	#NrCr�r@r?�ZZr�]s#������
*�
*�
*�
*�
*r@r�g�ׇP�?c��eZdZdS)�@ClassPropertiesAndMethods.test_rich_comparisons.<locals>.classicNrKr�r@r?r�r�grMr@r�c�\��eZdZd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Z	�fd�Z
d	S)
�:ClassPropertiesAndMethods.test_rich_comparisons.<locals>.Cc�.�t|��|_dSr�r�rs  r?r4zCClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__init__kr�r@c�2����d��dS)Nzshouldn't call __cmp__)r�)rIr�r:s  �r?�__cmp__zBClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__cmp__ms����I�I�6�7�7�7�7�7r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rBzAClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__eq__or�r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rJzAClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__ne__ur�r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rSzAClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__lt__{r�r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rQzAClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__le__�r�r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rNzAClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__gt__�r�r@c���t|���r|j|jkSt|t��st|t��r|j|kStSr�r�r�s  �r?rLzAClassPropertiesAndMethods.test_rich_comparisons.<locals>.C.__ge__�r�r@N)r�r�r�r4r�rBrJrSrQrNrL)r�r:s��r?r�r�js��������,�,�,�8�8�8�8�8�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*r@r�rrrtrsr�r�r�r�r�r�)r�rGr-r^r6rH)r:r�rXr��zzr�r�r�r\r�r^r�r�r�r�s`             @r?�test_rich_comparisonsz/ClassPropertiesAndMethods.test_rich_comparisonsVs�����	�	�	�	�	��	�	�	�
�A�a�D�D������D�!�!�!�����q�!�!�!�	*�	*�	*�	*�	*��	*�	*�	*��R�	�]�]������T�"�"�"�����r�"�"�"�	�	�	�	�	�	�	�	��c�6�4�0�:	@�:	@�D�(
*�(
*�(
*�(
*�(
*�(
*�(
*�(
*�D�(
*�(
*�(
*�R��1���B���1���B���1���B����R��#�#�#��2�"�%�%�A��
@�
@�� �
@�
@�A�>�	@�	@���(�(��n�r�.A�)B�)B�)-�h��m�)<�)<�)5��A��)>�@�@�@��(�(��k�B�.>�)?�)?�)-�h��m�)<�)<�)5��A��)>�@�@�@��(�(��k�B�.>�)?�)?�)-�h��m�)<�)<�)5��A��)>�@�@�@�@�	@�
@�
@�_:	@�:	@r@c�l��ddlm}�fd�}||jd��|tjd��dS)Nr)�FileIOc�>����|j|��dSr�)rGr�)�descr�whatr:s  �r?�checkz6ClassPropertiesAndMethods.test_descrdoc.<locals>.check�s!������U�]�D�1�1�1�1�1r@zTrue if the file is closedz!the real part of a complex number)�_ior��closedr�r�)r:r�r�s`  r?�
test_descrdocz'ClassPropertiesAndMethods.test_descrdoc�s^���������	2�	2�	2�	2�	2�
��f�m�9�:�:�:�
��g�l�?�@�@�@�@�@r@c�n��Gd�dt���G�fd�d��}G�fd�dt��}|�|jd��|�|��jd��|�|jd	��|�|��jd
��dS)Nc��eZdZd�ZdS)�?ClassPropertiesAndMethods.test_doc_descriptor.<locals>.DocDescrc�F�|r|jjdz}|r|j}d|�d|��S)Nz	 instancezobject=z; type=)rr�)r:r^�otypes   r?rczGClassPropertiesAndMethods.test_doc_descriptor.<locals>.DocDescr.__get__�s<���E�#�-�6��D�F��+�!�N�E��/5�v�v�u�u�=�=r@Nrr�r@r?�DocDescrr��s#������
>�
>�
>�
>�
>r@r�c�$��eZdZ���ZdS)�?ClassPropertiesAndMethods.test_doc_descriptor.<locals>.OldClassN�r�r�r�r��r�s�r?�OldClassr�����������h�j�j�G�G�Gr@r�c�$��eZdZ���ZdS)�?ClassPropertiesAndMethods.test_doc_descriptor.<locals>.NewClassNr�r�s�r?�NewClassr�r�r@rzobject=None; type=OldClassz'object=OldClass instance; type=OldClasszobject=None; type=NewClassz'object=NewClass instance; type=NewClass)r^rGr�)r:r�rr�s   @r?�test_doc_descriptorz-ClassPropertiesAndMethods.test_doc_descriptor�s
���	>�	>�	>�	>�	>�v�	>�	>�	>�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�v�	!�	!�	!�����)�+G�H�H�H��������+�-V�W�W�W�����)�+G�H�H�H��������+�-V�W�W�W�W�Wr@c�V����Gd�dt��}Gd�dt��}Gd�dt��}Gd�d||��}||||fD]Y}||||fD]P}|��}||_��|j|��||_��|j|���Q�Z�fd	�}||��t��|t��|��||��d
��||��t��|t��t��|t��t��Gd�dt��}	|d
t��|dt
��t��}
||
t
d
����||
t
d����~
Gd�dt��}Gd�dt��}Gd�dt��}
Gd�dt��}Gd�dt��}Gd�d|��}Gd�d|
��}Gd�d|��}Gd�d |��}Gd!�d"|��}Gd#�d$|��}||f||
f|
|f||f||ffD]�\}}|��}d
|_||_��|j|d%|�d&|�d'�����|jd
��||_��|j|d%|�d&|�d'�����|jd
����||||||||t|	f
D]/}||||||||t|	f
D]}||ur�||��|����0Gd(�d)t���G�fd*�d+t����fd,�td-��D��}~dS).Nc��eZdZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.CNrKr�r@r?r�r�r�r@r�c��eZdZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.DNrKr�r@r?rLr�r�r@rLc��eZdZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.ENrKr�r@r?r�r
�r�r@r�c��eZdZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.FNrKr�r@r?rr�r�r@rc����	||_��d|�d|����n#t$rYnwxYw	t|d����d|z��dS#ttf$rYdSwxYw)N�shouldn't allow z
.__class__ = rz shouldn't allow del %r.__class__)rr�r�r*r�)r�r�r:s  �r?�cantz6ClassPropertiesAndMethods.test_set_class.<locals>.cant�s����
H�����	�	�	����A�A�F�G�G�G�G���
�
�
���
����
B���;�'�'�'��	�	�<�q�@�A�A�A�A�A���~�.�
�
�
����
���s�&�
3�3�A!�!A6�5A6rqc��eZdZgZdS)�5ClassPropertiesAndMethods.test_set_class.<locals>.IntNr�r�r@r?�Intr�s������B�	�	�	r@rTrrc��eZdZddgZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.GrDrXNr�r�r@r?rxr�r=r@rxc��eZdZddgZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.HrXrDNr�r�r@r?rJr�r=r@rJc��eZdZddgZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.IrDrXNr�r�r@r?r�r�r=r@r�c��eZdZddgZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.Jr^rXNr�r�r@r?�Jr�r=r@rc��eZdZgd�ZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.K)rDrXrONr�r�r@r?�Kr�rr@rc��eZdZdgZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.Lr:Nr�r�r@r?r�r �rr@r�c��eZdZdgZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.Mr:Nr�r�r@r?r�r"�rr@r�c��eZdZdgZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.NrgNr�r�r@r?rr$�rkr@rc��eZdZdgZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.PrKNr�r�r@r?�Pr&�rfr@r'c��eZdZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.QNrKr�r@r?�Qr)�rMr@r*c��eZdZddgZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.RrKrgNr�r�r@r?�Rr,�s������#�]�3�I�I�Ir@r-z
assigning z as __class__ for z silently failedc��eZdZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.ONrKr�r@r?�Or/
rMr@r0c���eZdZ�fd�ZdS)�3ClassPropertiesAndMethods.test_set_class.<locals>.Ac����|_dSr�r�)r:r0s �r?r4z;ClassPropertiesAndMethods.test_set_class.<locals>.A.__del__
s���!"����r@N�r�r�r�r4)r0s�r?r{r2
s.�������
#�
#�
#�
#�
#�
#�
#r@r{c�$��g|]}�����
Sr�r�)r<r�r{s  �r?r=z<ClassPropertiesAndMethods.test_set_class.<locals>.<listcomp>
s���%�%�%�Q�Q�Q�S�S�%�%�%r@r�)
r^rrr6r-r�rIrDrGr�)r:r�rLr�rr��cls2r�rr�orxrJr�rrr�r�rr'r*r-r�r{r0s`                      @@r?�test_set_classz(ClassPropertiesAndMethods.test_set_class�s���������������������������������������1�����a��A�:�	0�	0�C��1�a��
�
0�
0���C�E�E��"����
�
�a�k�4�0�0�0�!����
�
�a�k�3�/�/�/�/�
0�	B�	B�	B�	B�	B�	
��Q�Q�S�S�$������T�V�V�Q������Q�Q�S�S�!������Q�Q�S�S�&������V�X�X�t������T�V�V�V����&�&�&�&�&�#�&�&�&���T�3������Q��
�
�
��H�H����Q��Q��������Q��T�
�
����
�	#�	#�	#�	#�	#��	#�	#�	#�	#�	#�	#�	#�	#��	#�	#�	#�	#�	#�	#�	#�	#��	#�	#�	#�	#�	#�	#�	#�	#��	#�	#�	#�	(�	(�	(�	(�	(��	(�	(�	(�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	(�	(�	(�	(�	(��	(�	(�	(�	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	��	�	�	�	4�	4�	4�	4�	4��	4�	4�	4��a�&�1�a�&�1�a�&�1�a�&�1�a�&�A�
	%�
	%�I�C������A��A�C��A�K��M�M�!�+�t�t�IM���q�q�q�Q�
S�
S�
S����Q�S�!�$�$�$��A�K��M�M�!�+�s�s�IL���a�a�a�P�
R�
R�
R����Q�S�!�$�$�$�$��a��A�q�!�Q��4��4�	"�	"�C��1�a��A�q�!�Q��c�9�
"�
"���$�;�;����S�S�U�U�D�!�!�!�!�
"�	�	�	�	�	��	�	�	�	#�	#�	#�	#�	#�	#�	#��	#�	#�	#�
&�%�%�%�%��*�*�%�%�%��
�A�Ar@c�2����Gd�dt��}|��}ddi|_��|jd���fd���|d���|g���|d��|`Gd�dt������fd�}Gd	�d
t���}Gd�d�t��}Gd
�dt|���}Gd�dt|���}|||fD]B}||��|j}		d|	d<��d|z���3#t$rY�?wxYwGd�dtj���}
Gd�d�tj��}|
|fD]"}|d��}
||
��d|
jd<�#d�}Gd�dt���}Gd�d�t��}t||fD]d}|��}ddi|_��|j
d����||��|t�������edS)Nc��eZdZdS)�2ClassPropertiesAndMethods.test_set_dict.<locals>.CNrKr�r@r?r�r;
r�r@r�rXrqc�~��	||_��d|�d|����dS#ttf$rYdSwxYw)Nrz.__dict__ = )rKr�r�r�)r�r�r:s  �r?rz5ClassPropertiesAndMethods.test_set_dict.<locals>.cant
s`���
J�!��
��	�	�	����4�4�H�I�I�I�I�I��#�I�.�
�
�
����
���s�'�<�<c��eZdZdS)�5ClassPropertiesAndMethods.test_set_dict.<locals>.BaseNrKr�r@r?rBr>+
rMr@rBc�0��	�|i��	|`��d|z��n#ttf$rYnwxYw�jd}	|�|i����d|z��dS#ttf$rYdSwxYw)Nzshouldn't allow del %r.__dict__rKz&dict_descr allowed access to %r's dict)rKr�r�r�r�)r��
dict_descrrBrr:s  ���r?�verify_dict_readonlyzEClassPropertiesAndMethods.test_set_dict.<locals>.verify_dict_readonly-
s����
�
�D��B�K�K�K�
A��J��	�	�;�a�?�@�@�@�@��#�I�.�
�
�
���
������z�2�J�
H��"�"�1�b�)�)�)��	�	�B�Q�F�G�G�G�G�G��#�I�.�
�
�
����
���s�+�?�?�B�B�Bc��eZdZdS)�6ClassPropertiesAndMethods.test_set_dict.<locals>.Meta1NrKr�r@r?�Meta1rCA
rMr@rDc��eZdZdS)�6ClassPropertiesAndMethods.test_set_dict.<locals>.Meta2NrKr�r@r?�Meta2rFC
rMr@rGc��eZdZdS)�2ClassPropertiesAndMethods.test_set_dict.<locals>.DNrKr�r@r?rLrIE
rMr@rLr@c��eZdZdS)�2ClassPropertiesAndMethods.test_set_dict.<locals>.ENrKr�r@r?r�rKG
rMr@r��eggsr�z%r's __dict__ can be modifiedc��eZdZdS)�8ClassPropertiesAndMethods.test_set_dict.<locals>.Module1NrKr�r@r?�Module1rNT
rMr@rOc��eZdZdS)�8ClassPropertiesAndMethods.test_set_dict.<locals>.Module2NrKr�r@r?�Module2rQV
rMr@rRc�<�	|`dS#ttf$rYdSwxYw)NTF)rKr�r�)r:s r?�can_delete_dictz@ClassPropertiesAndMethods.test_set_dict.<locals>.can_delete_dicta
s<��
��J��t���~�.�
�
�
��u�u�
���s���c��eZdZdS)�;ClassPropertiesAndMethods.test_set_dict.<locals>.Exception1NrKr�r@r?�
Exception1rVh
rMr@rWc��eZdZdS)�;ClassPropertiesAndMethods.test_set_dict.<locals>.Exception2NrKr�r@r?�
Exception2rYj
rMr@rZrD)r^rKrGrXrIr�r�r>r?r.rDr�)r:r�rDrArDrGrLr�r��
class_dictrOrRr?r�rTrWrZ�
ExceptionTyper:rBrs`                  @@r?�
test_set_dictz'ClassPropertiesAndMethods.test_set_dict
s���������������
�A�C�C���1�X��
������a� � � �	J�	J�	J�	J�	J�	
��Q��
�
�
���Q�������Q��
�
�
�
�J�	�	�	�	�	�6�	�	�	�	H�	H�	H�	H�	H�	H�	H�(	�	�	�	�	�D�$�	�	�	�	�	�	�	�	�D�$�	�	�	�	�	�	�	�	��%�	�	�	�	�	�	�	�	�	��%�	�	�	�	��a��7�	A�	A�C� � ��%�%�%���J�
A�%+�
�6�"��	�	�9�C�?�@�@�@�@���
�
�
���
����	�	�	�	�	�e�&��	�	�	�	�	�	�	�	�d�E�,�	�	�	�!�7�*�	*�	*�J��*�V�$�$�C� � ��%�%�%�#)�C�L�� � �	�	�	�	�	�	�	�	��D�	�	�	�	�	�	�	�	��y�	�	�	�&�
�J�>�	P�	P�M��
���A��q��A�J����Q�S�!�$�$�$����_�_�Q�/�/������1N�1N�O�O�O�O�		P�	Ps�6D�
D!� D!c�J��G�fd�dt���|�t�d���d��z��d��|�t�d��dz��d��|�td�d��z��d��|�t�d���d��z��d��|�td�d��z��d��|�t�d��dz��d��|�tt�d���d���d������d��Gd	�d
t��}dS)Nc�<��eZdZd�Z�fd�ZeZd�fd�	Zd�fd�	ZdS)�BClassPropertiesAndMethods.test_binary_operator_override.<locals>.Ic�&�dt|��zS)NzI(%r)�r-r�s r?r�zKClassPropertiesAndMethods.test_binary_operator_override.<locals>.I.__repr__u
s����T���*�*r@c�T���t|��t|��z��Sr�rb)r:r�r�s  �r?rUzJClassPropertiesAndMethods.test_binary_operator_override.<locals>.I.__add__w
s$����q��T���S��Z�Z�/�0�0�0r@Nc	����|�3�tt|��t|������S�tt|��t|��t|������Sr��rr-�r:r�r�r�s   �r?�__pow__zJClassPropertiesAndMethods.test_binary_operator_override.<locals>.I.__pow__z
s\����;��1�S��T���C��J�J�7�7�8�8�8��1�S��T���C��J�J��C���A�A�B�B�Br@c	����|�4�tt|��t|��|����S�tt|��t|��t|������Sr�rerfs   �r?�__rpow__zKClassPropertiesAndMethods.test_binary_operator_override.<locals>.I.__rpow__
s^����;��1�S��U���S��Y�Y��<�<�=�=�=��1�S��U���S��Y�Y��C���A�A�B�B�Br@r�)r�r�r�r�rUr�rgri)r�s�r?r�r`t
s��������
+�
+�
+�
1�
1�
1�
1�
1��H�
C�
C�
C�
C�
C�
C�

C�
C�
C�
C�
C�
C�
C�
Cr@r�rqrrzI(3)rtzI(8)r�c��eZdZd�ZdS)�BClassPropertiesAndMethods.test_binary_operator_override.<locals>.Sc�V�|���|���kSr�)r�r�s  r?rBzIClassPropertiesAndMethods.test_binary_operator_override.<locals>.S.__eq__�
s���z�z�|�|�u�{�{�}�}�4�4r@NrCr�r@r?�Srk�
r�r@rm)r-rGr�rr@)r:rmr�s  @r?�test_binary_operator_overridez7ClassPropertiesAndMethods.test_binary_operator_overrider
s����	C�	C�	C�	C�	C�	C�	C��	C�	C�	C�"	
����a�a��d�d�Q�Q�q�T�T�k�*�*�F�3�3�3�����a�a��d�d�Q�h����0�0�0�����a�!�!�A�$�$�h����0�0�0�����a�a��d�d�a�a��d�d�l�+�+�V�4�4�4�����a�1�1�Q�4�4�i���&�1�1�1�����a�a��d�d�a�i���&�1�1�1�����c�!�!�A�$�$���!���a�a��d�d�3�3�4�4�f�=�=�=�	5�	5�	5�	5�	5��	5�	5�	5�	5�	5r@c��Gd�dt��}Gd�d|��}Gd�d|��}Gd�d||��}|��}t|��}d	�|_|�t|��d
��d�|_|�t|��d��d
�|_|�t|��d��d�|_|�t|��d��d|_|�t
t|��|`|�t|��d��d|_|�t
t|��|`|�t|��d��d|_|�t
t|��|`|�t|��d
��d|_|�t
t|��|`|�t|��|��d
|_d
|_|�|jd
��|�|jd
��d�}||_|�|jd��|�|jd
��d�}||_	|�|j
d��|�|jd��|�|jd
��|`|�|jd
��|`|�|jd��|�|jd
��|`		|j|�d��n#t$rYnwxYwGd�dt��}Gd�d|��}~tj��d�|_dS)Nc��eZdZdS��>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.ANrKr�r@r?r{rr�
rMr@r{c��eZdZdS��>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.BNrKr�r@r?r�ru�
rMr@r�c��eZdZdS)�>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.CNrKr�r@r?r�rw�
rMr@r�c��eZdZdS)�>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.DNrKr�r@r?rLry�
rMr@rLc��dSrjr�r�s r?r�zEClassPropertiesAndMethods.test_subclass_propagation.<locals>.<lambda>�
s��"�r@r�c��dS)N�:r�r�s r?r�zEClassPropertiesAndMethods.test_subclass_propagation.<locals>.<lambda>�
���#�r@r|c��dS)N�r�r�s r?r�zEClassPropertiesAndMethods.test_subclass_propagation.<locals>.<lambda>�
r}r@rc��dSr&r�r�s r?r�zEClassPropertiesAndMethods.test_subclass_propagation.<locals>.<lambda>�
r}r@r�c�H�|dkrdSt�||��S)Nr�r)r^r$r�s  r?r$zMClassPropertiesAndMethods.test_subclass_propagation.<locals>.__getattribute__�
s&���u�}�}��r��*�*�4��6�6�6r@rc�,�|dvrdSt|���)N)r�r�r�rPr�r�s  r?r�zHClassPropertiesAndMethods.test_subclass_propagation.<locals>.__getattr__�
s!���-�-�-��w� ��&�&�&r@rPzd.foo should be undefined nowc��eZdZdSrqrKr�r@r?r{z>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.A�
rMr@c��eZdZdSrtrKr�r@r?r�z>ClassPropertiesAndMethods.test_subclass_propagation.<locals>.B�
rMr@c��dSr�r�r�s r?r�zEClassPropertiesAndMethods.test_subclass_propagation.<locals>.<lambda>�
s��4�r@)r^rErFrGrr�r�r�r$r�r�r�r�rrWri)	r:r{r�r�rLrO�	orig_hashr$r�s	         r?�test_subclass_propagationz3ClassPropertiesAndMethods.test_subclass_propagation�
sQ��	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��1�	�	�	�
�A�C�C����G�G�	�$�_��
�����a���"�%�%�%�%�%��
�����a���#�&�&�&�%�%��
�����a���#�&�&�&�%�%��
�����a���#�&�&�&���
����)�T�1�-�-�-�
�J�����a���#�&�&�&���
����)�T�1�-�-�-�
�J�����a���#�&�&�&���
����)�T�1�-�-�-�
�J�����a���"�%�%�%���
����)�T�1�-�-�-�
�J�����a���)�,�,�,�������������#�#�#�������#�#�#�	7�	7�	7�.���������#�#�#�������#�#�#�	'�	'�	'�$��
�������)�)�)�������#�#�#�������#�#�#�
��������#�#�#�
�E�������(�(�(�������#�#�#�
�M�	7�
�E�E�
�I�I�5�6�6�6�6���	�	�	��D�	����	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�
������'���
�
�
s�/N�
N�Nc�z�ddl}Gd�dt��}d}||��}|�|�|��|�|����Gd�dt��}|d��}	|�|��|�d��dS#t$rYdSwxYw)	Nrc��eZdZdS)�BClassPropertiesAndMethods.test_buffer_inheritance.<locals>.MyBytesNrKr�r@r?r�r��
rMr@r�r�c��eZdZdS)�@ClassPropertiesAndMethods.test_buffer_inheritance.<locals>.MyIntNrKr�r@r?r�r��
rMr@r�r�z2subclass of int should not have a buffer interface)�binasciir�rG�b2a_hexr-r�r�)r:r�r�r�rQr�s      r?�test_buffer_inheritancez1ClassPropertiesAndMethods.test_buffer_inheritance�
s��	����	�	�	�	�	�e�	�	�	����G�D�M�M��	
����)�)�!�,�,�h�.>�.>�t�.D�.D�E�E�E�	�	�	�	�	�C�	�	�	��E�"�I�I��	����Q�����I�I�J�K�K�K�K�K���	�	�	��D�D�	���s�*B,�,
B:�9B:c����ddl�ddl}G�fd�dt��}|d��}|�t	|��|��|�t	t|����t��|�t	t|����t��|�t
|��d��|�t|��d��|�t|��d��|�|���d��|�|���d��dS)Nrc� ��eZdZ�fd�Zd�ZdS)�GClassPropertiesAndMethods.test_str_of_str_subclass.<locals>.octetstringc�z����|�d�����d��S)N�ascii)r��encode�decode)r:r�s �r?r�zOClassPropertiesAndMethods.test_str_of_str_subclass.<locals>.octetstring.__str__�
s1����'�'����G�(<�(<�=�=�D�D�W�M�M�Mr@c��|dzS)Nz reprr�r�s r?r�zPClassPropertiesAndMethods.test_str_of_str_subclass.<locals>.octetstring.__repr__�
s���g�~�%r@N)r�r�r�r�r�)r�s�r?�octetstringr��
sB�������
N�
N�
N�
N�
N�
&�
&�
&�
&�
&r@r�r{�A�41zA repr)	r��ior@rGrIr��ordr�r�)r:r�r�r7r�s    @r?�test_str_of_str_subclassz2ClassPropertiesAndMethods.test_str_of_str_subclass�
sP��������	�	�	�	&�	&�	&�	&�	&�	&�	&�#�	&�	&�	&�
�K���������a���+�.�.�.�����c�!�f�f���s�+�+�+�����d�1�g�g����,�,�,�����Q����&�&�&�����Q����&�&�&�����a���(�+�+�+���������d�+�+�+���������x�0�0�0�0�0r@c��Gd�dt��}Gd�d��}|d��|_|�t|��t��|�t|����t��dS)Nc��eZdZdS)�LClassPropertiesAndMethods.test_repr_with_module_str_subclass.<locals>.StrSubNrKr�r@r?�StrSubr�rMr@r�c��eZdZdS)�JClassPropertiesAndMethods.test_repr_with_module_str_subclass.<locals>.SomeNrKr�r@r?�Somer�
rMr@r��example)r@r�rr�)r:r�r�s   r?�"test_repr_with_module_str_subclassz<ClassPropertiesAndMethods.test_repr_with_module_str_subclass	s���	�	�	�	�	�S�	�	�	�	�	�	�	�	�	�	�	� �&��+�+������d�4�j�j�#�.�.�.����d�4�4�6�6�l�l�C�0�0�0�0�0r@c���d�}|�|�d���d��t��}t�|ddd���|�|d��dS)	Nc��|Sr�r�r�s r?r�z;ClassPropertiesAndMethods.test_keyword_arguments.<locals>.fs���(r@r�r�uabc½€�latin1r�)�encodingr�sabc�?)rGre�	bytearrayr4)r:r��bas   r?�test_keyword_argumentsz0ClassPropertiesAndMethods.test_keyword_argumentss}�����������b��)�)�2�.�.�.�
�[�[�����2��$,�Y�	�	@�	@�	@�����[�)�)�)�)�)r@c���Gd�dt��}|��|_|�t��5|����ddd��dS#1swxYwYdS)Nc��eZdZdS)�8ClassPropertiesAndMethods.test_recursive_call.<locals>.ANrKr�r@r?r{r�rMr@r{)r^rer�RecursionErrorr`s  r?�test_recursive_callz-ClassPropertiesAndMethods.test_recursive_calls���	�	�	�	�	��	�	�	��Q�S�S��
�
�
�
�~�
.�
.�	�	��A�A�C�C�E�E�E�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A!�$A!c�X��g�G�fd�dt��}|��}|��g��~tj��|��dg��Gd�dt��}|��}|d=|�d��dS#t
$rYdSwxYw)Nc���eZdZ�fd�ZdS)�5ClassPropertiesAndMethods.test_delete_hook.<locals>.Cc�2����d��dSr�r)r:r&s �r?r4z=ClassPropertiesAndMethods.test_delete_hook.<locals>.C.__del__)s����
�
�1�
�
�
�
�
r@Nr4)r&s�r?r�r�(s.�������
�
�
�
�
�
�
r@r�rqc��eZdZdS)�5ClassPropertiesAndMethods.test_delete_hook.<locals>.DNrKr�r@r?rLr�1r�r@rLrz$invalid del() didn't raise TypeError)r^rGrrWr�r�)r:r�r^rLrOr&s     @r?�test_delete_hookz*ClassPropertiesAndMethods.test_delete_hook%s������	�	�	�	�	�	�	��	�	�	�
�A�C�C������b�!�!�!�
����������q�c�"�"�"����������
�A�C�C���1���i�i�>�?�?�?�?�?������$�$�$����s�B�
B)�(B)c�R�Gd�dt��}|��}	t|��|�d��n#t$rYnwxYwGd�dt��}|��}	t|��|�d��dS#t$rYdSwxYw)Nc��eZdZdS)�?ClassPropertiesAndMethods.test_hash_inheritance.<locals>.mydictNrKr�r@r?�mydictr�:rMr@r�z#hash() of dict subclass should failc��eZdZdS)�?ClassPropertiesAndMethods.test_hash_inheritance.<locals>.mylistNrKr�r@r?�mylistr�DrMr@r�z#hash() of list subclass should fail)r�rEr�r�r6)r:r�rOr�s    r?�test_hash_inheritancez/ClassPropertiesAndMethods.test_hash_inheritance7s��	�	�	�	�	�T�	�	�	��F�H�H��	=���G�G�G�
�I�I�;�<�<�<�<���	�	�	��D�	����
	�	�	�	�	�T�	�	�	��F�H�H��	=���G�G�G�
�I�I�;�<�<�<�<�<���	�	�	��D�D�	���s#�A�
A�A�2B�
B&�%B&c���ddz|�d��n#t$rYnwxYwd�d��|�d��n#t$rYnwxYwd�dg��|�d��n#t$rYnwxYwd�d��|�d	��n#t$rYnwxYwd
dz|�d��n#t$rYnwxYwdiz|�d
��n#t$rYnwxYwddz|�d��n#t$rYnwxYwddz|�d��n#t$rYnwxYwddz|�d��n#t$rYnwxYwddz|�d��n#t$rYnwxYw|�d���d��|�d���d��|�ddzd��|�ddzd��dS)NrDr�z'' + 5 doesn't raise TypeErrorr�z%''.split('') doesn't raise ValueErrorrz$''.join([0]) doesn't raise TypeError�5z'''.rindex('5') doesn't raise ValueErrorz%(n)sz&'%(n)s' % None doesn't raise TypeErrorz%(nz&'%(n' % {} '' doesn't raise ValueErrorz%*sr%z''%*s' % ('abc') doesn't raise TypeErrorz%*.*s)r%r�z,'%*.*s' % ('abc', 5) doesn't raise TypeErrorz%s�rqrrz%'%s' % (1, 2) doesn't raise TypeError�%z#'%' % None doesn't raise ValueError�534253rq�534253xz%c�)r�r��splitr�r2�rindexrG�isdigitr�s r?�test_str_operationsz-ClassPropertiesAndMethods.test_str_operationsNs���
�1�W�W��i�i�8�9�9�9�9������$�$������X�X�b�\�\�\��i�i�?�@�@�@�@������4�4������W�W�a�S�\�\�\��i�i�>�?�?�?�?������$�$������Y�Y�s�^�^�^��i�i�A�B�B�B�B������4�4������t�^�^��i�i�@�A�A�A�A������$�$������R�Z�Z��i�i�@�A�A�A�A������4�4������e�_�_��i�i�A�B�B�B�B������$�$������z�
!�
!��i�i�F�G�G�G�G������$�$������F�]�]��i�i�?�@�@�@�@������$�$������4�Z�Z��i�i�=�>�>�>�>������4�4�����	
����)�)�+�+�Q�/�/�/�����*�*�,�,�a�0�0�0�������6�*�*�*�������S�)�)�)�)�)s���
)�)�A�
A$�#A$�'B�
B �B �#C�
C�C�C9�9
D�D�	D$�$
D1�0D1�4E�
E�E�E:�:
F�F�
F%�%
F2�1F2�5G�
G�Gc��Gd�d��}|��}|��}||_||_t|��}dS)Nc��eZdZdS)�?ClassPropertiesAndMethods.test_deepcopy_recursive.<locals>.NodeNrKr�r@r?rXr�~rMr@rX)rXrDr)r:rXrDrXrXs     r?�test_deepcopy_recursivez1ClassPropertiesAndMethods.test_deepcopy_recursive|s]��	�	�	�	�	�	�	�	��D�F�F���D�F�F���������Q�K�K���r@c�Z�ddlm}|�|��}t|��|�|d��|�|d��|�|d��|�|j��d|_|�|jddi��dS)Nr)r?r��__file__r�rq)	r>r?r�r@rr�rKr�rG)r:r�rQs   r?�test_uninitialized_modulesz4ClassPropertiesAndMethods.test_uninitialized_modules�s���)�)�)�)�)�)�
�I�I�a�L�L���A�������a��,�,�,����a��,�,�,����a��'�'�'������$�$�$���������e�Q�Z�0�0�0�0�0r@c���G�fd�dt��}Gd�d|���|�|d��gd���|��d��gd����d��}|�|jd��|d��}|�|���|�|jd���d��}|�|���|�|jd��Gd�dt��}|�|dd	��|dd	f��Gd
�d|���|��dd	���dd	f��Gd�dt��}|�|dd	��||dd	f��Gd�d|���|��dd	����dd	f��dS)
Nc���eZdZ�fd�ZdS)�3ClassPropertiesAndMethods.test_funny_new.<locals>.Cc����t|t��rgd�St|t��rt����St�|��S)Nrs)r'r@r-r^r�)r�r�rLs  �r?r�z;ClassPropertiesAndMethods.test_funny_new.<locals>.C.__new__�sS����c�3�'�'�1�	�	�	�)9���S�)�)�1�&�.�.��2C�2C�+C�#�^�^�C�0�0�0r@NrT)rLs�r?r�r��s.�������
1�
1�
1�
1�
1�
1�
1r@r�c��eZdZd�ZdS)�3ClassPropertiesAndMethods.test_funny_new.<locals>.Dc��||_dSr�rE�r:r�s  r?r4z<ClassPropertiesAndMethods.test_funny_new.<locals>.D.__init__�rVr@NrMr�r@r?rLr��rWr@rLrrsrqc�$�eZdZed���ZdS)r�c��|Sr�r�r�s r?r�z;ClassPropertiesAndMethods.test_funny_new.<locals>.C.__new__�����r@N)r�r�r�rfr�r�r@r?r�z3ClassPropertiesAndMethods.test_funny_new.<locals>.C�s-������
�
�
��\�
�
�
r@rrc��eZdZdS�r�NrKr�r@r?rLz3ClassPropertiesAndMethods.test_funny_new.<locals>.D�rMr@c�$�eZdZed���ZdS)r�c��|Sr�r�r�s r?r�z;ClassPropertiesAndMethods.test_funny_new.<locals>.C.__new__�r�r@N)r�r�r�r�r�r�r@r?r�z3ClassPropertiesAndMethods.test_funny_new.<locals>.C�s-������
�
�
��[�
�
�
r@c��eZdZdSr�rKr�r@r?rLz3ClassPropertiesAndMethods.test_funny_new.<locals>.D�rMr@)r^rGr�r)r:r�rOrLs   @r?�test_funny_newz(ClassPropertiesAndMethods.test_funny_new�s����	1�	1�	1�	1�	1�	1�	1��	1�	1�	1�
	�	�	�	�	��	�	�	�	
�����3������+�+�+������3������+�+�+�
�A�d�G�G��������%�%�%�
�A�a�D�D�����a��#�#�#�������"�"�"�
�A�a�D�D�����a��#�#�#�������"�"�"�	�	�	�	�	��	�	�	�	
�����1�a���1�a��)�,�,�,�	�	�	�	�	��	�	�	������1�a���1�a��)�,�,�,�	�	�	�	�	��	�	�	�	
�����1�a���1�a��A�,�/�/�/�	�	�	�	�	��	�	�	������1�a���1�a��A�,�/�/�/�/�/r@c��Gd�dt��}|��}|}|dz}|�||df��|}|dz}|�||df��|}|dz}|�||df��|}|dz}|�||df��|}|dz}|�||df��|}|dz}|�||df��dS)Nc��eZdZd�ZdS)�2ClassPropertiesAndMethods.test_imul_bug.<locals>.Cc�
�||fSr�r�r�s  r?r{z;ClassPropertiesAndMethods.test_imul_bug.<locals>.C.__imul__�s���e�}�$r@N)r�r�r�r{r�r@r?r�r��rhr@r�r�rrrtlr��r^rG)r:r�r�r�s    r?�
test_imul_bugz'ClassPropertiesAndMethods.test_imul_bug�s/��	%�	%�	%�	%�	%��	%�	%�	%�
�A�C�C��
��	�S�������Q��H�%�%�%�
��	�Q�������Q��F�#�#�#�
��	�Q�������Q��F�#�#�#�
��	�V�������Q��K�(�(�(�
��	�T�	������Q��I�&�&�&�
��	�U�
������Q��J�'�'�'�'�'r@c�`��ddl}G�fd�dt��}|d��}|�d����|jd����|���d��|�|��}��|jd����|���d��|�|��}��|jd����|���d��dS)Nrc�6��eZdZdd�Zdd�Zd�Zd�Z�fd�ZdS)�7ClassPropertiesAndMethods.test_copy_setstate.<locals>.CNc�"�||_||_dSr�)r��_C__foorUs  r?r4z@ClassPropertiesAndMethods.test_copy_setstate.<locals>.C.__init__�s����� ��
�
�
r@c��||_dSr�rErUs  r?�setfooz>ClassPropertiesAndMethods.test_copy_setstate.<locals>.C.setfoo�rVr@c��|jSr�)r�r�s r?�getfooz>ClassPropertiesAndMethods.test_copy_setstate.<locals>.C.getfoo�rr@c��|jgSr�rEr�s r?�__getstate__zDClassPropertiesAndMethods.test_copy_setstate.<locals>.C.__getstate__�s����z�!r@c�v����t|��d��|dx|_|_dSr)rGrr�r�)rI�lstr:s  �r?�__setstate__zDClassPropertiesAndMethods.test_copy_setstate.<locals>.C.__setstate__�s5���� � ��S���1�-�-�-�*-�a�&�0���e�i�i�ir@r�)r�r�r�r4r�r�r�r�r�s�r?r�r��st�������
!�
!�
!�
!�
�
�
�
�
"�
"�
"�
"�
"�
"�
1�
1�
1�
1�
1�
1�
1r@r�r�r)r�r^r�rGr�r�r)r:r�r�rDrXs`    r?�test_copy_setstatez,ClassPropertiesAndMethods.test_copy_setstate�s&�������	1�	1�	1�	1�	1�	1�	1��	1�	1�	1�
�A�b�E�E��	�������������#�#�#���������R�(�(�(��I�I�a�L�L��������#�#�#���������R�(�(�(��M�M�!����������#�#�#���������R�(�(�(�(�(r@c�	�|�ddd�d��|�dtd��d��|�t�dtd����d��Gd�dt��}|�|d��dd�d��|�|d��td��d��|�|d���td����d��|�ddd�d��|�dtd��d��|�t�dtd����d��Gd	�d
t��}|�|d��dd�d��|�|d��td��d��|�|d���td����d��|�gd�dd�ddg��|�gd�td��ddg��|�t
�gd�td����ddg��Gd�d
t
��}|�|gd���dd�ddg��|�|gd���td��ddg��|�|gd����td����ddg��|gd���}ddg|tdd��<|�|gd���ddg|tddd��<|�|gd���|�tdd��ddg��|�|gd���|�tddd��ddg��|�|gd���dS)NrPrw�hellc��eZdZd�ZdS)�0ClassPropertiesAndMethods.test_slices.<locals>.Sc�8�t�||��Sr�)r@r[r�s  r?r[z<ClassPropertiesAndMethods.test_slices.<locals>.S.__getitem__�s�����t�Q�/�/�/r@Nr+r�r@r?rmr��s#������
0�
0�
0�
0�
0r@rmrsrrr�c��eZdZd�ZdS)�0ClassPropertiesAndMethods.test_slices.<locals>.Tc�8�t�||��Sr�)r�r[r�s  r?r[z<ClassPropertiesAndMethods.test_slices.<locals>.T.__getitem__s���(�(��q�1�1�1r@Nr+r�r@r?r�r��#������
2�
2�
2�
2�
2r@r�rqc��eZdZd�ZdS)�0ClassPropertiesAndMethods.test_slices.<locals>.Lc�8�t�||��Sr�)r6r[r�s  r?r[z<ClassPropertiesAndMethods.test_slices.<locals>.L.__getitem__
s���'�'��a�0�0�0r@Nr+r�r@r?r�r	r�r@r�rt)rqrtrrr)rtrqrr)rtrrrq)rrrtrq)rGr_r@r[r�r6ri)r:rmr�r�rDs     r?�test_slicesz%ClassPropertiesAndMethods.test_slices�sh��	
�����!���f�-�-�-������q���*�F�3�3�3��������%��(�(�;�;�V�D�D�D�	0�	0�	0�	0�	0��	0�	0�	0�	
�����7���B�Q�B���0�0�0������7���E�!�H�H�-�v�6�6�6������7���/�/��a���9�9�6�B�B�B������!���e�,�,�,������q���*�E�2�2�2�����*�*�7�E�!�H�H�=�=�u�E�E�E�	2�	2�	2�	2�	2��	2�	2�	2�	
�����7���B�Q�B���/�/�/������7���E�!�H�H�-�u�5�5�5������7���/�/��a���9�9�5�A�A�A��������!���q��e�,�,�,��������q���*�Q�q�E�2�2�2�����)�)�'�'�'�5��8�8�<�<�q��e�D�D�D�	1�	1�	1�	1�	1��	1�	1�	1�	
�����7�7�7���B�Q�B��!�A��/�/�/������7�7�7���E�!�H�H�-��!�u�5�5�5������7�7�7���/�/��a���9�9�A�a�5�A�A�A�
�A�g�g�g�J�J���A���%��1�+�+������G�G�G�$�$�$��q�E��%��1�a�.�.������G�G�G�$�$�$�	�
�
�e�A�q�k�k�A�a�5�)�)�)�����G�G�G�$�$�$�	�
�
�e�A�q�!�n�n�q��e�,�,�,�����G�G�G�$�$�$�$�$r@c����G�fd�dt������}d|_~tj��|�t�j��d���`dS)Nc���eZdZgZ�fd�ZdS)�>ClassPropertiesAndMethods.test_subtype_resurrection.<locals>.Cc�<���j�|��dSr�)�	containerr�r�s �r?r4zFClassPropertiesAndMethods.test_subtype_resurrection.<locals>.C.__del__ s�����"�"�4�(�(�(�(�(r@N)r�r�r�rr4rNs�r?r�r	s3��������I�
)�
)�
)�
)�
)�
)�
)r@r�r�rq)r^rvrrWrGrrr4)r:r^r�s  @r?�test_subtype_resurrectionz3ClassPropertiesAndMethods.test_subtype_resurrections����	)�	)�	)�	)�	)�	)�	)��	)�	)�	)�
�A�C�C�����

����������Q�[�)�)�1�-�-�-�
�I�I�Ir@c�l�Gd�dt��}d}td��D]
}||��}�~dS)Nc��eZdZdgZd�ZdS)�9ClassPropertiesAndMethods.test_slots_trash.<locals>.trashr�c��||_dSr�r�r�s  r?r4zBClassPropertiesAndMethods.test_slots_trash.<locals>.trash.__init__8r�r@N)r�r�r�r�r4r�r@r?�trashr6s*��������I�
�
�
�
�
r@riP�)r^r�)r:rr7r�s    r?�test_slots_trashz*ClassPropertiesAndMethods.test_slots_trash3s^��	�	�	�	�	�F�	�	�	�
���u���	�	�A���a���A�A�
�A�Ar@c�L�Gd�dt��}Gd�dt��}Gd�d||��}tj��r |�|j|j��|�|d��|�|d��d	|��_dS)
Nc��eZdZdZdS)�DClassPropertiesAndMethods.test_slots_multiple_inheritance.<locals>.Ar�Nr�r�r@r?r{rA��������I�I�Ir@r{c��eZdZdS)�DClassPropertiesAndMethods.test_slots_multiple_inheritance.<locals>.BNrKr�r@r?r�rCrMr@r�c��eZdZdZdS)�DClassPropertiesAndMethods.test_slots_multiple_inheritance.<locals>.Cr�Nr�r�r@r?r�rErr@r�rKrgrr)r^rr�rG�
__basicsize__r�r�)r:r{r�r�s    r?�test_slots_multiple_inheritancez9ClassPropertiesAndMethods.test_slots_multiple_inheritance?s���	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��!�	�	�	��$�&�&�	?����Q�_�a�o�>�>�>����1�j�)�)�)����1�m�,�,�,��������r@c��Gd�dt��}|��}|�|dzd��|�|dzd��|�d|zd��|�d|zd��dS)Nc��eZdZd�Zd�ZdS)�.ClassPropertiesAndMethods.test_rmul.<locals>.Cc��dS)Nr
r�r�s  r?r}z6ClassPropertiesAndMethods.test_rmul.<locals>.C.__mul__Q����ur@c��dS)N�rmulr�r�s  r?rz7ClassPropertiesAndMethods.test_rmul.<locals>.C.__rmul__Ss���vr@N)r�r�r�r}rr�r@r?r�rPs2������
�
�
�
�
�
�
�
r@r�rrr
g������@r#r�r1s   r?�	test_rmulz#ClassPropertiesAndMethods.test_rmulMs���	�	�	�	�	��	�	�	�

�A�C�C������1��e�$�$�$�����3���&�&�&�����1��f�%�%�%�����Q���'�'�'�'�'r@c�J�Gd�dt��}|��}|dz}dS)Nc��eZdZd�ZdS)�.ClassPropertiesAndMethods.test_ipow.<locals>.Cc��dSr�r�r�s  r?�__ipow__z7ClassPropertiesAndMethods.test_ipow.<locals>.C.__ipow___����r@N�r�r�r�r)r�r@r?r�r'^�#������
�
�
�
�
r@r�rrr�r1s   r?�	test_ipowz#ClassPropertiesAndMethods.test_ipow[sF��	�	�	�	�	��	�	�	�
�A�C�C��	�a����r@c��Gd�d��}Gd�d|��}Gd�d|��}|��}|��}|��}||z}|�|d��||z}|�|d��dS)	Nc��eZdZd�ZdS)�FClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.Ac��tSr�r�r�s  r?r)zOClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.A.__ipow__fr�r@Nr+r�r@r?r{r0er�r@r{c��eZdZd�ZdS)�FClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.Bc��dSr�r�r�s  r?rizOClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.B.__rpow__j����qr@N�r�r�r�rir�r@r?r�r3i�#������
�
�
�
�
r@r�c��eZdZd�ZdS)�FClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.Cc��dSrDr�r�s  r?rgzNClassPropertiesAndMethods.test_ipow_returns_not_implemented.<locals>.C.__pow__nr5r@N�r�r�r�rgr�r@r?r�r9mr7r@r�rqrrr�)r:r{r�r�rDrXr^s       r?�!test_ipow_returns_not_implementedz;ClassPropertiesAndMethods.test_ipow_returns_not_implementedds���	&�	&�	&�	&�	&�	&�	&�	&�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�
�A�C�C��
�A�C�C��
�A�C�C��	�a�������A����	�a�������A�����r@c��Gd�d��}t��}|��}||z}|�|d��dS)Nc��eZdZd�ZdS)�1ClassPropertiesAndMethods.test_no_ipow.<locals>.Bc��dSr�r�r�s  r?riz:ClassPropertiesAndMethods.test_no_ipow.<locals>.B.__rpow__|r5r@Nr6r�r@r?r�r?{r7r@r�rqr�)r:r�rDrXs    r?�test_no_ipowz&ClassPropertiesAndMethods.test_no_ipowzse��	�	�	�	�	�	�	�	�
�H�H��
�A�C�C��	�a�������A�����r@c��d}|�t��5}|dz}ddd��n#1swxYwY|�dt|j����|�t��5}|dz}ddd��n#1swxYwY|�dt|j����dS)Nrrz#unsupported operand type(s) for **=z"unsupported operand type(s) for **)rr�rr@r�)r:r�r�r�s    r?�test_ipow_exception_textz2ClassPropertiesAndMethods.test_ipow_exception_text�s)����
�
�
�y�
)�
)�	�R�
�!�G�A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�;�S���=N�=N�O�O�O�
�
�
�y�
)�
)�	�R��Q��A�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�:�C���<M�<M�N�N�N�N�Ns�/�3�3�<B�B�Bc�l��Gd�dt��}G�fd�dt���Gd�d|��}Gd�d|��}|��}|��}|f|_�f|_|�|���d	��|�|���d	��|�|jd
��|�|jd
��|�����|g��	|`|�d��n#ttf$rYnwxYw	d|_|�d
��n?#t$r2}t|��dkr|�d��Yd}~nd}~wwxYw	|f|_|�d��n#t$rYnwxYw	||f|_|�d��n#t$rYnwxYw	|f|_|�d��dS#t$rYdSwxYw)Nc��eZdZdS)�7ClassPropertiesAndMethods.test_mutable_bases.<locals>.CNrKr�r@r?r�rF�rMr@r�c�(���eZdZ��fd�Zd�Z�xZS)�8ClassPropertiesAndMethods.test_mutable_bases.<locals>.C2c�Z��|dkrdSt�|���|��S)NrDrr)rsr$)r:rvr�rs  ��r?r$zIClassPropertiesAndMethods.test_mutable_bases.<locals>.C2.__getattribute__�s-����3�;�;��1� ��T�?�?�;�;�D�A�A�Ar@c��dSr�r�r�s r?rNz=ClassPropertiesAndMethods.test_mutable_bases.<locals>.C2.meth�r5r@)r�r�r�r$rNrv)rr�s@�r?r�rH�sS��������
B�
B�
B�
B�
B�
B�

�
�
�
�
�
�
r@r�c��eZdZdS)�7ClassPropertiesAndMethods.test_mutable_bases.<locals>.DNrKr�r@r?rLrL�rMr@rLc��eZdZdS)�7ClassPropertiesAndMethods.test_mutable_bases.<locals>.ENrKr�r@r?r�rN�rMr@r�rqrrz&shouldn't be able to delete .__bases__r�z)shouldn't be able to set .__bases__ to ()z/a new-style class can't have only classic basesz'wrong error message for .__bases__ = ()z.shouldn't be able to create inheritance cyclesz#didn't detect repeated base classes)
r^rLrGrNrDrAr�r�r�r@)r:r�rLr�rOr:r�r�s       @r?�test_mutable_basesz,ClassPropertiesAndMethods.test_mutable_bases�s���	�	�	�	�	��	�	�	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�
�A�C�C��
�A�C�C���d����e�����������1�%�%�%���������1�%�%�%������a� � � ������a� � � �����*�*�,�,�q�c�2�2�2�	@���
�I�I�>�?�?�?�?���>�*�	�	�	��D�	����
	C��A�K�

�I�I�A�B�B�B�B��	�	E�	E�	E��3�x�x�L�L�L��	�	�C�D�D�D����������	E����	H��$�A�K�

�I�I�F�G�G�G�G��	�	�	�	��D�	����	=��a�&�A�K�
�I�I�;�<�<�<�<���	�	�	��D�	����
	H��$�A�K�
�I�I�F�G�G�G�G�G���	�	�	��D�D�	���s`�D2�2E�E�
E'�'
F#�1(F�F#�'G�
G�G�	G5�5
H�H�H%�%
H3�2H3c���d�tj���D��}|D]]}t�|d��|tur7|t
urd}nd}|�t|j��||���^Gd�dt��}Gd�dt��}Gd	�d
|��}	tf|_|�d��n#t$rYnwxYw	tft_|�d��n#t$rYnwxYw	|tf|_|�d
��dS#t$rYdSwxYw)Nc�<�g|]}t|t���|��Sr�)r'rI)r<�tps  r?r=z@ClassPropertiesAndMethods.test_builtin_bases.<locals>.<listcomp>�s6��2�2�2��&�r�4�0�0�2��2�2�2r@rLrrrqc��eZdZdS)�7ClassPropertiesAndMethods.test_builtin_bases.<locals>.LNrKr�r@r?r�rT�rMr@r�c��eZdZdS)�7ClassPropertiesAndMethods.test_builtin_bases.<locals>.CNrKr�r@r?r�rV�rMr@r�c��eZdZdS)�7ClassPropertiesAndMethods.test_builtin_bases.<locals>.DNrKr�r@r?rLrX�rMr@rLz/shouldn't turn list subclass into dict subclassz-shouldn't be able to assign to list.__bases__z#best_base calculation found wanting)
�builtinsrK�valuesr^r$�ExceptionGrouprGrrLr6r�r�r�)r:�
builtin_typesrR�	num_basesr�r�rLs       r?�test_builtin_basesz,ClassPropertiesAndMethods.test_builtin_bases�s���2�2�h�&7�&>�&>�&@�&@�2�2�2�
��	C�	C�B��#�#�B��4�4�4�������'�'� !�I�I� !�I�� � ��R�\�!2�!2�I�r�B�B�B��	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	I��'�A�K�
�I�I�G�H�H�H�H���	�	�	��D�	����
	G�"�W�D�N�
�I�I�E�F�F�F�F���	�	�	��D�	����
	=��d�)�A�K�
�I�I�;�<�<�<�<�<���	�	�	��D�D�	���s6�>
C!�!
C.�-C.�2D�
D'�&D'�+E�
E�Ec	�T�|�t��5Gd�dtd����}ddd��n#1swxYwY|�t��5Gd�dttd����}ddd��n#1swxYwY|�t��5Gd�dtd��t��}ddd��n#1swxYwYGd�dt��}|�t��5Gd�d|td����}ddd��n#1swxYwY|�t��5Gd�dtd��|��}ddd��n#1swxYwYGd	�dt��}|�t��5td��f|_ddd��n#1swxYwY|�t��5ttd��f|_ddd��n#1swxYwY|�t��5td��tf|_ddd��n#1swxYwY|�t��5|td��f|_ddd��n#1swxYwY|�t��5td��|f|_ddd��dS#1swxYwYdS)
Nc��eZdZdS��>ClassPropertiesAndMethods.test_unsubclassable_types.<locals>.XNrKr�r@r?r�rb�rr@r�c��eZdZdSrarKr�r@r?r�z>ClassPropertiesAndMethods.test_unsubclassable_types.<locals>.Xrr@c��eZdZdSrarKr�r@r?r�z>ClassPropertiesAndMethods.test_unsubclassable_types.<locals>.Xrr@c��eZdZdS)�>ClassPropertiesAndMethods.test_unsubclassable_types.<locals>.ONrKr�r@r?r0rfrMr@r0c��eZdZdSrarKr�r@r?r�z>ClassPropertiesAndMethods.test_unsubclassable_types.<locals>.Xrr@c��eZdZdSrarKr�r@r?r�z>ClassPropertiesAndMethods.test_unsubclassable_types.<locals>.Xrr@c��eZdZdSrarKr�r@r?r�z>ClassPropertiesAndMethods.test_unsubclassable_types.<locals>.XrMr@)rr�rIr^rL)r:r�r0s   r?�test_unsubclassable_typesz3ClassPropertiesAndMethods.test_unsubclassable_types�s���
�
�
�y�
)�
)�	�	�
�
�
�
�
�D��J�J�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�y�
)�
)�	�	�
�
�
�
�
�F�D��J�J�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�y�
)�
)�	�	�
�
�
�
�
�D��J�J��
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	��	�	�	�
�
�
�y�
)�
)�	�	�
�
�
�
�
�A�t�D�z�z�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�y�
)�
)�	�	�
�
�
�
�
�D��J�J��
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�	�	�	��	�	�	�
�
�
�y�
)�
)�	&�	&��t�*�*�+�A�K�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�
�
�
�y�
)�
)�	-�	-� �$�t�*�*�,�A�K�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
�
�
�y�
)�
)�	-�	-��t�*�*�f�,�A�K�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
�
�
�y�
)�
)�	(�	(��T�$�Z�Z�-�A�K�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
�
�
�y�
)�
)�	(�	(��t�*�*�a�-�A�K�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s��A�A�
A�("B�B�B�;"C)�)C-�0C-�!E
�
E�E�/F�F�F�G2�2G6�9G6�H?�?I�I�$J�J�J�1K�K�K�9L�L!�$L!c��
�G�
fd�dt���
Gd�dt��}Gd�dt��}Gd�dt��}Gd	�d
|��}Gd�d|��}Gd
�d|�
���}Gd�d||���}|j}|j}		|f|_|�d��dS#t
$r:|�|j|��|�|j|	��YdSwxYw)Nc�(���eZdZ��fd�Zd�Z�xZS)�OClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkOncec�^��d|_t�|����|||��Sr�)�flagrsr�)r:r=rSr��WorkOncers    ��r?r�zWClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkOnce.__new__s.�����	��X�t�,�,�4�4�X�t�U�B�O�O�Or@c��|jdkrtd���|xjdz
c_t�|��S)Nr�bozorq)ror�rIr�r�s r?r�zSClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkOnce.mro!s:���9�q�=�=�&�v�.�.�.��I�I��N�I�I��8�8�D�>�>�)r@)r�r�r�r�r�rv)rrps@�r?rprmsS��������
P�
P�
P�
P�
P�
P�
*�
*�
*�
*�
*�
*�
*r@rpc��eZdZd�ZdS)�QClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkAlwaysc�6�t�|��Sr�)rIr�r�s r?r�zUClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.WorkAlways.mro)s��
�x�x��~�~�%r@Nr�r�r@r?�
WorkAlwaysrt(s#������
&�
&�
&�
&�
&r@rvc��eZdZdS)�HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.CNrKr�r@r?r�rx0rMr@r�c��eZdZdS)�IClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.C2NrKr�r@r?r�rz3rMr@r�c��eZdZdS)�HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.DNrKr�r@r?rLr|6rMr@rLc��eZdZdS)�HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.ENrKr�r@r?r�r~9rMr@r�c��eZdZdS)�HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.FNrKr�r@r?rr�<rMr@rr@c��eZdZdS)�HClassPropertiesAndMethods.test_mutable_bases_with_failing_mro.<locals>.GNrKr�r@r?rxr�?rMr@rxzexception not propagated)rIr^r`rLr�r�rG)r:rvr�r�rLr�rrx�E_mro_before�D_mro_beforerps          @r?�#test_mutable_bases_with_failing_mroz=ClassPropertiesAndMethods.test_mutable_bases_with_failing_mros����		*�		*�		*�		*�		*�		*�		*�t�		*�		*�		*�	&�	&�	&�	&�	&��	&�	&�	&�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��X�	�	�	�	�	�	�	�	�	��Z�	�	�	�	��y���y��	2��%�A�K�

�I�I�0�1�1�1�1�1��	�	6�	6�	6����Q�Y��5�5�5����Q�Y��5�5�5�5�5�5�	6���s�B:�:AC>�=C>c��Gd�dt��}Gd�dt��}Gd�d||��}Gd�d||��}Gd	�d
||��}	||f|_|�d��dS#t$rYdSwxYw)Nc��eZdZdS)�JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.ANrKr�r@r?r{r�SrMr@r{c��eZdZdS)�JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.BNrKr�r@r?r�r�VrMr@r�c��eZdZdS)�JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.CNrKr�r@r?r�r�YrMr@r�c��eZdZdS)�JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.DNrKr�r@r?rLr�\rMr@rLc��eZdZdS)�JClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflict.<locals>.ENrKr�r@r?r�r�_rMr@r�zdidn't catch MRO conflict)r^rLr�r�)r:r{r�r�rLr�s      r?�%test_mutable_bases_catch_mro_conflictz?ClassPropertiesAndMethods.test_mutable_bases_catch_mro_conflictQs)��	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��1�	�	�	�	�	�	�	�	��1�	�	�	�	�	�	�	�	��1�	�	�	�	3��a�&�A�K�
�I�I�1�2�2�2�2�2���	�	�	��D�D�	���s�	A5�5
B�Bc���Gd�dt��}|j}d|_|�|j|jf|df��d|_|�|j|jf|df��dS)Nc��eZdZdS)�7ClassPropertiesAndMethods.test_mutable_names.<locals>.CNrKr�r@r?r�r�krMr@r�rLzD.E)r^r�r�rG)r:r�r�s   r?�test_mutable_namesz,ClassPropertiesAndMethods.test_mutable_namesis���	�	�	�	�	��	�	�	��l����
����!�,��
�3�c�3�Z�@�@�@���
����!�,��
�3�c�5�\�B�B�B�B�Br@c�z��G�fd�dt��}Gd�d���|d���_d�_dS)Nc���eZdZ�fd�ZdS)�<ClassPropertiesAndMethods.test_evil_type_name.<locals>.Nastyc���d�_dS)Nr�)r�r�s �r?r4zDClassPropertiesAndMethods.test_evil_type_name.<locals>.Nasty.__del__|s���$��
�
�
r@Nr4rNs�r?�Nastyr�{s.�������
%�
%�
%�
%�
%�
%�
%r@r�c��eZdZdS)�8ClassPropertiesAndMethods.test_evil_type_name.<locals>.CNrKr�r@r?r�r�rMr@r�r%�normal)r@r�)r:r�r�s  @r?�test_evil_type_namez-ClassPropertiesAndMethods.test_evil_type_namews{���	%�	%�	%�	%�	%�	%�	%�C�	%�	%�	%�	�	�	�	�	�	�	�	��U�5�\�\��
���
�
�
r@c��Gd�dt��}|�|d��dzd��|�d|d��zd��Gd�dt��}|�|��dzd��|�d|��zd	��Gd
�d|��}|�|��|��zd��|�|��|��zd
��Gd�d|��}|�|j|j��|�|��dzd��|�d|��zd	��|�|��|��zd��|�|��|��zd��dS)Nc��eZdZd�Zd�ZdS)�;ClassPropertiesAndMethods.test_subclass_right_op.<locals>.Bc��dS)N�B.__floordiv__r�r�s  r?�__floordiv__zHClassPropertiesAndMethods.test_subclass_right_op.<locals>.B.__floordiv__����'�'r@c��dS)N�B.__rfloordiv__r�r�s  r?�
__rfloordiv__zIClassPropertiesAndMethods.test_subclass_right_op.<locals>.B.__rfloordiv__����(�(r@N�r�r�r�r�r�r�r@r?r�r���2������
(�
(�
(�
)�
)�
)�
)�
)r@r�rqr�r�c��eZdZd�Zd�ZdS)�;ClassPropertiesAndMethods.test_subclass_right_op.<locals>.Cc��dS)N�C.__floordiv__r�r�s  r?r�zHClassPropertiesAndMethods.test_subclass_right_op.<locals>.C.__floordiv__�r�r@c��dS)N�C.__rfloordiv__r�r�s  r?r�zIClassPropertiesAndMethods.test_subclass_right_op.<locals>.C.__rfloordiv__�r�r@Nr�r�r@r?r�r��r�r@r�r�r�c��eZdZd�Zd�ZdS)�;ClassPropertiesAndMethods.test_subclass_right_op.<locals>.Dc��dS)N�D.__floordiv__r�r�s  r?r�zHClassPropertiesAndMethods.test_subclass_right_op.<locals>.D.__floordiv__�r�r@c��dS)N�D.__rfloordiv__r�r�s  r?r�zIClassPropertiesAndMethods.test_subclass_right_op.<locals>.D.__rfloordiv__�r�r@Nr�r�r@r?rLr��r�r@rLr�r�c��eZdZdS)�;ClassPropertiesAndMethods.test_subclass_right_op.<locals>.ENrKr�r@r?r�r��rMr@r�)r-rGr^r�)r:r�r�rLr�s     r?�test_subclass_right_opz0ClassPropertiesAndMethods.test_subclass_right_op�s8��	)�	)�	)�	)�	)��	)�	)�	)�	
�����1�����$4�5�5�5�����a�a��d�d��$5�6�6�6�	)�	)�	)�	)�	)��	)�	)�	)�	
���������#3�4�4�4�����a�a�c�c��#4�5�5�5�	)�	)�	)�	)�	)��	)�	)�	)�	
������������%5�6�6�6�������������%6�7�7�7�	�	�	�	�	��	�	�	�	
�����!�/�:�:�:����������#3�4�4�4�����a�a�c�c��#4�5�5�5�������������%5�6�6�6�������������%5�6�6�6�6�6r@z)testing an internal kind of method objectc��gd�}dddd�}|�t�|��|��|�i�|��|��tjd}|�|�dt��|��|��|�|�i��|��|��	|�dd��|�d��n#t$rYnwxYw	|�d��|�d��n#t$rYnwxYw	|�dd��|�d��n#t$rYnwxYw	|�dt��|�d��dS#t$rYdSwxYw)Nrs�fromkeysz0shouldn't have allowed descr.__get__(None, None)r�z(shouldn't have allowed descr.__get__(42)z.shouldn't have allowed descr.__get__(None, 42)z/shouldn't have allowed descr.__get__(None, int))rGr�r�rKrcr�r�r-)r:r�rMr�s    r?�test_meth_class_getz-ClassPropertiesAndMethods.test_meth_class_get�s���i�i���4�D�)�)��������s�+�+�S�1�1�1�������S�)�)�3�/�/�/��
�j�)��	
���2����t�T�2�2�3�7�7��=�=�=����*����r�*�*�3�/�/��5�5�5�	J��M�M�$��%�%�%�
�I�I�H�I�I�I�I���	�	�	��D�	����	B��M�M�"����
�I�I�@�A�A�A�A���	�	�	��D�	����	H��M�M�$��#�#�#�
�I�I�F�G�G�G�G���	�	�	��D�	����	I��M�M�$��$�$�$�
�I�I�G�H�H�H�H�H���	�	�	��D�D�	���sH�D�
D�D�E�
E�E�F�
F�F�G�
G�Gc��Gd�dt��}Gd�d��}|��}||��}|�||��|�||��Gd�d|��}|��}||��}|�||��|�||��Gd�dt��}|��}||��}|�||��|�||��Gd�d|��}|��}||��}|�||��|�||��dS)	Nc��eZdZd�Zd�ZdS)�<ClassPropertiesAndMethods.test_isinst_isclass.<locals>.Proxyc��||_dSr���_Proxy__objr+s  r?r4zEClassPropertiesAndMethods.test_isinst_isclass.<locals>.Proxy.__init__�rr@c��|�d��rt�||��St|j|��S�N�_Proxy__�rar^r$rJr�r�s  r?r$zMClassPropertiesAndMethods.test_isinst_isclass.<locals>.Proxy.__getattribute__��>���?�?�:�.�.�5�!�2�2�4��>�>�>�"�4�:�t�4�4�4r@N�r�r�r�r4r$r�r@r?rWr���2������
!�
!�
!�
5�
5�
5�
5�
5r@rWc��eZdZdS��8ClassPropertiesAndMethods.test_isinst_isclass.<locals>.CNrKr�r@r?r�r��rMr@r�c��eZdZdS��8ClassPropertiesAndMethods.test_isinst_isclass.<locals>.DNrKr�r@r?rLr��rMr@rLc��eZdZdSr�rKr�r@r?r�z8ClassPropertiesAndMethods.test_isinst_isclass.<locals>.C�rMr@c��eZdZdSr�rKr�r@r?rLz8ClassPropertiesAndMethods.test_isinst_isclass.<locals>.DrMr@)r^r)r:rWr�rD�parLs      r?�test_isinst_isclassz-ClassPropertiesAndMethods.test_isinst_isclass�s���	5�	5�	5�	5�	5�F�	5�	5�	5�	�	�	�	�	�	�	�	�
�A�C�C��
�U�1�X�X�����a��#�#�#����b�!�$�$�$�	�	�	�	�	��	�	�	�
�A�C�C��
�U�1�X�X�����a��#�#�#����b�!�$�$�$�	�	�	�	�	��	�	�	�
�A�C�C��
�U�1�X�X�����a��#�#�#����b�!�$�$�$�	�	�	�	�	��	�	�	�
�A�C�C��
�U�1�X�X�����a��#�#�#����b�!�$�$�$�$�$r@c����Gd�dt��}Gd�dt��}G�fd�d|������}||��}|��jd|��d��dS)	Nc��eZdZd�Zd�ZdS)�9ClassPropertiesAndMethods.test_proxy_super.<locals>.Proxyc��||_dSr�r�r+s  r?r4zBClassPropertiesAndMethods.test_proxy_super.<locals>.Proxy.__init__rr@c��|�d��rt�||��St|j|��Sr�r�r�s  r?r$zJClassPropertiesAndMethods.test_proxy_super.<locals>.Proxy.__getattribute__r�r@Nr�r�r@r?rWr�
r�r@rWc��eZdZd�ZdS)�5ClassPropertiesAndMethods.test_proxy_super.<locals>.Bc��dS)NzB.fr�r�s r?r�z7ClassPropertiesAndMethods.test_proxy_super.<locals>.B.fr!r@Nrwr�r@r?r�r�s#������
�
�
�
�
r@r�c�"���eZdZ��fd�Z�xZS)�5ClassPropertiesAndMethods.test_proxy_super.<locals>.Cc�N��t�|�����dzS)Nz->C.f)rsr�)r:r�rs ��r?r�z7ClassPropertiesAndMethods.test_proxy_super.<locals>.C.fs"����Q��~�~�'�'�)�)�G�3�3r@)r�r�r�r�rv)rr�s@�r?r�r�s>��������
4�
4�
4�
4�
4�
4�
4�
4�
4�
4r@r�r�zB.f->C.f)r^rGrK)r:rWr�r�r�r�s     @r?�test_proxy_superz*ClassPropertiesAndMethods.test_proxy_supers����	5�	5�	5�	5�	5�F�	5�	5�	5�	�	�	�	�	��	�	�	�	4�	4�	4�	4�	4�	4�	4��	4�	4�	4��a�c�c���E�#�J�J��������C���+�+�Z�8�8�8�8�8r@c�$�	t�tdd��|�d��n#t$rYnwxYw	t�td��|�d��dS#t$rYdSwxYw)Nr�r�z"Carlo Verre __setattr__ succeeded!r�z"Carlo Verre __delattr__ succeeded!)r^r(r@r�r�r+r�s r?�test_carloverrez)ClassPropertiesAndMethods.test_carloverre"s���	<����s�E�2�.�.�.�
�I�I�:�;�;�;�;���	�	�	��D�	����	<����s�G�,�,�,�
�I�I�:�;�;�;�;�;���	�	�	��D�D�	���s!�!9�
A�A�
 B�
B�Bc���Gd�dt��}Gd�d��}Gd�d||��}|dtfi��}	d|_dS#t$r|�d	��YdSwxYw)
Nc��eZdZd�ZdS)�HClassPropertiesAndMethods.test_carloverre_multi_inherit_valid.<locals>.Ac�>�t�|||��dSr�)rIr(�r�r
rs   r?r(zTClassPropertiesAndMethods.test_carloverre_multi_inherit_valid.<locals>.A.__setattr__3s ��� � ��c�5�1�1�1�1�1r@N�r�r�r�r(r�r@r?r{r�2rr@r{c��eZdZdS)�HClassPropertiesAndMethods.test_carloverre_multi_inherit_valid.<locals>.BNrKr�r@r?r�r�6rMr@r�c��eZdZdS)�HClassPropertiesAndMethods.test_carloverre_multi_inherit_valid.<locals>.CNrKr�r@r?r�r�9rMr@r�rLTz1setattr through direct base types should be legal)rIr^r
r�r��r:r{r�r�r�s     r?�#test_carloverre_multi_inherit_validz=ClassPropertiesAndMethods.test_carloverre_multi_inherit_valid1s���	2�	2�	2�	2�	2��	2�	2�	2�	�	�	�	�	�	�	�	�	�	�	�	�	��1�	�	�	��a��f�Y��#�#��	K��C�H�H�H���	K�	K�	K��I�I�I�J�J�J�J�J�J�	K���s�A
�
A0�/A0c���Gd�dt��}Gd�d��}Gd�d||��}|dtfi��}	d|_|�d	��dS#t$rYdSwxYw)
Nc��eZdZd�ZdS)�JClassPropertiesAndMethods.test_carloverre_multi_inherit_invalid.<locals>.Ac�>�t�|||��dSr�)r^r(r�s   r?r(zVClassPropertiesAndMethods.test_carloverre_multi_inherit_invalid.<locals>.A.__setattr__Ds ���"�"�3��U�3�3�3�3�3r@Nr�r�r@r?r{r�Cs#������
4�
4�
4�
4�
4r@r{c��eZdZdS)�JClassPropertiesAndMethods.test_carloverre_multi_inherit_invalid.<locals>.BNrKr�r@r?r�r�GrMr@r�c��eZdZdS)�JClassPropertiesAndMethods.test_carloverre_multi_inherit_invalid.<locals>.CNrKr�r@r?r�r�JrMr@r�rLTz6setattr through indirect base types should be rejected)rIr^r
r�r�r�s     r?�%test_carloverre_multi_inherit_invalidz?ClassPropertiesAndMethods.test_carloverre_multi_inherit_invalidBs���	4�	4�	4�	4�	4��	4�	4�	4�	�	�	�	�	�	�	�	�	�	�	�	�	��1�	�	�	��a��f�Y��#�#��	P��C�H�
�I�I�N�O�O�O�O�O���	�	�	��D�D�	���s�A"�"
A0�/A0c���ddl�G�fd�d��}Gd�dt��}|��}||��|_~dS)Nrc� ��eZdZ�fd�Zd�ZdS)�AClassPropertiesAndMethods.test_weakref_segfault.<locals>.Provokerc�2���j|��|_dSr��rl)r:�	referrentrks  �r?r4zJClassPropertiesAndMethods.test_weakref_segfault.<locals>.Provoker.__init__[s���&�7�;�y�1�1����r@c�.�|���}dSr�r�r�s  r?r4zIClassPropertiesAndMethods.test_weakref_segfault.<locals>.Provoker.__del__^s���H�H�J�J���r@N)r�r�r�r4r4)rks�r?�Provokerr�Zs=�������
2�
2�
2�
2�
2�
�
�
�
�
r@r�c��eZdZdS)�=ClassPropertiesAndMethods.test_weakref_segfault.<locals>.OopsNrKr�r@r?�Oopsr	arMr@r	)rkr^�whatever)r:r�r	r7rks    @r?�test_weakref_segfaultz/ClassPropertiesAndMethods.test_weakref_segfaultUs����	����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�6�	�	�	�
�D�F�F���X�a�[�[��
�
�A�Ar@c�B�d�}td��D]	}|j}�
d}dS)Nc��dSr�r�r�r@r?r�zAClassPropertiesAndMethods.test_wrapper_segfault.<locals>.<lambda>js��4�r@i@B)r�re)r:r�r�s   r?�test_wrapper_segfaultz/ClassPropertiesAndMethods.test_wrapper_segfaulths0���K���w���	�	�A��
�A�A����r@c��Gd�d��}t|����5|�t��5td��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�>ClassPropertiesAndMethods.test_file_fault.<locals>.StdoutGuardc�R�tjt_td|�����)NzPremature access to sys.stdout.)r��
__stdout__�stdoutr�r�s  r?r�zJClassPropertiesAndMethods.test_file_fault.<locals>.StdoutGuard.__getattr__rs"�� �^��
�"�#K�T�#K�#K�L�L�Lr@Nr�r�r@r?�StdoutGuardr
	qs(������
M�
M�
M�
M�
Mr@r	zOops!)rrr��print)r:r	s  r?�test_file_faultz)ClassPropertiesAndMethods.test_file_faultos ��	M�	M�	M�	M�	M�	M�	M�	M�
�[�[�]�]�
+�
+�	�	��"�"�<�0�0�
�
��g����
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s5�A4�A�A4�A 	� A4�#A 	�$A4�4A8�;A8c�D���G�fd�dt��}Gd�dt���G�fd�dt������}d|j|��<|�|jd��t	j��|�|d	��dS)
Nc� ��eZdZd�Z�fd�ZdS)�HClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Evilc� �td��S)Nrv�rEr�s r?rFzQClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Evil.__hash__�s���F�|�|�#r@c�0��	�`n#t$rYnwxYwdSr�)rvr�r�s  �r?rBzOClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Evil.__eq__�s6��������%�����D������qs��
�N�r�r�r�rFrBrNs�r?�Evilr	�s=�������
$�
$�
$�
�
�
�
�
�
�
r@r	c��eZdZdd�ZdS)�IClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.DescrNc��dSr�r�)r:�obrIs   r?rczQClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.Descr.__get__�r5r@r�rr�r@r?�Descrr	�s(������
�
�
�
�
�
r@r	c�$��eZdZ���ZdS)�EClassPropertiesAndMethods.test_vicious_descriptor_nonsense.<locals>.CN)r�r�r�rv�r	s�r?r�r	�s��������5�7�7�D�D�Dr@r�rrqrv)r^rKrGrvrrWr)r:r	r^r�r	s   @@r?� test_vicious_descriptor_nonsensez:ClassPropertiesAndMethods.test_vicious_descriptor_nonsensezs�����		�		�		�		�		�		�		�6�		�		�		�	�	�	�	�	�F�	�	�	�	�	�	�	�	�	�	��	�	�	�
�A�C�C����
�4�4�6�6��������#�#�#���������a��(�(�(�(�(r@c��Gd�dt��}	|��|�d��dS#t$rYdSwxYw)Nc��eZdZd�ZdS)�0ClassPropertiesAndMethods.test_init.<locals>.Fooc��dS)Nrr�r�s r?r4z9ClassPropertiesAndMethods.test_init.<locals>.Foo.__init__�rkr@NrMr�r@r?�Foor$	�rmr@r&	z'did not test __init__() for None return)r^r�r�)r:r&	s  r?�	test_initz#ClassPropertiesAndMethods.test_init�s|��	�	�	�	�	�&�	�	�	�	A��C�E�E�E�
�I�I�?�@�@�@�@�@���	�	�	��D�D�	���s�
6�
A�Ac���|�t��5||kddd��n#1swxYwY|�t��5||kddd��n#1swxYwY|�t��5||kddd��n#1swxYwY|�t��5||kddd��dS#1swxYwYdSr��rr��r:rDrXs   r?�assertNotOrderablez,ClassPropertiesAndMethods.assertNotOrderable�s���
�
�
�y�
)�
)�	�	�
��E�E�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	�
��E�E�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	�
��F�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	�
��F�F�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	sB�.�2�2�A&�&A*�-A*�B�B"�%B"�C�C�Cc�>�g}|�|j|jk��|�|j|jk��|�|jgjk��|�|jgjk��|�|j|jk��|�|j|jk��|�|j|j��|�|jjd��|�|jj|��|�|jj	t��|�|jjtjj��t|j��dS)NrU)
r�rUr�r}r+	rGr�rr��__objclass__r6r�rE�r:r�s  r?�test_method_wrapperz-ClassPropertiesAndMethods.test_method_wrapper�sI��
������	�Q�Y�.�/�/�/������a�i�/�0�0�0������b�j�0�1�1�1�����	�R�Z�/�0�0�0������a�i�/�0�0�0�����	�Q�Y�.�/�/�/�����	�1�9�5�5�5������+�Y�7�7�7��
�
�a�i�(�!�,�,�,��
�
�a�i�,�d�3�3�3������*�D�L�,@�A�A�A��Q�Y�����r@c���g}|�|j|jk��|�|j|jk��|�|jgjk��|�|jgjk��|�|j|jk��|�|j|jk��|�|j|j��|�|jjd��|�|jj|��|�|jj	tjj	��t|j��dS)Nr�)r�r�r��popr+	rGr�rr�r�r6rEr.	s  r?�test_builtin_function_or_methodz9ClassPropertiesAndMethods.test_builtin_function_or_method�s0��
�������A�H�,�-�-�-������Q�X�-�.�.�.������R�Y�.�/�/�/������B�I�-�.�.�.������Q�U�*�+�+�+������A�E�)�*�*�*������!�(�3�3�3������*�H�5�5�5��
�
�a�h�'��+�+�+������)�4�;�+>�?�?�?��Q�X�����r@c��|�tjtjk��|�tjtjk��|�tjtjk��|�tjtjk��|�tjtj��|�tjjd��|�tjj	t��|�tj
tj
k��|�tj
tj
k��|�tj
tjk��|�tj
tjk��|�tj
tj
��|�tj
jd��|�tj
j	t��dS)NrUr�)r�r6rUr�r}r+	rGr�rr-	r�r1	r�s r?�!test_special_unbound_method_typesz;ClassPropertiesAndMethods.test_special_unbound_method_types�s����������4�5�5�5��������5�6�6�6��������5�6�6�6��������4�5�5�5������d�l�;�;�;������.�	�:�:�:��
�
�d�l�/��6�6�6�	
�����t�{�2�3�3�3��������3�4�4�4��������0�1�1�1������t�x�/�0�0�0������T�[�9�9�9������-�x�8�8�8��
�
�d�k�.��5�5�5�5�5r@c����ddl�d�}��fd�}tjdz}tj}dD]�\}}}d|dd�z}tdd	||i��}	|	��}
|||
|
��|||
|��|||
|��|rx|||
|
��|||
|��|||
|��d
|dd�z}tdd	||i��}|��}
|||
|
��|||
|��|||
|����dS)Nrc��tSr�r�r�s  r?�
specialmethodzEClassPropertiesAndMethods.test_not_implemented.<locals>.specialmethod�s��!�!r@c���	t|||�d�����d|����dS#t$rYdSwxYw)N)r�r��operatorzno TypeError from )rer�r�)r>r�r�r9	r:s   ��r?r�z=ClassPropertiesAndMethods.test_not_implemented.<locals>.check�sg���
<��T����A�A�B�B�B��	�	�	�D�D�:�;�;�;�;�;���
�
�
����
���s�1�
?�?rq))rUzx + yzx += y)�__sub__zx - yzx -= y)r}zx * yzx *= y)�
__matmul__zx @ yzx @= y)�__truediv__zx / yzx /= y)r�zx // yzx //= y)�__mod__zx % yzx %= y)�
__divmod__zdivmod(x, y)N)rgzx ** yzx **= y)�
__lshift__zx << yzx <<= y)�
__rshift__zx >> yzx >>= y)�__and__zx & yzx &= y)�__or__zx | yzx |= y)�__xor__zx ^ yzx ^= y�__rrrr{r��__ir�)r9	r�r�rI)r:r7	r��N1�N2r=r>�iexpr�rnamer{rD�inamer�r^r9	s`             @r?�test_not_implementedz.ClassPropertiesAndMethods.test_not_implemented�s�����	����	"�	"�	"�	<�	<�	<�	<�	<�	<��[�1�_��
�[��"G�	$�	$��D�$���D����H�$�E��S�"�t�]�3�4�4�A�����A��E�$��1�����E�$��2�����E�$��2�����	
$���e�Q��"�"�"���e�Q��#�#�#���e�Q��#�#�#���Q�R�R��(����b�5�-�"8�9�9���A�C�C����e�Q��"�"�"���e�Q��#�#�#���e�Q��#�#�#��=	$�	$r@c��Gd�dt��}|��}d|dd�<|�|jd��dS)Nc��eZdZd�ZdS)�6ClassPropertiesAndMethods.test_assign_slice.<locals>.Cc��||_dSr��r)r:�idxrs   r?rizBClassPropertiesAndMethods.test_assign_slice.<locals>.C.__setitem__#rr@N)r�r�r�rir�r@r?r�rN	"rr@r�rtrqrr)r^rGr)r:r�r^s   r?�test_assign_slicez+ClassPropertiesAndMethods.test_assign_slicesd��
	#�	#�	#�	#�	#��	#�	#�	#�
�A�C�C����!�A�#�������!�$�$�$�$�$r@c���Gd�dt��}|d���G�fd�dt��}|��}|�|j���d|_|�|jd��Gd�dt��}Gd	�d|�
��}d|_|d��|_|�|jd��dS)Nc��eZdZd�Zd�ZdS)�<ClassPropertiesAndMethods.test_set_and_no_get.<locals>.Descrc��||_dSr�)r=r�s  r?r4zEClassPropertiesAndMethods.test_set_and_no_get.<locals>.Descr.__init__/rr@c�$�||j|j<dSr�)rKr=r)s   r?r�zDClassPropertiesAndMethods.test_set_and_no_get.<locals>.Descr.__set__2s��*/���T�Y�'�'�'r@N)r�r�r�r4r�r�r@r?r	rU	-s2������
!�
!�
!�
0�
0�
0�
0�
0r@r	rDc���eZdZ�ZdS��8ClassPropertiesAndMethods.test_set_and_no_get.<locals>.XNr��r�s�r?r�rZ	6s��������A�A�Ar@r�r�c��eZdZdS)�;ClassPropertiesAndMethods.test_set_and_no_get.<locals>.MetaNrKr�r@r?rxr]	?rMr@rxc��eZdZdSrY	rKr�r@r?r�z8ClassPropertiesAndMethods.test_set_and_no_get.<locals>.XArMr@r@)r^rrDrGrI)r:r	r�r�rxr�s     @r?�test_set_and_no_getz-ClassPropertiesAndMethods.test_set_and_no_get*s?���	0�	0�	0�	0�	0�F�	0�	0�	0���c�
�
��	�	�	�	�	�	�	��	�	�	�
�A�C�C���
�
�a�c�5�!�!�!���������b�!�!�!�	�	�	�	�	�4�	�	�	�	�	�	�	�	�$�	�	�	�	������s����������b�!�!�!�!�!r@c�����Gd�dt��}|���G�fd�dt��}G�fd�dt��}G�fd�dt��}|�tt|��d	��|��jd
��|�tt|��d	��|��jd��|�tt|��d	��|��jd��G�fd
�dt���|�tt���d	��dS)Nc��eZdZdZdd�ZdS)�@ClassPropertiesAndMethods.test_getattr_hooks.<locals>.DescriptorrNc����fd�}|S)Nc�B���xjdz
c_t|���r�)r�r�)r=r:s �r?r�zXClassPropertiesAndMethods.test_getattr_hooks.<locals>.Descriptor.__get__.<locals>.getterMs!����L�L�A�%�L�L�(��.�.�.r@r�)r:r��objtyper�s`   r?rczHClassPropertiesAndMethods.test_getattr_hooks.<locals>.Descriptor.__get__Ls#���/�/�/�/�/��
r@r�)r�r�r�r�rcr�r@r?�
Descriptorrb	Js-�������G�
�
�
�
�
�
r@rf	c���eZdZ�ZdS)�7ClassPropertiesAndMethods.test_getattr_hooks.<locals>.AN)r�r�r�r$r[	s�r?r{rh	Ss�������$���r@r{c���eZdZ�ZdS)�7ClassPropertiesAndMethods.test_getattr_hooks.<locals>.BNr�r[	s�r?r�rj	Us��������K�K�Kr@r�c���eZdZ�Z�ZdS)�7ClassPropertiesAndMethods.test_getattr_hooks.<locals>.CN)r�r�r�r$r�r[	s�r?r�rl	Ws�������$���K�K�Kr@r�rvrqrrrwc� ��eZdZd�Z�fd�ZdS)�FClassPropertiesAndMethods.test_getattr_hooks.<locals>.EvilGetattributec� �t|���r�r�r�s  r?r�zRClassPropertiesAndMethods.test_getattr_hooks.<locals>.EvilGetattribute.__getattr__ds��$�T�*�*�*r@c�p���`td��D]}tj���t	|����Nr�)r�r�rY�collectr�)r:r=r��EvilGetattributes   �r?r$zWClassPropertiesAndMethods.test_getattr_hooks.<locals>.EvilGetattribute.__getattribute__fs9���$�0��q���!�!�A��J�L�L�L�L�$�T�*�*�*r@Nr
)rs	s�r?rs	rn	bs=�������
+�
+�
+�
+�
+�
+�
+�
+�
+�
+r@rs	)r^rr�rJrGr�)r:rf	r{r�r�rs	r�s     @@r?�test_getattr_hooksz,ClassPropertiesAndMethods.test_getattr_hooksGs�����	�	�	�	�	��	�	�	��
����	%�	%�	%�	%�	%�	%�	%��	%�	%�	%�	 �	 �	 �	 �	 �	 �	 ��	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ��	 �	 �	 �	
���.�'�1�1�3�3��?�?�?�������*�*�*����.�'�1�1�3�3��?�?�?�������*�*�*����.�'�1�1�3�3��?�?�?�������*�*�*�	+�	+�	+�	+�	+�	+�	+�v�	+�	+�	+�	
���.�'�3C�3C�3E�3E�v�N�N�N�N�Nr@c�h�|�ttjtt��dSr�)rr�rIr$r6r�s r?�test_type___getattribute__z4ClassPropertiesAndMethods.test_type___getattribute__ns%�����)�T�%:�D�$�G�G�G�G�Gr@c�N�|�tttd��Gd�dt��}|�tt|d��Gd�dt��}|�t��5|`ddd��dS#1swxYwYdS)N�__abstractmethods__c��eZdZdS)�<ClassPropertiesAndMethods.test_abstractmethods.<locals>.metaNrKr�r@r?�metarz	trMr@r{	c��eZdZdS)�9ClassPropertiesAndMethods.test_abstractmethods.<locals>.XNrKr�r@r?r�r}	wrMr@r�)rr�rJrIr^rx	)r:r{	r�s   r?�test_abstractmethodsz.ClassPropertiesAndMethods.test_abstractmethodsqs
�����.�'�4�9N�O�O�O�	�	�	�	�	�4�	�	�	����.�'�4�9N�O�O�O�	�	�	�	�	��	�	�	�
�
�
�~�
.�
.�	&�	&��%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s�
B�B�!Bc��Gd�d��}|��}|�|t��|�t��5t�|��ddd��n#1swxYwY|�t��5t�|d��ddd��dS#1swxYwYdS)Nc��eZdZeZdS)�:ClassPropertiesAndMethods.test_proxy_call.<locals>.FakeStrN)r�r�r�r@rr�r@r?�FakeStrr�	}rOr@r�	r%)rr@rr�r�rU)r:r�	�fake_strs   r?�test_proxy_callz)ClassPropertiesAndMethods.test_proxy_call|sX��	�	�	�	�	�	�	�	��7�9�9�����h��,�,�,��
�
�y�
)�
)�	 �	 ��I�I�h����	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 ��
�
�y�
)�
)�	)�	)��K�K��%�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s$�
A4�4A8�;A8�C�C�	Cc���Gd�d��}|��}td��D]N}|�t��5t�|��ddd��n#1swxYwY�Otd��D]N}|�t��5t
�|��ddd��n#1swxYwY�Otd��D]N}|�t��5t
�|��ddd��n#1swxYwY�Otd��D]N}|�t��5t
�|��ddd��n#1swxYwY�Oddl	m
}td��D]J}|�t��5|�||��ddd��n#1swxYwY�KdS)Nc��eZdZdS)�RClassPropertiesAndMethods.test_specialized_method_calls_check_types.<locals>.ThingNrKr�r@r?�Thingr�	�rMr@r�	r�r)�deque)r�rr�r6�sortr@r�r�r��collectionsr�	r�)r:r�	r�r�r�	s     r?�)test_specialized_method_calls_check_typeszCClassPropertiesAndMethods.test_specialized_method_calls_check_types�s0��	�	�	�	�	�	�	�	�������r���	!�	!�A��"�"�9�-�-�
!�
!��	�	�%� � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!���r���	!�	!�A��"�"�9�-�-�
!�
!��	�	�%� � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!���r���	!�	!�A��"�"�9�-�-�
!�
!��	�	�%� � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!���r���	!�	!�A��"�"�9�-�-�
!�
!��	�	�%� � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!��	&�%�%�%�%�%��r���	+�	+�A��"�"�9�-�-�
+�
+����U�E�*�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+sZ�A*�*A.	�1A.	�!C�C	�C	�?D&�&D*	�-D*	�F�F	�F	�G$�$G(	�+G(	c���Gd�d��}|j|_|��}|�tt|��|�tt
|��dS)Nc��eZdZdS)�7ClassPropertiesAndMethods.test_repr_as_str.<locals>.FooNrKr�r@r?r&	r�	�rMr@r&	)r�r�rr�r@r�)r:r&	r�s   r?�test_repr_as_strz*ClassPropertiesAndMethods.test_repr_as_str�st��	�	�	�	�	�	�	�	��{����c�e�e�����.�#�s�3�3�3����.�$��4�4�4�4�4r@c��Gd�dt��}|��}d|_|�|dd��|�||��dS)Nc�*�eZdZejZejZdS)�>ClassPropertiesAndMethods.test_mixing_slot_wrappers.<locals>.XN)r�r�r�r�rir(r��__neg__r�r@r?r�r�	�s�������*�K��i�G�G�Gr@r�r�r�)r�r�rG)r:r�r�s   r?�test_mixing_slot_wrappersz3ClassPropertiesAndMethods.test_mixing_slot_wrappers�sx��	 �	 �	 �	 �	 ��	 �	 �	 �
�A�C�C���������3���$�$�$�����Q�B�����r@c� �Gd�dt��}|��}|�t��5||kddd��n#1swxYwY|�t��5||zddd��dS#1swxYwYdS)Nc�*�eZdZejZejZdS)�BClassPropertiesAndMethods.test_wrong_class_slot_wrapper.<locals>.AN)r�r�r�r@rBrUr�r@r?r{r�	�s�������Z�F��k�G�G�Gr@r{)r-rr�)r:r{rDs   r?�test_wrong_class_slot_wrapperz7ClassPropertiesAndMethods.test_wrong_class_slot_wrapper�s,��	"�	"�	"�	"�	"��	"�	"�	"�
�A�C�C��
�
�
�y�
)�
)�	�	�
��F�F�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	�
��E�E�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s#�A�A�A�0B�B�
Bc���|�t��5}Gd�d��}ddd��n#1swxYwYt|j��}|�d|��dS)Nc��eZdZdgZdZdS)�EClassPropertiesAndMethods.test_slot_shadows_class_variable.<locals>.Xr�N)r�r�r�r�r�r�r@r?r�r�	�s������"�G�	����r@r�z0'foo' in __slots__ conflicts with class variable)rr�r@r�rG)r:r�r�rQs    r?� test_slot_shadows_class_variablez:ClassPropertiesAndMethods.test_slot_shadows_class_variable�s���
�
�
�z�
*�
*�	�b�
�
�
�
�
�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
���������K�Q�O�O�O�O�Os�5�9�9c���Gd�d��}d|_|�|jd��|�t��5}t	t
��jd�t
d��ddd��n#1swxYwY|�dt|j
����|�t��5}t	|��jd�|��ddd��n#1swxYwY|�dt|j
����|�|jd��dS)Nc��eZdZdS)�1ClassPropertiesAndMethods.test_set_doc.<locals>.XNrKr�r@r?r�r�	�s�������Jr@r��bananar��blahz7cannot set '__doc__' attribute of immutable type 'list'z7cannot delete '__doc__' attribute of immutable type 'X')r�rGrr�rIr6rKr�rr@r�r,)r:r�r�s   r?�test_set_docz&ClassPropertiesAndMethods.test_set_doc�s���	�	�	�	�	�	�	�	���	������H�-�-�-�
�
�
�y�
)�
)�	A�R���J�J��	�*�2�2�4��@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A��
�
�O�QT�UW�Ua�Qb�Qb�c�c�c�
�
�
�y�
)�
)�	6�R���G�G��Y�'�2�2�1�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6��
�
�O�QT�UW�Ua�Qb�Qb�c�c�c������H�-�-�-�-�-s$�
9B�B�B�.D�D�Dc��tjtjtjt
jg}gd�}t||��D]0\}}|�t|��j
|dz���1|D]4}|jjdz|j
z}|�|j|���5|�tjjd��|�tjjd��|�tjjd��|�t
jjd��Gd�d	��}|�
t��5|`ddd��n#1swxYwY|�
ttjd
jtd��Gd�d
��a|�t"jd
��|�t"jjd��dS)N)r��member�getset�wrapper�_descriptor�.z	str.lowerzcomplex.realz
float.realzint.__add__c��eZdZdS)�2ClassPropertiesAndMethods.test_qualname.<locals>.XNrKr�r@r?r�r�	�rMr@r�r��Oinkc�(�eZdZGd�d��ZdS)r�c��eZdZdS)�Y.InsideNrKr�r@r?�Insider�	�rr@r�	N)r�r�r�r�	r�r@r?r�r��s<������
�
�
�
�
�
�
�
�
�
r@r�r�	)r@r�r�r�r.r-rUr�rGrIr�r-	r�rr�rKr�r�r�	)r:�descriptorsr>rOr��qualnamer�s       r?�
test_qualnamez'ClassPropertiesAndMethods.test_qualname�s=���y�'�,��
�C�K�H��9�9�9����U�+�+�	B�	B�D�A�q����T�!�W�W�-�q�=�/@�A�A�A�A��	7�	7�A��~�2�S�8�1�:�E�H����Q�^�X�6�6�6�6������/��=�=�=������2�N�C�C�C������0�,�?�?�?������1�=�A�A�A�	�	�	�	�	�	�	�	�
�
�
�y�
)�
)�	�	���	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
���)�T�]�>�%B�%J��v�	'�	'�	'�	�	�	�	�	�	�	�	�	
������-�-�-������.�
�;�;�;�;�;s�&E5�5E9�<E9c��ddi}tdd|��}|�|jd��|�d|j��|�|ddi��ddi}|�ttdd|��dS)Nr�z	some.namer&	r�rq)rIrGr�r[rKrr�)r:r�rRs   r?�test_qualname_dictz,ClassPropertiesAndMethods.test_qualname_dict�s����k�
*��
�%��R�
 �
 �������+�6�6�6�������5�5�5�����n�k�:�;�;�;��a�
 �����)�T�5�"�b�9�9�9�9�9r@c�J�Gd�dt��}|��}d|_tj|��}~t	j��|�|����tj��D]%}|�	t|��|���&dS)Nc��eZdZd�ZdS)�<ClassPropertiesAndMethods.test_cycle_through_dict.<locals>.Xc�H�t�|��||_dSr�)r�r4rKr�s r?r4zEClassPropertiesAndMethods.test_cycle_through_dict.<locals>.X.__init__
s���
�
�d�#�#�#� $��
�
�
r@NrMr�r@r?r�r�		s#������
%�
%�
%�
%�
%r@r�r�)r�rvrkrlrrW�assertIsNonerYr>�assertIsNotrI)r:r�r��wrr7s     r?�test_cycle_through_dictz1ClassPropertiesAndMethods.test_cycle_through_dicts���	%�	%�	%�	%�	%��	%�	%�	%�
�A�C�C�����
�[��^�^��
���������"�"�$�$������!�!�	)�	)�A����T�!�W�W�a�(�(�(�(�	)�	)r@c��Gd�d��}|�t|d��|�t|d���Gd�d��}Gd�d��}Gd	�d
||��}|||fD]W}|d��|dd���|�t|ddd��|�t|ddd�
���XdS)Nc��eZdZdS)�[ClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideNeitherNrKr�r@r?�OverrideNeitherr�	rMr@r�	rqr�c��eZdZdd�ZdS)�WClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideNewrc�,�tj|g|�Ri|��Sr�rZ)r�r�r
r;r�s     r?r�z_ClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideNew.__new__s"���~�c�9�D�9�9�9�D�9�9�9r@Nr�rTr�r@r?�OverrideNewr�	s(������
:�
:�
:�
:�
:�
:r@r�	c��eZdZdd�ZdS)�XClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideInitrc�,�tj|g|�Ri|��Sr�)r^r4)r:r�r
r;r<s     r?r4zaClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideInit.__init__ s"����t�=�d�=�=�=�f�=�=�=r@Nr�rMr�r@r?�OverrideInitr�	s(������
>�
>�
>�
>�
>�
>r@r�	c��eZdZdS)�XClassPropertiesAndMethods.test_object_new_and_init_with_parameters.<locals>.OverrideBothNrKr�r@r?�OverrideBothr�	"rMr@r�	rrrtrEr)	)r:r�	r�	r�	r�	�cases      r?�(test_object_new_and_init_with_parameterszBClassPropertiesAndMethods.test_object_new_and_init_with_parameterssU��	�	�	�	�	�	�	�	����)�_�a�8�8�8����)�_���;�;�;�	:�	:�	:�	:�	:�	:�	:�	:�	>�	>�	>�	>�	>�	>�	>�	>�	�	�	�	�	�;��	�	�	���|�;�	<�	<�D��D��G�G�G��D��q�M�M�M�M����i��q�!�Q�7�7�7����i��q�!���;�;�;�;�		<�	<r@c��Gd�d��}Gd�d|��}|�d|j��|�d|j��dS)Nc��eZdZdS)�\ClassPropertiesAndMethods.test_subclassing_does_not_duplicate_dict_descriptors.<locals>.BaseNrKr�r@r?rBr�	+rMr@rBc��eZdZdS)�[ClassPropertiesAndMethods.test_subclassing_does_not_duplicate_dict_descriptors.<locals>.SubNrKr�r@r?rGr�	-rMr@rGrK)rrKr[)r:rBrGs   r?�4test_subclassing_does_not_duplicate_dict_descriptorszNClassPropertiesAndMethods.test_subclassing_does_not_duplicate_dict_descriptors*s���	�	�	�	�	�	�	�	�	�	�	�	�	�$�	�	�	��
�
�j�$�-�0�0�0�����S�\�2�2�2�2�2r@c���Gd�d��}|�t|��j��d��Gd�d��}Gd�d|��}Gd�d	|��}|��}|��}|��}t||��}|�t|j��d
��|�t|j��d��|�t|j��d��|�t|j��d
��Gd�d��}|��}	|�t|	j��d��|�t|j��d��Gd�d��}
|
��}t	��}tj||��}
|�t|
��d��d|_|�t|
��d��d|_|�t|
��d��dS)Nc��eZdZd�ZdS)�=ClassPropertiesAndMethods.test_bound_method_repr.<locals>.Fooc��dSr�r�r�s r?r�zDClassPropertiesAndMethods.test_bound_method_repr.<locals>.Foo.method4r*r@N�r�r�r�r�r�r@r?r&	r�	3r,r@r&	z4<bound method .*Foo\.method of <.*Foo object at .*>>c��eZdZd�ZdS)�>ClassPropertiesAndMethods.test_bound_method_repr.<locals>.Basec��dSr�r�r�s r?r�zEClassPropertiesAndMethods.test_bound_method_repr.<locals>.Base.method;r*r@Nr�	r�r@r?rBr�	:r,r@rBc��eZdZdS)�BClassPropertiesAndMethods.test_bound_method_repr.<locals>.Derived1NrKr�r@r?�Derived1r�	=rMr@r�	c��eZdZd�ZdS)�BClassPropertiesAndMethods.test_bound_method_repr.<locals>.Derived2c��dSr�r�r�s r?r�zIClassPropertiesAndMethods.test_bound_method_repr.<locals>.Derived2.method@r*r@Nr�	r�r@r?�Derived2r�	?r,r@r�	z6<bound method .*Base\.method of <.*Base object at .*>>z:<bound method .*Base\.method of <.*Derived1 object at .*>>z><bound method .*Derived2\.method of <.*Derived2 object at .*>>z:<bound method .*Base\.method of <.*Derived2 object at .*>>c�$�eZdZed���ZdS)r�	c��dSr�r�rEs r?r�zDClassPropertiesAndMethods.test_bound_method_repr.<locals>.Foo.methodPs���r@N)r�r�r�r�r�r�r@r?r&	z=ClassPropertiesAndMethods.test_bound_method_repr.<locals>.FooOs-������
�
�
��[�
�
�
r@z/<bound method .*Foo\.method of <class '.*Foo'>>c��eZdZd�ZdS)�DClassPropertiesAndMethods.test_bound_method_repr.<locals>.MyCallablec��dSr�r�r�s  r?rezMClassPropertiesAndMethods.test_bound_method_repr.<locals>.MyCallable.__call__[r*r@N)r�r�r�rer�r@r?�
MyCallabler�	Zr,r@r�	z*<bound method \? of <object object at .*>>r=z,<bound method name of <object object at .*>>r�	z0<bound method qualname of <object object at .*>>)	�assertRegexr�r�rsr^r>�
MethodTyper�r�)r:r&	rBr�	r�	r��derived1�derived2�super_d2r�r�	r��instancer�rs              �r?�test_bound_method_reprz0ClassPropertiesAndMethods.test_bound_method_repr2s���	�	�	�	�	�	�	�	�	
����c�c�e�e�l�+�+�C�	E�	E�	E�	�	�	�	�	�	�	�	�	�	�	�	�	�t�	�	�	�	�	�	�	�	�t�	�	�	��t�v�v���8�:�:���8�:�:����8�,�,������d�k�*�*�E�	G�	G�	G�����h�o�.�.�I�	K�	K�	K�����h�o�.�.�M�	O�	O�	O�����h�o�.�.�I�	K�	K�	K�	�	�	�	�	�	�	�	��c�e�e������c�j�)�)�>�	@�	@�	@�����c�j�)�)�>�	@�	@�	@�	�	�	�	�	�	�	�	��z�|�|���8�8���!�$��1�1������f���9�	;�	;�	;���
�����f���;�	=�	=�	=�&�������f���?�	A�	A�	A�	A�	Ar@Nzneed the _testcapi modulec�N��Gd�d���G�fd�d��}|jdS)Nc��eZdZejZdS)�6ClassPropertiesAndMethods.test_bpo25750.<locals>.DescrN)r�r�r�r��bad_getrcr�r@r?r	r�	ns�������'�G�G�Gr@r	c�*��eZdZ���Zd�ZdS)�2ClassPropertiesAndMethods.test_bpo25750.<locals>.Xc�P�d|_d�td��D��|_dS)Nc��g|]}d|z��Sr�r�r�s  r?r=zNClassPropertiesAndMethods.test_bpo25750.<locals>.X.__new__.<locals>.<listcomp>vs��6�6�6�A�1�a�4�6�6�6r@i')r�r�r�rEs r?r�z:ClassPropertiesAndMethods.test_bpo25750.<locals>.X.__new__ss(�� ��	�6�6��u���6�6�6����r@N)r�r�r�r�r�r 	s�r?r�r�	qs/��������E�G�G�E�
7�
7�
7�
7�
7r@r�r[	)r:r�r	s  @r?�
test_bpo25750z'ClassPropertiesAndMethods.test_bpo25750isj���
	(�	(�	(�	(�	(�	(�	(�	(�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	
����r@c�V�Gd�d��}|�|���g��Gd�d|��}|�|���|g��~tj��|�|���g��dS)Nc��eZdZdS)�>ClassPropertiesAndMethods.test_remove_subclass.<locals>.ParentNrKr�r@r?�Parentr�	~rMr@r�	c��eZdZdS)�=ClassPropertiesAndMethods.test_remove_subclass.<locals>.ChildNrKr�r@r?�Childr�	�rMr@r
)rGrArYrr	)r:r�	r
s   r?�test_remove_subclassz.ClassPropertiesAndMethods.test_remove_subclassys���
	�	�	�	�	�	�	�	�����.�.�0�0�"�5�5�5�	�	�	�	�	�F�	�	�	�����.�.�0�0�5�'�:�:�:��
�
��������.�.�0�0�"�5�5�5�5�5r@)�r�r�r�r�rr!r2rrCraryr�r�r�r�r�r�rbrpr�r�r�r�r�r�
refcount_testr�r�rrr
rrr=rIr2�expectedFailurerOrarqr�r�r�r�r�r3rarpr��skipIfr��flags�optimizer��cpython_onlyr�r�r�rrIr�r�r�r�r�r�rr8r]rnr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr$r-r<rArCrOr^rjr�r�r�r�r�r�r�r�r�r�r�r	r	r	r!	r'	r+	r/	r2	r4	rK	rR	r_	rt	rv	r~	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�	r�r�	r
rvr�s@r?r�r��sE	�������@�@�@�I�I�I�2/�2/�2/�h0�0�0�T�T�T�l
(9�(9�(9�T'*�'*�'*�R"=�"=�"=�J@�@�@�B�B�B�*7�7�7�#;�#;�#;�J1�1�1�0;0�;0�;0�zW�W�W�r$2�$2�$2�L&-�&-�&-�P<�<�<�"A/�A/�A/�F:O�:O�:O�x8'�8'�8'�8'�8'�t
��N�N���N��W��=�>�>�/=�/=�?�>�/=�b'�'�'�0
��N�N���N��W��=�>�>� � �?�>� �O�O�O�* &� &� &�D)�)�)�$��
(�
(���
(� ?� ?� ?�D��)�)���)�.E>�E>�E>�N/4�/4�/4�bH�H�H�P�P�P�*�W��D�E�E�@�@�F�E�@�,f8�f8�f8�P`"�`"�`"�D���>=F�=F�=F�~�X�_�S�Y�'�1�,�@�B�B�2�2�B�B�2�
��<�<���<�A�A�A�FM?�M?�M?�^Z�Z�Z�xn�n�n�n�n�`_0�_0�_0�X
+�+�+�63�3�3�@><�><�><�@M@�M@�M@�^A�A�A�X�X�X�&W�W�W�rWP�WP�WP�r5�5�5�<K(�K(�K(�Z���.1�1�1�*1�1�1�*�*�*����@�@�@�$=�=�=�.,*�,*�,*�\���
1�
1�
1�%0�%0�%0�N(�(�(�4)�)�)�6*%�*%�*%�X���2
�
�
����(�(�(�������,���O�O�O�?H�?H�?H�B*=�*=�*=�X(�(�(�@42�42�42�l3�3�3�0C�C�C����17�17�17�f�W��D�E�E�)I�)I�F�E�)I�V%%�%%�%%�N9�9�9�.
<�
<�
<�K�K�K�"P�P�P�&���&���	�	�	�)�)�)�B
A�
A�
A�������$���&6�6�6�&2$�2$�2$�h%�%�%�"�"�"�:%O�%O�%O�NH�H�H�	&�	&�	&�)�)�)� +�+�+�65�5�5� � � �
�
�
�P�P�P�
.�
.�
.�<�<�<�@:�:�:�
)�
)�
)�<�<�<�(3�3�3�5A�5A�5A�5A�5A�n�X�_�Y�$�&�(C�D�D�
�
�E�D�
�6�6�6�6�6�6�6r@r�c�R�eZdZd�Zejeed��oej��d��d���Z	ejeed��oej��d��d���Z
ejeed��oej��d��d���Zd�Zd�Z
d	S)
�DictProxyTestsc�:�Gd�dt��}||_dS)Nc��eZdZd�ZdS)�DictProxyTests.setUp.<locals>.Cc��dSr�r�r�s r?rNz$DictProxyTests.setUp.<locals>.C.meth�r*r@Nr}r�r@r?r�r
�r,r@r�)r^r�r�s  r?�setUpzDictProxyTests.setUp�s9��	�	�	�	�	��	�	�	�����r@�gettracez#trace function introduces __local__c���|jj���}|�|t��t	|��}|���|�|gd���dS)N�rKr�r�rgrN)r�rKr��assertNotIsInstancer6r�	rG�r:rdr�s   r?�test_iter_keyszDictProxyTests.test_iter_keys�sz���V�_�
!�
!�
#�
#��� � ��T�*�*�*��B�x�x���	�	�������� 7� 7� 7�	8�	8�	8�	8�	8r@c���|jj���}|�|t��t	|��}|�t
|��d��dSrq	)r�rKrZr
r6rGr)r:rdrZs   r?�test_iter_valueszDictProxyTests.test_iter_values�s\���V�_�
#�
#�
%�
%��� � ��T�*�*�*��b��������V���a�(�(�(�(�(r@c���|jj���}|�|t��d�|D��}|���|�|gd���dS)Nc��g|]
}|d��Sr�r�)r<�items  r?r=z2DictProxyTests.test_iter_items.<locals>.<listcomp>�s��'�'�'�D��Q��'�'�'r@r
)r�rKr7r
r6r�	rGr
s   r?�test_iter_itemszDictProxyTests.test_iter_items�s����V�_�
"�
"�
$�
$��� � ��T�*�*�*�'�'�B�'�'�'���	�	�������� 7� 7� 7�	8�	8�	8�	8�	8r@c���Gd�dt��}Gd�dt��}Gd�d|���}|�t|j��t|j����dS)Nc��eZdZdS)�7DictProxyTests.test_dict_type_with_metaclass.<locals>.BNrKr�r@r?r�r
�rMr@r�c��eZdZdS)�7DictProxyTests.test_dict_type_with_metaclass.<locals>.MNrKr�r@r?r�r
�rMr@r�c��eZdZdS)�7DictProxyTests.test_dict_type_with_metaclass.<locals>.CNrKr�r@r?r�r!
�r�r@r�r@)r^rIrGrK)r:r�r�r�s    r?�test_dict_type_with_metaclassz,DictProxyTests.test_dict_type_with_metaclass�s���	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	�!�	�	�	�	�	
����a�j�)�)�4��
�+;�+;�<�<�<�<�<r@c�x�t|jj��}|�|�d��|��|�|�d��|��|jj���D]/\}}|�d�||��|���0dS)Nz
mappingproxy(�)z
{!r}: {!r})	r�r�rKr�ra�endswithr7rr	)r:rmr�r�s    r?�	test_reprzDictProxyTests.test_repr�s���
����!�!��������_�5�5�q�9�9�9�����
�
�3����+�+�+��F�O�)�)�+�+�	8�	8�D�A�q��M�M�,�-�-�a��3�3�Q�7�7�7�7�	8�	8r@N)r�r�r�r
r2r
r�r�r
r
r
r
r"
r&
r�r@r?r	
r	
�s����������X�_�W�W�S�*�-�-�@�,�#�,�.�.�=�?�?�8�8�?�?�8��X�_�W�W�S�*�-�-�@�,�#�,�.�.�=�?�?�)�)�?�?�)��X�_�W�W�S�*�-�-�@�,�#�,�.�.�=�?�?�8�8�?�?�8�	=�	=�	=�8�8�8�8�8r@r	
c��eZdZd�ZdS)�AAAPTypesLongInitTestc��Gd�dt��}	td|��d��n#YnxYwt�t��dS)Nc��eZdZd�ZdS)�>AAAPTypesLongInitTest.test_pytype_long_ready.<locals>.UserLongc��dSr�r��r:r;s  r?rgzFAAAPTypesLongInitTest.test_pytype_long_ready.<locals>.UserLong.__pow__�r*r@Nr;r�r@r?�UserLongr+
�r,r@r.
r)r^rrIr�r�)r:r.
s  r?�test_pytype_long_readyz,AAAPTypesLongInitTest.test_pytype_long_ready�so��	�	�	�	�	�v�	�	�	�	���8�8�:�:�q�!�!�!�!��	��D����	
��������s�/�3N)r�r�r�r/
r�r@r?r(
r(
�s#������
����r@r(
c��eZdZd�ZdS)�	MiscTestsc�&���G��fd�dt��}Gd�dt��}Gd�dt���td|f|��di���|��jd	��|��jd
��dS)Nc�"��eZdZd�Z��fd�ZdS)�7MiscTests.test_type_lookup_mro_reference.<locals>.MyKeyc� �td��S)N�mykeyr	r�s r?rFz@MiscTests.test_type_lookup_mro_reference.<locals>.MyKey.__hash__�s���G�}�}�$r@c����f�_dSr�r�)r:r��Base2r�s  ��r?rBz>MiscTests.test_type_lookup_mro_reference.<locals>.MyKey.__eq__�s���$�h����r@Nr	)r8
r�s��r?�MyKeyr4
�sB�������
%�
%�
%�
'�
'�
'�
'�
'�
'�
'�
'r@r9
c��eZdZdZdZdS)�6MiscTests.test_type_lookup_mro_reference.<locals>.Base�	from BaseN�r�r�r�r6
�mykey2r�r@r?rBr;
�s�������E� �F�F�Fr@rBc��eZdZdZdZdS)�7MiscTests.test_type_lookup_mro_reference.<locals>.Base2�
from Base2Nr=
r�r@r?r8
r@
�s������ �E�!�F�F�Fr@r8
r�r�r<
rA
)r^rIrGr6
r>
)r:r9
rBr8
r�s   @@r?�test_type_lookup_mro_referencez(MiscTests.test_type_lookup_mro_reference�s�����	'�	'�	'�	'�	'�	'�	'�	'�F�	'�	'�	'�	!�	!�	!�	!�	!�6�	!�	!�	!�	"�	"�	"�	"�	"�F�	"�	"�	"�
��t�g������|�,�,�������+�.�.�.������<�0�0�0�0�0r@N)r�r�r�rB
r�r@r?r1
r1
�s#������1�1�1�1�1r@r1
c�b�eZdZdidddfd�Zd�Zd�Zdd�Zed���Zd�Z	d	�Z
d
�Zd�ZdS)
�
PicklingTestsr�Nc�&�|dk�rj|�|��}|rS|�|dtj��|�|dt	|��||f��nS|�|dtj��|�|dt	|��f|z��|�|d|��|�*|�t|d��|��n|�|d��|�+|�	t|d��|��dS|�|d��dSt	|��j}	tjt	|��|	|	turdn
|	|��ff}|�||fz
}|�|�|��|��|�|���|��dS)Nrrrrqrtrw)�
__reduce_ex__rG�copyreg�
__newobj_ex__rI�
__newobj__�assertListEqualr6r�	�assertDictEqualr��__base__�_reconstructorr^�
__reduce__)
r:�protor�r;r<r�	listitems�	dictitems�reduce_value�	base_types
          r?�
_check_reducezPicklingTests._check_reduce�s���A�:�:��,�,�U�3�3�L��
G�� � ��a��'�2G�H�H�H�� � ��a��4��9�9�d�F�2K�L�L�L�L�� � ��a��'�2D�E�E�E�� � ��a��4��9�9�,��2E�F�F�F����\�!�_�e�4�4�4��$��$�$�T�,�q�/�%:�%:�I�F�F�F�F��!�!�,�q�/�2�2�2��$��$�$�T�,�q�/�%:�%:�I�F�F�F�F�F��!�!�,�q�/�2�2�2�2�2��S�	�	�*�I�#�2�!�#�Y�Y�&�%.�&�%8�%8�T�T�i�i��n�n�N�O�L�� ����(�����S�.�.�u�5�5�|�D�D�D����S�^�^�-�-�|�<�<�<�<�<r@c�
����ttjdz��}d�ddd��ddi�G�fd�d	��}|��}|D]}|�||��������D]\}}t|||���|D]}|�||���
���Gd�d��}|��}|D]O}|d
krG|�t��5|�|��ddd��n#1swxYwY�PG��fd�d��}|��}|D] }|d
kr|�||�����!G�fd�d��}	G�fd�d��}
Gd�d��}Gd�d��}|D]i}|	|
||fD]`}
|
��}|d
krN|�ttf��5|�|��ddd��n#1swxYwY�a�jG�fd�d��}|��}|D]}|�||����Gd�d��}|��}|D]O}|d
krG|�t��5|�|��ddd��n#1swxYwY�PG�fd�d��}|��}|D]}|�||��
���Gd�d��}|��}|D]}|�||d �
���Gd!�d"��}|��}|D]�}|�t��5|�|��ddd��n#1swxYwY|d
krF|�t��5|���ddd��n#1swxYwY��G�fd#�d$��}|��}|D]�}|d
kr|�||d�f�
���#|�t��5|�|��ddd��n#1swxYwY|�t��5|���ddd��n#1swxYwY��Gd%�d&t��}|d'd(i��}|D]'}|�||t|���)���(Gd*�d+t��}|d,g��}|D]'}|�||t|���-���(dS).Nrq)i����r�i7���i���)�bacon�fish�cheeseio���c���eZdZ�fd�ZdS)�%PicklingTests.test_reduce.<locals>.C1c����Sr�r�r-
s �r?�__getnewargs__z4PicklingTests.test_reduce.<locals>.C1.__getnewargs__"s����r@N�r�r�r�r\
r�s�r?rrZ
!s.�������
�
�
�
�
�
�
r@rrc��eZdZd�ZdS)�%PicklingTests.test_reduce.<locals>.C2c��dS�Nzbad argsr�r�s r?r\
z4PicklingTests.test_reduce.<locals>.C2.__getnewargs__.���!�zr@Nr]
r�r@r?r�r_
-�#������
"�
"�
"�
"�
"r@r�rrc���eZdZ��fd�ZdS)�%PicklingTests.test_reduce.<locals>.C3c�����fSr�r�)r:r;r<s ��r?�__getnewargs_ex__z7PicklingTests.test_reduce.<locals>.C3.__getnewargs_ex__7s
����f�~�%r@N�r�r�r�rg
r�s��r?r
re
6s3�������
&�
&�
&�
&�
&�
&�
&�
&r@r
c���eZdZ�fd�ZdS)�%PicklingTests.test_reduce.<locals>.C4c����dfS)Nzbad dictr�r-
s �r?rg
z7PicklingTests.test_reduce.<locals>.C4.__getnewargs_ex__?s����j�)�)r@Nrh
r�s�r?rrj
>s.�������
*�
*�
*�
*�
*�
*�
*r@rc���eZdZ�fd�ZdS)�%PicklingTests.test_reduce.<locals>.C5c���d�fS)Nz	bad tupler�)r:r<s �r?rg
z7PicklingTests.test_reduce.<locals>.C5.__getnewargs_ex__Bs���#�V�,�,r@Nrh
)r<s�r?�C5rm
As.�������
-�
-�
-�
-�
-�
-�
-r@ro
c��eZdZd�ZdS)�%PicklingTests.test_reduce.<locals>.C6c��dS)Nr�r�r�s r?rg
z7PicklingTests.test_reduce.<locals>.C6.__getnewargs_ex__Erkr@Nrh
r�r@r?�C6rq
Drmr@rs
c��eZdZd�ZdS)�%PicklingTests.test_reduce.<locals>.C7c��dSra
r�r�s r?rg
z7PicklingTests.test_reduce.<locals>.C7.__getnewargs_ex__Hrb
r@Nrh
r�r@r?�C7ru
Grc
r@rw
c���eZdZ�fd�ZdS)�%PicklingTests.test_reduce.<locals>.C9c����ifSr�r�r-
s �r?rg
z7PicklingTests.test_reduce.<locals>.C9.__getnewargs_ex__Rs
����b�z�!r@Nrh
r�s�r?�C9ry
Qr r@r{
c��eZdZd�ZdS)�&PicklingTests.test_reduce.<locals>.C10c��t�r�r9r�s r?rg
z8PicklingTests.test_reduce.<locals>.C10.__getnewargs_ex__Y��� � r@Nrh
r�r@r?�C10r}
X�#������
!�
!�
!�
!�
!r@r�
c���eZdZ�fd�ZdS)�&PicklingTests.test_reduce.<locals>.C11c����Sr�r�rs �r?r�z3PicklingTests.test_reduce.<locals>.C11.__getstate__bs����r@N�r�r�r�r�rs�r?�C11r�
as.�������
�
�
�
�
�
�
r@r�
c��eZdZd�ZdS)�&PicklingTests.test_reduce.<locals>.C12c��dS)N�not dictr�r�s r?r�z3PicklingTests.test_reduce.<locals>.C12.__getstate__irb
r@Nr�
r�r@r?�C12r�
hrc
r@r�
r�
c��eZdZd�ZdS)�&PicklingTests.test_reduce.<locals>.C13c��t�r�r9r�s r?r�z3PicklingTests.test_reduce.<locals>.C13.__getstate__pr
r@Nr�
r�r@r?�C13r�
or�
r@r�
c�0��eZdZe���Z�fd�ZdS)�&PicklingTests.test_reduce.<locals>.C14c�^������D]\}}t|||���dSr��r7rb)r:r=rrs   �r?r4z/PicklingTests.test_reduce.<locals>.C14.__init__|s=���#(�;�;�=�=�/�/�K�D�%��D�$��.�.�.�.�/�/r@N)r�r�r�r�r�r4rs�r?�C14r�
zs;���������e���I�
/�
/�
/�
/�
/�
/�
/r@r�
c��eZdZdS)�&PicklingTests.test_reduce.<locals>.C15NrKr�r@r?�C15r�
�rMr@r�
�quebeci����)rQ
c��eZdZdS)�&PicklingTests.test_reduce.<locals>.C16NrKr�r@r?�C16r�
�rMr@r�
�yukon)rP
)r��pickle�HIGHEST_PROTOCOLrT
r7rbrr�rF
r�r:rN
r�r6)r:�	protocolsrr�rO
r=rr�r
rro
rs
rw
r�r{
r�
r�
r�
r�
r�
r�
r�
r;r<rs                      @@@r?�test_reducezPicklingTests.test_reduces[	������&�1�A�5�6�6�	�����.�.���4� ��	�	�	�	�	�	�	�	�	�	��b�d�d���	1�	1�E����u�c�4�0�0�0�0� �;�;�=�=�	&�	&�K�D�%��C��u�%�%�%�%��	>�	>�E����u�c�4�u��=�=�=�=�	"�	"�	"�	"�	"�	"�	"�	"��b�d�d���	-�	-�E���z�z��&�&�y�1�1�-�-��%�%�e�,�,�,�-�-�-�-�-�-�-�-�-�-�-����-�-�-�-��	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&��b�d�d���	=�	=�E���z�z��"�"�5�#�t�V�<�<�<��	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	�	�	�	�	�	�	�	�	"�	"�	"�	"�	"�	"�	"�	"��	1�	1�E��2�r�2�~�
1�
1���c�e�e���A�:�:��*�*�I�z�+B�C�C�1�1��)�)�%�0�0�0�1�1�1�1�1�1�1�1�1�1�1����1�1�1�1��
1�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"��b�d�d���	1�	1�E����u�c�4�0�0�0�0�	!�	!�	!�	!�	!�	!�	!�	!��c�e�e���	-�	-�E���z�z��&�&�z�2�2�-�-��%�%�e�,�,�,�-�-�-�-�-�-�-�-�-�-�-����-�-�-�-��	�	�	�	�	�	�	�	�	�	��c�e�e���	8�	8�E����u�c���7�7�7�7�	"�	"�	"�	"�	"�	"�	"�	"��c�e�e���	=�	=�E����u�c���<�<�<�<�	!�	!�	!�	!�	!�	!�	!�	!��c�e�e���	%�	%�E��"�"�:�.�.�
)�
)��!�!�%�(�(�(�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)����
)�
)�
)�
)��q�y�y��&�&�z�2�2�%�%��N�N�$�$�$�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%��	/�	/�	/�	/�	/�	/�	/�	/�	/�	/��c�e�e���	%�	%�E���z�z��"�"�5�#�d�E�]�"�C�C�C�C��&�&�y�1�1�-�-��%�%�e�,�,�,�-�-�-�-�-�-�-�-�-�-�-����-�-�-�-��&�&�y�1�1�%�%��N�N�$�$�$�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%��	�	�	�	�	�$�	�	�	��c�8�T�"�#�#���	@�	@�E����u�c�T�#�Y�Y��?�?�?�?�	�	�	�	�	�$�	�	�	��c�7�)�n�n���	@�	@�E����u�c�T�#�Y�Y��?�?�?�?�	@�	@s~�$D�D
	�
D
	�G&�&G*�-G*�#J�J		�J		�0M�M	�M	�=N�N"	�%N"	�P$�$P(	�+P(	�	Q*�*Q.	�1Q.	c��ttjdz��}Gd�d��}|D],}|dkrind}|�||��|����-dS)Nrqc��eZdZd�Zd�ZdS)�7PicklingTests.test_special_method_lookup.<locals>.Pickyc��iSr�r�r�s r?r�zDPicklingTests.test_special_method_lookup.<locals>.Picky.__getstate__�s���	r@c�,�|dvrt|���dS)N)r\
rg
rfr�s  r?r�zCPicklingTests.test_special_method_lookup.<locals>.Picky.__getattr__�s!���B�B�B�(��.�.�.��tr@N)r�r�r�r�r�r�r@r?�Pickyr�
�s2������
�
�
�
�
�
�
�
r@r�
rrr)r�r�
r�
rT
)r:r�
r�
�protocolrs     r?r3z(PicklingTests.test_special_method_lookup�s����&�1�A�5�6�6�	�	�	�	�	�	�	�	�	�"�	?�	?�H�"�a�-�-�B�B�T�E����x�������>�>�>�>�	?�	?r@c	��	|�d�||��}t|��jtjurt	d���|�|||���|�t|��t|��|���t|d��rD|�|j	|j	|���|�|j	|j	|���t|d��r�|�
|j|j|���|jD]l}|�t||��t||��|���|�t||d��t||d��|����m|�t|��t|��|���dS)Nz{!r} is not a copy of {!r}zCobject passed to _assert_is_copy must override the __repr__ method.)r�rKr�)r	rIr�r^r�r�	rr�rK
rKrJ
r�rGrJr�)r:r��objcopyr��slots     r?�_assert_is_copyzPicklingTests._assert_is_copy�s���	��;�.�5�5�c�7�C�C�C���9�9����0�0�
�=�>�>�
>�����g�3��/�/�/��
�
�d�3�i�i��g���C�
�8�8�8��3�
�#�#�	F�� � ���w�/?�S� �I�I�I����S�\�7�+;���E�E�E��3��$�$�	H�� � ����0A�s� �K�K�K��
�
H�
H��� � ��C��&�&����(>�(>�C�!�I�I�I�� � ���d�D�!9�!9�!(��$��!=�!=�3�!�H�H�H�H�����c���D��M�M�s��;�;�;�;�;r@c����	Gd�d����fd�tjttjdz��tjtjhtjtjh��D��S)Nc�"�eZdZ	d�Zd�Zd�ZdS)�<PicklingTests._generate_pickle_copiers.<locals>.PickleCopierc�0�||_||_||_dSr�)rO
�dumps�loads)r:rO
r�
r�
s    r?r4zEPicklingTests._generate_pickle_copiers.<locals>.PickleCopier.__init__�s��"��
�"��
�"��
�
�
r@c�^�|�|�||j����Sr�)r�
r�
rO
r+s  r?r�zAPicklingTests._generate_pickle_copiers.<locals>.PickleCopier.copy�s$���z�z�$�*�*�S�$�*�"=�"=�>�>�>r@c��d�|j|jj|jj|jj|jj��S)Nz0PickleCopier(proto={}, dumps={}.{}, loads={}.{}))r	rO
r�
r�r�r�
r�s r?r�zEPicklingTests._generate_pickle_copiers.<locals>.PickleCopier.__repr__�sA��K����
� $�
� 5�t�z�7N� $�
� 5�t�z�7N�P�P�Qr@N)r�r�r�r4r�r�r�r@r?�PickleCopierr�
�sI������4�
#�
#�
#�
?�
?�
?�
Q�
Q�
Q�
Q�
Qr@r�
c3�"�K�|]	}�|�V��
dSr�r�)r<r;r�
s  �r?r�z9PicklingTests._generate_pickle_copiers.<locals>.<genexpr>�sB�����E�E����d�#�E�E�E�E�E�Er@rq)	�	itertools�productr�r�
r�
r�
�_dumpsr�
�_loads)r�
s@r?�_generate_pickle_copiersz&PicklingTests._generate_pickle_copiers�s����	�	Q�	Q�	Q�	Q�	Q�	Q�	Q�	Q� E�E�E�E��$�U�6�+B�Q�+F�%G�%G�&,�l�F�M�%B�&,�l�F�M�%B�D�D�E�E�E�	Er@c�x�Gd�d��a|�t��5tjt��d��ddd��n#1swxYwYGd�dt��a|�t��5tjt��d��ddd��n#1swxYwYGd�d��aGd�dt��aGd�d	t��a|���D�]*}|�|�
��5t��}|�	|��}|�
||��d|_|�	|��}|�
||��t��}d|_d|_|�	|��}|�
||��t
��}d|_d
|_|�	|��}|�
||��ddd��n#1swxYwY��,dS)Nc��eZdZdgZdS)r�rDNr�r�r@r?r�r��rr@r�rc��eZdZdS�rLNrKr�r@r?rLrL�rMr@rLc�(�eZdZ	dgZd�Zd�Zd�ZdS)r�rDc��t|di�����}t|��jD]D}|j�dd��D]&}	t||��||<�#t$rY�#wxYw�E|S)NrKr�r�)rJr�rIr`rKr�r�)r:rr�r�
s    r?r�zC.__getstate__�s�����j�"�5�5�:�:�<�<����:�:�-�!�!�C� #�� 0� 0��b� A� A�!�!��!�*1�$��*=�*=�E�$�K�K��-�!�!�!� �D�!����!�
�s�A,�,
A9�8A9c�\�|���D]\}}t|||���dSr�r�
)r:rr�r�s    r?r�zC.__setstate__�s<��!�K�K�M�M�(�(�D�A�q��D�!�Q�'�'�'�'�(�(r@c�Z�t|��j�d|����d�S)Nz()<r&)rIr�r�r�s r?r�z
C.__repr__�s.��%)�$�Z�Z�%8�%8�%8�$�:K�:K�:M�:M�:M�:M�N�Nr@N)r�r�r�r�r�r�r�r�r@r?r�r��sP������E���I�
�
�
�
(�
(�
(�
O�
O�
O�
O�
Or@c��eZdZ	dSr�
rKr�r@r?rLrL�s������/��Dr@c��eZdZ	dgZdS)r�rXNr�r�r@r?r�r��s������,���I�I�Ir@r�)�
pickle_copierr�r�r�)
r�rr�r�
r�
rLr�r�
�subTestr�r�
rDrX)r:r�
r�r�s    r?�test_pickle_slotszPicklingTests.test_pickle_slots�sI��	�	�	�	�	�	�	�	�
�
�
�y�
)�
)�	!�	!��L����a� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	�	�	�	�	��	�	�	�
�
�
�y�
)�
)�	!�	!��L����a� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	O�	O�	O�	O�	O�	O�	O�	O�$	�	�	�	�	��	�	�	�
	�	�	�	�	��	�	�	�
"�:�:�<�<�	+�	+�M����M��:�:�
+�
+��C�C��!�&�&�q�)�)���$�$�Q��*�*�*����!�&�&�q�)�)���$�$�Q��*�*�*��C�C��������!�&�&�q�)�)���$�$�Q��*�*�*��C�C��������!�&�&�q�)�)���$�$�Q��*�*�*�'
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+s6�"A�A�A�"B<�<C�C�'C:H-�-H1	�4H1	c�l�Gd�d��aGd�dt��aGd�dt��aGd�dt��aGd	�d
t��atttt
tf}|���}tj	||��D]�\}}|�
||���5t|di��}||ji|��}|j
}|�|��}|�||��|d
krK|jsD|j���|�|��}	|�||	��ddd��n#1swxYwY��|D]�}|�
|���5t|di��}||ji|��}t'|��}|�||��|js>|j���t'|��}	|�||	��ddd��n#1swxYwY��dS)Nc�.��eZdZ	dZdZ�fd�Zd�Z�xZS)rr�Tc�d��t�����||_||_dSr�)rsr4rDrX)r:rDrXrs   �r?r4zC1.__init__!s+������ � �"�"�"��������r@c�(�d|j�d|j�d�S)NzC1(r�r$
rWr�s r?r�zC1.__repr__%s���'+�v�v�v�t�v�v�v�6�6r@)r�r�r��ARGS�NEED_DICT_COPYINGr4r�rvr�s@r?rrsU�������H��D� $��
�
�
�
�
�
7�
7�
7�
7�
7�
7�
7r@rc�N��eZdZ	dZdZ�fd�Z�fd�Zed���Zd�Z	�xZ
S)r�r�Fc�f��t���|��}||_||_|Sr��rsr�rDrX)r�rDrXr:rs    �r?r�z
C2.__new__-s+����w�w���s�+�+���������r@c�r��t�����|�d��dS�NrX
)rsr4r�)r:r;rs  �r?r4zC2.__init__2s3������ � �"�"�"����H�%�%�%�%�%r@c��|jSr��r�
rEs r?r\
zC2.__getnewargs__7�	���x�r@c�H�d|j�d|j�dt|���d�S)NzC2(r��)<r&�rDrXr6r�s r?r�zC2.__repr__:�'���+/�6�6�6�4�6�6�6�4��:�:�:�:�F�Fr@)r�r�r�r�
r�
r�r4r�r\
r�rvr�s@r?r�r�)s��������:��D� %��
�
�
�
�
�

&�
&�
&�
&�
&�
�
 �
 ��[�
 �
G�
G�
G�
G�
G�
G�
Gr@r�c�@�eZdZ	dZdZd�Zed���Zd�Zd�Z	dS)r
r�Fc�L�||_||_|�d��dSr�
)rDrXr�r*	s   r?r4zC3.__init__Bs*�����������H�%�%�%�%�%r@c��|jSr�r�
rEs r?r�zC3.__getstate__Hr�
r@c�,�|\}}||_||_dSr�rW)r:rrDrXs    r?r�zC3.__setstate__Ks�����1��������r@c�H�d|j�d|j�dt|���d�S)NzC3(r�r�
r&r�
r�s r?r�zC3.__repr__Or�
r@N)
r�r�r�r�
r�
r4r�r�r�r�r�r@r?r
r
>so������8��D� %��
&�
&�
&��
 �
 ��[�
 �
�
�
�
G�
G�
G�
G�
Gr@r
c�D��eZdZ	dZdZ�fd�Zed���Zd�Z�xZ	S)r)rPrOrqFc�h��t���||��}||_||_|Sr�r�
�r�rDrXrr:rs     �r?r�z
C4.__new__W�-����w�w���s�E�2�2���������r@c��|jSr�r�
rEs r?r\
zC4.__getnewargs__\r�
r@c�H�d|j�d|j�dt|���d�S)NzC4(r�r�
r&�rDrXr-r�s r?r�zC4.__repr___�'���+/�6�6�6�4�6�6�6�3�t�9�9�9�9�E�Er@)
r�r�r�r�
r�
r�r�r\
r�rvr�s@r?rrSsw�������:�(�D� %��
�
�
�
�
�
�
 �
 ��[�
 �
F�
F�
F�
F�
F�
F�
Fr@rc�R��eZdZ	dZddiZdZdd��fd�
Zed���Zd	�Z	�xZ
S)
ro
r�rrtFrrP	c�h��t���||��}||_||_|Sr�r�
r�
s     �r?r�z
C5.__new__hr�
r@c��|j|jfSr�)r�
�KWARGSrEs r?rg
zC5.__getnewargs_ex__ms����#�*�-�-r@c�H�d|j�d|j�dt|���d�S)NzC5(r�r�
r&r�
r�s r?r�zC5.__repr__pr�
r@)r�r�r�r�
r�
r�
r�r�rg
r�rvr�s@r?ro
ro
cs��������=��D��q�\�F� %��,-�
�
�
�
�
�
�
�
�
.�
.��[�
.�
F�
F�
F�
F�
F�
F�
Fr@ro
)r�r�
r�
rrrE)rr6r�r
r-rro
r�
r�
r�
r�
rJr�
rO
r�r�
r�
rKrr)
r:�test_classes�pickle_copiersr�r�
r<r�rO
r�
�objcopy2s
          r?�test_reduce_copyingz!PicklingTests.test_reduce_copyings\��		7�		7�		7�		7�		7�		7�		7�		7�	G�	G�	G�	G�	G��	G�	G�	G�*	G�	G�	G�	G�	G��	G�	G�	G�*
	F�
	F�
	F�
	F�
	F��
	F�
	F�
	F� 	F�	F�	F�	F�	F��	F�	F�	F� �B��B��+���6�6�8�8��"+�"3�L�.�"Q�"Q�	8�	8��C�����#�]��C�C�

8�

8� ��h��3�3���c�3�8�.�v�.�.��%�+��'�,�,�S�1�1���$�$�S�'�2�2�2�
�A�:�:�c�&;�:��$�*�*�,�,�,�,�1�1�'�:�:�H��(�(��h�7�7�7�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8����

8�

8�

8�

8��  �
	8�
	8�C����#��&�&�
8�
8� ��h��3�3���c�3�8�.�v�.�.��"�3�-�-���$�$�S�'�2�2�2�
�,�8��$�*�*�,�,�,�'��0�0�H��(�(��h�7�7�7�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8����
8�
8�
8�
8��
	8�
	8s&�?B"E-�-E1	�4E1	�B	H(�(H,	�/H,	c�����Gd�dt���G��fd�d���ddl}|j�fdddifddf}|�����d��|��dS)	Nc��eZdZdS)�(PicklingTests.test_issue24097.<locals>.SNrKr�r@r?rmr�
�rMr@rmc�4��eZdZ�d��gZ��fd�ZdS)�(PicklingTests.test_issue24097.<locals>.Ar�c�N��|dkr�d��g�jdd�<dSt�)Nr�r�)�
__slotnames__r�)r:rvr{rms  ��r?r�z4PicklingTests.test_issue24097.<locals>.A.__getattr__�s1����6�>�>�*+�!�F�)�)��A�O�A�A�A�&��2�(�(r@N)r�r�r�r�
r�)r{rms��r?r{r�
�sB��������Q�v�Y�Y�K�M�
)�
)�
)�
)�
)�
)�
)�
)r@r{rr�r�rr)r@rG
rI
rGrF
)r:rG
r�r{rms   @@r?�test_issue24097zPicklingTests.test_issue24097�s�����	�	�	�	�	��	�	�	�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	�����&���t�f�b�\�.B�D�$�O���������*�*�1�-�-�x�8�8�8�8�8r@c�z�t�����|�t��5t���d��ddd��n#1swxYwYt���d��|�t��5t�����ddd��n#1swxYwY|�t��5t���d��ddd��dS#1swxYwYdSr�)r^rN
rr�rF
r�s r?�test_object_reducez PicklingTests.test_object_reduce�s���	��������
�
�
�y�
)�
)�	#�	#��H�H����"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	�����q�!�!�!�
�
�
�y�
)�
)�	%�	%��H�H�"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�
�
�
�y�
)�
)�	)�	)��H�H�"�"�4�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s5�"A)�)A-�0A-�/!C�C �#C �"D0�0D4�7D4r�)
r�r�r�rT
r�
r3r�
rfr�
r�
r�
r�
r�
r�r@r?rD
rD
�s�������-/��$� $��=�=�=�=�<y@�y@�y@�v?�?�?�<�<�<�<�4�E�E��\�E�0A+�A+�A+�Fz8�z8�z8�x9�9�9�")�)�)�)�)r@rD
c�.�eZdZejd���ZdS)�SharedKeyTestsc�����Gd�d���Gd�d������fd�td��D��������}}|�tjt	|����tjt	|������|�tjt	|����tjddi����td	��\|_|_|_|_	|_
|_|�tjt	|����tjt	|���������}|�
tjt	|����tjt	|������|�tjt	|����tjddi����|�tjt	|����tjddi����dS)
Nc��eZdZdS)�)SharedKeyTests.test_subclasses.<locals>.ANrKr�r@r?r{r�
�rMr@r{c��eZdZdS)�)SharedKeyTests.test_subclasses.<locals>.BNrKr�r@r?r�r�rMr@r�c�8��g|]}������f��Sr�r�)r<rqr{r�s  ��r?r=z2SharedKeyTests.test_subclasses.<locals>.<listcomp>�s)���'�'�'��!�!�#�#�q�q�s�s��'�'�'r@r�rDrqr�)r�rGr�r'�vars�
assertLessr�r�rX�wr�r�r��
assertGreater)r:rDrXrr{r�s    @@r?�test_subclasseszSharedKeyTests.test_subclasses�s�����	�	�	�	�	�	�	�	�	�	�	�	�	��	�	�	�	(�'�'�'�'�U�2�Y�Y�'�'�'�'��q�s�s�A�A�C�C�1�������t�A�w�w�/�/���t�A�w�w�1G�1G�H�H�H�����
�d�1�g�g�.�.��
�s�1�g�0F�0F�G�G�G�(-�Q�x�x�$���Q�S�!�#�q�s�A�C������C�M�$�q�'�'�2�2�C�M�$�q�'�'�4J�4J�K�K�K�
�Q�S�S�����3�=��a���1�1�3�=��b���3J�3J�K�K�K�����
�d�2�h�h�/�/����A�w�1G�1G�H�H�H�����
�d�1�g�g�.�.��
�s�1�g�0F�0F�G�G�G�G�Gr@N)r�r�r�rr
rr�r@r?r�
r�
�s6��������H�H���H�H�Hr@r�
c��eZdZ	d�Zd�ZdS)�DebugHelperMetac�p�|�d���||d<t�||||��S)Nr�)r�rIr�)r�r=rSr�s    r?r�zDebugHelperMeta.__new__�s6���9�9�Y���'�#�E�)���|�|�D�$��u�5�5�5r@c�*�t|j��Sr�)r�r�rEs r?r�zDebugHelperMeta.__repr__�s���C�L�!�!�!r@N)r�r�r�r�r�r�r@r?rr�s7�������6�6�6�"�"�"�"�"r@rc�R�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�MroTestc�"�d|_d|_dS)NrF)�step�readyr�s r?r
z
MroTest.setUp�s����	���
�
�
r@c�@�|j|k}|r|xjdz
c_|Sr�)r)r:�limit�rets   r?�
step_untilzMroTest.step_until�s*���y�5� ���	��I�I��N�I�I��
r@c�R��	G�fd�dt��}Gd�d|���}dS)Nc���eZdZ�fd�ZdS)�4MroTest.test_incomplete_set_bases_on_self.<locals>.Mc�����d��r|xjdz
c_t�|��S)Nrqr�)rrLrIr�rBs �r?r�z8MroTest.test_incomplete_set_bases_on_self.<locals>.M.mro�s7����?�?�1�%�%�(��M�M�R�'�M�M��x�x��}�}�$r@Nr�r�s�r?r�r�s.�������
%�
%�
%�
%�
%�
%�
%r@r�c��eZdZdS)�4MroTest.test_incomplete_set_bases_on_self.<locals>.ANrKr�r@r?r{r�rMr@r{r@�r�r:r�r{s`  r?�!test_incomplete_set_bases_on_selfz)MroTest.test_incomplete_set_bases_on_self�su���	�	%�	%�	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	�!�	�	�	�	�	�	r@c����	G��fd�dt��}Gd�d|����Gd�d���}|xjdz
c_dS)	Nc���eZdZ��fd�ZdS)�/MroTest.test_reent_set_bases_on_base.<locals>.Mc���|j�0|jdkr%��d��r�xjdz
c_t�|��S)Nr�rr�)r`r�rrLrIr�)r�r{r:s ��r?r�z3MroTest.test_reent_set_bases_on_base.<locals>.M.mrosK����;�*�s�|�s�/B�/B����r�*�*�*����r�)����x�x��}�}�$r@Nr�)r{r:s��r?r�r�s3�������
%�
%�
%�
%�
%�
%�
%�
%r@r�c��eZdZdS)�/MroTest.test_reent_set_bases_on_base.<locals>.ANrKr�r@r?r{r"rMr@r{r@c��eZdZdS)�/MroTest.test_reent_set_bases_on_base.<locals>.BNrKr�r@r?r�r$
rMr@r�r�)rrL)r:r�r�r{s`  @r?�test_reent_set_bases_on_basez$MroTest.test_reent_set_bases_on_base�s�����	�	%�	%�	%�	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	�!�	�	�	�	�	�	�	�	�	��	�	�	�	���r�����r@c���	G�fd�dt��}Gd�d|���}Gd�d|��}Gd�d	|��}dS)
Nc���eZdZ�fd�ZdS)�6MroTest.test_reent_set_bases_on_direct_base.<locals>.Mc���|jd}|tur%��d��r|xjdz
c_t�|��S)Nrr�r�)rLr^rrIr�)r�r�r:s  �r?r�z:MroTest.test_reent_set_bases_on_direct_base.<locals>.M.mrosN����}�Q�'���v�%�%����q�)�)�-����"�,����x�x��}�}�$r@Nr�r�s�r?r�r(�.�������
%�
%�
%�
%�
%�
%�
%r@r�c��eZdZdS)�6MroTest.test_reent_set_bases_on_direct_base.<locals>.ANrKr�r@r?r{r,rMr@r{r@c��eZdZdS)�6MroTest.test_reent_set_bases_on_direct_base.<locals>.BNrKr�r@r?r�r.rMr@r�c��eZdZdS)�6MroTest.test_reent_set_bases_on_direct_base.<locals>.CNrKr�r@r?r�r0rMr@r�r)r:r�r{r�r�s`    r?�#test_reent_set_bases_on_direct_basez+MroTest.test_reent_set_bases_on_direct_bases����	�	%�	%�	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	�!�	�	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	r@c�&����	G���fd�dt��}Gd�d|���}Gd�d|���Gd�d	|���d
�_��t��5�xjdz
c_ddd��dS#1swxYwYdS)Nc���eZdZ���fd�ZdS)�5MroTest.test_reent_set_bases_tp_base_cycle.<locals>.Mc����jr&|jdkr�f�_|jdkr�f�_t�|��S)N�B1�B2�rr�rLrIr�)r�r6r7r:s ���r?r�z9MroTest.test_reent_set_bases_tp_base_cycle.<locals>.M.mro3sI����:�-��|�t�+�+�(*�u����|�t�+�+�(*�u����x�x��}�}�$r@Nr�)r6r7r:s���r?r�r42s8�������
%�
%�
%�
%�
%�
%�
%�
%�
%r@r�c��eZdZdS)�5MroTest.test_reent_set_bases_tp_base_cycle.<locals>.ANrKr�r@r?r{r:;rMr@r{r@c��eZdZdS)�6MroTest.test_reent_set_bases_tp_base_cycle.<locals>.B1NrKr�r@r?r6r<=rMr@r6c��eZdZdS)�6MroTest.test_reent_set_bases_tp_base_cycle.<locals>.B2NrKr�r@r?r7r>?rMr@r7Tr�)rrrr�rL)r:r�r{r6r7s`  @@r?�"test_reent_set_bases_tp_base_cyclez*MroTest.test_reent_set_bases_tp_base_cycle"s\�����	�	%�	%�	%�	%�	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	�!�	�	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	���
�
�
�
�y�
)�
)�	�	��L�L�B��L�L�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�(B�B
�
B
c�@����	G���fd�dt��}Gd�d|���}Gd�d|��}Gd�d	|���Gd
�d|���d�_|f�_�f|_���j�f���������g����|���g����|j�f��������|g��dS)
Nc���eZdZ���fd�ZdS)�;MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.Mc�z���jr|jdkrd�_�f�_t�|��S�Nr�Fr8)r�r7r�r:s ���r?r�z?MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.M.mroPs9����:�(�#�,�#�"5�"5�!&�D�J�#%�%�A�K��x�x��}�}�$r@Nr�)r7r�r:s���r?r�rBOs8�������
%�
%�
%�
%�
%�
%�
%�
%�
%r@r�c��eZdZdS)�;MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.ANrKr�r@r?r{rFVrMr@r{r@c��eZdZdS)�<MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.B1NrKr�r@r?r6rHXrMr@r6c��eZdZdS)�<MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.B2NrKr�r@r?r7rJZrMr@r7c��eZdZdS)�;MroTest.test_tp_subclasses_cycle_in_update_slots.<locals>.CNrKr�r@r?r�rL\rMr@r�T)rrrLrGrA)r:r�r{r6r7r�s`   @@r?�(test_tp_subclasses_cycle_in_update_slotsz0MroTest.test_tp_subclasses_cycle_in_update_slotsFs������	�	%�	%�	%�	%�	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	�!�	�	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	���
��e����t��������r�e�,�,�,�����*�*�,�,�q�c�2�2�2�����*�*�,�,�b�1�1�1�������t�,�,�,�����)�)�+�+�b�T�2�2�2�2�2r@c������	Gd�dt���G����fd�dt��}Gd�d|���}Gd�d	|��}Gd
�d|���Gd�d
|���d�_�����5|f�_ddd��n#1swxYwY�f|_���j�f�����jtt�	�������dS)Nc��eZdZdS)�=MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.ENrKr�r@r?r�rPorMr@r�c� ��eZdZ����fd�ZdS)�=MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.Mc����jr)|jdkr�j�fkrd�_n
�f�_��t�|��SrDr8)r�r7r�r�r:s ����r?r�zAMroTest.test_tp_subclasses_cycle_error_return_path.<locals>.M.mrorsO����:� �#�,�#�"5�"5��{�r�e�+�+�%*��
�
�')�e������x�x��}�}�$r@Nr�)r7r�r�r:s����r?r�rRqs=�������
%�
%�
%�
%�
%�
%�
%�
%�
%�
%r@r�c��eZdZdS)�=MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.ANrKr�r@r?r{rU{rMr@r{r@c��eZdZdS)�>MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.B1NrKr�r@r?r6rW}rMr@r6c��eZdZdS)�>MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.B2NrKr�r@r?r7rYrMr@r7c��eZdZdS)�=MroTest.test_tp_subclasses_cycle_error_return_path.<locals>.CNrKr�r@r?r�r[�rMr@r�T)
r.rrrrLrGr`r�rIr�)r:r�r{r6r7r�r�s`   @@@r?�*test_tp_subclasses_cycle_error_return_pathz2MroTest.test_tp_subclasses_cycle_error_return_pathjs�������	�	�	�	�	�	�	�	�	�	�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	�!�	�	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	���
�
�
�
�q�
!�
!�	 �	 ��%�A�K�	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 ��t��������r�e�,�,�,������E�$�(�(�1�+�+�$6�$6�7�7�7�7�7s�	B�B�"Bc�R��	G�fd�dt��}Gd�d|���}dS)Nc���eZdZ�fd�ZdS)�)MroTest.test_incomplete_extend.<locals>.Mc����|j�K|jdkr@��t��5Gd�d|��}ddd��n#1swxYwYt�|��S)Nr�c��eZdZdS)�8MroTest.test_incomplete_extend.<locals>.M.mro.<locals>.XNrKr�r@r?r�rb�s������ �Dr@)r`r�rr�rIr�)r�r�r:s  �r?r�z-MroTest.test_incomplete_extend.<locals>.M.mro�s�����;�&�3�<�3�+>�+>��*�*�9�5�5�!�!�!�!�!�!�!��!�!�!�!�!�!�!�!�!�!�!�!�!�!����!�!�!�!��x�x��}�}�$s�A	�	A
�A
Nr�r�s�r?r�r_�r*r@r�c��eZdZdS)�)MroTest.test_incomplete_extend.<locals>.ANrKr�r@r?r{rd�rMr@r{r@rrs`  r?�test_incomplete_extendzMroTest.test_incomplete_extend�su���	�
	%�	%�	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	�!�	�	�	�	�	�	r@c�R��	G�fd�dt��}Gd�d|���}dS)Nc�"���eZdZ��fd�Z�xZS)�(MroTest.test_incomplete_super.<locals>.Mc����|j�G��t��5t||��jddd��n#1swxYwYt
�|��Sr�)r`rr�rs�xxxrIr�)r�rr:s ��r?r�z,MroTest.test_incomplete_super.<locals>.M.mro�s�����;�&��*�*�>�:�:�,�,��c�3���+�+�,�,�,�,�,�,�,�,�,�,�,����,�,�,�,��x�x��}�}�$s�A�A	�A	)r�r�r�r�rvrws@�r?r�rh�s>��������
%�
%�
%�
%�
%�
%�
%�
%�
%�
%r@r�c��eZdZdS)�(MroTest.test_incomplete_super.<locals>.ANrKr�r@r?r{rl�rMr@r{r@rrs`  r?�test_incomplete_superzMroTest.test_incomplete_super�su���	�	%�	%�	%�	%�	%�	%�	%��	%�	%�	%�	�	�	�	�	�!�	�	�	�	�	�	r@c�����	Gd�d���G��fd�dt���|�t��5Gd�d����}ddd��dS#1swxYwYdS)Nc��eZdZdS)�/MroTest.test_disappearing_custom_mro.<locals>.BNrKr�r@r?r�rp�rMr@r�c���eZdZ��fd�ZdS)�/MroTest.test_disappearing_custom_mro.<locals>.Mc����`�fSr�)r�)r�r�r�s ��r?r�z3MroTest.test_disappearing_custom_mro.<locals>.M.mro�s����E��t�r@Nr�)r�r�s��r?r�rr�s3�������
�
�
�
�
�
�
�
r@r�c��eZdZdS)�/MroTest.test_disappearing_custom_mro.<locals>.ANrKr�r@r?r{ru�rr@r{r@)rrr�)r:r{r�r�s  @@r?�test_disappearing_custom_mroz$MroTest.test_disappearing_custom_mro�s����	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	��	�	�	�
�
�
�y�
)�
)�	�	�
�
�
�
�
�a�
�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�A�A"�%A"N)r�r�r�r
rrr%r1r?rMr\rermrvr�r@r?rr�s��������������
�
�
����&���("�"�"�H"3�"3�"3�H 8� 8� 8�D���$��� ����r@r�__main__)"rYrG
rYr�
r(r�
r3r5r�r>r2rmrkr�r�
contextlibrr
rr�r�r3rr�r	
r(
r1
rD
r�
rIrrr��mainr�r@r?�<module>rzs�����������	�	�	�	���������
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�����������������������&�&�&�&�&�&�������������������I�I�I�����sD�sD�sD�sD�sD�H�%�sD�sD�sD�lyG6�yG6�yG6�yG6�yG6�� 1�yG6�yG6�yG6�xO98�98�98�98�98�X�&�98�98�98�x�����H�-����21�1�1�1�1��!�1�1�1�6w)�w)�w)�w)�w)�H�%�w)�w)�w)�t
H�H�H�H�H�X�&�H�H�H�4	"�	"�	"�	"�	"�d�	"�	"�	"�b�b�b�b�b�h��b�b�b�J�z����H�M�O�O�O�O�O��s�A
�
A�A