Your IP : 216.73.216.196


Current Path : /opt/alt/python312/lib64/python3.12/test/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/test/__pycache__/test_functools.cpython-312.pyc

�

�#�j����ddlZddlZddlZddlZddlZddlmZddlZddlm	Z	ddl
Z
ddlmZddl
Z
ddlZddlZddlZddlZddlZddlZddlmZddlZddlmZddlmZddlmZddlZej8d	d
g��Zej8d	d
g��Zej8d
dg��Zej@gZ!ere!jEej@�ejFd��Z$d�Z%d�Z&Gd�de'�Z(Gd�de'�Z)Gd�de*�Z+Gd�d�Z,ejZed�Gd�de,ej\��Z/Gd�de,ej\�Z0erGd�d ej@�Z1Gd!�d"ej@�Z2ejZed�Gd#�d$e/��Z3Gd%�d&e0�Z4Gd'�d(ej\�Z5Gd)�d*ej\�Z6Gd+�d,e6�Z7Gd-�d.�Z8ejZed�Gd/�d0e8ej\��Z9Gd1�d2e8ej\�Z:Gd3�d4�Z;ejZed�Gd5�d6e;ej\��Z<Gd7�d8e;ej\�Z=Gd9�d:ej\�Z>ej~Gd;�d<��Z@Gd=�d>�ZAGd?�d@eAej\�ZBejZed�GdA�dBeAej\��ZCGdC�dD�ZDej��dE��ZFerej��dF��ZGGdG�dHeDej\�ZHejZed�GdI�dJeDej\��ZIGdK�dLej\�ZJGdM�dN�ZKGdO�dP�ZLGdQ�dR�ZMGdS�dTej\�ZNeOdUk(rej��yy)V�N)�permutations)�choice)�support)�proxy)�	Signature)�
import_helper)�threading_helper�	functools�
_functools)�blocked)�fresh�decimal�_decimalc#�K�tj|}|tj|<	d��|tj|<y#|tj|<wxYw�w�N)�sys�modules)�name�replacement�original_modules   �:/opt/alt/python312/lib64/python3.12/test/test_functools.py�replaced_moduler'sF�����k�k�$�'�O�#�C�K�K���,�
�+����D���O����D��s�'A�A�A�A�Ac�
�||fS)z,capture all positional and keyword arguments�)�args�kws  r�capturer0s����8�O�c�^�|j|j|j|jfS)z* return the signature of a partial object )�funcr�keywords�__dict__)�parts r�	signaturer$5s!���I�I�t�y�y�$�-�-����?�?rc��eZdZy)�MyTupleN��__name__�
__module__�__qualname__rrrr&r&9���rr&c��eZdZd�Zy)�BadTuplec�0�t|�t|�zSr)�list��self�others  r�__add__zBadTuple.__add__=s���D�z�D��K�'�'rN)r(r)r*r3rrrr-r-<s��(rr-c��eZdZy)�MyDictNr'rrrr5r5@r+rr5c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�TestPartialc	�8�|jtdddd��}|jt|��|j	|dddd	�
�dtddd	��f�|jtd
��}|j	t|gd���gd��y)N���
���a�b����(�r?�c�r9r:r@rA�r>r?rEc��|dzS)Nr;r��xs r�<lambda>z1TestPartial.test_basic_examples.<locals>.<lambda>Ks���"�r)r;r<rBrC)�partialr�
assertTrue�callable�assertEqual�dict�mapr/�r1�ps  r�test_basic_exampleszTestPartial.test_basic_examplesFs����L�L��!�Q�"��L�3��������$�����1�a�2��,�&��r�R�2�(>�?�	A��L�L��n�-������a�	�l�+�-=�>rc��|jtdddd��}|j|jt�|j|jd�|j|j
t
dd���y)Nr9r:r;r<r=�r9r:)rLrrOr rr!rPrRs  r�test_attributeszTestPartial.test_attributesNs]���L�L��!�Q�"��L�3���������)��������(�������T�B�"�%5�6rc��|jt|j�	|jd��|jd�y#t$rYywxYw)Nr:z%First arg not checked for callability)�assertRaises�	TypeErrorrL�fail�r1s r�test_argument_checkingz"TestPartial.test_argument_checkingUsN�����)�T�\�\�2�	?��D�L�L��O��
�I�I�=�>���	��	�s�A
�
	A�Ac���dd�}ddi}|j|d��}|j|d	i|��d�|j|ddi�|d��|j|ddi�y)
Nc��|Srrr=s  rr zBTestPartial.test_protection_of_callers_dict_argument.<locals>.func`s���Hrr>r@��r>��r?)r;r<r)rLrO)r1r �drSs    r�(test_protection_of_callers_dict_argumentz4TestPartial.test_protection_of_callers_dict_argument^sg��	�
��G���L�L���L�#�������Q���#�����S��G�$�	�A������S��G�$rc��ddi}|jtfi|��}|j|�dddif�d|d<|j|�dddif�y)Nr>r@rr`�rLrrO)r1rdrSs   r�test_kwargs_copyzTestPartial.test_kwargs_copyis_���!�H���D�L�L��&�A�&�������r�C��8�n�-���#�������r�C��8�n�-rc�,�|jt�}|j|�dif�|j|dd�dif�|jtdd�}|j|�dif�|j|dd�dif�y)Nrr9r:rVr@rArFrgrRs  r�test_arg_combinationsz!TestPartial.test_arg_combinationsrs���
�L�L��!�������r�2�h�'�����1�Q��%���-��L�L��!�Q�'�������u�b�k�*�����1�Q��)�R��1rc���|jt�}|j|ji�|j|�dif�|j|d��dddif�|jtd��}|j|jddi�|j|�dddif�|j|d��dddd�f�|j|dd��dddd�f�y)	Nrr9rar>r:rcr=r@)rLrrOr!rRs  r�test_kw_combinationsz TestPartial.test_kw_combinations|s���
�L�L��!��������R�(������r�2�h�'�����Q��"�s�1�g��/��L�L��A�L�&��������c�!�W�-������r�C��7�m�,�����Q��"�1�!�n�!5�6�����Q�!��r��q�>�&:�;rc��dD]D}|jtg|���}|dz}|d�\}}|j||k(xr|ik(��Fy)N)r�r�rr9)rr9r:)rr9r:r@rIrJ�rLrrM)r1rrS�expected�got�emptys      r�test_positionalzTestPartial.test_positional�sP��9�D�����W�,�t�,�A��f�}�H��3��J�C���O�O�H��O�;����<�	:rc��dD]E}|jt|��}|dd�}|d��\}}|j||k(xr|dk(��Gy)N)r>rNg@ra)r>rJrIrrp)r1r>rSrqrsrrs      r�test_keywordzTestPartial.test_keyword�sN��$�A����W���*�A��$�'�H��T��J�E�3��O�O�H��O�;����<�	%rc���|jtdd��}|dd��\}}|j|dk(xr|ddd�k(�|�\}}|j|dk(xr|d	dik(�y)
Nrr9rar:rcror=rnr>rp)r1rS�args1�kw1�args2�kw2s      r�test_no_side_effectsz TestPartial.test_no_side_effects�sk���L�L��!�q�L�)���q�A�Y�
��s�������?�3�q�Q�-�+?�@��S�
��s������
�8�#�#�a��.�9rc�D�d�}|jt|j|dd��|jt|j|d�d�|jt|j|�dd�|jt|j|d��d�y)Nc��||zyrr�rJ�ys  r�fz-TestPartial.test_error_propagation.<locals>.f�s	��
��Err9r)r�)rY�ZeroDivisionErrorrL�r1r�s  r�test_error_propagationz"TestPartial.test_error_propagation�s���	����+�T�\�\�!�Q��-B�C����+�T�\�\�!�Q�-?��C����+�T�\�\�!�_�a��C����+�T�\�\�!�q�\�-A�1�Erc��|jtd��}t|�}|j|j|j�d}tj�|jtt|d�y)N�)�baser )
rL�intrrOr r�
gc_collectrY�ReferenceError�getattr�r1r�rSs   r�test_weakrefzTestPartial.test_weakref�sZ���L�L��2�L�&���!�H�����������(����������.�'�1�f�=rc��ttttd���}|j	tj
d�}|j
||�d�|j	dj
�}|j
||�d�y)Nr;��
0123456789)r/rQ�str�rangerL�joinrO)r1�datar�s   r�#test_with_bound_and_unbound_methodsz/TestPartial.test_with_bound_and_unbound_methods�se���C��U�2�Y�'�(���|�|�C�H�H�b�)������d��\�2��|�|�B�G�G�$������d��\�2rc��|j}|td�}||d��}|tdd��}|jt|�t|��y�N�asdfT��bar)rLr$rO)r1rL�inner�nested�flats     r�test_nested_optimizationz$TestPartial.test_nested_optimization�sJ���,�,���	�6�*����D�)���y�&�d�3������6�*�I�d�O�<rc��|j}d�}||d�}||d�}d|_|j|jd�y)Nc��|Srrr�s r�fooz;TestPartial.test_nested_partial_with_attribute.<locals>.foo�s���Jr�first�second�spam)rL�new_attrrO)r1rLr�rS�p2s     r�"test_nested_partial_with_attributez.TestPartial.test_nested_partial_with_attribute�sE���,�,��	�
�C��!��
�Q��
!�����������f�-rc�f�t�t�f}djd�|D��}t�t�d�}dj|�dj|�g}|jtvrd}n|jj
}|jt�}|j|�dt�d�t|��|jtg|���}|j|�dt�d|�d�t|��|jtfi|��}|jt|�|D�cgc]}|�dt�d|�d���c}�|jtg|��i|��}|jt|�|D�cgc]}|�dt�d|�d|�d���c}�ycc}wcc}w)	Nz, c3�2K�|]}t|����y�wr)�repr)�.0r>s  r�	<genexpr>z(TestPartial.test_repr.<locals>.<genexpr>�s����4�t�!�d�1�g�t�s�r=za={a!r}, b={b!r}zb={b!r}, a={a!r}�functools.partial�(�))
�objectr��
format_maprL�_partial_typesr(rrOr��assertIn)r1r�	args_repr�kwargs�kwargs_reprsrr��kwargs_reprs        r�	test_reprzTestPartial.test_repr�s�����&�(�#���I�I�4�t�4�4�	��x�f�h�/��*�5�5�f�=�*�5�5�f�=�?���<�<�>�)�&�D��<�<�(�(�D��L�L��!�����D�6��7�+�Q�/��a��9��D�L�L��(�4�(�����D�6��7�+�R�	�{�!�<�d�1�g�F��D�L�L��+�F�+���
�
�d�1�g�*6�8�*6�;���q���2�k�]�!�<�*6�8�	9�
�D�L�L��2�4�2�6�2���
�
�d�1�g�*6�8�*6�;���q���2�i�[��;�-�q�I�*6�8�	9��	8��
8s�8F)
�F.
c��|jtvrd}n|jj}|jt�}|j	|diif�	|jt
|�|�d��|j	tdiif�|jt�}|j	t|fiif�	|jt
|�|�dt�d��|j	tdiif�|jt�}|j	tdd|iif�	|jt
|�|�dt�d��|j	tdiif�y#|j	tdiif�wxYw#|j	tdiif�wxYw#|j	tdiif�wxYw)Nr�rz(...)r�z, ...)r>z, a=...))rLr�r(r�__setstate__rOr�)r1rr�s   r�test_recursive_reprzTestPartial.test_recursive_repr�sp���<�<�>�)�&�D��<�<�(�(�D��L�L��!��	����2�r�2��'�	2����T�!�W�4�&9�:�
�N�N�G�R��R�0�1��L�L��!��	����!��r�2�.�/�	2����T�!�W�t�W�&F�G�
�N�N�G�R��R�0�1��L�L��!��	�����c�1�X�r�2�3�	2����T�!�W��w�&H�I�
�N�N�G�R��R�0�1��
�N�N�G�R��R�0�1��
�N�N�G�R��R�0�1��
�N�N�G�R��R�0�1�s$�E,�>%F
�-%F(�,F�
F%�(Gc�z�td|j�5|jtdgdg��}g|_ttjdz�D]O}t
jt
j||��}|jt|�t|���Q	ddd�y#1swYyxYw)Nr
r�Tr�r9)r�modulerLr$�attrr��pickle�HIGHEST_PROTOCOL�loads�dumpsrO�r1r��proto�f_copys    r�test_picklezTestPartial.test_pickles���
�[�$�+�+�
6����Y���t�f��=�A��A�F��v�6�6��:�;�����f�l�l�1�e�&<�=��� � ��6�!2�I�a�L�A�<�7�
6�
6�s�BB1�1B:c��|jtdgdg��}g|_tj|�}|j	t|�t|��|j|j|j�|j|j|j�|j|j|j�yr�)rLr$r��copyrO�assertIsrr!�r1r�r�s   r�	test_copyzTestPartial.test_copy
s����L�L��V�H�4�&�L�9��������1�������6�*�I�a�L�9��
�
�f�k�k�1�6�6�*��
�
�f�k�k�1�6�6�*��
�
�f�o�o�q�z�z�2rc�L�|jtdgdg��}g|_tj|�}|jt|�t|��|j
|j|j�|j
|j|j�|j
|jd|jd�|j
|j|j�|j
|jd|jd�y)Nr�Tr�rr�)	rLr$r�r��deepcopyrO�assertIsNotrr!r�s   r�
test_deepcopyzTestPartial.test_deepcopys����L�L��V�H�4�&�L�9��������q�!������6�*�I�a�L�9�������a�f�f�-�������a�f�f�-�������Q�������3�������!�*�*�5��������/����E�1B�Crc	��|jt�}|jtdt	d��t	g��f�|jt|�tdt	d��t	g��f�|j|dd��dddd	�f�|jtdt	d��df�|jt|�tdt	d��if�|j|dd��dddd	�f�|jtdddf�|j|dd��dd
dif�|j|d�dif�|j|�dif�|jtdidf�|jt|�tdiif�|j|dd��dd
dif�|j|d�dif�|j|�dif�y)
N�r9r;ra�r�r:r<rcrVr=r?r)r:)rLr$r�rrPrOr�s  r�
test_setstatezTestPartial.test_setstates����L�L��#��	�����t�b�z�4�R�=�A�B�����1��!�4����T�r�]�C�	E�����1���f�B�R�.@�%A�B�	�����t�b�z�4�8�9�����1����t�b�z�2�'F�G�����1���f�B�R�.@�%A�B�	�����t�T�2�3�����1���f�s�B�i�%8�9�����1����|�,������t�R�j�)�	�����R��.�/�����1����R��'<�=�����1���d�S�"�I�%6�7�����1���b�z�*������r�2�h�'rc	�d�|jt�}|jt|jt
dif�|jt|jt
diidf�|jt|jt
didg�|jt|jddidf�|jt|jt
didf�|jt|jt
gidf�|jt|jt
dgdf�y�Nr)rLr$rYrZr�rr�s  r�test_setstate_errorsz TestPartial.test_setstate_errors7s����L�L��#�����)�Q�^�^�g�r�2�5F�G����)�Q�^�^�g�r�2�r�4�5P�Q����)�Q�^�^�g�r�2�t�5L�M����)�Q�^�^�d�B��D�5I�J����)�Q�^�^�g�t�R��5N�O����)�Q�^�^�g�r�2�t�5L�M����)�Q�^�^�g�r�2�t�5L�Mrc�|�|jt�}|jtt	d�td��df�t|�}|j
|tdtd��if�|jt|d�t�|jt|d�t�|�}|j
|dddif�|jt|d�t�|jt|d�t�|jttd�idf�t|�}|j
|tdiif�|jt|d�t�|d�}|j
|dif�|jt|d�t�y)	Nr�r;rar9r:r>rrV)rLr$r�rr&r5rOrPr��type�tupler-)r1r��s�rs    r�test_setstate_subclassesz$TestPartial.test_setstate_subclassesAsO���L�L��#��	����������d�C�D��a�L������W�d�D�2�J��;�<��
�
�d�1�Q�4�j�%�(��
�
�d�1�Q�4�j�$�'�
�C������T�C��9�-�.��
�
�d�1�Q�4�j�%�(��
�
�d�1�Q�4�j�$�'�	�����$���T�:�;��a�L������W�d�B��3�4��
�
�d�1�Q�4�j�%�(�
�a�D������V�R�L�)��
�
�d�1�Q�4�j�%�(rc
��td|j�5|jt�}|j	|diif�	ttjdz�D]6}|jt�5t
j||�ddd��8	|j	tdiif�|jt�}|j	t|fiif�	ttjdz�D]d}t
jt
j||��}	|j|jd|�|j	tdiif��f	|j	tdiif�|jt�}|j	tdd|iif�	ttjdz�D]d}t
jt
j||��}	|j|jd|�|j	tdiif��f	|j	tdiif�	ddd�y#1swY��xYw#|j	tdiif�wxYw#|j	tdiif�wxYw#|j	tdiif�wxYw#|j	tdiif�wxYw#|j	tdiif�wxYw#1swYyxYw)Nr
rr9rr>)rr�rLrr�r�r�r�rY�RecursionErrorr�r�r�rr!r�s    r�test_recursive_picklez!TestPartial.test_recursive_pickleUst��
�[�$�+�+�
6����W�%�A�
�N�N�A�r�2�r�?�+�
6�"�6�#:�#:�Q�#>�?�E��*�*�>�:����Q��.�;�:�@������R��4�5����W�%�A�
�N�N�G�a�T�2�r�2�3�
6�"�6�#:�#:�Q�#>�?�E�#�\�\�&�,�,�q�%�*@�A�F�C��
�
�f�k�k�!�n�f�=��+�+�W�b�"�b�,A�B�@������R��4�5����W�%�A�
�N�N�G�R�#�q��2�6�7�
6�"�6�#:�#:�Q�#>�?�E�#�\�\�&�,�,�q�%�*@�A�F�C��
�
�f�o�o�c�&:�F�C��+�+�W�b�"�b�,A�B�@������R��4�5�A7�
6�
;�:�������R��4�5���+�+�W�b�"�b�,A�B�������R��4�5���+�+�W�b�"�b�,A�B�������R��4�5��A7�
6�s��+K:�4I$�7I�
I$�AK:�"AJ �+J�
J �&A	K:�0AK�9J>�K�4K:�I!�I$�$I?�?K:�J�J � J;�;K:�>K�K�K7�7K:�:Lc��Gd�d�}|jt�}|jt|j|��y)Nc��eZdZd�Zd�Zy)�7TestPartial.test_setstate_refcount.<locals>.BadSequencec��y)NrArr\s r�__len__z?TestPartial.test_setstate_refcount.<locals>.BadSequence.__len__{���rc�b�|dk(rtS|dk(rttd��S|dvriSt�)Nrr9i@B)r:r@)�maxr�r��
IndexError)r1�keys  r�__getitem__zCTestPartial.test_setstate_refcount.<locals>.BadSequence.__getitem__}s6���!�8��J��A�X� ��w��0�0��F�]��I� � rN)r(r)r*r�r�rrr�BadSequencer�zs��
�
!rr�)rLr�rYrZr�)r1r�r�s   r�test_setstate_refcountz"TestPartial.test_setstate_refcountys4��
	!�
	!�
�L�L�� �����)�Q�^�^�[�]�Crc���|jt}|j|j|j�|j	|j
tf�|j	|jd�yr�)rLr�r��
__origin__rO�__args__�__parameters__)r1�aliass  r�test_partial_genericaliasz%TestPartial.test_partial_genericalias�sT�����S�!���
�
�e�&�&����5�������#��0�����-�-�r�2rN)r(r)r*rTrWr]rerhrjrlrtrvr|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr7r7Ds���?�7�?�	%�.�2�<�=�=�:�F�>�3�=�
.�9�62�6B�3�	D�(�2N�)�(!6�HD� 3rr7z requires the C _functools modulec�>�eZdZereZej
Zd�Zd�Zd�Zy)�TestPartialCc
�t�|jtdddd��}|jtt|dt
�|jtt|dd�|jtt|d	t
dd���|jt�}	|`|jd
�y#t$rYywxYw)Nr9r:r;r<r=r rrVr!z-partial object allowed __dict__ to be deleted)rLrrY�AttributeError�setattrrQrP�hexr"r[rZrRs  r�test_attributes_unwritablez'TestPartialC.test_attributes_unwritable�s����L�L��!�Q�"��L�3�����.�'�1�f�c�B����.�'�1�f�f�E����.�'�1�j�$��a�.�Q��L�L����	G��
�
�I�I�E�F���	��	�s�B+�+	B7�6B7c��|jt�}d|jd<t|�}|j	d|�|j	d|�|jt�5|�ddd�y#1swYyxYw)N�valuei��1234z'value')rLrr!r�r�rYrZ)r1rSr�s   r�'test_manually_adding_non_string_keywordz4TestPartialC.test_manually_adding_non_string_keyword�sb���L�L��!��"��
�
�4����G���
�
�f�a� ��
�
�i��#�
�
�
�y�
)�
�C�*�
)�
)�s�)A:�:Bc����|jt��G�fd�dt�}dg�j|�<t	��}|jd|�|jd|�y)Nc���eZdZ�fd�Zy)�@TestPartialC.test_keystr_replaces_value.<locals>.MutatesYourDictc�&��dg�j|<y)N�sth2�astr)r!rRs �r�__str__zHTestPartialC.test_keystr_replaces_value.<locals>.MutatesYourDict.__str__�s���$*�8��
�
�4� �rN)r(r)r*r)rSs�r�MutatesYourDictr�s���
rr�sthrz['sth'])rLrr�r!r�r�)r1rr�rSs   @r�test_keystr_replaces_valuez'TestPartialC.test_keystr_replaces_value�sW����L�L��!��	�f�	�*/���
�
�?�$�%���G���
�
�f�a� ��
�
�i��#rN)	r(r)r*�c_functoolsr�rLr�r�rrrrr�r��s%������%�%��
G��
$rr�c�(�eZdZeZej
Zy)�
TestPartialPyN)r(r)r*�py_functoolsr�rLrrrr
r
�s��
�F��"�"�Grr
c��eZdZy)�CPartialSubclassNr'rrrr
r
�s��rr
c��eZdZy)�PyPartialSubclassNr'rrrrr�r+rrc��eZdZereZdZy)�TestPartialCSubclassN)r(r)r*rr
rLr�rrrrr�s���"�� $�rrc��eZdZeZy)�TestPartialPySubclassN)r(r)r*rrLrrrrr�s���Grrc�r�eZdZGd�de�Ze�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zy)�TestPartialMethodc��eZdZeje�Zejed�Zejed��Zejedd��Z	ejedd��Z
ejed�Zejejed	�
�d�Z
ejee�d�Zejee�d
��Zy)�TestPartialMethod.Ar9r:rar@rArc�r1r r`��rErb��	�rdN)r(r)r*r
�
partialmethodr�nothing�
positionalr!�both�
spec_keywordsr�rL�over_partial�staticmethod�static�classmethod�clsrrr�Ar�s���)�)�)�)�'�2��,�Y�,�,�W�a�8�
�*�9�*�*�7�a�8��&�y�&�&�w��Q�7��/�	�/�/��a�a�H�
�(��(�(��Q�7��.�y�.�.�/@�y�/@�/@��A�/N�PQ�R��(��(�(��g�)>��B��%�i�%�%�k�'�&:�a�@�rr(c�t�|j|jj�|jfif�|j|jjd�|jdfif�|j|jjd��|jfddif�|j|jjdd��|jdfddif�|j|jj�|jdfif�|j|jjd�|jddfif�|j|jjd��|jdfddif�|j|jjdd��|jddfddif�|j|jj	�|jfddif�|j|jj	d�|jdfddif�|j|jj	d��|jfddd�f�|j|jj	dd��|jdfddd�f�|j|jj�|jd	fd
dif�|j|jjd�|jd	dfd
dif�|j|jjd��|jd	fddd�f�|j|jjdd��|jd	dfddd�f�|j|jj|jdd��|jd	dfddd�f�|j|jj�|jfddd
�f�y)Nr`rrrEr9r>r:)r>rEr@r?rArDr)rOr>rr r!r!r(r"r\s rrjz'TestPartialMethod.test_arg_combinations�sW����������)�T�V�V�I�r�?�;����������*�d�f�f�a�[�"�,=�>���������!��,����y�3��(�.C�D����������Q��/�4�6�6�1�+��Q�x�1H�I�������*�*�,�����{�B�.?�@�������*�*�1�-�����A���/C�D�������*�*�Q�*�/�4�6�6�1�+��Q�x�1H�I�������*�*�1��*�2�d�f�f�a��^�c�1�X�4N�O���������*�d�f�f�Y��a��,A�B����������+�t�v�v�q�k�C��8�-D�E���������1��-����	���;K�/L�M����������a��0�D�F�F�A�;�a�a�@P�2Q�R����������$�&�&�!��s�A�h�(?�@���������Q��4�6�6�1�a�.�3��(�)C�D���������q��)�T�V�V�Q�K�q�q�9I�+J�K���������Q�!��,�����1�~�Q�Q�?O�.P�Q���������T�V�V�Q�!��4�����1�~�Q�UV�GW�6X�Y�������-�-�/�4�6�6�)�a�QR�=S�1T�Urc�x�|j|jj�|jddfif�|j|jjd�|jdddfif�|j|jjd��|jddfddif�|j|jjdd��|jdddfddif�|j|jj|jdd��|jdddfddif�y)Nr9r`rrbrrd)rOr>r�r(r\s r�test_nestedzTestPartialMethod.test_nesteds�����������D�F�F�A�q�>�2�*>�?���������q�)�T�V�V�Q��1�,=�r�+B�C�����������+�t�v�v�q�!�n�s�A�h�-G�H���������q�A��.�$�&�&�!�Q��1B�S�!�H�0M�N���������t�v�v�q�A��6�$�&�&�!�Q��9J�S�RS�H�8U�Vrc�|�|j|jj�|jdfddif�|j|jjd�|jddfddif�|j|jjd��|jdfddd�f�|j|jjdd��|jddfddd�f�|j|jj|jdd��|jddfddd�f�y)NrbrErr`rr�rErd)rOr>r#r(r\s r�test_over_partialz#TestPartialMethod.test_over_partial	s��������,�,�.�$�&�&�!��s�A�h�0G�H�������,�,�Q�/�4�6�6�1�a�.�3��(�1K�L�������,�,�q�,�1�T�V�V�Q�K�q�q�AQ�3R�S�������,�,�Q�!�,�4�����1�~�Q�UV�GW�6X�Y�������,�,�T�V�V�Q�!�,�<�����1�~�UV�]^�O_�>`�arc���|j}|j|jj|�|j|jj|�|j|j
j|�|j|jj|j�|j|jjj|j�yr)r>r�r!�__self__r�r#r'r(�r1�objs  r�test_bound_method_introspectionz1TestPartialMethod.test_bound_method_introspections����f�f���
�
�c�h�h�'�'��-��
�
�c�j�j�)�)�3�/��
�
�c�&�&�/�/��5��
�
�c�g�g�&�&����/��
�
�d�f�f�j�j�)�)�4�6�6�2rc��|j}|jt|jd��|jt|jd��|jt|j
d��|jt|jd��|jt|jjd��y)Nr0)r(�assertFalse�hasattrr!r�r#r%r>r1s  r�test_unbound_method_retrievalz/TestPartialMethod.test_unbound_method_retrievals����f�f���������:�6�7��������Z�8�9������!1�!1�:�>�?��������Z�8�9����������
�;�<rc	�B�|j|jfD�]v}|j|��5|j|j	�dif�|j|j	d�dif�|j|j	d��dddif�|j|j	dd��dddif�|j|j�|jfddif�|j|jd�|jdfddif�|j|jd�	�|jfddd
�f�|j|jdd�	�|jdfddd
�f�ddd���yy#1swY���xYw)N�r2)rr`)rr`rrrdrrr-)r(r>�subTestrOr%r'r1s  r�test_descriptorsz"TestPartialMethod.test_descriptors!s[���F�F�D�F�F�#�C����#��&�� � ������b�z�:�� � ����A�����=�� � ����a���4�#�q��2B�C�� � ����A���!3�f�s�A�h�5G�H�� � �����d�f�f�Y��a��,A�B�� � ������t�v�v�q�k�C��8�-D�E�� � ����1������	���;K�/L�M�� � �����a���D�F�F�A�;�a�a�@P�2Q�R�'�&�$�&�&�s�EF�F	c��|j|jjd��|jfddif�|j|jj|jd��|jfddif�y)Nr@rar>)rOr>r!r(r\s r�test_overriding_keywordsz*TestPartialMethod.test_overriding_keywords.sd����������1��-����	�C��8�/D�E������������1��5����	�C��8�7L�Mrc�F�|jt�5Gd�dt�}ddd�|jt�5Gd�d�}ddd�|jt�5Gd�d�}ddd�y#1swY�ZxYw#1swY�>xYw#1swYyxYw)Nc�2�eZdZejdd�Zy)�.TestPartialMethod.test_invalid_args.<locals>.BNr9�r(r)r*r
r�methodrrr�Br@4s��0��0�0��q�9�rrCc�.�eZdZej�Zy)r@NrArrrrCz.TestPartialMethod.test_invalid_args.<locals>.B7s��0��0�0�2�rc�4�eZdZejed��Zy)r@r9)r r>N)r(r)r*r
rrrBrrrrCz.TestPartialMethod.test_invalid_args.<locals>.B:s��0��0�0�g��C�r)rYrZr�)r1rCs  r�test_invalid_argsz#TestPartialMethod.test_invalid_args2s��
�
�
�y�
)�
:�F�
:�*��
�
�y�
)�
3�
3�*��
�
�y�
)�
D�
D�*�
)�
*�
)��*�
)��*�
)�s#�A?�B�+B�?B�B�B c��|jtt|j�d�dj	t
��|jtt|j�d�dj	t
��|jtt|j�d�dj	t
��|jtt|j�d�dj	t
��|jtt|j�d	�d
j	t
��y)Nrzfunctools.partialmethod({})r zfunctools.partialmethod({}, 1)r!z functools.partialmethod({}, a=2)r"z+functools.partialmethod({}, self=1, func=2)r!z#functools.partialmethod({}, 3, b=4))rOr��varsr(�formatrr\s rr�zTestPartialMethod.test_repr=s�������d�4�6�6�l�9�5�6�6�=�=�g�F�	H�����d�4�6�6�l�<�8�9�9�@�@��I�	K�����d�4�6�6�l�:�6�7�;�B�B�7�K�	M�����d�4�6�6�l�?�;�<�F�M�M�g�V�	X�����d�4�6�6�l�6�2�3�>�E�E�g�N�	Prc���Gd�dtj�}|j|jj�|j|j
j�|jj|jj|jj|jj|jjfD]}|jt|dd��� y)Nc�V�eZdZejd��Zejed�Zy)�1TestPartialMethod.test_abstract.<locals>.Abstractc��yrr�r1rJr�s   r�addz5TestPartialMethod.test_abstract.<locals>.Abstract.addL���rr`N)	r(r)r*�abc�abstractmethodrOr
r�add5rrr�AbstractrLJs0��
�
�
�
� �
�+�9�*�*�3��2�DrrT�__isabstractmethod__F)rQ�ABCMetarMrOrUrSr(r%r'r#r�r!r5r�)r1rTr s   r�
test_abstractzTestPartialMethod.test_abstractIs���	3�s�{�{�	3�	
������9�9�:�����
�
�:�:�;��V�V�]�]�D�F�F�J�J����0C�0C�T�V�V�]�]�TX�TZ�TZ�T_�T_�`�D����W�T�+A�5�I�J�arc�t�d�}tj|d�}|j|d�|dd��y)Nc��||zSrrr=s  rr�z1TestPartialMethod.test_positional_only.<locals>.fY����q�5�Lrr9r:)r
rLrOr�s   r�test_positional_onlyz&TestPartialMethod.test_positional_onlyXs5��	�
���a��#������1��q��A�w�'rN)r(r)r*r�r(r>rjr+r.r3r7r;r=rFr�rWr[rrrrr�sX��A�F�A�	
��A�V�2W�b�3�=�S�N�	D�
P�
K�(rrc�B�eZdZejej
fd�Zd�Zd�Ze	jejjdk\d�d��Zd�Zd�Zd	�Zej&e	jejjdk\d�d
���Zd�Zy)
�TestUpdateWrapperc�(�|D](}|jt||�t||���*|D]D}t||�}t||�}|D]%}|dk(r|dk(r�|j||||��'�F|j|j|�y)Nr"�__wrapped__)r�r�r_)	r1�wrapper�wrapped�assigned�updatedr�wrapper_attr�wrapped_attrr�s	         r�
check_wrapperzTestUpdateWrapper.check_wrapperbs����D��M�M�'�'�4�0�'�'�4�2H�I���D�"�7�D�1�L�"�7�D�1�L�#���:�%�#��*>���
�
�l�3�/��c�1B�C�	$��	
�
�
�g�)�)�7�3rc�j�d��}d|_d|_dd�}tj||�||fS)Nc��d�x}fdd�c�S)�Tc��y��This is a testNrras rr�z,TestUpdateWrapper._default_update.<locals>.fv���r)r>�This is a new annotationr)�	.defaultsris  rz<generic parameters of f>zDTestUpdateWrapper._default_update.<locals>.<generic parameters of f>vs	��a�	r�This is also a testzThis is a bald faced liec��yrrrcs rr`z2TestUpdateWrapper._default_update.<locals>.wrapper{���r)r?zThis is the prior annotation)r�r_r
�update_wrapper�r1r�r`s   r�_default_updatez!TestUpdateWrapper._default_updateus6��	�'���2��
�	�� � ��!�,���z�rc��|j�\}}|j||�|j\}|j|j|�|j|jd�|j|j|j�|j|jd�|j|jdd�|jd|j�|j|j|f�y)Nr�rpr>rnr?)rurf�__type_params__r�r_rOr(r*r��__annotations__�assertNotIn)r1r`r�ris    r�test_default_updatez%TestUpdateWrapper.test_default_update�s����)�)�+�
������7�A�&�
�
�
����
�
�g�)�)�1�-�����)�)�3�/�����-�-�q�~�~�>�������'<�=�����0�0��5�7Q�R�����g�5�5�6�����0�0�1�$�7rr:�)Docstrings are omitted with -O2 and abovec�b�|j�\}}|j|jd�y�Nrl�rurO�__doc__�r1r`r�s   r�test_default_update_docz)TestUpdateWrapper.test_default_update_doc��+���)�)�+�
���������*:�;rc��d�}d|_d�}tj||dd�|j||dd�|j	|j
d�|j
|j|j�|j	|jd�|j	|ji�|jt|d��y)Nc��yrkrrrrr�z+TestUpdateWrapper.test_no_update.<locals>.f�rmrrpc��yrrrrrr`z1TestUpdateWrapper.test_no_update.<locals>.wrapper�rrrrr`r�)r�r
rsrfrOr(�assertNotEqualr*rrxr5r6rts   r�test_no_updatez TestUpdateWrapper.test_no_update�s���	�'���	�� � ��!�R��4����7�A�r�2�.�����)�)�9�5����G�0�0�!�.�.�A�������$�/�����0�0�"�5������&�1�2rc���d�}d|_tddd��|_d�}i|_d}d	}tj||||�|j||||�|j
|jd
�|j|j|j�|j
|jd�|j
|jd�|j
|j|j�y)Nc��yrrrrrr�z2TestUpdateWrapper.test_selective_update.<locals>.f�rrr�This is a different testr9r:r@rGc��yrrrrrr`z8TestUpdateWrapper.test_selective_update.<locals>.wrapper�rrrr���	dict_attrr`)r�rPr�r
rsrfrOr(r�r*r�r1r�r`�assign�updates     r�test_selective_updatez'TestUpdateWrapper.test_selective_update�s���	�+����Q�!�q�)���	��������� � ��!�V�V�<����7�A�v�v�6�����)�)�9�5����G�0�0�!�.�.�A�������$�/�������'A�B�����*�*�A�K�K�8rc���d�}d�}i|_d}d}tj||||�|jd|j�|j|ji�|`|j
t�5tj||||�ddd�d|_|j
t�5tj||||�ddd�y#1swY�GxYw#1swYyxYw)Nc��yrrrrrr�z4TestUpdateWrapper.test_missing_attributes.<locals>.f�rrrc��yrrrrrr`z:TestUpdateWrapper.test_missing_attributes.<locals>.wrapper�rrrr�r�r�r9)r�r
rsryr"rOrYr�r�s     r�test_missing_attributesz)TestUpdateWrapper.test_missing_attributes�s���	�	��������� � ��!�V�V�<������!1�!1�2�����*�*�B�/���
�
�
�~�
.��$�$�W�a���@�/����
�
�
�~�
.��$�$�W�a���@�/�
.�/�
.��/�
.�s�9C�6C$�C!�$C-c��d�}tj|t�|j|jd�|j|jjd��|j|ji�y)Nc��yrrrrrr`z6TestUpdateWrapper.test_builtin_update.<locals>.wrapper�rrrr�zmax()	r
rsr�rOr(rMr�
startswithrx�r1r`s  r�test_builtin_updatez%TestUpdateWrapper.test_builtin_update�s^��
	�� � ��#�.�����)�)�5�1�������2�2�6�:�;�����0�0�"�5rc���d�}tj|t�|j|jd�|j|j
i�|j|jd�y)Nc��yrr�rs rr`z;TestUpdateWrapper.test_update_type_wrapper.<locals>.wrapper�s��Drr�r)r
rsr�rOr(rxrwr�s  r�test_update_type_wrapperz*TestUpdateWrapper.test_update_type_wrapper�sW�� �� � ��$�/�����)�)�6�2�����0�0�"�5�����0�0�"�5rN)r(r)r*r
�WRAPPER_ASSIGNMENTS�WRAPPER_UPDATESrfrurz�unittest�skipIfr�flags�optimizer�r�r�r�r�requires_docstringsr�r�rrrr]r]`s��� )�<�<�'�7�7�4�&	�
8��X�_�_�S�Y�Y�'�'�1�,�@�B�<�B�<�
3�9�$A�(
� � ��X�_�_�S�Y�Y�'�'�1�,�@�B�6�B�!�6�6rr]c��eZdZd�Zd�Zejejjdk\d�d��Z
d�Zd�Zy)	�	TestWrapsc�b�d�}d|_d|_tj|�d��}||fS)Nc��yrkrrrrr�z$TestWraps._default_update.<locals>.f�rmrrpzThis is still a bald faced liec��yrrrrrr`z*TestWraps._default_update.<locals>.wrapper�rmr)r�r_r
�wrapsrts   rruzTestWraps._default_update�s<��	�'���8��
�	����	�	�
�	���z�rc�
�|j�\}}|j||�|j|jd�|j|j|j�|j|j
d�y)Nr�rp)rurfrOr(r*r�r�s   rrzzTestWraps.test_default_update�si���)�)�+�
������7�A�&�����)�)�3�/�����-�-�q�~�~�>�������'<�=rr:r{c�b�|j�\}}|j|jd�yr}r~)r1r`�_s   rr�z!TestWraps.test_default_update_doc�r�rc�l�d�}d|_tj|dd�d��}|j||dd�|j	|j
d�|j
|j|j�|j	|jd�|jt|d��y)Nc��yrkrrrrr�z#TestWraps.test_no_update.<locals>.f�rmrrprc��yrrrrrr`z)TestWraps.test_no_update.<locals>.wrapper�rmrr`r�)r�r
r�rfrOr(r�r*rr5r6rts   rr�zTestWraps.test_no_update�s���	�'���	����B��	#�	�
$�	����7�A�r�2�.�����)�)�9�5����G�0�0�!�.�.�A�������$�/������&�1�2rc��d�}d|_tddd��|_d�}d}d	}tj|||�|d
���}|j||||�|j
|jd�|j|j|j�|j
|jd�|j
|jd�|j
|j|j�y)Nc��yrrrrrr�z*TestWraps.test_selective_update.<locals>.frrrr�r9r:r@rGc��i|_|Srr�)r�s r�
add_dict_attrz6TestWraps.test_selective_update.<locals>.add_dict_attr	s���A�K��Hrr�r�c��yrrrrrr`z0TestWraps.test_selective_update.<locals>.wrappers��
rr`)r�rPr�r
r�rfrOr(r�r*r)r1r�r�r�r�r`s      rr�zTestWraps.test_selective_updates���	�+����Q�!�q�)���	�����	����F�F�	+�	�	�
�
,�	����7�A�v�v�6�����)�)�9�5����G�0�0�!�.�.�A�������$�/�������'A�B�����*�*�A�K�K�8rN)
r(r)r*rurzr�r�rr�r�r�r�r�rrrr�r��sK��	�>��X�_�_�S�Y�Y�'�'�1�,�@�B�<�B�<�3�9rr�c��eZdZd�Zd�Zy)�
TestReducec	�t�Gd�d�}d�}|j|j|gd�d�d�|j|j|ddggd	d
ggg�gd��|j|jd�td
d�d�d�|j|jd�td
d�d�d�|j|j||d��d�|j|j||d�d�d�|j|j||d�d�d�|jt|j�|jt|jdd�|jt|jddd�|j|jdd�d�|j|jddd�d�|jt|jdd�|jt|j|g�|jt|j|d�|jt|j|d�|jt|j|t��Gd�d�}|jt|j||��|j|j|gd�d�|j|j|gd�d�Gd�d�}|jt|jd|��y)Nc��eZdZd�Zd�Zd�Zy)�'TestReduce.test_reduce.<locals>.Squaresc� �||_g|_yr)r��sofar)r1r�s  r�__init__z0TestReduce.test_reduce.<locals>.Squares.__init__s�������
rc�,�t|j�Sr)�lenr�r\s rr�z/TestReduce.test_reduce.<locals>.Squares.__len__!s���4�:�:��&rc���d|cxkr|jks
t�t�t|j�}||kr)|jj	||z�|dz
}||kr�)|j|S)Nrr9)r�r�r�r��append)r1�i�ns   rr�z3TestReduce.test_reduce.<locals>.Squares.__getitem__$sl���A�(����(�
�*:�(�
�*:���
�
�O���1�f��J�J�%�%�a��c�*���F�A��1�f��z�z�!�}�$rN)r(r)r*r�r�r�rrr�Squaresr�s��
 �
'�
%rr�c��||zSrrrs  rrOz#TestReduce.test_reduce.<locals>.add+rZrrGr�rQr>rErd�w)r>rErdr�c��||zSrrrs  rrKz(TestReduce.test_reduce.<locals>.<lambda>2s��!�A�#rr:rr9i�c��||zSrrrs  rrKz(TestReduce.test_reduce.<locals>.<lambda>4s��Q�q�Sr�lh�r;ir�*�1)r�r�rc��eZdZd�Zy)�/TestReduce.test_reduce.<locals>.TestFailingIterc��t�r��RuntimeErrorr\s r�__iter__z8TestReduce.test_reduce.<locals>.TestFailingIter.__iter__Fs��"�"rN)r(r)r*r�rrr�TestFailingIterr�Es��
#rr�c��eZdZd�Zy)�&TestReduce.test_reduce.<locals>.BadSeqc��t�r)�
ValueError)r1�indexs  rr�z2TestReduce.test_reduce.<locals>.BadSeq.__getitem__Ns�� � rN)r(r)r*r�rrr�BadSeqr�Ms��
!rr�)rO�reducer�rYrZr�r�r�)r1r�rOr�r�s     r�test_reducezTestReduce.test_reduces���	%�	%�	�������S�/�2�>��F�����K�K��s�C�j�"�s�C�j�9�2�>��	
�	
������%5�u�Q�q�z�1�E�t�L�����K�K�(�%��"�+�q�9��	
�	
������S�'�"�+�6��<�������S�'�"�+�q�9�3�?�������S�'�!�*�a�8�!�<����)�T�[�[�1����)�T�[�[�"�b�9����)�T�[�[�"�b�"�=�������R��-�s�3�������R��S�1�3�7����)�T�[�[�"�h�?����)�T�[�[�#�r�:����)�T�[�[�#�r�:����)�T�[�[�#�r�:����)�T�[�[�#�v�x�@�	#�	#�	
���,����S�/�:K�L�������S�"�d�3�T�:�������S�"�b�1�2�6�	!�	!�	
���*�d�k�k�2�v�x�@rc��Gd�d�}ddlm}|j|j||d��d�|j|j||d�d�d�|j	t
|j||d��|j|j||d�d�d�|j|j||d	��d�|j|j||d	�d�d�d	d
dd�}|j|j||�d
j
|j���y)Nc��eZdZd�Zd�Zy)�5TestReduce.test_iterator_usage.<locals>.SequenceClassc��||_yr�r�)r1r�s  rr�z>TestReduce.test_iterator_usage.<locals>.SequenceClass.__init__U�	����rc�J�d|cxkr|jkr	|St�t��Nr)r�r�)r1r�s  rr�zATestReduce.test_iterator_usage.<locals>.SequenceClass.__getitem__Ws(����?�D�F�F�?��H�#�%�$�*�$rN)r(r)r*r�r�rrr�
SequenceClassr�Ts��
�
%rr�r)rOr`r;r��4r9r:r@)�one�two�threer�)�operatorrOrOr�rYrZr��keys)r1r�rOrds    r�test_iterator_usagezTestReduce.test_iterator_usageSs
��	%�	%�	!�������S�-��*:�;�R�@�������S�-��*:�B�?��D����)�T�[�[�#�}�Q�7G�H�������S�-��*:�B�?��D�������S�-��*:�;�Q�?�������S�-��*:�B�?��D��a�!�,��������S�!�,�b�g�g�a�f�f�h�.?�@rN)r(r)r*r�r�rrrr�r�s��5A�pArr�c�*�eZdZer
ejZyy)�TestReduceCN)r(r)r*rr�rrrr�r�is����#�#��rr�c�0�eZdZeej
�Zy)�TestReducePyN)r(r)r*r$rr�rrrr�r�os��
�,�-�-�
.�Frr�c�|�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
jejd�d	��Zy
)�TestCmpToKeyc��d�}|j|�}|j|d�|d��|j|d�|d��|j|d�|d��d�}|j|�}|j|d�|d��|j	|d�|d��|j|d�|d��|j
|d�|d��y)	Nc��||kD||kz
Srrrs  r�cmp1z*TestCmpToKey.test_cmp_to_key.<locals>.cmp1v�����E�a�!�e�$�$rr@r9c�0�t|�t|�z
Sr�r�rs  r�cmp2z*TestCmpToKey.test_cmp_to_key.<locals>.cmp2}s���q�6�C��F�?�"rg@�4r:�35)�
cmp_to_keyrO�
assertGreater�assertGreaterEqual�
assertLess�assertLessEqualr�)r1r�r�r�s    r�test_cmp_to_keyzTestCmpToKey.test_cmp_to_keyus���	%��o�o�d�#������Q���Q��(����3�q�6�3�q�6�*�����A���A��/�	#��o�o�d�#������S��3�s�8�,�����A���D�	�*����S��V�S��Y�/����C��F�C��I�.rc�p�d�}|j|��}|j|d��|d���|j|d��|d���|jtt
f�5|d�dkDddd�|jtt
f�5d|d�kddd�|jt�5|j�}ddd�|jt�5|j|d�}ddd�|j|�}|jt�5|�ddd�|jt�5|dd�ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�axYw#1swYyxYw)Nc��||kD||kz
Srrrs  rr�z4TestCmpToKey.test_cmp_to_key_arguments.<locals>.cmp1�r�r��mycmpr@r9r9)r�rOr�rYrZr��r1r�r�s   r�test_cmp_to_key_argumentsz&TestCmpToKey.test_cmp_to_key_arguments�sB��	%��o�o�D�o�)��������S�Q�Z�0����3�1�:�s�q�z�2�
�
�
�	�>�:�
;���F�Q�J�<�
�
�
�	�>�:�
;�
��A��J�<�
�
�
�y�
)��/�/�#�C�*�
�
�
�y�
)��/�/�$��-�C�*��o�o�d�#��
�
�
�y�
)��E�*�
�
�
�y�
)���d�O�*�
)�<�
;��
;�
;��
)�
)��
)�
)��*�
)��
)�
)�sH�1E0� E<�	F�7F�8F �
F,�0E9�<F�F�F� F)�,F5c�8��d�}|j|�}|jt�5|d�|d�kDddd�Gd�d���fd�}|jt�5|d�|d�kDddd�y#1swY�HxYw#1swYyxYw)Nc��t�r�r�rs  rr�z'TestCmpToKey.test_bad_cmp.<locals>.cmp1�s��#�#rr@r9c��eZdZd�Zy)�)TestCmpToKey.test_bad_cmp.<locals>.BadCmpc��t�rr	r0s  r�__lt__z0TestCmpToKey.test_bad_cmp.<locals>.BadCmp.__lt__�s��'�'rN)r(r)r*r
rrr�BadCmpr�s��
(rrc�����Srr)rJr�rs  �rr�z'TestCmpToKey.test_bad_cmp.<locals>.cmp1�s
����8�Or)r�rYr�)r1r�r�rs   @r�test_bad_cmpzTestCmpToKey.test_bad_cmp�s����	$��o�o�d�#��
�
�
�0�
1���F�S��V�O�2�	(�	(�	�
�
�
�0�
1���F�S��V�O�2�
1�2�
1��2�
1�s�B�)B�B
�Bc�r�d�}|j|��}|j|d�jd�y)Nc��||kD||kz
Srrrs  rr�z)TestCmpToKey.test_obj_field.<locals>.cmp1�r�rr�2)r�rOr2rs   r�test_obj_fieldzTestCmpToKey.test_obj_field�s/��	%��o�o�D�o�)������R����b�)rc�x�d�}|jttd�|j|���gd��y)Nc��||z
Srrrs  rrz)TestCmpToKey.test_sort_int.<locals>.mycmp�rZrr`�r�)rAr@r:r9r)rO�sortedr�r�)r1rs  r�
test_sort_intzTestCmpToKey.test_sort_int�s.��	������a��d�o�o�e�.D�E�(�	*rc��d�}gd�}t||j|���}|j|D�cgc]
}t|���c}gd��ycc}w)Nc�D�t|�t|�}}||kD||kz
Srr�rs  rrz-TestCmpToKey.test_sort_int_str.<locals>.mycmp�s&���q�6�3�q�6�q�A���E�a�!�e�$�$r)	r`�3rbr:�0r�rA�10r9r)	rr9r9r:r@rAr`rbr;)rr�rOr�)r1r�valuesr�s    r�test_sort_int_strzTestCmpToKey.test_sort_int_str�sL��	%�6����D�O�O�E�$:�;�����&�9�&��#�e�*�&�9�5�	7��9s�Ac���d�}|j|�}|d�}|jtt|�|j	|t
jj�y)Nc��||z
Srrrs  rrz%TestCmpToKey.test_hash.<locals>.mycmp�rZrr;)r�rYrZ�hash�assertNotIsInstance�collectionsrQ�Hashable)r1rr��ks    r�	test_hashzTestCmpToKey.test_hash�sJ��	��o�o�e�$����G�����)�T�1�-�� � ��K�O�O�$<�$<�=rz6Signature information for builtins requires docstringsc�t�|jttj|j��d�y)Nz(mycmp))rOr�r�
from_callabler�r\s r�test_cmp_to_signaturez"TestCmpToKey.test_cmp_to_signature�s+��	
����Y�4�4�T�_�_�E�F�"�	$rN)r(r)r*rrrrrr r(r�r�r�MISSING_C_DOCSTRINGSr+rrrr�r�ssQ��/� �(
�*�*�7�>��X�_�_�W�1�1�M�O�$�O�$rr�c�L�eZdZerejZejd��Zy)�
TestCmpToKeyCc�h�tj|ttj	d���yr)r�check_disallow_instantiationr�rr�r\s r�test_disallow_instantiationz)TestCmpToKeyC.test_disallow_instantiation�s'��	�,�,��$�{�-�-�d�3�4�	
rN)r(r)r*rr�r�cpython_onlyr1rrrr.r.�s(��� �+�+�
����
��
rr.c�0�eZdZeej
�Zy)�TestCmpToKeyPyN)r(r)r*r$rr�rrrr4r4�s���l�5�5�6�Jrr4c�H�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�TestTotalOrderingc��tjGd�d��}|j|d�|d�k�|j|d�|d�kD�|j|d�|d�k�|j|d�|d�k\�|j|d�|d�k�|j|d�|d�k\�|j|d�|d�kD�y)Nc��eZdZd�Zd�Zd�Zy)�3TestTotalOrdering.test_total_ordering_lt.<locals>.Ac��||_yr�r��r1r�s  rr�z<TestTotalOrdering.test_total_ordering_lt.<locals>.A.__init__��	��"��
rc�4�|j|jkSrr;r0s  rr
z:TestTotalOrdering.test_total_ordering_lt.<locals>.A.__lt__�����z�z�E�K�K�/�/rc�4�|j|jk(Srr;r0s  r�__eq__z:TestTotalOrdering.test_total_ordering_lt.<locals>.A.__eq__�����z�z�U�[�[�0�0rN�r(r)r*r�r
rArrrr(r9����
#�
0�
1rr(r9r:�r
�total_orderingrMr5�r1r(s  r�test_total_ordering_ltz(TestTotalOrdering.test_total_ordering_lt�����	�	!�	!�	1�	1�
"�	1�	
����!��q��t��$�����!��q��t��$�����!���!���%�����!���!���%�����!���!���%�����!���!���%�����1���!���%rc��tjGd�d��}|j|d�|d�k�|j|d�|d�kD�|j|d�|d�k�|j|d�|d�k\�|j|d�|d�k�|j|d�|d�k\�|j|d�|d�k\�y)Nc��eZdZd�Zd�Zd�Zy)�3TestTotalOrdering.test_total_ordering_le.<locals>.Ac��||_yrr;r<s  rr�z<TestTotalOrdering.test_total_ordering_le.<locals>.A.__init__�r=rc�4�|j|jkSrr;r0s  r�__le__z:TestTotalOrdering.test_total_ordering_le.<locals>.A.__le__�rBrc�4�|j|jk(Srr;r0s  rrAz:TestTotalOrdering.test_total_ordering_le.<locals>.A.__eq__�rBrN)r(r)r*r�rOrArrrr(rL����
#�
1�
1rr(r9r:rErGs  r�test_total_ordering_lez(TestTotalOrdering.test_total_ordering_le�����	�	!�	!�	1�	1�
"�	1�	
����!��q��t��$�����!��q��t��$�����!���!���%�����!���!���%�����!���!���%�����!���!���%�����1���1���&rc��tjGd�d��}|j|d�|d�k�|j|d�|d�kD�|j|d�|d�k�|j|d�|d�k\�|j|d�|d�k�|j|d�|d�k\�|j|d�|d�k�y)Nc��eZdZd�Zd�Zd�Zy)�3TestTotalOrdering.test_total_ordering_gt.<locals>.Ac��||_yrr;r<s  rr�z<TestTotalOrdering.test_total_ordering_gt.<locals>.A.__init__r=rc�4�|j|jkDSrr;r0s  r�__gt__z:TestTotalOrdering.test_total_ordering_gt.<locals>.A.__gt__r?rc�4�|j|jk(Srr;r0s  rrAz:TestTotalOrdering.test_total_ordering_gt.<locals>.A.__eq__rBrN)r(r)r*r�rYrArrrr(rVrDrr(r9r:rErGs  r�test_total_ordering_gtz(TestTotalOrdering.test_total_ordering_gtrIrc��tjGd�d��}|j|d�|d�k�|j|d�|d�kD�|j|d�|d�k�|j|d�|d�k\�|j|d�|d�k�|j|d�|d�k\�|j|d�|d�k�y)Nc��eZdZd�Zd�Zd�Zy)�3TestTotalOrdering.test_total_ordering_ge.<locals>.Ac��||_yrr;r<s  rr�z<TestTotalOrdering.test_total_ordering_ge.<locals>.A.__init__r=rc�4�|j|jk\Srr;r0s  r�__ge__z:TestTotalOrdering.test_total_ordering_ge.<locals>.A.__ge__rBrc�4�|j|jk(Srr;r0s  rrAz:TestTotalOrdering.test_total_ordering_ge.<locals>.A.__eq__rBrN)r(r)r*r�rarArrrr(r^rQrr(r9r:rErGs  r�test_total_ordering_gez(TestTotalOrdering.test_total_ordering_gerSrc���tjGd�dt��}|j|d�|d�k�|j|d�|d�kD�|j|d�|d�k�|j|d�|d�k\�|j|d�|d�k�|j|d�|d�k\�y)Nc��eZdZy)�=TestTotalOrdering.test_total_ordering_no_overwrite.<locals>.ANr'rrrr(rf%���rr(r9r:)r
rFr�rMrGs  r� test_total_ordering_no_overwritez2TestTotalOrdering.test_total_ordering_no_overwrite#s���	�	!�	!�	��	�
"�	�����!��q��t��$�����!��q��t��$�����!���!���%�����!���!���%�����!���!���%�����!���!���%rc��|jt�5tjGd�d��}ddd�y#1swYyxYw)Nc��eZdZy)�7TestTotalOrdering.test_no_operations_defined.<locals>.ANr'rrrr(rk1s��rr()rYr�r
rFrGs  r�test_no_operations_definedz,TestTotalOrdering.test_no_operations_defined/s9��
�
�
�z�
*�
�
%�
%�
�
�&�
�+�
*�
*�s	�=�Ac������tjG�fd�d���tjG�fd�d���tjG�fd�d���tjG�fd�d���|j�d	�jd	�t�|j�d	�jd	�t�|j�d	�j
d	�t�|j�d	�jd	�t�|j�d	�jd	�t�|j�d	�j
d	�t�|j�d	�jd	�t�|j�d	�jd	�t�|j�d	�j
d	�t�|j�d	�jd	�t�|j�d	�jd	�t�|j�d	�jd	�t�y)
Nc�(��eZdZd�Z�fd�Z�fd�Zy)�ATestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanc��||_yrr;r<s  rr�zJTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThan.__init__9r=rc�P��t|��r|j|jk(Sy�NF��
isinstancer��r1r2�ImplementsLessThans  �rrAzHTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThan.__eq__;�$����e�%7�8��:�:����4�4�rc�Z��t|��r|j|jkStSr�rtr��NotImplementedrus  �rr
zHTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThan.__lt__?�'����e�%7�8��:�:����3�3�%�%rN�r(r)r*r�rAr
�rvs�rrvro7����
#�
�
&rrvc�(��eZdZd�Z�fd�Z�fd�Zy)�HTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualToc��||_yrr;r<s  rr�zQTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualTo.__init__Fr=rc�P��t|��r|j|jk(Syrrrs�r1r2�ImplementsLessThanEqualTos  �rrAzOTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualTo.__eq__H�$����e�%>�?��:�:����4�4�rc�Z��t|��r|j|jkStSrryr�s  �rrOzOTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualTo.__le__L�'����e�%>�?��:�:����4�4�%�%rN�r(r)r*r�rArO�r�s�rr�r�Dr~rr�c�(��eZdZd�Z�fd�Z�fd�Zy)�DTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanc��||_yrr;r<s  rr�zMTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThan.__init__Sr=rc�P��t|��r|j|jk(Syrrrs�r1r2�ImplementsGreaterThans  �rrAzKTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThan.__eq__U�$����e�%:�;��:�:����4�4�rc�Z��t|��r|j|jkDStSrryr�s  �rrYzKTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThan.__gt__Y�'����e�%:�;��:�:����3�3�%�%rN�r(r)r*r�rArY�r�s�rr�r�Qr~rr�c�(��eZdZd�Z�fd�Z�fd�Zy)�KTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualToc��||_yrr;r<s  rr�zTTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualTo.__init__`r=rc�P��t|��r|j|jk(Syrrrs�r1r2�ImplementsGreaterThanEqualTos  �rrAzRTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualTo.__eq__b�$����e�%A�B��:�:����4�4�rc�Z��t|��r|j|jk\StSrryr�s  �rrazRTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualTo.__ge__f�'����e�%A�B��:�:����4�4�%�%rN�r(r)r*r�rAra�r�s�rr�r�^r~rr�r9)r
rFr�rOrzrYrar
)r1r�r�rvr�s @@@@r�test_notimplementedz%TestTotalOrdering.test_notimplemented5s����	�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�	
�
�
�(��+�2�2�1�5�~�F��
�
�(��+�2�2�1�5�~�F��
�
�(��+�2�2�1�5�~�F��
�
�/��2�9�9�!�<�n�M��
�
�/��2�9�9�!�<�n�M��
�
�/��2�9�9�!�<�n�M��
�
�+�A�.�5�5�a�8�.�I��
�
�+�A�.�5�5�a�8�.�I��
�
�+�A�.�5�5�a�8�.�I��
�
�2�1�5�<�<�Q�?��P��
�
�2�1�5�<�<�Q�?��P��
�
�2�1�5�<�<�Q�?��Prc�
������tjG�fd�d���tjG�fd�d���tjG�fd�d���tjG�fd�d���tjG�fd	�d
���|jd�5|jt�5�d�d
kddd�ddd�|jd�5|jt�5�d��d�kddd�ddd�|jd�5|jt�5�d
��d
�kddd�ddd�|jd�5|jt�5�d��d�kddd�ddd�|jd�5|jt�5�d��d�kddd�ddd�|jd�5|jt�5�d��d�kDddd�ddd�|jd�5|jt�5�d��d�kDddd�ddd�|jd�5|jt�5�d��d�k\ddd�ddd�|jd�5|jt�5�d��d�k\ddd�ddd�|jd�5�d�}�d�}|j||�|jt�5||k\ddd�ddd�|jd�5�d �}�d �}|j||�|jt�5||kddd�ddd�y#1swY��xYw#1swY��xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��]xYw#1swY��bxYw#1swY��.xYw#1swY��3xYw#1swY���xYw#1swY��xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��\xYw#1swY��axYw#1swY��xYw#1swYyxYw)!Nc�(��eZdZd�Z�fd�Z�fd�Zy)�RTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanc��||_yrr;r<s  rr�z[TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__init__}r=rc�P��t|��r|j|jk(Syrrrsrus  �rrAzYTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__eq__rwrc�Z��t|��r|j|jkStSrryrus  �rr
zYTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__lt__�r{rNr|r}s�rrvr�{r~rrvc�(��eZdZd�Z�fd�Z�fd�Zy)�UTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanc��||_yrr;r<s  rr�z^TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__init__�r=rc�P��t|��r|j|jk(Syrrrsr�s  �rrAz\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__eq__�r�rc�Z��t|��r|j|jkDStSrryr�s  �rrYz\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__gt__�r�rNr�r�s�rr�r��r~rr�c�(��eZdZd�Z�fd�Z�fd�Zy)�YTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualToc��||_yrr;r<s  rr�zbTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__init__�r=rc�P��t|��r|j|jk(Syrrrsr�s  �rrAz`TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__eq__�r�rc�Z��t|��r|j|jkStSrryr�s  �rrOz`TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__le__�r�rNr�r�s�rr�r��r~rr�c�(��eZdZd�Z�fd�Z�fd�Zy)�\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualToc��||_yrr;r<s  rr�zeTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__init__�r=rc�P��t|��r|j|jk(Syrrrsr�s  �rrAzcTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__eq__�r�rc�Z��t|��r|j|jk\StSrryr�s  �rrazcTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__ge__�r�rNr�r�s�rr�r��r~rr�c�$��eZdZd�Z�fd�Zd�Zy)�XTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplementedc��||_yrr;r<s  rr�zaTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__init__�r=rc�P��t|��r|j|jk(Syrrrs)r1r2�ComparatorNotImplementeds  �rrAz_TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__eq__�s$����e�%=�>��:�:����4�4�rc��tSr)rzr0s  rr
z_TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__lt__�s��%�%rNr|)r�s�rr�r��s���
#�
�
&rr�zLT < 1���r9zLT < LErzLT < GTzLE <= LTr:zLE <= GEr@zGT > GErAzGT > LTr`zGE >= GTrzGE >= LErbz
GE when equalrz
LE when equalr)r
rFr:rYrZrO)r1r>r?r�r�r�rvr�s   @@@@@r�$test_type_error_when_not_implementedz6TestTotalOrdering.test_type_error_when_not_implementedxs����
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�	&�	&�
"�	&��\�\�(�
#�T�%6�%6�y�%A��r�"�Q�&�&B�
#��\�\�)�
$�d�&7�&7�	�&B��q�!�$=�a�$@�@�'C�
$��\�\�)�
$�d�&7�&7�	�&B��q�!�$9�!�$<�<�'C�
$��\�\�*�
%�t�'8�'8��'C�%�a�(�,>�q�,A�A�(D�
%��\�\�*�
%�t�'8�'8��'C�%�a�(�,H��,K�K�(D�
%��\�\�)�
$�d�&7�&7�	�&B�!�!�$�'C�A�'F�F�'C�
$��\�\�)�
$�d�&7�&7�	�&B�!�!�$�'9�!�'<�<�'C�
$��\�\�*�
%�t�'8�'8��'C�(��+�/D�Q�/G�G�(D�
%��\�\�*�
%�t�'8�'8��'C�(��+�/H��/K�K�(D�
%��\�\�/�
*�(��+�A�(��+�A����Q��"��"�"�9�-��Q��.�	+��\�\�/�
*�(��+�A�(��+�A����Q��"��"�"�9�-��Q��.�	+�
*�E&B�%A��
#�
#��'C�&B��
$�
$��'C�&B��
$�
$��(D�'C��
%�
%��(D�'C��
%�
%��'C�&B��
$�
$��'C�&B��
$�
$��(D�'C��
%�
%��(D�'C��
%�
%��.�-��	+�
*��.�-��	+�
*�s��2O8�O+�O8�5P�P�P�>P,�P�&P,�Q�P9�/Q�Q �&Q�8Q �Q:�/Q-�Q:�"R�8R�
R�+R.�R!�R.�4S�
R;�S�=8S"�5S�;S"�8S<�S/�S<�+O5	�0O8�8P�P	�
P�P�P)	�$P,�,P6�9Q	�>Q�Q�Q	�Q � Q*�-Q7	�2Q:�:R�R	�R�R�!R+	�&R.�.R8�;S	�S�S�S	�S"�"S,�/S9	�4S<�<Tc	�:�ttjdz�D]p}dD]i}|j||��5t	t
|�}tjtj||��}|j||�ddd��k�ry#1swY�xxYw)Nr9)r
rYrOra)rBr�)	r�r�r�r:r��Orderable_LTr�r�r�)r1r�rrB�method_copys     rr�zTestTotalOrdering.test_pickle�sx���6�2�2�Q�6�7�E�>���\�\��U�\�;�$�\�4�8�F�"(�,�,�v�|�|�F�E�/J�"K�K��M�M�+�v�6�<�;�?�8�;�;�s�AB�Bc����tjG�fd�dt���Gd�d���}Gd�d���}|j||k�|j	||kD�y)Nc�4���eZdZ�fd�Z�fd�Z�fd�Z�xZS)�WTestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMetac�(��t�|�||||�Sr)�super�__new__)r'r�bases�ns�	__class__s    �rr�z_TestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMeta.__new__�s����w��s�D�%��<�<rc�P��t|��s	|j|jkSr�rtr(�r1r2�SortableMetas  �rr
z^TestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMeta.__lt__�s#���!�%��6���}�}�u�~�~�5�5rc�P��t|��s	|j|jk(Srr�r�s  �rrAz^TestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMeta.__eq__�s#���!�%��6���}�}����6�6r)r(r)r*r�r
rA�
__classcell__)r�r�s@�rr�r��s���
=�
6�

7�
7rr�c��eZdZy)�LTestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.BNr'rrrrCr�����rrC��	metaclassc��eZdZy)�LTestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.ANr'rrrr(r�r�rr()r
rFr�rMr5)r1rCr(r�s   @r�/test_total_ordering_for_metaclasses_issue_44605zATestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605�s^���	�	!�	!�	7�4�	7�
"�	7�	�,�	�	�,�	�	
����A�������Q��rN)
r(r)r*rHrRr[rcrhrlr�r�r�r�rrrr6r6�s9��&�"'�"&�"'�"
&��AQ�Fi�V7� rr6c��eZdZd�Zd�Zd�Zy)r�c��||_yrr;r<s  rr�zOrderable_LT.__init__	s	����
rc�4�|j|jkSrr;r0s  rr
zOrderable_LT.__lt__s���z�z�E�K�K�'�'rc�4�|j|jk(Srr;r0s  rrAzOrderable_LT.__eq__
s���z�z�U�[�[�(�(rNrCrrrr�r�s���(�)rr�c��eZdZd�Zy)�	TestCachec	����|jj�fd���|jtd�D�cgc]
}�|���c}gd��|j�j	�|jjdddd����j
�|j�j	�|jjdddd���ycc}w)Nc�@��|dkr|S�|dz
��|dz
�zS�Nr:r9r�r��fibs �rr�z!TestCache.test_cache.<locals>.fib�*����1�u����q��s�8�c�!�A�#�h�&�&rr��rr9r9r:r@r`r�
r��"�7�Y���iyib���hits�misses�maxsize�currsizer)r��cacherOr��
cache_info�
_CacheInfo�cache_clear�r1r�r�s  @r�
test_cachezTestCache.test_caches����	
���	�	�	'�
�	'�	
���%��)�4�)�Q�#�a�&�)�4�I�	K�������)��K�K�"�"��2�t�b�"�Q�	S�����������)��K�K�"�"��!�T�A�"�N�	P��5s�CN)r(r)r*r�rrrr�r�s��Prr�c��eZdZeZy)�TestCachePyN)r(r)r*rr�rrrr�r�$s��
�Frr�c��eZdZereZyy)�
TestCacheCN)r(r)r*rr�rrrr�r�(s�����rr�c�,�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zej*�d��Zej*�d��Zej*�d��Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z y)�TestLRUc�	�
�d�}|jjd��|�}|j�\}}}}|j|d�|j|d�|j|d�|j|d�t	d�}t	d�D]<}t|�t|�}
}	||	|
�}||	|
�}|j||��>|j�\}}}}|j
||kD�|j||zd�|j|d�|j�|j�\}}}}|j|d�|j|d�|j|d�|	
�|j�\}}}}|j|d�|j|d�|j|d�|j|j|�|j|	|
�|j�\}}}}|j|d�|j|d�|j|d�|jjd��
fd��}|j|j�jd�d�
t	d�D]}|j|�d��|j�
d�|j�\}}}}|j|d�|j|d�|j|d�|jjd��
fd	��}|j|j�jd�d�
t	d�D]}|j|�d��|j�
d�|j�\}}}}|j|d
�|j|d�|j|d�|jjd��
fd��}|j|j�jd�d�
d
D]}	|j||	�|	dz��|j�
d
�|j�\}}}}|j|d�|j|d
�|j|d�y)Nc��d|z|zS�Nr@rrs  r�origzTestLRU.test_lru.<locals>.orig1����q�5�1�9�rr<�r�rr`��r9c����dz
�y�Nr9r<r��f_cnts�rr�zTestLRU.test_lru.<locals>.fY����
�Q�J�E�rc����dz
�yrrrs�rr�zTestLRU.test_lru.<locals>.firrrAr:c����dz
�|dzS�Nr9r;r)rJrs �rr�zTestLRU.test_lru.<locals>.fys���
�Q�J�E��R�4�Kr)rbrrbrrbrrrrrrrrrrrbr;�)r��	lru_cacher�rOr�rrMr�r�r_r�)r1rr�r�r�r�r��domainr�rJr��actualrqrs             @r�test_lruzTestLRU.test_lru0sE���	�-�D�K�K�!�!�"�!�-�d�3��*+�,�,�.�'��f�g�x�����"�%�����1�%�����q�!������#��q����t��A��&�>�6�&�>�q�A��q�!�W�F��A�q�z�H����V�X�.�	�
+,�,�,�.�'��f�g�x�����v�
�&��������-�����2�&�	�
�
��*+�,�,�.�'��f�g�x�����q�!������#�����1�%�	�!�Q��*+�,�,�.�'��f�g�x�����q�!������#�����1�%�	
�
�
�a�m�m�T�*�	�
�
�a���*+�,�,�.�'��f�g�x�����q�!������#�����1�%�
���	�	�q�	!�	�
"�	�	
�������/�/��3����q��A����Q�S�"�%�������"�*+�,�,�.�'��f�g�x�����q�!������#�����1�%�
���	�	�q�	!�	�
"�	�	
�������/�/��3����q��A����Q�S�"�%�������"�*+�,�,�.�'��f�g�x�����q�!������#�����1�%�
���	�	�q�	!�	�
"�	�	
�������/�/��3���?�A����Q�q�T�1�R�4�(�@�	
�����"�*+�,�,�.�'��f�g�x�����r�"������#�����1�%rc	���|jjd��}|jtt	|gd���gd��|j|j�jd�|j|j�jd�|j|j�jd�|j|j�jd�y)Nc��|dzS�Nr:rrIs r�squarez(TestLRU.test_lru_no_args.<locals>.square�s����6�Mr)r;r<r;)�di�rr9r:�)
r�r
rOr/rQr�r�r�r�r�)r1rs  r�test_lru_no_argszTestLRU.test_lru_no_args�s���	
���	�	�	�
�	�	
����c�&�,�7�8�(�	*�����*�*�,�1�1�1�5�����*�*�,�3�3�Q�7�����*�*�,�4�4�c�:�����*�*�,�5�5�q�9rc����d�|jjd����fd���td�D]}|j�|�d|�d��� |j�j	�j
d�|j�d�d�|j�j	�j
d�y)	NTr;rc�6��d|�d�}|dk(r�r
d��|�}|S)N�.r<Fr)rJ�rvr��onces  ��rr�z%TestLRU.test_lru_bug_35780.<locals>.f�s.����Q�C�q��B��B�w�4����q�T���Ir�rr<z.20.)r�r
r�rOr�r�)r1rJr�rs  @@r�test_lru_bug_35780zTestLRU.test_lru_bug_35780�s������	
���	�	�r�	�	*�	�
+�	��r��A����Q�q�T�Q�q�c��8�,���������0�0�"�5�	
����2���'��������0�0�"�5rc��|jj�d��}|d�|dii��|j|j�jd�y)Nc��yrrrIs rr�z%TestLRU.test_lru_bug_36650.<locals>.f�rmrrr9rn)r�r
rOr�r�r�s  r�test_lru_bug_36650zTestLRU.test_lru_bug_36650�sQ��
���	�	�	 �	�
!�	�	
�!��	�
�r�
��������,�,�a�0rc��|jjd��d��}tjj	�}tjj	d��|_tjj	d��|_|j||d�d�|j|jjd�|j|j�d�|j||d�d�|j|jjd	�|j|j�d
�|j|dd	�d�|j|jjd	�|j|j�d
�|j||d�d�|j|jjd�|j|j�d�y)Nr9rc��|dz|zSr�rrs  rr�z*TestLRU.test_lru_hash_only_once.<locals>.f�����q�5�1�9�rr)�return_value��r�)rr9r9r9r:)r9r9r9r9rr<)r9r:r9r9r@)r9r@r9r9)
r�r
r��mock�Mock�__mul__�__hash__rO�
call_countr�)r1r��mock_ints   r�test_lru_hash_only_oncezTestLRU.test_lru_hash_only_once�s���
���	�	�q�	�	)�	�
*�	��=�=�%�%�'��#�=�=�-�-�2�-�>���$�M�M�.�.�C�.�@���	
����8�Q���,�����*�*�5�5�q�9���������6�	
����8�Q���,�����*�*�5�5�q�9���������6�	
����1�a��"�%�����*�*�5�5�q�9���������6�	
����8�Q���,�����*�*�5�5�q�9���������6rc��tj}	|jjd�t�t_dD] }|j	tdd|�|��"	|t_y#|t_wxYw)NrA)
rrr9r:r@r@rAr`rr9rbr:r9�abcdefghijklmn)�builtinsr�r�r
rO)r1�old_lenr�s   r�test_lru_reentrancy_with_lenz$TestLRU.test_lru_reentrancy_with_len�sg���,�,��	#�3�4�;�;�0�0��3�C�8�H�L�<��� � ��%5�b�q�%9�!:�A�>�=�#�H�L��7�H�L�s�AA2�2
A?c��|jj�d��}|j|dd�d�|j|d�d�y)Nc��|Srrr�s rr�z-TestLRU.test_lru_star_arg_handling.<locals>.f�s���Krr9r:rV)rV�r�r
rOr�s  r�test_lru_star_arg_handlingz"TestLRU.test_lru_star_arg_handling�sM��	
���	�	�	 �	�
!�	�	
����1�a��&�)�����6��I�.rc�T�|jjd��d��}|jjd��d��}|jt�5|g�ddd�|jt�5|g�ddd�y#1swY�0xYw#1swYyxYw)Nrc��yrr��os r�infinite_cachez3TestLRU.test_lru_type_error.<locals>.infinite_cache�rmrr;c��yrrr9s r�
limited_cachez2TestLRU.test_lru_type_error.<locals>.limited_cache�rmr)r�r
rYrZ)r1r;r=s   r�test_lru_type_errorzTestLRU.test_lru_type_error�s���

���	�	�t�	�	,�	�
-�	�
���	�	�r�	�	*�	�
+�	��
�
�y�
)��2��*��
�
�y�
)��"��*�
)�*�
)��*�
)�s�	B�	B�B�B'c	����|jjd���fd���|jtd�D�cgc]
}�|���c}gd��|j�j	�|jjdddd����j
�|j�j	�|jjdddd���ycc}w)Nrc�@��|dkr|S�|dz
��|dz
�zSr�rr�s �rr�z/TestLRU.test_lru_with_maxsize_none.<locals>.fib
r�rr�r�r�r�r�r�r
rOr�r�r�r�r�s  @r�test_lru_with_maxsize_nonez"TestLRU.test_lru_with_maxsize_none	s����	
���	�	�t�	�	,�	'�
-�	'�	
���%��)�4�)�Q�#�a�&�)�4�I�	K�������)��K�K�"�"��2�t�b�"�Q�	S�����������)��K�K�"�"��!�T�A�"�N�	P��5s�C"c	�\�|jjd��d��}dD]C}|jtd�D�cgc]
}||���c}t	td����E|j|j�|jj
dddd���ycc}w)	Ni����rc��|Srrr�s r�eqz2TestLRU.test_lru_with_maxsize_negative.<locals>.eq����Hrro�ri,r�)r�r
rOr�r/r�r�)r1rEr�r�s    r�test_lru_with_maxsize_negativez&TestLRU.test_lru_with_maxsize_negatives���	
���	�	�s�	�	+�	�
,�	��A����U�3�Z�8�Z��b��e�Z�8�$�u�S�z�:J�K����������K�K�"�"��#�q�1�"�M�	O��9s�B)
c��dD]�}|jj|�d��}|j|d�d�|jt�5}|d�ddd�|jjj�|jt�5|d�ddd���y#1swY�WxYw#1swY��xYw)N�Nrc��d|S)NrQr�r�s rr z.TestLRU.test_lru_with_exceptions.<locals>.func%s���Q�x�rrr>r)r�r
rOrYr��assertIsNone�	exception�__context__)r1r�r �cms    r�test_lru_with_exceptionsz TestLRU.test_lru_with_exceptions s���#�G�
�[�[�
"�
"�7�
+�
 �,�
 ����T�!�W�c�*��"�"�:�.�"��R��/����b�l�l�6�6�7��"�"�:�.��R��/�.�#�
/�.��/�.�s�	B3�	B?�3B<	�?C	c��dD�]�}|jj|d��d��}|j|d�d�|jt|d��td��|j|d�d�|jt|d��td��|j|d�	�d�|jt|d�	��td��|j|d�	�d�|jt|d�	��td��|j|j	�j
d
�|j|j	�jd
����y)NrJT�r��typedc��||zSrrrIs rrz+TestLRU.test_lru_with_types.<locals>.square2s���1�u�rr@rg@g"@rIrA)r�r
rOr�r�r�r�)r1r�rs   r�test_lru_with_typeszTestLRU.test_lru_with_types0s4��"�G�
�[�[�
"�
"�7�$�
"�
?�
�@�
����V�A�Y��*����T�&��)�_�d�1�g�6����V�C�[�#�.����T�&��+�.��S�	�:����V�a�[�!�,����T�&�1�+�.��Q��8����V�c�]�C�0����T�&�3�-�0�$�s�)�<����V�.�.�0�5�5�q�9����V�.�.�0�7�7��;�#rc��|jjd��t�}|j|d�d�|j|d�d�|j|d�d�|j|d�d	�|j|d
�d�|j|d�d
�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�|j|d�d�Gd�dt�}|j||d��d�|j||d��d�|j||d��d�|j||d��d�|j||d��d�|j||d��d�y)NT)rTr9r��True��?z1.0rrF�False�z0.0r�z(1,))T)rYrnz(0,))F)r[c��eZdZy)�8TestLRU.test_lru_cache_typed_is_not_recursive.<locals>.TNr'rrrrir]Qr�rri)r�r
r�rOr�)r1�cachedris   r�%test_lru_cache_typed_is_not_recursivez-TestLRU.test_lru_cache_typed_is_not_recursive@s���2����&�&�T�&�2�4�8��������C�(�������v�.�������e�,�������C�(��������0�������e�,�������v�.�������&�1��������0�������v�.������)�6�2��������0�	��	�	
�����$���&�1������'�
�+�V�4������&�	�*�F�3������$���&�1������(��,�f�5������&�	�*�F�3rc	����|jj��fd���|jtd�D�cgc]}�|����
c}gd��|j�j	�|jjdddd����j
�|j�j	�|jjdddd���ycc}w)	Nc�D��|dkr|S�|dz
���|dz
��zS�Nr:r9r�rr�s �rr�z/TestLRU.test_lru_with_keyword_args.<locals>.fib\�*����1�u�����1��:��a��c�
�*�*rr�r�r�r�rr�rrA�r1�numberr�s  @r�test_lru_with_keyword_argsz"TestLRU.test_lru_with_keyword_args[s����	
���	�	�	 �	+�
!�	+�	
���).�r��3��v�S�6�]��3�I�	
�	
������)��K�K�"�"��2�s�R�"�P�	R�����������)��K�K�"�"��!�S�1�"�M�	O��

4s�C!c	����|jjd���fd���|jtd�D�cgc]}�|����
c}gd��|j�j	�|jjdddd����j
�|j�j	�|jjdddd���ycc}w)	Nrc�D��|dkr|S�|dz
���|dz
��zSrbrr�s �rr�z<TestLRU.test_lru_with_keyword_args_maxsize_none.<locals>.fiblrcrr�r�r�r�r�rrArds  @r�'test_lru_with_keyword_args_maxsize_nonez/TestLRU.test_lru_with_keyword_args_maxsize_noneks����	
���	�	�t�	�	,�	+�
-�	+�	
���e�B�i�@�i�F�#��-�i�@�I�	K�������)��K�K�"�"��2�t�b�"�Q�	S�����������)��K�K�"�"��!�T�A�"�N�	P��As�C#c	�2�|jjd��d��}|j|dd��ddg�|j|dd�	�ddg�|j|j�|jj	d
ddd���y)Nr;rc�4�t|j��Sr)r/�items)r�s rr�z$TestLRU.test_kwargs_order.<locals>.f{s�������'�'rr9r:r=)r>r9)r?r:)r?r>rr�)r�r
rOr�r�r�s  r�test_kwargs_orderzTestLRU.test_kwargs_orderys���	
���	�	�r�	�	*�	(�
+�	(�����Q�!��x��&:�;�����Q�!��x��&:�;���������K�K�"�"��!�R�!�"�L�	Nrc���dd�}|jj�|�}|jjD](}|jt	||�t	||���*y)Nc��y)zf doc stringr�r)�zomgs rr�z,TestLRU.test_lru_cache_decoration.<locals>.f�s��r)rp�zomg_annotation)r�r
r�rOr�)r1r��gr�s    r�test_lru_cache_decorationz!TestLRU.test_lru_cache_decoration�sT��	�
$�D�K�K�!�!�#�A�&���K�K�3�3�D����W�Q��-�w�q�$�/?�@�4rc������
��d\}�d��
�jj|�z���
���j�\}}}}�j|d�t	j
�����
��fd�}���fd�}t
j�}tjd�	t|�D�	cgc]}	t	j||	g����}
}	tj|
�5�j�ddd��j�\}}}}�jtur+�j!||��j!|�|z|z
�n*�j||��j|�|z|z
��j||�t	j|�	�g}
|
t|�D�	cgc]}	t	j||	g����c}	z
}
�j#�tj|
�5�j�ddd�t
j|�ycc}	w#1swY��:xYwcc}	w#1swY�6xYw#t
j|�wxYw)
N)r`�c��d|z|zSr�rrs  rrz-TestLRU.test_lru_cache_threaded.<locals>.orig�rrrrc����jd�t��D]"}�j�|d��|d���$y)Nr;r)�waitr�rO)r'r�r��mrr1�starts  �����r�fullz-TestLRU.test_lru_cache_threaded.<locals>.full�s8����J�J�r�N��1�X��� � ��1�a��$�q�!�*�5�rc�n���jd�td�z�D]}�j��y)Nr;r:)rxr�r�)r�r�ryrzs ���r�clearz.TestLRU.test_lru_cache_threaded.<locals>.clear�s)����J�J�r�N��1�Q�3�Z���
�
�� rg���ư>��targetr�r)r�r
r�rO�	threading�Eventr�getswitchintervalr�setswitchintervalr��Threadr	�
start_threads�setrr�r})r1r�r�r�r�r�r{r}�orig_sir'�threadsr�ryrrzs`          @@@@r�test_lru_cache_threadedzTestLRU.test_lru_cache_threaded�s������1�	�.�D�K�K�!�!�!�A�#�!�.�t�4��*+�,�,�.�'��f�g�x�����1�%����!��	6�	6�
	 �
�'�'�)���!�!�$�'�	+�!&�a��*� (�1�!�'�'�t�1�#�>� (�
�*�!�/�/��8��	�	��9�/0�l�l�n�+�D�&�'�8��{�{�l�*��$�$�V�Q�/��$�$�T�1�Q�3��<�8�� � ���+�� � ��q��s�V�|�4����X�q�)�!�'�'�u�5�6�G��!&�q��+�!)�A�"�(�(��A�3�?�!)�+�
+�G��K�K�M�!�/�/��8��	�	��9�
�!�!�'�*��/*�8�8��+�9�8��
�!�!�'�*�s[�(
I�5H/�I�+H4�<B;I�7I�*I�I�I�/I�4H>�9
I�I�I�I)c
�V�����	�
�d\}�tj|dz��	tj|dz��tj|dz��
�jj�|z���fd����j	�j�dd�|zdf�����	�
fd�}t
|�D�cgc]}tj|����}}tj|�5t
��D]�}�	jd��
j��jd��	j��
jd��j��j	�j�d|dz|z�|z|dzf���	ddd�ycc}w#1swYyxYw)	N)r`rbr9rc�0���jd�d|zS�Nr;r@)rx)rJ�pauses �rr�z+TestLRU.test_lru_cache_threaded2.<locals>.f�s����J�J�r�N��q�5�Lrrc���t��D]?}�jd��j�|�d|z��jd��Ayr�)r�rxrO)r�r�ryr1rz�stops �����r�testz.TestLRU.test_lru_cache_threaded2.<locals>.test�s?����1�X���
�
�2��� � ��1��q�1�u�-��	�	�"�
�rr�r;)r��Barrierr�r
rOr�r�r�r	r�rx�reset)r1r�r�r'r�r�r�ryr�rzr�s`     @@@@@r�test_lru_cache_threaded2z TestLRU.test_lru_cache_threaded2�sb������1��!�!�!�A�#�&���!�!�!�A�#�&��� � ��1��%��	
���	�	�q��s�	�	+�	�
,�	�	
�������!�Q��!��Q��8�	�	�
;@��(�C�(�Q�9�#�#�4�0�(��C�
�
+�
+�G�
4��1�X���
�
�2���
�
���
�
�2�����
��	�	�"�
����
�� � �����!�a��c�1�W�a��c�1�Q�3�1G�H��5�
4��D�
4�
4�s�8F�,B$F�F(c	�&����jjd��d�����fd�}tgd��D��cgc]\}}tj|||f���� }}}tj|�5	ddd�ycc}}w#1swYyxYw)Nr:rc�6�tjd�d|zS)Ng{�G�z�?r@)�time�sleeprIs rr�z+TestLRU.test_lru_cache_threaded3.<locals>.f�s���J�J�s�O��q�5�Lrc�>���j�|�d|z|�yr�)rO)r�rJr�r1s  ��rr�z.TestLRU.test_lru_cache_threaded3.<locals>.test�s������Q�q�T�1�q�5�!�,r)r9r:r:r@r:r~)r�r
�	enumerater�r�r	r�)r1r�r��vr�r�s`    @r�test_lru_cache_threaded3z TestLRU.test_lru_cache_threaded3�s����	
���	�	�q�	�	)�	�
*�	�	-� )��9�;�9�t�q�!��#�#�4�q�!�f�=�9�	�;�
�
+�
+�G�
4��5�
4��;�
4�
4�s�#B�6B�Bc�����|jjd��d���G��fd�d����d����d��|j��d���d��y)Nr;rc��|S)zEUsed to demonstrate a reentrant lru_cache call within a single threadrrIs r�	test_funcz.TestLRU.test_need_for_rlock.<locals>.test_func�s	���Hrc�*��eZdZdZd�Zd�Z��fd�Zy)�-TestLRU.test_need_for_rlock.<locals>.DoubleEqz=Demonstrate a reentrant lru_cache call within a single threadc��||_yrrI�r1rJs  rr�z6TestLRU.test_need_for_rlock.<locals>.DoubleEq.__init__�r�rc��|jSrrIr\s rr*z6TestLRU.test_need_for_rlock.<locals>.DoubleEq.__hash__�s���v�v�
rc�p��|jdk(r��d��|j|jk(Sr�rI)r1r2�DoubleEqr�s  ��rrAz4TestLRU.test_need_for_rlock.<locals>.DoubleEq.__eq__�s-����6�6�Q�;��h�q�k�*��v�v����(�(rN)r(r)r*rr�r*rA)r�r�s��rr�r��s���K�
�
�
)rr�r9r:r5)r1r�r�s @@r�test_need_for_rlockzTestLRU.test_need_for_rlock�sm���
���	�	�r�	�	*�	�
+�	�		)�		)�	�(�1�+���(�1�+������8�A�;�/�!�!��	&rc�z��G�fd�dt�}|d�}|d�}|d�}�j|jj�d�dD])}�j|j|�|dzdz��+�j|j|j|jfd��j|jj�d	�d
D])}�j|j|�|dzdz��+�j|j|j|jfd��j|jj�d�d
D])}�j|j|�|dzdz��+�j|j|j|jfd��j|jj�d��j|jj�|jj���j|jj�|jj���j|jj�|jj��y)Nc�V��eZdZdZW�jjd�d��Zy)�"TestLRU.test_lru_method.<locals>.Xrr:c�<�|xjdz
c_|dz|zSrrr�s  rr�z$TestLRU.test_lru_method.<locals>.X.fs���
�
�a��
���t�D�y� rN)r(r)r*rr�r
r�r\s�r�Xr��s)����E�
�[�[�
"�
"�1�
%�
!�&�
!rr�r`rb)rrr:r)
r9r:r:r@r9r9r9r:r@r@r;)rrr)rArr:r:)
r9r:r9r9r9r9r@r:r:r:)rrAr)r;r;r:r:)
r:r9r9r9r9r:r9r@r:r9)rrAr`)rrr:r:)r�rOr�r�r)r1r�r>r?rErJs`     r�test_lru_methodzTestLRU.test_lru_method�s����	!��	!�
�a�D��
�a�D��
�a�D����������)�<�8�-�A����Q�S�S��V�Q�r�T�A�X�.�.����!�'�'�1�7�7�A�G�G�4�i�@���������)�<�8�-�A����Q�S�S��V�Q�r�T�A�X�.�.����!�'�'�1�7�7�A�G�G�4�i�@���������)�>�:�-�A����Q�S�S��V�Q�r�T�A�X�.�.����!�'�'�1�7�7�A�G�G�4�i�@���������)�>�:���������)�1�3�3�>�>�+;�<���������)�1�3�3�>�>�+;�<���������)�1�3�3�>�>�+;�<rc	�z�|j}|jd|j|jfD]z}t	t
jdz�D]Y}|j||��5tjtj||��}|j||�ddd��[�|y#1swY�hxYw)Nrr9)r�r )r��cached_func�cached_meth�cached_staticmethr�r�r�r:r�r�r�)r1r'r�r�r�s     rr�zTestLRU.test_pickles����n�n������#�S�_�_�c�6K�6K�K�A��v�6�6��:�;���\�\��A�\�6�#�\�\�&�,�,�q�%�*@�A�F��M�M�&�!�,�7�6�<�L�6�6�s�(<B1�1B:c��|j}d�}|jj|d�}|jd|j|j
|jj
d�|�f}|D]D}|j|��5tj|�}|j||�ddd��Fy#1swY�QxYw)Nc��d|z|zSr�rrs  rrzTestLRU.test_copy.<locals>.orig&rrr:r�r )
r�r�rLr�r�r�r
r:r�r��r1r'rr#�funcsr�r�s       rr�zTestLRU.test_copy$s����n�n��	��{�{�"�"�4��+������#�S�_�_�c�6K�6K�)����&�&�q�)�$�/�1���A����1��%����1����
�
�f�a�(�&�%��%�%���	(B<�<C	c��|j}d�}|jj|d�}|jd|j|j
|jj
d�|�f}|D]D}|j|��5tj|�}|j||�ddd��Fy#1swY�QxYw)Nc��d|z|zSr�rrs  rrz#TestLRU.test_deepcopy.<locals>.orig2rrr:rr�)r�r�rLr�r�r�r
r:r�r�r�r�s       rr�zTestLRU.test_deepcopy0s����n�n��	��{�{�"�"�4��+������#�S�_�_�c�6K�6K�)����&�&�q�)�$�/�1���A����1��%����q�)���
�
�f�a�(�&�%��%�%�r�c��|jjd��d��}|j|j�ddd��|jjdd��d��}|j|j�ddd��y)	Nr:rc��y�Nr9rrrrr�z,TestLRU.test_lru_cache_parameters.<locals>.f=���rFrSrTc��yr�rrrrr�z,TestLRU.test_lru_cache_parameters.<locals>.fBr�r)r�r
rO�cache_parametersr�s  r�test_lru_cache_parametersz!TestLRU.test_lru_cache_parameters<s���	
���	�	�q�	�	)�	�
*�	�����+�+�-�1�u�/M�N�	
���	�	�t�4�	�	8�	�
9�	�����+�+�-�4�$�/O�Prc����jjd��}G�fd�d�}tj|�tj|j�tj|j
�g}|D]}�j
|���~~tj�|D]}�j|���y)Nc��|SrrrIs r�
test_functionz9TestLRU.test_lru_cache_weakrefable.<locals>.test_functionHrFrc���eZdZW�jjd��ZeW�jj�fd���Zy)�-TestLRU.test_lru_cache_weakrefable.<locals>.Ac�
�||fSrrr�s  r�test_methodz9TestLRU.test_lru_cache_weakrefable.<locals>.A.test_methodMs���a�y� rc����|fSrr)rJr1s �r�test_staticmethodz?TestLRU.test_lru_cache_weakrefable.<locals>.A.test_staticmethodQs����a�y� rN)r(r)r*r�r
r�r$r�r\s�rr(r�LsE���
�[�[�
"�
"�
!�#�
!��
�[�[�
"�
"�
!�#��
!rr()
r�r
�weakref�refr�r��assertIsNotNone�gc�collectrM)r1r�r(�refsr�s`    r�test_lru_cache_weakrefablez"TestLRU.test_lru_cache_weakrefableGs����	
���	�	�	�
�	�	!�	!����M�*����A�M�M�*����A�/�/�0�2���C�� � ���'��
��
�
�
���C����c�e�$�rc�,�d�}|jjd�|�}|jtt	j
|j��d�|jtt	j
|j��d�y)Nc��yrrrrrrz,TestLRU.test_common_signatures.<locals>.origes��Crr9z())r�r
rOr�rr*r�r�)r1r�lrus   r�test_common_signatureszTestLRU.test_common_signaturesdsh���&�d�k�k�#�#�A�&�t�,������Y�4�4�S�^�^�D�E�t�L�����Y�4�4�S�_�_�E�F��MrN)!r(r)r*rrrr!r-r2r6r>rBrHrQrVr_rfrirmrsr	�requires_working_threadingr�r�r�r�r�r�r�r�r�r�r�rrrr�r�.s���W&�r
:�6�61�!7�F
#�/��&P�O�� <� 4�6O� P�N�A�1��0�0�2�.+�3�.+�`1��0�0�2�I�3�I�61��0�0�2�
�3�
�&�0=�>-�
)�
)�	Q�%�:Nrr�c��d|z|zSr�rrs  r�py_cached_funcr�ls���q�5�1�9�rc��d|z|zSr�rrs  r�
c_cached_funcr�q����1�u�q�y�rc�x�eZdZeZefZej�d��Ze	ej�d���Z
y)�	TestLRUPyc��d|z|zSr�rrNs   rr�zTestLRUPy.cached_methzr�rc��d|z|zSr�rrs  rr�zTestLRUPy.cached_staticmeth~s���1�u�q�y�rN)r(r)r*rr�r�r�r
r�r$r�rrrr�r�vsN��
�F� �/�K����������������rr�c�~�eZdZer7eZefZej�d��Ze	ej�d���Z
yy)�TestLRUCc��d|z|zSr�rrNs   rr�zTestLRUC.cached_meth�r$rc��d|z|zSr�rrs  rr�zTestLRUC.cached_staticmeth�s���q�5�1�9�rN)r(r)r*rr�r�r�r
r�r$r�rrrr�r��sV�����#�n��	�	�	�	�	�
�	�
�	�	�	�	�	�
�
�	�rr�c�(�eZdZd�Zd�Zd�Zd�Zeje	d�e
jd���Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d �Z&d!�Z'd"�Z(d#�Z)d$�Z*y%)&�TestSingleDispatchc��tjd��}d�}|jt|�|j	|d�d�|j	|d�d�|j	|gd��d�y)Nc��y�Nr�rr9s rrrz3TestSingleDispatch.test_simple_overloads.<locals>.g����rc��y)N�integerrrLs r�g_intz7TestSingleDispatch.test_simple_overloads.<locals>.g_int�s��rr�r�r9r��r9r:r@)r
�singledispatch�registerr�rO�r1rrr�s   r�test_simple_overloadsz(TestSingleDispatch.test_simple_overloads�si��	�	!�	!�	�
"�	�	�	�
�
�3�������5��6�*�����1��y�)�����7��V�,rc���tjd��}Gd�d�}Gd�d|�}Gd�d|�}Gd�d	||�}d
�}d�}|j||�|j||�|j||��d�|j||��d�|j||��d�|j||��d�y)Nc��yr�rr9s rrrz&TestSingleDispatch.test_mro.<locals>.g�r�rc��eZdZy)�&TestSingleDispatch.test_mro.<locals>.ANr'rrrr(r��r�rr(c��eZdZy)�&TestSingleDispatch.test_mro.<locals>.CNr'rrr�Cr��r�rr�c��eZdZy)�&TestSingleDispatch.test_mro.<locals>.BNr'rrrrCr��r�rrCc��eZdZy)�&TestSingleDispatch.test_mro.<locals>.DNr'rrr�Dr��r�rr�c��y)Nr(rras r�g_Az(TestSingleDispatch.test_mro.<locals>.g_A����rc��y)NrCrrcs r�g_Bz(TestSingleDispatch.test_mro.<locals>.g_B�r�r)r
r�r�rO)r1rrr(r�rCr�r�rs        r�test_mrozTestSingleDispatch.test_mro�s���	�	!�	!�	�
"�	�	�	�	��	�	��	�	��1�	�	�	�	�
�
�1�c��	�
�
�1�c������1�3���%�����1�3���%�����1�3���%�����1�3���%rc��tjd��}|jt�d��}|j	|d�d�|j	|d�d�|j|j
t�|�|j|j
t�|j
t��y)Nc��yr�rr9s rrrz5TestSingleDispatch.test_register_decorator.<locals>.g�r�rc��d|��S)Nzint rrLs rr�z9TestSingleDispatch.test_register_decorator.<locals>.g_int�s
�� �?�"rr�r�rzint 12)	r
r�r�r�rOr��dispatchr�r�r�s   r�test_register_decoratorz*TestSingleDispatch.test_register_decorator�s���	�	!�	!�	�
"�	�	
���C��	#�
�	#�����2���'�����2���)��
�
�a�j�j��o�u�-��
�
�a�j�j��(�!�*�*�S�/�:rc���tjd��}|j|jd�tj
jdkr|j|jd�yy)Nc��y)�Simple test�Testrr9s rrrz6TestSingleDispatch.test_wrapping_attributes.<locals>.g�s��rrrr:r
)r
r�rOr(rr�r�r)r1rrs  r�test_wrapping_attributesz+TestSingleDispatch.test_wrapping_attributes�s[��	�	!�	!�	�
"�	�	
������S�)��9�9����!����Q�Y�Y�
�6�"rzrequires _decimalc���tjd��}|jtj�d��}tjd�}tj
d�}|j||�d�|j||�d�|jtj
�d��}|j||�d�|j||�d�y)	Nc��yr�rr9s rrrz,TestSingleDispatch.test_c_classes.<locals>.g�r�rc��|jSrr�r9s rr�z,TestSingleDispatch.test_c_classes.<locals>._�s���8�8�Or�Exponent < Emin�Number got rounded)r)rc��y)N�Too small to care.rr9s rr�z,TestSingleDispatch.test_c_classes.<locals>._�s��'rr)r
r�r�r�DecimalException�	Subnormal�RoundedrO)r1rrr��subn�rnds     r�test_c_classesz!TestSingleDispatch.test_c_classes�s���
�	!�	!�	�
"�	�	
���G�,�,�	-�	�
.�	�� � �!2�3���o�o�2�3������4��"6�7�����3��!8�9�	
���G�%�%�	&�	(�
'�	(�����4��"6�7�����3��!8�9rc���tj}tj}|j|j
|j|jg}t|�D]m}|t|�}|j|t|j
|j|j|j|j|jtg��o|j|j|j
tj g}t|�D]�}|tj"|�}|j|tj"|j
|j|j|j|j|jtg���|j|jt$g}t|�D]u}|tj&|j|jt$g�}|j|tj&t|j|jtg��wGd�dtj&�}|j(j+|�|j(|j
g}t|�D]�}|||�}|j|||j(|j|j,tj&t|j
|j|j|j|j|jtg
���Gd�dtj&�}|j|j.|j|jg}t|�D]y}|||�}|j|||j.tj&t|j|j|j|j|jtg
��{y)Nc��eZdZy)�.TestSingleDispatch.test_compose_mro.<locals>.DNr'rrrr�r�r�rr�c��eZdZd�Zy)�.TestSingleDispatch.test_compose_mro.<locals>.Cc��yrrr\s r�__call__z7TestSingleDispatch.test_compose_mro.<locals>.C.__call__���rN�r(r)r*r rrrr�r
���
rr�)r%rQr
�_compose_mro�Sequence�MutableMapping�Mapping�SetrrPrO�
Collection�Sized�Iterable�	Containerr��OrderedDict�ChainMapr��defaultdict�MutableSequencer��
Reversible�Callable)r1rE�mror��haystackryr�r�s        r�test_compose_mroz#TestSingleDispatch.test_compose_mro�s����O�O���$�$�����Q�-�-�q�y�y�!�%�%�@��$�U�+�H��D�(�#�A����Q��q�'7�'7����!"���q�w�w��
�
�!"���f�!6�
7�,�
���a�i�i��)9�)9�;�;R�;R�S��$�U�+�H��K�(�(�(�3�A����Q��!5�!5�q�7G�7G����!"���q�w�w��
�
�!"���f�!6�
7�,����a�g�g�s�+��$�U�+�H��K�+�+�a�g�g�q�{�{�C�-H�I�A����Q��!8�!8�$����!"���f�!6�
7�,�	��'�'�	�	���"�"�1�%��"�"�A�$4�$4�5��$�U�+�H��A�x� �A����Q��A�$5�$5�q�z�z�1�<�<�!,�!8�!8�$��@P�@P�RS�R[�R[�!"���q�w�w��
�
�A�K�K�!'�!)�
*�,�	��'�'�	����!�*�*�a�k�k�1�9�9�=��$�U�+�H��A�x� �A����Q��A�J�J��0G�0G��q�y�y�!"���q�w�w��
�
�!"���f�!6�
7�,rc�p�tj}ddi}gd�}t�dh}t|�}d}tj
d��}|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j|jd��|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j|jd��|j
||�d	�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|jtjd
��|j
||�d	�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j|jd��|j
||�d	�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j|jd
��|j
||�d	�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j|jd��|j
||�d	�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j|jd��|j
||�d	�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j|jd��|j
||�d	�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|jt d��|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|jt"d��|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|jt$d��|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|jtd��|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j
||�d�|jt&d��|j
||�d�|j
||�d�|j
||�d�|j
||�d�|j
||�d�y)Nr>r?r�c��yr�rr9s rrrz/TestSingleDispatch.test_register_abc.<locals>.gr�rr�c��y�N�sizedrr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>&���rr:c��y�N�mutablemappingrr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>,s��1Arr>c��y)N�chainmaprr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>2s��Zrc��y)N�mutablesequencerr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>8s��2CrrBc��y)N�
mutablesetrr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>>s��\rrDc��y�N�mappingrr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>Ds��)rc��y�N�sequencerr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>J���:rrJc��y�Nr�rr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>P���err�c��y�NrPrr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>V���VrrPc��y�Nr/rr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>\rQrr/c��y)N�concrete-setrr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>bs��NrrUc��y)N�
frozen-setrr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>hs��,rrWc��y)Nr�rr9s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>ns��grr�)r%rQr��	frozensetr
r�rOr�r*r&r.r0�
MutableSetr'r%r(rPr/r�r�)r1rErd�lr�r��trrs        r�test_register_abcz$TestSingleDispatch.test_register_abcs����O�O��
�#�J����
�X�t����a�L����	�	!�	!�	�
"�	�����1��v�&�����1��v�&�����1��v�&�����1��v�&�����1��v�&�	�
�
�1�7�7�/�0�����1��w�'�����1��w�'�����1��w�'�����1��w�'�����1��w�'�	�
�
�1�#�#�%A�B�����1��/�0�����1��w�'�����1��w�'�����1��w�'�����1��w�'�	�
�
�;�'�'�)?�@�����1��/�0�����1��w�'�����1��w�'�����1��w�'�����1��w�'�	�
�
�1�$�$�&C�D�����1��/�0�����1��0�1�����1��w�'�����1��w�'�����1��w�'�	�
�
�1�<�<�!9�:�����1��/�0�����1��0�1�����1��|�,�����1��w�'�����1��w�'�	�
�
�1�9�9�3�4�����1��/�0�����1��0�1�����1��|�,�����1��w�'�����1��w�'�	�
�
�1�:�:�5�6�����1��/�0�����1��0�1�����1��|�,�����1��w�'�����1��z�*�	�
�
�1�5�5�+�,�����1��/�0�����1��0�1�����1��|�,�����1��u�%�����1��z�*�	�
�
�4�+�,�����1��v�&�����1��0�1�����1��|�,�����1��u�%�����1��z�*�	�
�
�4�+�,�����1��v�&�����1��v�&�����1��|�,�����1��u�%�����1��z�*�	�
�
�3�2�3�����1��v�&�����1��v�&�����1��~�.�����1��u�%�����1��z�*�	�
�
�9�6�7�����1��v�&�����1��v�&�����1��~�.�����1��|�,�����1��z�*�	�
�
�5�-�.�����1��v�&�����1��v�&�����1��~�.�����1��|�,�����1��w�'rc	��tj}tj}Gd�dt�}Gd�d|�}|j
jGd�dt��}Gd�dt�}Gd	�d
|||�}||j|||j
||j|tg	}t|j|j|j
g�D]}	|j|||	��|��|j|j|j|j
|jg}
|j|||
��|�y)Nc��eZdZy)�)TestSingleDispatch.test_c3_abc.<locals>.ANr'rrrr(r`xr�rr(c��eZdZd�Zy)�)TestSingleDispatch.test_c3_abc.<locals>.Bc��yr�rr\s rr�z1TestSingleDispatch.test_c3_abc.<locals>.B.__len__{r�rN�r(r)r*r�rrrrCrbz���
rrCc��eZdZy)�)TestSingleDispatch.test_c3_abc.<locals>.CNr'rrrr�rg}rgrr�c��eZdZy)�)TestSingleDispatch.test_c3_abc.<locals>.DNr'rrrr�ri�r�rr�c��eZdZd�Zy)�)TestSingleDispatch.test_c3_abc.<locals>.Xc��yrrr\s rr z2TestSingleDispatch.test_c3_abc.<locals>.X.__call__�r!rNr"rrrr�rk�r#rr�)�abcs)
r%rQr
�_c3_mror�r,r�r2r*rrOr'r+)r1rEr3r(rCr�r�r�rqrm�	many_abcss           r�test_c3_abczTestSingleDispatch.test_c3_abcus���O�O������	��	�	��	�
���	�	�	��	�
�	�	��	�	��1�a�	��q�z�z�1�a����a����!�V�L�� �!�'�'�1�:�:�q�{�{�!C�D�D����S���.��9�E��Y�Y�������Q�[�[�!�*�*�M�	�����Q�Y�/��:rc���Gd�dt�}Gd�d|��}Gd�d|�}tjd��}|j|�d	��}|�}|j	||�d
�y)Nc��eZdZd�Zy)�1TestSingleDispatch.test_false_meta.<locals>.MetaAc��yr�rr\s rr�z9TestSingleDispatch.test_false_meta.<locals>.MetaA.__len__�r�rNrdrrr�MetaArs�rerruc��eZdZy)�-TestSingleDispatch.test_false_meta.<locals>.ANr'rrrr(rw�r�rr(r�c��eZdZy)�.TestSingleDispatch.test_false_meta.<locals>.AANr'rrr�AAry�r�rrzc��y)Nzbase Arras r�funz/TestSingleDispatch.test_false_meta.<locals>.fun�s��rc��y)N�fun Arras rr�z-TestSingleDispatch.test_false_meta.<locals>._����rr~)r�r
r�r�rO)r1rur(rzr|r��aas       r�test_false_metaz"TestSingleDispatch.test_false_meta�ss��	�D�	�	�%�	�	��	�	�	!�	!�	�
"�	�	���a��	�
�	�
�T������R��'�*rc�8�tj}tjd��}Gd�d|j�}|�}|j||�d�|j
|jd��|j
|jd��|j
|jd��|j
|jd��|j||�d	�|jj
|�|j||�d	�|jj
|�|j||�d	�|jj
|�|j||�d
�Gd�d�}|�}|j||�d�|jj
|�|j||�d
�|jj
|�|jt�5}||�ddd�|jtj�d�Gd�d|j�}|�}	|j||	�d	�|jj
|�|j||	�d	�|jj
|�|j||	�d
�tjd��}
|
j
|j�d��}|
j
|j�d��}|jt�5}|
tjd���ddd�|jtj�d�Gd�dtj�}
|j j
|
�tjd��}|j
|j"�d��}|j
|j �d��}|
�}|j||�d�Gd�d�}Gd�d||j�}|�}|j|
|�d	�|jj
|�|j|
|�d	�Gd �d!�}|�}|j|
|�d	�|jj
|�|jt�5}|
|�ddd�|jtj�d�Gd"�d#|j|�}tjd$��}|j
|�d%��}|j
|j�d&��}|�}|j||�d'�|jj
|�|j||�d(�y#1swY���xYw#1swY���xYw#1swY��xYw))Nc��yr�r��args rrrz0TestSingleDispatch.test_mro_conflicts.<locals>.g�r�rc��eZdZd�Zy)�0TestSingleDispatch.test_mro_conflicts.<locals>.Oc��yr�rr\s rr�z8TestSingleDispatch.test_mro_conflicts.<locals>.O.__len__�r�rNrdrrr�Or��rerr�r�c��y)N�iterablerr�s rrKz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>�rKrc��y�N�	containerrr�s rrKz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>�s��Krc��yr9rr�s rrKz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>�r;rc��yrMrr�s rrKz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>�rNrr:r�c��eZdZy)�0TestSingleDispatch.test_mro_conflicts.<locals>.PNr'rrr�Pr��r�rr�r�)z]Ambiguous dispatch: <class 'collections.abc.Container'> or <class 'collections.abc.Iterable'>z]Ambiguous dispatch: <class 'collections.abc.Iterable'> or <class 'collections.abc.Container'>c��eZdZd�Zy)�0TestSingleDispatch.test_mro_conflicts.<locals>.Qc��yr�rr\s rr�z8TestSingleDispatch.test_mro_conflicts.<locals>.Q.__len__�r�rNrdrrr�Qr��rerr�c��yr�rr�s r�hz0TestSingleDispatch.test_mro_conflicts.<locals>.h�r�rc��yr9rr�s rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._�rrc��yr�rr�s rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._����rc��yr�rrrrrKz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>�s��ar)zZAmbiguous dispatch: <class 'collections.abc.Container'> or <class 'collections.abc.Sized'>zZAmbiguous dispatch: <class 'collections.abc.Sized'> or <class 'collections.abc.Container'>c��eZdZy)�0TestSingleDispatch.test_mro_conflicts.<locals>.RNr'rrr�Rr��r�rr�c��yr�rr�s rr�z0TestSingleDispatch.test_mro_conflicts.<locals>.i�r�rc��yrFrr�s rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._����rc��yrIrr�s rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._����rrJc��eZdZy)�0TestSingleDispatch.test_mro_conflicts.<locals>.SNr'rrr�Sr��r�rr�c��eZdZd�Zy)�0TestSingleDispatch.test_mro_conflicts.<locals>.Tc��yr�rr\s rr�z8TestSingleDispatch.test_mro_conflicts.<locals>.T.__len__�r�rNrdrrrrir��rerric��eZdZd�Zy)�0TestSingleDispatch.test_mro_conflicts.<locals>.Uc��yr�rr\s rr�z8TestSingleDispatch.test_mro_conflicts.<locals>.U.__len__�r�rNrdrrr�Ur��rerr�c��eZdZd�Zy)�0TestSingleDispatch.test_mro_conflicts.<locals>.Vc��yr�rr\s rr�z8TestSingleDispatch.test_mro_conflicts.<locals>.V.__len__
	r�rNrdrrr�Vr�	rerr�c��yr�rr�s r�jz0TestSingleDispatch.test_mro_conflicts.<locals>.j	r�rc��y)Nr�rr�s rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._	s��rc��yr�rr�s rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._	r�rr�r�)r%rQr
r�r*rOr�r+r,r(rYr�r�r�rNr/r0r&)r1rErrr�r:r�rS�re_oner��qr�r��re_twor�r�r�r�rir\r��u�re_threer�r�r�s                         r�test_mro_conflictsz%TestSingleDispatch.test_mro_conflicts�s���O�O��	�	!�	!�	�
"�	�	����	�
�C������1��v�&�	�
�
�1�:�:�5�6�	�
�
�1�;�;� 7�8�	�
�
�1�7�7�/�0�	�
�
�1�5�5�+�,�����1��w�'�	�
�
���A������1��w�'�	�����Q������1��w�'�	�����q������1��u�%�	�	�
�C������1��v�&�	�
�
���A������1��z�*�	�����Q��
�
�
�|�
,��
�a�D�-��
�
��� � �!�
9�	
�	����	�
�C������1��w�'�	�
�
���A������1��w�'�	�����q������1��u�%�	�	!�	!�	�
"�	�	
���A�G�G�	�	�
�	�	
���A�K�K�	 �	�
!�	��
�
�|�
,��
�k�%�%�i�0�1�-��
�
��� � �!�
9�	
�	��'�'�	�	���"�"�1�%�	�	!�	!�	�
"�	�	
���A�$�$�	%�	�
&�	�	
���A�%�%�	&�	�
'�	�
�C������1��z�*�	�	�	��1�7�7�	�
�C������1��w�'�	�����Q������1��w�'�	�	�
�C������1��w�'�	�����Q��
�
�
�|�
,��
�a�D�-��
�
���"�"�#�
9�	
�	�����	�
�	!�	!�	�
"�	�	
���A��	�
�	�	
���A�K�K�	 �	�
!�	�
�C������1��s�#�	�����Q������1��{�+�A-�
,��@-�
,��P-�
,�s$�	W6�	X�		X�6X�X
�Xc�:��	�ddlm}ddl}G�fd�d|�����	tj|d�	fd��5tj
}tjd��}i}g}|jt�	�d�|j||�d�|jt�	�d	�|j�	jg�|j�	jtg�|j�	jt|jt�|j||�d�|jt�	�d
�|j�	jg�|j�	jtt g�|j�	jt|jt�|j�	jt |jt�|j�	jt�	jt �|j||�d�|j||�d�|j�	jt tg�|j�	jtt g�|j#t d��|j�	jt tg�|jt�	�d�|j||�d�|jt�	�d	�|j�	jt tg�|j�	jtt tg�|j�	jtt
j$t|j��|j||�d�|jt�	�d
�|j�	jt tg�|j�	jtt tt g�|j�	jt t
j$t |j��Gd
�d�}|j&j#|�|j||�d�|j||�d�|j�	jt ttt g�|j�	jtt tt g�|j#|j(d��|jt�	�d�|j||�d�|jt�	�d	�|j�	jt ttt g�|j�	jtt tt tg�|j||�d�|jt�	�d
�|j�	jt ttt g�|j�	jtt tt tt g�|j||�d�|j||�d�|j�	jt ttt t tg�|j�	jtt tt tt g�|j+t �|j+t�|j�	jt ttt t tt tg�|j�	jtt tt tt g�|j,j#|�|jt�	�d
�|j||�d�|jt�	�d	�|j#|j&d��|jt�	�d�|j||�d�|jt�	�d	�|j||�d�|jt�	�d
�|j#td��|j||�d�|j||�d�|j/�|jt�	�d�ddd�y#1swYyxYw)Nr)�UserDictc�4���eZdZ��fd�Zd�Zd�Zd�Z�xZS)�?TestSingleDispatch.test_cache_invalidation.<locals>.TracingDictc�@��t�|�|i|��g|_g|_yr)r�r��set_ops�get_ops)r1rr��TracingDictr�s   ��rr�zHTestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.__init__#	s%����k�4�1�4�B�6�B�!���!��rc�Z�|j|}|jj|�|Sr)r�r�r�)r1r��results   rr�zKTestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.__getitem__'	s&�����3������#�#�C�(��
rc�X�|jj|�||j|<yr)r�r�r�)r1r�r�s   r�__setitem__zKTestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.__setitem__+	s!�����#�#�C�(�!&��	�	�#�rc�8�|jj�yr)r�r}r\s rr}zETestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.clear.	s���	�	���!r)r(r)r*r�r�r�r}r�)r�r�s@�rr�r�"	s���
"�
�
'�
"rr��WeakKeyDictionaryc����Srr)�tds�rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>2	s���Rrc��yr�rr�s rrrz5TestSingleDispatch.test_cache_invalidation.<locals>.g4	���rr�r9r:c��yrSrr�s rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>J	���rr/c��eZdZy)�5TestSingleDispatch.test_cache_invalidation.<locals>.XNr'rrrr�r�Y	s��rr�c��yr9rr�s rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>a	s��Grr:c��yr=rr�s rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>x	s��5Err>c��yrPrr�s rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>~	r�rrP)r%r�r�r�	swap_attrrQr
r�rOr�r�r�rPr��registryr�r/r��
_find_implr&r*rrZ�_clear_cache)
r1r�r�rErrrdr[r�r�r�s
        @@r�test_cache_invalidationz*TestSingleDispatch.test_cache_invalidation	s����(��
	"�(�
	"��]��
�
�
�w�(;�Z�
H����A�
�
%�
%�
�&�
��A��A����S��W�a�(����Q�q�T�6�*����S��W�a�(����R�Z�Z��,����R�Z�Z�$��0����R�W�W�T�]�A�J�J�v�,>�?����Q�q�T�6�*����S��W�a�(����R�Z�Z��,����R�Z�Z�$���6����R�W�W�T�]�A�J�J�v�,>�?����R�W�W�T�]�A�J�J�v�,>�?����R�W�W�T�]�B�G�G�D�M�:����Q�q�T�6�*����Q�q�T�6�*����R�Z�Z�$���6����R�Z�Z�$���6�
�J�J�t�/�0����R�Z�Z�$���6����S��W�a�(����Q�q�T�6�*����S��W�a�(����R�Z�Z�$���6����R�Z�Z�$��d�);�<����R�W�W�T�]�&�1�1�$��
�
�C�
E����Q�q�T�6�*����S��W�a�(����R�Z�Z�$���6����R�Z�Z�$��d�D�)A�B����R�W�W�T�]�&�1�1�$��
�
�C�
E�
�
�
���%�%�a�(����Q�q�T�6�*����Q�q�T�6�*����R�Z�Z�$��d�D�)A�B����R�Z�Z�$��d�D�)A�B�
�J�J�q�w�w� 3�4����S��W�a�(����Q�q�T�7�+����S��W�a�(����R�Z�Z�$��d�D�)A�B����R�Z�Z�$��d�D�$�)G�H����Q�q�T�6�*����S��W�a�(����R�Z�Z�$��d�D�)A�B����R�Z�Z�$��d�D�$��)M�N����Q�q�T�6�*����Q�q�T�7�+����R�Z�Z�$��d�D�$��)M�N����R�Z�Z�$��d�D�$��)M�N�
�J�J�t��
�J�J�t�����R�Z�Z�$��d�D�$��*.��*6�
7����R�Z�Z�$��d�D�$��)M�N�
�L�L�!�!�!�$����S��W�a�(����Q�q�T�6�*����S��W�a�(�
�J�J�q�'�'�)E�F����S��W�a�(����Q�q�T�#3�4����S��W�a�(����Q�q�T�6�*����S��W�a�(�
�J�J�t�/�0����Q�q�T�6�*����Q�q�T�6�*�
�N�N�����S��W�a�(�aI�
H�
H�s�e
f�fc��tjd��}|jdtjj
fd��}|jdd��}|j
|d�d�|j
|ddi�d�|j
|gd	��d
�|j
|d	�d
�|j
|d�d
�|jt�Gd�d
��}|j
|d�d�y)Nc��yr�rr�s rr�z.TestSingleDispatch.test_annotations.<locals>.i�	r�rr�c��yrFrr�s rr�z.TestSingleDispatch.test_annotations.<locals>._�	r�rc��yrIrr�s rr�z.TestSingleDispatch.test_annotations.<locals>._�	r�rr�r>r9rGr�rJr�c��eZdZd�Zd�Zy)�.TestSingleDispatch.test_annotations.<locals>._c��||_yrr��r1r�s  rr�z7TestSingleDispatch.test_annotations.<locals>._.__init__�	�	����rc� �|j|k(Srr�r0s  rrAz5TestSingleDispatch.test_annotations.<locals>._.__eq__�	s���x�x�5�(�(rN)r(r)r*r�rArrrr�r��	s��
�
)rr�)r�zcollections.abc.Sequence)r
r�r�r%rQr'rOr�)r1r�r�s   r�test_annotationsz#TestSingleDispatch.test_annotations�	s���	�	!�	!�	�
"�	�	
���	�;�?�?�*�*�	�
�	�	
���	�
�	�����4��&�)�����C��8��i�0�����9��z�2�����9��z�2�����5��:�.�
���C��	)�	)�
�	)�	
����5��5�)rc��Gd�d�}|�}|jd�|j|jd�|�}|jt	|d��|jd�|j|jd�|�}|jt	|d��|jd�|j|jd	�|�}|jt	|d��y)
Nc��eZdZejd��Zej
e�d��Zej
e	�d��Zy)�2TestSingleDispatch.test_method_register.<locals>.Ac��d|_yr�r�r�s  rr\z4TestSingleDispatch.test_method_register.<locals>.A.t�	s	��!��rc��d|_y�Nr�r�r�s  rr�z4TestSingleDispatch.test_method_register.<locals>.A._�	�	�� ��rc��d|_y�Nr�r�r�s  rr�z4TestSingleDispatch.test_method_register.<locals>.A._�	r�rN�
r(r)r*r
�singledispatchmethodr\r�r�r�r�rrrr(r��	sN��
�
+�
+�
"�,�
"�
�Z�Z��_�
!��
!�
�Z�Z��_�
!��
!rr(rr�r�r�r�r[r�)r\rOr�r5r6)r1r(r>r�s    r�test_method_registerz'TestSingleDispatch.test_method_register�	s���		!�		!�
�C��	���A���������&�
�S�������U�+�,�	���B���������&�
�S�������U�+�,�	���C���������'�
�S�������U�+�,rc���Gd�d�}|�}|j|jd��|j|jd��|j|jd�d�y)Nc��eZdZejed���Zeje�ed���Z	eje
�ed���Z	y)�8TestSingleDispatch.test_staticmethod_register.<locals>.Ac��|Srrr�s rr\z:TestSingleDispatch.test_staticmethod_register.<locals>.A.t�	�	���
rc�"�t|t�Sr�rtr�r�s rr�z:TestSingleDispatch.test_staticmethod_register.<locals>.A._�	���"�#�s�+�+rc�"�t|t�Sr�rtr�r�s rr�z:TestSingleDispatch.test_staticmethod_register.<locals>.A._�	r�rN�r(r)r*r
r�r$r\r�r�r�r�rrrr(r��	sf��
�
+�
+�
�
��,�
�
�Z�Z��_�
�
,���
,�
�Z�Z��_�
�
,���
,rr(rr�r[�rMr\rO�r1r(r>s   r�test_staticmethod_registerz-TestSingleDispatch.test_staticmethod_register�	�U��	,�	,�
�C��������A���������B�� �������S��3�'rc��Gd�d�}|j|jd�jd�|j|jd�jd�|j|jd�jd�y)	Nc��eZdZd�Zej
ed���Zeje	�ed���Z
eje�ed���Z
y)�7TestSingleDispatch.test_classmethod_register.<locals>.Ac��||_yrr�r�s  rr�z@TestSingleDispatch.test_classmethod_register.<locals>.A.__init__�	r�rc��|d�Sr�r�r'r�s  rr\z9TestSingleDispatch.test_classmethod_register.<locals>.A.t�	����6�{�"rc��|d�Sr�rrs  rr�z9TestSingleDispatch.test_classmethod_register.<locals>.A._�	����5�z�!rc��|d�Sr�rrs  rr�z9TestSingleDispatch.test_classmethod_register.<locals>.A._�	r
rN�r(r)r*r�r
r�r&r\r�r�r�r�rrrr(r�	sm��
��
+�
+�
�
#��,�
#�
�Z�Z��_�
�
"���
"�
�Z�Z��_�
�
"���
"rr(rr�r�r�r[r��rOr\r�rGs  r�test_classmethod_registerz,TestSingleDispatch.test_classmethod_register�	�b��	"�	"�"	
������Q����U�+�������R����e�,�������S����v�.rc���Gd�d�}|jjt�td���}|jjt�td���}|j|jd�jd�|j|jd�jd�|j|jd	�jd
�y)Nc�@�eZdZd�Zej
ed���Zy)�4TestSingleDispatch.test_callable_register.<locals>.Ac��||_yrr�r�s  rr�z=TestSingleDispatch.test_callable_register.<locals>.A.__init__�	r�rc��|d�Sr�rrs  rr\z6TestSingleDispatch.test_callable_register.<locals>.A.t�	rrN)r(r)r*r�r
r�r&r\rrrr(r�	s)��
��
+�
+�
�
#��,�
#rr(c��|d�Sr�rrs  rr�z4TestSingleDispatch.test_callable_register.<locals>._�	����u�:�rc��|d�Sr�rrs  rr�z4TestSingleDispatch.test_callable_register.<locals>._�	rrrr�r�r�r[r�)r\r�r�r&r�rOr�)r1r(r�s   r�test_callable_registerz)TestSingleDispatch.test_callable_register�	s���	#�	#�
�����c�	�	�	�
�
�	�	
�����c�	�	�	�
�
�	�	
������Q����U�+�������R����e�,�������S����v�.rc�4�Gd�dtj��}|j|jj�|j|j
dj�|j
t�5|�ddd�y#1swYyxYw)Nc�N�eZdZejejd���Zy)�ATestSingleDispatch.test_abstractmethod_register.<locals>.Abstractc��yrrrNs   rrOzETestSingleDispatch.test_abstractmethod_register.<locals>.Abstract.add�	s��rN)r(r)r*r
r�rQrRrOrrrrTr�	s(��
�
+�
+�
�
�
�
� �,�
rrTr�rO)rQrVrMrOrUr"rYrZ)r1rTs  r�test_abstractmethod_registerz/TestSingleDispatch.test_abstractmethod_register�	sf��	����	�	
������9�9�:�����)�)�%�0�E�E�F�
�
�
�y�
)��J�*�
)�
)�s�=B�Bc���Gd�d�}|�}|j|jd�d�|j|jd�d�|j|jd�d�y)	Nc��eZdZejd��Zejdefd��Zejde	fd��Zy)�4TestSingleDispatch.test_type_ann_register.<locals>.Ac��yr�rr�s  rr\z6TestSingleDispatch.test_type_ann_register.<locals>.A.t

r�rr�c��yr�rr�s  rr�z6TestSingleDispatch.test_type_ann_register.<locals>.A._
���rc��yr�rr�s  rr�z6TestSingleDispatch.test_type_ann_register.<locals>.A._
r#rNr�rrrr(r 	
sT��
�
+�
+�
�,�
�
�Z�Z�
�S�
��
�
�Z�Z�
�S�
��
rr(rr�r�r�r[r�)rOr\r�s   r�test_type_ann_registerz)TestSingleDispatch.test_type_ann_register
s]��		�		�
�C��������Q���'�������R��%�(�������S��6�*rc���Gd�d�}|�}|j|jd��|j|jd��|j|jd�d�y)Nc��eZdZejed���Zejedefd���Z	ejede
fd���Z	y)�ATestSingleDispatch.test_staticmethod_type_ann_register.<locals>.Ac��|Srrr�s rr\zCTestSingleDispatch.test_staticmethod_type_ann_register.<locals>.A.t
r�rr�c�"�t|t�Srr�r�s rr�zCTestSingleDispatch.test_staticmethod_type_ann_register.<locals>.A._
r�rc�"�t|t�Srr�r�s rr�zCTestSingleDispatch.test_staticmethod_type_ann_register.<locals>.A._#
r�rNr�rrrr(r(
sl��
�
+�
+�
�
��,�
�
�Z�Z�
�
,�s�
,���
,�
�Z�Z�
�
,�s�
,���
,rr(rr�r[r�r�s   r�#test_staticmethod_type_ann_registerz6TestSingleDispatch.test_staticmethod_type_ann_register
rrc��Gd�d�}|j|jd�jd�|j|jd�jd�|j|jd�jd�y)	Nc��eZdZd�Zej
ed���Zejede	fd���Z
ejedefd���Z
y)�@TestSingleDispatch.test_classmethod_type_ann_register.<locals>.Ac��||_yrr�r�s  rr�zITestSingleDispatch.test_classmethod_type_ann_register.<locals>.A.__init__/
r�rc��|d�Sr�rrs  rr\zBTestSingleDispatch.test_classmethod_type_ann_register.<locals>.A.t2
rrr�c��|d�Sr�rrs  rr�zBTestSingleDispatch.test_classmethod_type_ann_register.<locals>.A._6
r
rc��|d�Sr�rrs  rr�zBTestSingleDispatch.test_classmethod_type_ann_register.<locals>.A._:
r
rNrrrrr(r/.
ss��
��
+�
+�
�
#��,�
#�
�Z�Z�
�
"�C�
"���
"�
�Z�Z�
�
"�C�
"���
"rr(rr�r�r�r[r�r
rGs  r�"test_classmethod_type_ann_registerz5TestSingleDispatch.test_classmethod_type_ann_register-
rrc��Gd�d�}|jdz}|j|�j|j|�j|j|�jfD]�}|j	|��5|j|j||jz�|j|jtjrdnd�|j|jdt�ddd���|j|jjd�|j|�jjd�|j|jjd�|j|�jjd�|j|jjd	�|j|�jjd	�y#1swY���xYw)
Nc��eZdZejdedefd��Zejededefd���Z	eje
dedefd���Zy)�=TestSingleDispatch.test_method_wrapping_attributes.<locals>.Ar��returnc��t|�S��My function docstring�r�r�s  rr zBTestSingleDispatch.test_method_wrapping_attributes.<locals>.A.funcE
�
���3�x�rc��t|�Sr:r<rs  r�cls_funczFTestSingleDispatch.test_method_wrapping_attributes.<locals>.A.cls_funcI
�
���3�x�rc��t|�Sr:r<r�s r�static_funczITestSingleDispatch.test_method_wrapping_attributes.<locals>.A.static_funcN
r@rN)r(r)r*r
r�r�r�r r&r?r$rBrrrr(r7D
s���
�
+�
+�
 ��
 ��
 �,�
 ��
+�
+�
�
 �3�
 �3�
 ��,�
 ��
+�
+�
�
 ��
 ��
 ��,�
 rr(r��methr;r�r r?rB)r*r r?rBr:rOr(rr�HAVE_DOCSTRINGSrxr�)r1r(�prefixrDs    r�test_method_wrapping_attributesz2TestSingleDispatch.test_method_wrapping_attributesC
s|��	 �	 � ���#�%��
�F�F�
�C�H�H�
�J�J�
�C�L�L�
�M�M�
�C�O�O�

�D����4��(�� � ��!2�!2�F�T�]�]�4J�K�� � ����%,�%<�%<�#:�'+�.�� � ��!5�!5�e�!<�c�B�
)�(�
� 	
��������&�1��������*�*�F�3�������,�,�j�9��������.�.�
�;�������/�/��?��������1�1�=�A�)�(�s
�A;G;�;H	c	����d��G�fd�d�}G�fd�d�}|jd�5}|}ddd�|jd�5}|}ddd�|j�|j|d�|j|jd�|jd��|j|jd�d�dD]�}|j|�	�5|jt	||�j
t	||�j
�|jt	|�|�j
t	|�|�j
�ddd���|j|�j|j|�jfD]n}|j|�
�5|j|jtjrdnd�|j|jdt�ddd��p|j|jj
d
�|j|�jj
d
�|j|jj
d�|j|�jj
d�y#1swY���xYw#1swY��xxYw#1swY��xYw#1swY��ExYw)Nc�l��|j�ttj���fd���}|S)Nc����|i|��Srr)rr�ras  �rr`zgTestSingleDispatch.test_double_wrapped_methods.<locals>.classmethod_friendly_decorator.<locals>.wrappero
s�����/��/�/r)�__func__r&r
r�)r r`ras  @r�classmethod_friendly_decoratorzVTestSingleDispatch.test_double_wrapped_methods.<locals>.classmethod_friendly_decoratorm
s4����m�m�G�
�
�_�_�W�
%�
0�&��
0��Nrc�l��eZdZeej
dedefd���ZW�ededefd���Z	y)�MTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatchr�r8c3�6K�	t|���y#YyxYw�w)N�Doner<rs  r�cls_context_managerzaTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatch.cls_context_managerv
s����"��c�(�N�!��6����
���c��t|�Srr<rs  r�decorated_classmethodzcTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatch.decorated_classmethod~
r=rN)
r(r)r*r&�
contextlib�contextmanagerr�r�rQrT�rLs�r�WithoutSingleDispatchrNu
s[���
�
�
&�
&�
"�c�
"�c�
"�'��
"�,�
�
 ��
 ��
 ��,�
 rrXc���eZdZejeejdede	fd����Z
ejW�edede	fd����Zy)�JTestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatchr�r8c3�6K�	t|���y#YyxYw�w)r;rPr<rs  rrQz^TestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatch.cls_context_manager�
s����
"��c�(�N�!��6�rRc��t|�Sr:r<rs  rrTz`TestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatch.decorated_classmethod�
s
��
�3�x�rN)r(r)r*r
r�r&rUrVr�r�rQrTrWs�r�WithSingleDispatchrZ�
sw���
�
+�
+�
�
�
&�
&�
"�c�
"�c�
"�'��,�
"��
+�
+�
+�
�
 ��
 ��
 ��,�,�
 rr]r`�5)rQrT)rBrCr;r�rQrT)rQrOrTr:r�r(rrrErxr�)	r1rXr]r��without_single_dispatch_foo�single_dispatch_foo�method_namerDrLs	        @r�test_double_wrapped_methodsz.TestSingleDispatch.test_double_wrapped_methodsl
s����	�	 �	 �	 �	 �(#�
6�
6�q�
9�S�*-�'�:� �
3�
3�A�
6�#�"%��7�	
���4�6I�J����,�c�2����!�7�7��:��4�4�Q�7�	
�
	
���+�A�A�!�D�c�J�L�K����[��1�� � ��.��<�E�E��1�;�?�H�H��
� � ��.�0�+�>�G�G��1�3�[�A�J�J��
2�1�L�
�2�2�� �4�4��4�4�� �6�6�	
�D����4��(�� � ����%,�%<�%<�#:�'+�.�� � ��!5�!5�e�!<�c�B�)�(�

�	
����2�2�;�;�!�	
�	
���� �4�4�=�=�!�	
�	
����4�4�=�=�#�	
�	
���� �6�6�?�?�#�	
�m:�
9��7�
6��2�1��")�(�s1�J6�
K�!A?K�7AK�6K�K
�K	�K'	c���d}d}tjd��}|jt�5}|j	d�d��}ddd�|jt
j�j|dz��|jt
|j�j|��|jt�5}|jd��}ddd�|jt
|j�j|dz��|jt
|j�j|��|jt�5}|jd	tjtfd
��}ddd�|jt
|j�jd��|jt
|j�jd��|jt�5}|jd	tjttjtffd
��}ddd�|jt
|j�jd��|jt
|j�jd��y#1swY���xYw#1swY���xYw#1swY��PxYw#1swY��xYw)Nz(Invalid first argument to `register()`: zS. Use either `@register(some_class)` or plain `@register` on an annotated function.c��yr�rr�s rr�z8TestSingleDispatch.test_invalid_registrations.<locals>.i�
r�rr�c��y)NzI annotated with a non-typerr�s rr�z8TestSingleDispatch.test_invalid_registrations.<locals>._�
s��4r�42c��y)NzI forgot to annotaterr�s rr�z8TestSingleDispatch.test_invalid_registrations.<locals>._�
s��-rzB<function TestSingleDispatch.test_invalid_registrations.<locals>._r�c��y)Nz%I annotated with a generic collectionrr�s rr�z8TestSingleDispatch.test_invalid_registrations.<locals>._�
s��?rzInvalid annotation for 'arg'.z$typing.Iterable[str] is not a class.c��y)Nz
Invalid Unionrr�s rr�z8TestSingleDispatch.test_invalid_registrations.<locals>._�
s��&rzFtyping.Union[int, typing.Iterable[str]] not all arguments are classes.)r
r�rYrZr�rMr�rNr��endswith�typingr+�Unionr�)r1�
msg_prefix�
msg_suffixr��excr�s      r�test_invalid_registrationsz-TestSingleDispatch.test_invalid_registrations�
sd��?�
�
"�	�
�	!�	!�	�
"�	�
�
�
�y�
)�S�
�Z�Z��^�
5��
5�*�	
����C�M�M�*�5�5�j�4�6G�H�I�����C�M�M�*�3�3�J�?�@�
�
�
�y�
)�S�
�Z�Z�
.��
.�*�	
����C�M�M�*�5�5�j�P�7Q�
�	�	
����C�M�M�*�3�3�J�?�@�
�
�
�y�
)�S�
�Z�Z�
?�v���s�+�
?��
?�*�	
����C�M�M�*�5�5�+�
�	�	
����C�M�M�*�3�3�2�
�	��
�
�y�
)�S�
�Z�Z�
'�v�|�|�C�����)=�$=�>�
'��
'�*�	
����C�M�M�*�5�5�+�
�	�	
����C�M�M�*�3�3�T�
�	�K*�
)��*�
)��*�
)��*�
)�s0�K�K�'+K �AK-�K�K� K*�-K6c��tjd��}d}|jt|�5|�ddd�y#1swYyxYw)Nc��yrrr�s rr�z>TestSingleDispatch.test_invalid_positional_argument.<locals>.frmrz)f requires at least 1 positional argument)r
r��assertRaisesRegexrZ)r1r��msgs   r� test_invalid_positional_argumentz3TestSingleDispatch.test_invalid_positional_arguments@��	�	!�	!�	�
"�	�9��
�
#�
#�I�s�
3�
�C�4�
3�
3�s�A�A	c��tjd��}|jdtjt
tffd��}|jdttzfd��}|j|g�d�|j|d�d�|j|d�d�|j|d	�d
�|j|d�d
�y)Nc��y�N�defaultrr�s rr�z(TestSingleDispatch.test_union.<locals>.f
r�rr�c��y�N�typing.Unionrr�s rr�z(TestSingleDispatch.test_union.<locals>._���!rc��y�N�types.UnionTyperr�s rr�z(TestSingleDispatch.test_union.<locals>._���$rryr�r|rr9r�rY)
r
r�r�rkrlr��bytesr��floatrO�r1r�r�s   r�
test_unionzTestSingleDispatch.test_unions���	�	!�	!�	�
"�	�
���	"�6�<�<��U�
�+�	"�
�	"�
���	%�3��;�	%�
�	%�	
����2��	�*�����2���/�����3���0�����1��0�1�����3��!2�3rc��tjd��}|jdtjt
tffd��}|jdtt
zfd��}|j|g�d�|j|d�d�|j|d�d	�|j|d
�d�y)Nc��yrxrr�s rr�z1TestSingleDispatch.test_union_conflict.<locals>.f r�rr�c��yr{rr�s rr�z1TestSingleDispatch.test_union_conflict.<locals>._$r}rc��yrrr�s rr�z1TestSingleDispatch.test_union_conflict.<locals>._(r�rryr�r�rr|r9)	r
r�r�rkrlr�r�r�rOr�s   r�test_union_conflictz&TestSingleDispatch.test_union_conflicts���	�	!�	!�	�
"�	�
���	"�6�<�<��U�
�+�	"�
�	"�
���	%�3��9�	%�
�	%�	
����2��	�*�����2�� 1�2�����3���0�����1��0�1rc��tjd��}|jdtjt
dffd��}|j
|d�d�|j
|d�d�|j
|d�d�tjd��}|jdtdzfd	��}|j
|d�d�|j
|d�d
�|j
|d�d
�y)Nc��yrxrr�s r�typing_unionz8TestSingleDispatch.test_union_None.<locals>.typing_union2r�rr�c��yr{rr�s rr�z-TestSingleDispatch.test_union_None.<locals>._6r}rr9ryr�r|c��yrxrr�s r�types_unionz7TestSingleDispatch.test_union_None.<locals>.types_union>r�rc��yrrr�s rr�z-TestSingleDispatch.test_union_None.<locals>._Br�rr�)r
r�r�rkrlr�rOr�)r1r�r�r�s    r�test_union_Nonez"TestSingleDispatch.test_union_None1s��	�	!�	!�	�
"�	�
�	�	�	"�6�<�<��T�	�*�	"�
�	"�	
����a��)�4�����b�)�>�:�����d�+�^�<�	�	!�	!�	�
"�	�
�	�	�	%�3��:�	%�
�	%�	
����R��)�4�����Q��):�;�����T�*�,=�>rc��tjd��}|jtd�5|j	t
td��ddd�|jtd�5|j	tjtd��ddd�|jtd�5|j	t
ttzd��ddd�|jtd�5|j	tjttzd��ddd�|j|dg�d�|j|d	g�d�|j|d
�d�|j|d�d�y#1swY��FxYw#1swY��xYw#1swY��xYw#1swY��xYw)Nc��yrxrr�s rr�z8TestSingleDispatch.test_register_genericalias.<locals>.fKr�r�Invalid first argument to c��y�Nztypes.GenericAliasrr�s rrKz?TestSingleDispatch.test_register_genericalias.<locals>.<lambda>Ps��.Brc��y�Nztyping.GenericAliasrr�s rrKz?TestSingleDispatch.test_register_genericalias.<locals>.<lambda>Rs��5Jrc��y)Nz$types.UnionTypes(types.GenericAlias)rr�s rrKz?TestSingleDispatch.test_register_genericalias.<locals>.<lambda>Ts��4Zrc��y�Nz!typing.Union[typing.GenericAlias]rr�s rrKz?TestSingleDispatch.test_register_genericalias.<locals>.<lambda>Vs��?brr9ryrYr�r)
r
r�rsrZr�r/r�rk�Listr�r�r�rOr�s  r�test_register_genericaliasz-TestSingleDispatch.test_register_genericaliasJsL��	�	!�	!�	�
"�	��
#�
#�I�/K�
L�
�J�J�t�C�y�"B�C�M�
�
#�
#�I�/K�
L�
�J�J�v�{�{�3�'�)J�K�M�
�
#�
#�I�/K�
L�
�J�J�t�C�y�3��(Z�[�M�
�
#�
#�I�/K�
L�
�J�J�v�{�{�5�)�E�1�3b�c�M�	
����A�3���+�����C�5��9�-�����2��	�*�����3���+�M�
L��
L�
L��
L�
L��
L�
L�s/�F�*)F�1&F*�50F6�F�F'�*F3�6F?c��tjd��}|jtd�5|j	t
t�ddd�|jtd�5|j	tjt�ddd�|jtd�5|j	t
ttz�ddd�|jtd�5|j	tjttz�ddd�y#1swY��xYw#1swY��xYw#1swY�nxYw#1swYyxYw)Nc��yrxrr�s rr�zBTestSingleDispatch.test_register_genericalias_decorator.<locals>.f^r�rr�)
r
r�rsrZr�r/r�rkr�r�r�s  r�$test_register_genericalias_decoratorz7TestSingleDispatch.test_register_genericalias_decorator]s���	�	!�	!�	�
"�	��
#�
#�I�/K�
L�
�J�J�t�C�y�!�M�
�
#�
#�I�/K�
L�
�J�J�v�{�{�3�'�(�M�
�
#�
#�I�/K�
L�
�J�J�t�C�y�3��'�M�
�
#�
#�I�/K�
L�
�J�J�v�{�{�3�'�#�-�.�M�
L�
M�
L��
L�
L��
L�
L��
L�
L�s/�D&�('D2�-$D>�/.E
�&D/�2D;�>E�
Ec��tjd��}|jtd�5|jdt
tfd��}ddd�|jtd�5|jdtjtfd��}ddd�|jtd�5|jdt
ttzfd��}ddd�|jtd�5|jdtjttzfd��}ddd�|j|dg�d	�|j|d
g�d	�|j|d�d	�|j|d�d	�y#1swY��LxYw#1swY��xYw#1swY��xYw#1swY��xYw)
Nc��yrxrr�s rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>.flr�rzInvalid annotation for 'arg'r�c��yr�rr�s rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>._qs��+rc��yr�rr�s rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>._us��,rc��y)Nz#types.UnionType(types.GenericAlias)rr�s rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>._ys��<rc��yr�rr�s rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>._}s��:rr9ryrYr�r)
r
r�rsrZr�r/r�rkr�r�r�r�rOr�s   r�%test_register_genericalias_annotationz8TestSingleDispatch.test_register_genericalias_annotationks���	�	!�	!�	�
"�	��
#�
#�I�/M�
N�
�Z�Z�
,�t�C�y�
,��
,�O��
#�
#�I�/M�
N�
�Z�Z�
-�v�{�{�5�)�
-��
-�O��
#�
#�I�/M�
N�
�Z�Z�
=�t�C�y�3��
=��
=�O��
#�
#�I�/M�
N�
�Z�Z�
;�v�{�{�5�)�E�1�
;��
;�O�
	
����A�3���+�����C�5��9�-�����2��	�*�����3���+�)O�
N��O�
N��O�
N��O�
N�s/�!F�,+F%�5(F2�;2F>�F"�%F/�2F;�>Gc��Gd�d�}|�}|�}|j|jd�|�|j|jd�|�y)Nc�<�eZdZd�Zd�Zejd��Zy)�9TestSingleDispatch.test_method_equal_instances.<locals>.Ac��y�NTrr0s  rrAz@TestSingleDispatch.test_method_equal_instances.<locals>.A.__eq__�s��rc��yr�rr\s rr*zBTestSingleDispatch.test_method_equal_instances.<locals>.A.__hash__�r�rc��|Srrr�s  rr\z;TestSingleDispatch.test_method_equal_instances.<locals>.A.t�s���rN�r(r)r*rAr*r
r�r\rrrr(r��s$��
�
�
�
+�
+�
�,�
rr(r9r:)r�r\)r1r(r>r?s    r�test_method_equal_instancesz.TestSingleDispatch.test_method_equal_instances�sH��	�	�
�C��
�C���
�
�a�c�c�!�f�a� ��
�
�a�c�c�!�f�a� rc��Gd�d�}|�jd�t|�j�|�j|�jk(y)Nc�<�eZdZd�Zd�Zejd��Zy)�2TestSingleDispatch.test_method_bad_hash.<locals>.Ac��t�r��AssertionErrorr0s  rrAz9TestSingleDispatch.test_method_bad_hash.<locals>.A.__eq__����$�$rc��t�rr�r\s rr*z;TestSingleDispatch.test_method_bad_hash.<locals>.A.__hash__�r�rc��yrrr�s  rr\z4TestSingleDispatch.test_method_bad_hash.<locals>.A.t�rPrNr�rrrr(r��s$��
%�
%�
�
+�
+�
�,�
rr(r9)r\r#rGs  r�test_method_bad_hashz'TestSingleDispatch.test_method_bad_hash�s;��	�	�	
����a���Q�S�U�U��	��������rc��Gd�d�}|�}|jd�}|j|��~tjd��stj�|j|��|�}|j}~tj�|d�}|j|��~tjd��stj�|j|��y)Nc�0�eZdZejd��Zy)�<TestSingleDispatch.test_method_no_reference_loops.<locals>.Ac�,�tj|�Sr)r�r�r�s  rr\z>TestSingleDispatch.test_method_no_reference_loops.<locals>.A.t�s���{�{�4�(�(rN)r(r)r*r
r�r\rrrr(r��s��
�
+�
+�
)�,�
)rr(r9T)�cpython)r\r�r�check_impl_detailr�rM)r1r(r>r�r\s     r�test_method_no_reference_loopsz1TestSingleDispatch.test_method_no_reference_loops�s���	)�	)�

�C��
�C�C��F�����Q�S�!�
��(�(��6���� ����!�#��
�C��
�C�C��
�����
�a�D�����Q�S�!�
��(�(��6���� ����!�#�rc���tjdtdtfd��}|jdtdt
dtfd��}|j
ttj|��d�y)Nr�r8c��t|�Srr<��itemr�s  rr z0TestSingleDispatch.test_signatures.<locals>.func�����t�9�rr�c��t|�Srr<r�s  rr�z-TestSingleDispatch.test_signatures.<locals>._�r�r�(item, arg: int) -> str)	r
r�r�r�r�r�rOrr*)r1r r�s   r�test_signaturesz"TestSingleDispatch.test_signatures�sx��	�	!�	!�	�C�	�C�	�
"�	�	
���	�C�	�e�	��	�
�	�	
����Y�4�4�T�:�;�2�	4rc���Gd�d�}|jttj|j��d�|jttj|�j��d�|jttj|j
��d�|jttj|j��d�y)Nc�r�eZdZdedefd�Zededefd��Zejdedefd��Z
e
jdedefd��Z
ejededefd���Ze
jededefd���Z
ejededefd	���Ze
jededefd
���Z
y)�4TestSingleDispatch.test_method_signatures.<locals>.Ar�r8c��t|�Srr<�r1r�r�s   rryz6TestSingleDispatch.test_method_signatures.<locals>.A.m�s���4�y� rc��t|�Srr<�r'r�r�s   rrPz7TestSingleDispatch.test_method_signatures.<locals>.A.cm�����4�y� rc��t|�Srr<r�s   rr z9TestSingleDispatch.test_method_signatures.<locals>.A.func�r�rc��t|�Srr<r�s   rr�z6TestSingleDispatch.test_method_signatures.<locals>.A._�r�rc��t|�Srr<r�s   rr?z=TestSingleDispatch.test_method_signatures.<locals>.A.cls_func�r=rc��t|�Srr<r�s   rr�z6TestSingleDispatch.test_method_signatures.<locals>.A._�����4�y� rc��t|�Srr<r�s  rrBz@TestSingleDispatch.test_method_signatures.<locals>.A.static_func�r=rc��t|�Srr<r�s  rr�z6TestSingleDispatch.test_method_signatures.<locals>.A._�r�rN)r(r)r*r�r�ryr&rPr
r�r r�r�r�r?r$rBrrrr(r��s7��
!�3�
!�3�
!�
�
!�3�
!�3�
!��
!�
�
+�
+�
!�c�
!�c�
!�,�
!�
�]�]�
!�5�
!�S�
!��
!��
+�
+�
�
 ��
 ��
 ��,�
 �
�]�]�
�
!�%�
!�C�
!���
!��
+�
+�
�
 �s�
 �s�
 ��,�
 �
�]�]�
�
!�U�
!�s�
!���
!rr(z(self, item, arg: int) -> strz(cls, item, arg: int) -> strr�)rOr�rr*r r?rBrGs  r�test_method_signaturesz)TestSingleDispatch.test_method_signatures�s���	!�	!�>	
����Y�4�4�Q�V�V�<�=�8�	:�����Y�4�4�Q�S�X�X�>�?�8�	:�����Y�4�4�Q�Z�Z�@�A�7�	9�����Y�4�4�Q�]�]�C�D�2�	4rN)+r(r)r*r�rrrr��
skipUnlessrrr2rr5r]rpr�r�r�r�r�rrrrr%r,r4rGrbrprur�r�r�r�r�r�r�r�r�r�r�rrrr�r��s���	-�&�.
;�7��X����"5�6����:��7�:�"47�l\(�|;�.+�$},�@d)�L*�6-�4(�(/�,/�.�+�"(�(/�,'B�Rd
�L0�d�4�&2�$?�2,�&/�,�6!� 
��4	4�'4rr�c�:�eZdZdZd�Zejd��Zy)�CachedCostItemr9c�6�tj�|_yr)r�RLock�lockr\s rr�zCachedCostItem.__init__�s�� �&�&�(��	rc��|j5|xjdz
c_ddd�|jS#1swY|jSxYw)�The cost of the item.r9N)r��_costr\s r�costzCachedCostItem.cost�s7���Y�Y��J�J�!�O�J���z�z����z�z��s	�7�AN)r(r)r*r�r�r�cached_propertyr�rrrr�r��s&��
�E�)��!�!��"�rr�c�8�eZdZdZd�Zej
e�Zy)�OptionallyCachedCostItemr9c�D�|xjdz
c_|jS)r�r9�r�r\s r�get_costz!OptionallyCachedCostItem.get_costs���
�
�a��
��z�z�rN)r(r)r*r�r�rr��cached_costrrrr�r�s��
�E��
�.�.�x�8�Krr�c�:�eZdZdZd�Zejd��Zy)�CachedCostItemWithSlotsr�c��d|_yr�r�r\s rr�z CachedCostItemWithSlots.__init__s	����
rc��td��)Nz!never called, slots not supportedr�r\s rr�zCachedCostItemWithSlots.costs���>�?�?rN)r(r)r*�	__slots__r�rr�r�rrrr�r�
s(���I���!�!�@�"�@rr�c�H�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zy)�TestCachedPropertyc��t�}|j|jd�|j|jd�yr)r�rOr��r1r�s  r�test_cachedzTestCachedProperty.test_cacheds2�����������A�&�������A�&rc��t�}|j|j�d�|j|jd�|j|j�d�|j|jd�y)Nr:r@rA)r�rOr�r�r�s  r�1test_cached_attribute_name_differs_from_func_namezDTestCachedProperty.test_cached_attribute_name_differs_from_func_namesb��'�)���������!�,�����)�)�1�-��������!�,�����)�)�1�-rc��t�}|jtd�5|jddd�y#1swYyxYw)NzWNo '__dict__' attribute on 'CachedCostItemWithSlots' instance to cache 'cost' property.)r�rsrZr�r�s  r�test_object_with_slotsz)TestCachedProperty.test_object_with_slots%s7��&�(��
�
#�
#��i�
�
�I�I�	
�
�
�s	�
7�Ac��Gd�dt�}Gd�d|��}|jtd�5|jddd�y#1swYyxYw)Nc�0�eZdZejd��Zy)�6TestCachedProperty.test_immutable_dict.<locals>.MyMetac��yr�rr\s r�propz;TestCachedProperty.test_immutable_dict.<locals>.MyMeta.prop/s��rN)r(r)r*rr�r�rrr�MyMetar�.s��
�
)�
)�
�*�
rr�c��eZdZy)�7TestCachedProperty.test_immutable_dict.<locals>.MyClassNr'rrr�MyClassr3r�rrr�zkThe '__dict__' attribute on 'MyMeta' instance does not support item assignment for caching 'prop' property.)r�rsrZr�)r1r�rs   r�test_immutable_dictz&TestCachedProperty.test_immutable_dict-sI��	�T�	�
	��	��
#�
#��y�
�
�L�L�	
�
�
�s�
A�Ac���|jt�5}Gd�d�}ddd�|jtj�ttd���y#1swY�AxYw)zDDisallow this case because decorated function a would not be cached.c�4�eZdZejd��ZeZy)�KTestCachedProperty.test_reuse_different_names.<locals>.ReusedCachedPropertyc��yrrr\s rr>zMTestCachedProperty.test_reuse_different_names.<locals>.ReusedCachedProperty.a@s��rN)r(r)r*rr�r>r?rrr�ReusedCachedPropertyr?s!���-�-��.���rrNzLCannot assign the same cached_property to two different names ('a' and 'b').)rYrZrOr�rN)r1�ctxrs   r�test_reuse_different_namesz-TestCachedProperty.test_reuse_different_names<sT��
�
�
�y�
)�S�
�
�*�	
�����
�
���	�h�i�j�	
�*�
)�s�A!�!A*c�0���d�tj�fd���G�fd�d�}G�fd�d�}|�}|�}|j|jd�|j|jd�|j|jd�y	)
zIReusing a cached_property on different classes under the same name is OK.rc����dz
��Sr�r)�_self�counters �r�_cpz4TestCachedProperty.test_reuse_same_name.<locals>._cpOs���
�q�L�G��Nrc���eZdZW�Zy)�2TestCachedProperty.test_reuse_same_name.<locals>.AN�r(r)r*�cp�rs�rr(rU�����Brr(c���eZdZW�Zy)�2TestCachedProperty.test_reuse_same_name.<locals>.BNrrs�rrCrXrrrCr9r:N)rr�rOr)r1r(rCr>r?rrs     @@r�test_reuse_same_namez'TestCachedProperty.test_reuse_same_nameKs������	�	%�	%�	�
&�	�
	�	�	�	�
�C��
�C��������q�!�������q�!�������q�!rc���tjd��}Gd�d�}||_|jtd�5|�jddd�y#1swYyxYw)Nc��yrr)r�s rrKz=TestCachedProperty.test_set_name_not_called.<locals>.<lambda>cs��Drc��eZdZy)�8TestCachedProperty.test_set_name_not_called.<locals>.FooNr'rrr�Foordr�rrzGCannot use cached_property instance without calling __set_name__ on it.)rr�rrsrZ)r1rrs   r�test_set_name_not_calledz+TestCachedProperty.test_set_name_not_calledbsT��
�
)�
)�.�
9��	�	����
�
#�
#��Y�
�
�E�H�H�	
�
�
�s�A�A"c�`�|jtjtj�yr)�assertIsInstancer�r�rr�r\s r�test_access_from_classz)TestCachedProperty.test_access_from_classos�����n�1�1�<�3O�3O�Prc��|jtjjtj
rd�yd�y)Nr�)rOr�r�rrrEr\s r�test_doczTestCachedProperty.test_docrs6������,�,�4�4�$�4�4�2�	&� $�	&rc����Gd�dtj��G�fd�d�}|d�}|j|jd�d|_|j|jd�y)z4Caching still works for a subclass defining __set__.c��eZdZd�Zy)�OTestCachedProperty.test_subclass_with___set__.<locals>.readonly_cached_propertyc��td��)Nzread only property)r�)r1r2r�s   r�__set__zWTestCachedProperty.test_subclass_with___set__.<locals>.readonly_cached_property.__set__{s��$�%9�:�:rN)r(r)r*r(rrr�readonly_cached_propertyr&zs��
;rr)c�&��eZdZd�ZW�d��Zy)�;TestCachedProperty.test_subclass_with___set__.<locals>.Testc��||_yr��_prop)r1r�s  rr�zDTestCachedProperty.test_subclass_with___set__.<locals>.Test.__init__s	��!��
rc��|jSrr-r\s rr�z@TestCachedProperty.test_subclass_with___set__.<locals>.Test.prop�s���z�z�!rN)r(r)r*r�r�)r)s�rrr+~s���
"�&�
"�&�
"rrr9r&N)rr�rOr�r.)r1rr\r)s   @r�test_subclass_with___set__z-TestCachedProperty.test_subclass_with___set__xsY���	;�|�'C�'C�	;�	"�	"�
��G���������#�����������#rN)
r(r)r*r�r�r�rr
rrr!r#r0rrrr�r�s5��'�
.��
�

�"�.�Q�&�$rr��__main__)QrQr0r%�collections.abcr��	itertoolsrr��randomrrr�rr�r�rkr��
unittest.mockr�r�rrU�inspectr�test.supportrr	r
�import_fresh_modulerrrrLr�r�rVrrr$r�r&r-rPr5r7r��TestCaser�r
r
rrrrr]r�r�r�r�r�r.r4r6rFr�r�r�r�r�r
r�r�r�r�r�r�r�r�r�r(�mainrrr�<module>r;s��
�����"�
��
����
����	����&�)��0�}�0�0��:F��I��/�m�/�/��7C�n�F��,�-�
+�
+�I�j�\�
J���&�&�'������+�-�-�.����,��,��
@�	�e�	�(�u�(�	�T�	�I3�I3�X
����[�"D�E�+$�;�� 1� 1�+$�F�+$�\#�K��!2�!2�#�
�
�;�.�.�
�	��,�,�	�����[�"D�E�$�<�$�F�$� �M� �G(��)�)�G(�Ty6��)�)�y6�x;9�!�;9�|LA�LA�^����[�"D�E�$�*�h�/�/�$�F�$�
/�:�x�0�0�/�V$�V$�r����[�"D�E�	
�L�(�"3�"3�	
�F�	
�7�\�8�#4�#4�7�g ��)�)�g �T	���)�)��)�P�P�&�)�X�.�.������[�"D�E���H�-�-��F��
{N�{N�|������������������*�*������[�"D�E��w��)�)��F��]4��*�*�]4�@#��9�9�@�@�q$��*�*�q$�h�z���H�M�M�O�r