Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/test_functools.cpython-312.opt-1.pyc

�

'Μgx��� �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@�ZBej��dA��ZDerej��dB��ZEGdC�dDeBej\�ZFejZed�GdE�dFeBej\��ZGGdG�dHej\�ZHGdI�dJ�ZIGdK�dL�ZJGdM�dN�ZKGdO�dPej\�ZLeMdQk(rej��yy)R�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   �0/usr/local/lib/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�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�^�^�[�]�CrN)r(r)r*rTrWr]rerhrjrlrtrvr|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�HDrr7z 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��sthr�z['sth'])rLrr�r!r�r�)r1r�r�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�rLrrrrr�s��
�F��"�"�Grrc��eZdZy)�CPartialSubclassNr'rrrrr�s��rrc��eZdZy)�PyPartialSubclassNr'rrrrr�r+rrc��eZdZereZdZy)�TestPartialCSubclassN)r(r)r*rrrLr�rrrr
r
�s���"�� $�rr
c��eZdZeZy)�TestPartialPySubclassN)r(r)r*rrLrrrrr�s���Grrc�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>rrr!rr!rr\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_nested�s�����������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>rr!r\s r�test_over_partialz#TestPartialMethod.test_over_partials��������,�,�.�$�&�&�!��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�rr r!�r1�objs  r�test_bound_method_introspectionz1TestPartialMethod.test_bound_method_introspection
s����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)Nr))r!�assertFalse�hasattrrr�rrr>r*s  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�r+)rr`)rr`rrrdrrr&)r!r>�subTestrOrr r*s  r�test_descriptorsz"TestPartialMethod.test_descriptorss[���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�Br9-s��0��0�0��q�9�rr<c�.�eZdZej�Zy)r9Nr:rrrr<z.TestPartialMethod.test_invalid_args.<locals>.B0s��0��0�0�2�rc�4�eZdZejed��Zy)r9r9)r r>N)r(r)r*r
rrr;rrrr<z.TestPartialMethod.test_invalid_args.<locals>.B3s��0��0�0�g��C�r)rYrZr�)r1r<s  r�test_invalid_argsz#TestPartialMethod.test_invalid_args+s��
�
�
�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({})rzfunctools.partialmethod({}, 1)r!z functools.partialmethod({}, a=2)rz+functools.partialmethod({}, self=1, func=2)rz#functools.partialmethod({}, 3, b=4))rOr��varsr!�formatrr\s rr�zTestPartialMethod.test_repr6s�������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.addEs��rr`N)	r(r)r*�abc�abstractmethodrHr
r�add5rrr�AbstractrECs0��
�
�
�
� �
�+�9�*�*�3��2�DrrL�__isabstractmethod__F)rI�ABCMetarMrHrMrKr!rr rr�rr.r�)r1rLr s   r�
test_abstractzTestPartialMethod.test_abstractBs���	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>.fR����q�5�Lrr9r:)r
rLrOr�s   r�test_positional_onlyz&TestPartialMethod.test_positional_onlyQs5��	�
���a��#������1��q��A�w�'rN)r(r)r*r�r!r>rjr$r'r,r0r4r6r?r�rOrSrrrrr�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�rW)	r1�wrapper�wrapped�assigned�updatedr�wrapper_attr�wrapped_attrr�s	         r�
check_wrapperzTestUpdateWrapper.check_wrapper[s����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>.fo���r)r>�This is a new annotationr)�	.defaultsras  rz<generic parameters of f>zDTestUpdateWrapper._default_update.<locals>.<generic parameters of f>os	��a�	r�This is also a testzThis is a bald faced liec��yrrrcs rrXz2TestUpdateWrapper._default_update.<locals>.wrappert���r)r?zThis is the prior annotation)r�rWr
�update_wrapper�r1r�rXs   r�_default_updatez!TestUpdateWrapper._default_updatens6��	�'���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�rhr>rfr?)rmr^�__type_params__r�rWrOr(r*r��__annotations__�assertNotIn)r1rXr�ras    r�test_default_updatez%TestUpdateWrapper.test_default_updateys����)�)�+�
������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�Nrd�rmrO�__doc__�r1rXr�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��yrcrrrrr�z+TestUpdateWrapper.test_no_update.<locals>.f�rerrhc��yrrrrrrXz1TestUpdateWrapper.test_no_update.<locals>.wrapper�rjrrrXr�)r�r
rkr^rOr(�assertNotEqualr*rwrpr.r/rls   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�rjr�This is a different testr9r:r@rGc��yrrrrrrXz8TestUpdateWrapper.test_selective_update.<locals>.wrapper�rjrr���	dict_attrrX)r�rPr�r
rkr^rOr(r~r*rw�r1r�rX�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�rjrc��yrrrrrrXz:TestUpdateWrapper.test_missing_attributes.<locals>.wrapper�rjrr�r�r�r9)r�r
rkrqr"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��yrrrrrrXz6TestUpdateWrapper.test_builtin_update.<locals>.wrapper�rjrr�zmax()	r
rkr�rOr(rMrw�
startswithrp�r1rXs  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 rrXz;TestUpdateWrapper.test_update_type_wrapper.<locals>.wrapper�s��Drr�r)r
rkr�rOr(rpror�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_UPDATESr^rmrr�unittest�skipIfr�flags�optimizeryrr�r�r�requires_docstringsr�r�rrrrUrUYs��� )�<�<�'�7�7�4�&	�
8��X�_�_�S�Y�Y�'�'�1�,�@�B�<�B�<�
3�9�$A�(
� � ��X�_�_�S�Y�Y�'�'�1�,�@�B�6�B�!�6�6rrUc��eZdZd�Zd�Zejejjdk\d�d��Z
d�Zd�Zy)	�	TestWrapsc�b�d�}d|_d|_tj|�d��}||fS)Nc��yrcrrrrr�z$TestWraps._default_update.<locals>.f�rerrhzThis is still a bald faced liec��yrrrrrrXz*TestWraps._default_update.<locals>.wrapper�rer)r�rWr
�wrapsrls   rrmzTestWraps._default_update�s<��	�'���8��
�	����	�	�
�	���z�rc�
�|j�\}}|j||�|j|jd�|j|j|j�|j|j
d�y)Nr�rh)rmr^rOr(r*r�rxs   rrrzTestWraps.test_default_update�si���)�)�+�
������7�A�&�����)�)�3�/�����-�-�q�~�~�>�������'<�=rr:rsc�b�|j�\}}|j|jd�yrurv)r1rX�_s   rryz!TestWraps.test_default_update_doc�rzrc�l�d�}d|_tj|dd�d��}|j||dd�|j	|j
d�|j
|j|j�|j	|jd�|jt|d��y)Nc��yrcrrrrr�z#TestWraps.test_no_update.<locals>.f�rerrhrc��yrrrrrrXz)TestWraps.test_no_update.<locals>.wrapper�rerrXr�)r�r
r�r^rOr(r~r*rwr.r/rls   rrzTestWraps.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>.f�rjrr�r9r:r@rGc��i|_|Srr�)r�s r�
add_dict_attrz6TestWraps.test_selective_update.<locals>.add_dict_attrs���A�K��Hrr�r�c��yrrrrrrXz0TestWraps.test_selective_update.<locals>.wrappers��
rrX)r�rPr�r
r�r^rOr(r~r*rw)r1r�r�r�r�rXs      rr�zTestWraps.test_selective_update�s���	�+����Q�!�q�)���	�����	����F�F�	+�	�	�
�
,�	����7�A�v�v�6�����)�)�9�5����G�0�0�!�.�.�A�������$�/�������'A�B�����*�*�A�K�K�8rN)
r(r)r*rmrrr�r�rr�r�ryrr�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  rrHz#TestReduce.test_reduce.<locals>.add$rRrrGr�rIr>rErd�w)r>rErdr�c��||zSrrrs  rrKz(TestReduce.test_reduce.<locals>.<lambda>+s��!�A�#rr:rr9i�c��||zSrrrs  rrKz(TestReduce.test_reduce.<locals>.<lambda>-s��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__?s��"�"rN)r(r)r*r�rrr�TestFailingIterr�>s��
#rr�c��eZdZd�Zy)�&TestReduce.test_reduce.<locals>.BadSeqc��t�r)�
ValueError)r1�indexs  rr�z2TestReduce.test_reduce.<locals>.BadSeq.__getitem__Gs�� � rN)r(r)r*r�rrr�BadSeqr�Fs��
!rr�)rO�reducer�rYrZr�r�r�)r1r�rHr�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__N�	����rc�J�d|cxkr|jkr	|St�t��Nr)r�r�)r1r�s  rr�zATestReduce.test_iterator_usage.<locals>.SequenceClass.__getitem__Ps(����?�D�F�F�?��H�#�%�$�*�$rN)r(r)r*r�r�rrr�
SequenceClassr�Ms��
�
%rr�r)rHr`r;r��4r9r:r@)�one�two�threer�)�operatorrHrOr�rYrZr��keys)r1r�rHrds    r�test_iterator_usagezTestReduce.test_iterator_usageLs
��	%�	%�	!�������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�bs����#�#��rr�c�0�eZdZeej
�Zy)�TestReducePyN)r(r)r*rrr�rrrr�r�hs��
�,�-�-�
.�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>.cmp1o�����E�a�!�e�$�$rr@r9c�0�t|�t|�z
Sr�r�rs  r�cmp2z*TestCmpToKey.test_cmp_to_key.<locals>.cmp2vs���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_keyns���	%��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>.cmp1r�r��mycmpr@r2r9)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�rrr0s  r�__lt__z0TestCmpToKey.test_bad_cmp.<locals>.BadCmp.__lt__�s��'�'rN)r(r)r*rrrr�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�rOr+r�s   r�test_obj_fieldzTestCmpToKey.test_obj_field�s/��	%��o�o�D�o�)������R����b�)rc�x�d�}|jttd�|j|���gd��y)Nc��||z
Srrrs  rr�z)TestCmpToKey.test_sort_int.<locals>.mycmp�rRrr`�r�)rAr@r:r9r)rO�sortedr�r�)r1r�s  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  rr�z-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  rr�z%TestCmpToKey.test_hash.<locals>.mycmp�rRrr;)r�rYrZ�hash�assertNotIsInstance�collectionsrI�Hashable)r1r�r��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*r�r�rrrrr r�r�r�MISSING_C_DOCSTRINGSr#rrrr�r�lsQ��/� �(
�*�*�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_onlyr)rrrr&r&�s(��� �+�+�
����
��
rr&c�0�eZdZeej
�Zy)�TestCmpToKeyPyN)r(r)r*rrr�rrrr,r,�s���l�5�5�6�Jrr,c�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|jkSrr3r0s  rrz:TestTotalOrdering.test_total_ordering_lt.<locals>.A.__lt__�����z�z�E�K�K�/�/rc�4�|j|jk(Srr3r0s  r�__eq__z:TestTotalOrdering.test_total_ordering_lt.<locals>.A.__eq__�����z�z�U�[�[�0�0rN�r(r)r*r�rr9rrrr!r1����
#�
0�
1rr!r9r:�r
�total_orderingrMr.�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��||_yrr3r4s  rr�z<TestTotalOrdering.test_total_ordering_le.<locals>.A.__init__�r5rc�4�|j|jkSrr3r0s  r�__le__z:TestTotalOrdering.test_total_ordering_le.<locals>.A.__le__�r:rc�4�|j|jk(Srr3r0s  rr9z:TestTotalOrdering.test_total_ordering_le.<locals>.A.__eq__�r:rN)r(r)r*r�rGr9rrrr!rD����
#�
1�
1rr!r9r:r=r?s  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��||_yrr3r4s  rr�z<TestTotalOrdering.test_total_ordering_gt.<locals>.A.__init__�r5rc�4�|j|jkDSrr3r0s  r�__gt__z:TestTotalOrdering.test_total_ordering_gt.<locals>.A.__gt__�r7rc�4�|j|jk(Srr3r0s  rr9z:TestTotalOrdering.test_total_ordering_gt.<locals>.A.__eq__r:rN)r(r)r*r�rQr9rrrr!rN�r<rr!r9r:r=r?s  r�test_total_ordering_gtz(TestTotalOrdering.test_total_ordering_gt�rArc��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��||_yrr3r4s  rr�z<TestTotalOrdering.test_total_ordering_ge.<locals>.A.__init__r5rc�4�|j|jk\Srr3r0s  r�__ge__z:TestTotalOrdering.test_total_ordering_ge.<locals>.A.__ge__r:rc�4�|j|jk(Srr3r0s  rr9z:TestTotalOrdering.test_total_ordering_ge.<locals>.A.__eq__r:rN)r(r)r*r�rYr9rrrr!rVrIrr!r9r:r=r?s  r�test_total_ordering_gez(TestTotalOrdering.test_total_ordering_gerKrc���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!r^���rr!r9r:)r
r>r�rMr?s  r� test_total_ordering_no_overwritez2TestTotalOrdering.test_total_ordering_no_overwrites���	�	!�	!�	��	�
"�	�����!��q��t��$�����!��q��t��$�����!���!���%�����!���!���%�����!���!���%�����!���!���%rc��|jt�5tjGd�d��}ddd�y#1swYyxYw)Nc��eZdZy)�7TestTotalOrdering.test_no_operations_defined.<locals>.ANr'rrrr!rc*s��rr!)rYr�r
r>r?s  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��||_yrr3r4s  rr�zJTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThan.__init__2r5rc�P��t|��r|j|jk(Sy�NF��
isinstancer��r1r2�ImplementsLessThans  �rr9zHTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThan.__eq__4�$����e�%7�8��:�:����4�4�rc�Z��t|��r|j|jkStSr�rlr��NotImplementedrms  �rrzHTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThan.__lt__8�'����e�%7�8��:�:����3�3�%�%rN�r(r)r*r�r9r�rns�rrnrg0����
#�
�
&rrnc�(��eZdZd�Z�fd�Z�fd�Zy)�HTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualToc��||_yrr3r4s  rr�zQTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualTo.__init__?r5rc�P��t|��r|j|jk(Syrjrk�r1r2�ImplementsLessThanEqualTos  �rr9zOTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualTo.__eq__A�$����e�%>�?��:�:����4�4�rc�Z��t|��r|j|jkStSrrqr{s  �rrGzOTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualTo.__le__E�'����e�%>�?��:�:����4�4�%�%rN�r(r)r*r�r9rG�r|s�rr|rx=rvrr|c�(��eZdZd�Z�fd�Z�fd�Zy)�DTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanc��||_yrr3r4s  rr�zMTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThan.__init__Lr5rc�P��t|��r|j|jk(Syrjrk�r1r2�ImplementsGreaterThans  �rr9zKTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThan.__eq__N�$����e�%:�;��:�:����4�4�rc�Z��t|��r|j|jkDStSrrqr�s  �rrQzKTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThan.__gt__R�'����e�%:�;��:�:����3�3�%�%rN�r(r)r*r�r9rQ�r�s�rr�r�Jrvrr�c�(��eZdZd�Z�fd�Z�fd�Zy)�KTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualToc��||_yrr3r4s  rr�zTTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualTo.__init__Yr5rc�P��t|��r|j|jk(Syrjrk�r1r2�ImplementsGreaterThanEqualTos  �rr9zRTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualTo.__eq__[�$����e�%A�B��:�:����4�4�rc�Z��t|��r|j|jk\StSrrqr�s  �rrYzRTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualTo.__ge___�'����e�%A�B��:�:����4�4�%�%rN�r(r)r*r�r9rY�r�s�rr�r�Wrvrr�r9)r
r>r�rGrrrQrYr)r1r�r�rnr|s @@@@r�test_notimplementedz%TestTotalOrdering.test_notimplemented.s����	�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�	
�
�
�(��+�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��||_yrr3r4s  rr�z[TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__init__vr5rc�P��t|��r|j|jk(Syrjrkrms  �rr9zYTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__eq__xrorc�Z��t|��r|j|jkStSrrqrms  �rrzYTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__lt__|rsrNrtrus�rrnr�trvrrnc�(��eZdZd�Z�fd�Z�fd�Zy)�UTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanc��||_yrr3r4s  rr�z^TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__init__�r5rc�P��t|��r|j|jk(Syrjrkr�s  �rr9z\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__eq__�r�rc�Z��t|��r|j|jkDStSrrqr�s  �rrQz\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__gt__�r�rNr�r�s�rr�r��rvrr�c�(��eZdZd�Z�fd�Z�fd�Zy)�YTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualToc��||_yrr3r4s  rr�zbTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__init__�r5rc�P��t|��r|j|jk(Syrjrkr{s  �rr9z`TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__eq__�r}rc�Z��t|��r|j|jkStSrrqr{s  �rrGz`TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__le__�rrNr�r�s�rr|r��rvrr|c�(��eZdZd�Z�fd�Z�fd�Zy)�\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualToc��||_yrr3r4s  rr�zeTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__init__�r5rc�P��t|��r|j|jk(Syrjrkr�s  �rr9zcTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__eq__�r�rc�Z��t|��r|j|jk\StSrrqr�s  �rrYzcTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__ge__�r�rNr�r�s�rr�r��rvrr�c�$��eZdZd�Z�fd�Zd�Zy)�XTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplementedc��||_yrr3r4s  rr�zaTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__init__�r5rc�P��t|��r|j|jk(Syrjrk)r1r2�ComparatorNotImplementeds  �rr9z_TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__eq__�s$����e�%=�>��:�:����4�4�rc��tSr)rrr0s  rrz_TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__lt__�s��%�%rNrt)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
r>r3rYrZrO)r1r>r?r�r�r�rnr|s   @@@@@r�$test_type_error_when_not_implementedz6TestTotalOrdering.test_type_error_when_not_implementedqs����
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�
	&�
	&�
"�
	&�
�	!�	!�	&�	&�
"�	&��\�\�(�
#�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)rrQrGrY)r;r�)	r�r�r�r3r��Orderable_LTr�r�r�)r1r�rr;�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�rlr(�r1r2�SortableMetas  �rrz^TestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMeta.__lt__�s#���!�%��6���}�}�u�~�~�5�5rc�P��t|��s	|j|jk(Srr�r�s  �rr9z^TestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMeta.__eq__�s#���!�%��6���}�}����6�6r)r(r)r*r�rr9�
__classcell__)r�r�s@�rr�r��s���
=�
6�

7�
7rr�c��eZdZy)�LTestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.BNr'rrrr<r�����rr<��	metaclassc��eZdZy)�LTestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.ANr'rrrr!r��r�rr!)r
r>r�rMr.)r1r<r!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*r@rJrSr[r`rdr�r�r�r�rrrr.r.�s9��&�"'�"&�"'�"
&��AQ�Fi�V7� rr.c��eZdZd�Zd�Zd�Zy)r�c��||_yrr3r4s  rr�zOrderable_LT.__init__s	����
rc�4�|j|jkSrr3r0s  rrzOrderable_LT.__lt__s���z�z�E�K�K�'�'rc�4�|j|jk(Srr3r0s  rr9zOrderable_LT.__eq__s���z�z�U�[�[�(�(rNr;rrrr�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�,�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>.orig ����q�5�1�9�rr<�r�rr`��r9c����dz
�y�Nr9r<r��f_cnts�rr�zTestLRU.test_lru.<locals>.fH����
�Q�J�E�rc����dz
�yr�rr�s�rr�zTestLRU.test_lru.<locals>.fXr�rrAr:c����dz
�|dzS�Nr9r;r)rJr�s �rr�zTestLRU.test_lru.<locals>.fhs���
�Q�J�E��R�4�Kr)rbrrbrrbrrrrrrrrrrrbr;�)r��	lru_cacher�rOr�rrMr�r�rWr�)r1r�r�r�r�r�r��domainr�rJr��actualrqr�s             @r�test_lruzTestLRU.test_lrusE���	�-�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>.squareys����6�Mr)r;r<r;)�di�r	r9r:�)
r�rrOr/rQr�r�r�r�r�)r1rs  r�test_lru_no_argszTestLRU.test_lru_no_argsxs���	
���	�	�	�
�	�	
����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;r�c�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�rr�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�rerrr9rn)r�rrOr�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)Nr9r�c��|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�rr��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�rrO)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�rrOr�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)Nr�c��yrr��os r�infinite_cachez3TestLRU.test_lru_type_error.<locals>.infinite_cache�rerr;c��yrrr-s r�
limited_cachez2TestLRU.test_lru_type_error.<locals>.limited_cache�rer)r�rrYrZ)r1r/r1s   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)Nr�c�@��|dkr|S�|dz
��|dz
�zSr�rr�s �rr�z/TestLRU.test_lru_with_maxsize_none.<locals>.fib�r�rr�r�r�r�r�r�rrOr�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����r�c��|Srrr�s r�eqz2TestLRU.test_lru_with_maxsize_negative.<locals>.eq����Hrro�ri,r�)r�rrOr�r/r�r�)r1r9r�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�Nr
c��d|S)NrIr�r�s rr z.TestLRU.test_lru_with_exceptions.<locals>.funcs���Q�x�rrr>r)r�rrOrYr��assertIsNone�	exception�__context__)r1r�r �cms    r�test_lru_with_exceptionsz TestLRU.test_lru_with_exceptionss���#�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)Nr>T�r��typedc��||zSrrrIs rrz+TestLRU.test_lru_with_types.<locals>.square!s���1�u�rr@rg@g"@rIrA)r�rrOr�r�r�r�)r1r�rs   r�test_lru_with_typeszTestLRU.test_lru_with_typess4��"�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)rHr9r��True��?z1.0rrF�False�z0.0r�z(1,))T)rMrnz(0,))F)rOc��eZdZy)�8TestLRU.test_lru_cache_typed_is_not_recursive.<locals>.TNr'rrrrarQ@r�rra)r�rr�rOr�)r1�cachedras   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>.fibK�*����1�u�����1��:��a��c�
�*�*rr�r�r�r�r
r�rr5�r1�numberr�s  @r�test_lru_with_keyword_argsz"TestLRU.test_lru_with_keyword_argsJs����	
���	�	�	 �	+�
!�	+�	
���).�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)	Nr�c�D��|dkr|S�|dz
���|dz
��zSrVrr�s �rr�z<TestLRU.test_lru_with_keyword_args_maxsize_none.<locals>.fib[rWrr�r�r�r�r�rr5rXs  @r�'test_lru_with_keyword_args_maxsize_nonez/TestLRU.test_lru_with_keyword_args_maxsize_noneZs����	
���	�	�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;r�c�4�t|j��Sr)r/�items)r�s rr�z$TestLRU.test_kwargs_order.<locals>.fjs�������'�'rr9r:r=)r>r9)r?r:)r?r>rr�)r�rrOr�r�r�s  r�test_kwargs_orderzTestLRU.test_kwargs_orderhs���	
���	�	�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>.fss��r)rd�zomg_annotation)r�rr�rOr�)r1r��gr�s    r�test_lru_cache_decorationz!TestLRU.test_lru_cache_decorationrsT��	�
$�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  rr�z-TestLRU.test_lru_cache_threaded.<locals>.orig}r�rr�rc����jd�t��D]"}�j�|d��|d���$y)Nr;r)�waitr�rO)rr�r��mr�r1�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:)rlr�r�)r�r�rmrns ���r�clearz.TestLRU.test_lru_cache_threaded.<locals>.clear�s)����J�J�r�N��1�Q�3�Z���
�
�� rg���ư>��targetr�rs)r�rr�rO�	threading�Eventr�getswitchintervalr�setswitchintervalr��Threadr	�
start_threads�setrr�rq)r1r�r�r�r�r�rorq�orig_sir�threadsr�rmr�rns`          @@@@r�test_lru_cache_threadedzTestLRU.test_lru_cache_threadedzs������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`rbr9r�c�0���jd�d|zS�Nr;r@)rl)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�rlrO)r�r�rmr1rn�stops �����r�testz.TestLRU.test_lru_cache_threaded2.<locals>.test�s?����1�X���
�
�2��� � ��1��q�1�u�-��	�	�"�
�rrtr;)ru�Barrierr�rrOr�r�ryr	rzrl�reset)r1r�r�rr}r�r�rmr�rnr�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:r�c�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|��5�j�|�d|z|�ddd�y#1swYyxYw)N)�threadr@)r3rO)r�rJr�r1s  ��rr�z.TestLRU.test_lru_cache_threaded3.<locals>.test�s7������Q��'�� � ��1��q�1�u�a�0�(�'�'�s	�:�A)r9r:r:r@r:rr)r�r�	enumerateruryr	rz)r1r�r��vr}r�s`    @r�test_lru_cache_threaded3z TestLRU.test_lru_cache_threaded3�s����	
���	�	�q�	�	)�	�
*�	�	1� )��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;r�c��|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 rrz6TestLRU.test_need_for_rlock.<locals>.DoubleEq.__hash__�s���v�v�
rc�p��|jdk(r��d��|j|jk(Sr�rI)r1r2�DoubleEqr�s  ��rr9z4TestLRU.test_need_for_rlock.<locals>.DoubleEq.__eq__�s-����6�6�Q�;��h�q�k�*��v�v����(�(rN)r(r)r*rwr�rr9)r�r�s��rr�r��s���K�
�
�
)rr�r9r:r))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|zSr�r�r�s  rr�z$TestLRU.test_lru_method.<locals>.X.f�s���
�
�a��
���t�D�y� rN)r(r)r*r�r�rr�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�r3r�r�r�)r1r r�r�r�s     rr�zTestLRU.test_pickles����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  rr�zTestLRU.test_copy.<locals>.origr�rr:r�r )
r�r�rLr�r�r�rr3r�r��r1r r�r#�funcsr�r�s       rr�zTestLRU.test_copys����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  rr�z#TestLRU.test_deepcopy.<locals>.orig"r�rr:rr�)r�r�rLr�r�r�rr3r�r�r�r�s       rr�zTestLRU.test_deepcopy s����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:r�c��y�Nr9rrrrr�z,TestLRU.test_lru_cache_parameters.<locals>.f-���rFrGr�Tc��yr�rrrrr�z,TestLRU.test_lru_cache_parameters.<locals>.f2r�r)r�rrO�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_function8r:rc���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_method=s���a�y� rc����|fSrr)rJr1s �r�test_staticmethodz?TestLRU.test_lru_cache_weakrefable.<locals>.A.test_staticmethodAs����a�y� rN)r(r)r*r�rr�rr�r\s�rr!r�<sE���
�[�[�
"�
"�
!�#�
!��
�[�[�
"�
"�
!�#��
!rr!)
r�r�weakref�refr�r��assertIsNotNone�gc�collectrA)r1r�r!�refsr�s`    r�test_lru_cache_weakrefablez"TestLRU.test_lru_cache_weakrefable7s����	
���	�	�	�
�	�	!�	!����M�*����A�M�M�*����A�/�/�0�2���C�� � ���'��
��
�
�
���C����c�e�$�rc�,�d�}|jjd�|�}|jtt	j
|j��d�|jtt	j
|j��d�y)Nc��yrrrrrr�z,TestLRU.test_common_signatures.<locals>.origUs��Crr9z())r�rrOr�rr"r�r�)r1r��lrus   r�test_common_signatureszTestLRU.test_common_signaturesTsh���&�d�k�k�#�#�A�&�t�,������Y�4�4�S�^�^�D�E�t�L�����Y�4�4�S�_�_�E�F��MrN)!r(r)r*rrrrr!r&r*r2r6r<rErJrSrZr]rargr	�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�\s���q�5�1�9�rc��d|z|zSr�rrs  r�
c_cached_funcr�a����1�u�q�y�rc�x�eZdZeZefZej�d��Ze	ej�d���Z
y)�	TestLRUPyc��d|z|zSr�rrGs   rr�zTestLRUPy.cached_methjr�rc��d|z|zSr�rrs  rr�zTestLRUPy.cached_staticmethns���1�u�q�y�rN)r(r)r*rr�r�r�rr�rr�rrrr�r�fsN��
�F� �/�K����������������rr�c�~�eZdZer7eZefZej�d��Ze	ej�d���Z
yy)�TestLRUCc��d|z|zSr�rrGs   rr�zTestLRUC.cached_methzrrc��d|z|zSr�rrs  rr�zTestLRUC.cached_staticmeth~s���q�5�1�9�rN)r(r)r*rr�r�r�rr�rr�rrrr�r�tsV�����#�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%y )!�TestSingleDispatchc��tjd��}d�}|jt|�|j	|d�d�|j	|d�d�|j	|gd��d�y)Nc��y�Nr�rr2s rrfz3TestSingleDispatch.test_simple_overloads.<locals>.g����rc��y)N�integerrr@s r�g_intz7TestSingleDispatch.test_simple_overloads.<locals>.g_int�s��rr�r�r9r��r9r:r@)r
�singledispatch�registerr�rO�r1rfr�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�rr2s rrfz&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'rrrr<r��r�rr<c��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)Nr<rrcs r�g_Bz(TestSingleDispatch.test_mro.<locals>.g_B�r�r)r
r�r�rO)r1rfr!r�r<r�r�r�s        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�rr2s rrfz5TestSingleDispatch.test_register_decorator.<locals>.g�r�rc��d|��S)Nzint rr@s rr�z9TestSingleDispatch.test_register_decorator.<locals>.g_int�s
�� �?�"rr�r�rzint 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�Testrr2s rrfz6TestSingleDispatch.test_wrapping_attributes.<locals>.g�s��rrfr:r�)r
r�rOr(rr�r�rw)r1rfs  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�rr2s rrfz,TestSingleDispatch.test_c_classes.<locals>.g�r�rc��|jSrr�r2s rr�z,TestSingleDispatch.test_c_classes.<locals>._�s���8�8�Or�Exponent < Emin�Number got rounded)r)rc��y)N�Too small to care.rr2s rr�z,TestSingleDispatch.test_c_classes.<locals>._�s��'rr)r
r�r�r�DecimalException�	Subnormal�RoundedrO)r1rfr��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*rrrrr�r����
rr�)rrIr
�_compose_mro�Sequence�MutableMapping�Mapping�SetrrPrO�
Collection�Sized�Iterable�	Containerr��OrderedDict�ChainMapr��defaultdict�MutableSequencer��
Reversible�Callable)r1rE�mror��haystackrmr�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�rr2s rrfz/TestSingleDispatch.test_register_abc.<locals>.gr�rr�c��y�N�sizedrr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>���rr/c��y�N�mutablemappingrr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>s��1Arr3c��y)N�chainmaprr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>"s��Zrc��y)N�mutablesequencerr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>(s��2Crr7c��y)N�
mutablesetrr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>.s��\rr9c��y�N�mappingrr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>4s��)rc��y�N�sequencerr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>:���:rr?c��y�Nr{rr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>@���err{c��y�NrPrr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>F���VrrPc��y�Nr/rr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>LrFrr/c��y)N�concrete-setrr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>Rs��NrrJc��y)N�
frozen-setrr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>Xs��,rrLc��y)Nr�rr2s rrKz6TestSingleDispatch.test_register_abc.<locals>.<lambda>^s��grr�)rrIr��	frozensetr
r�rOr�rrr#r%�
MutableSetrrrrPr/r{r�)r1rErd�lr�r��trfs        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!rUhr�rr!c��eZdZd�Zy)�)TestSingleDispatch.test_c3_abc.<locals>.Bc��yr�rr\s rr�z1TestSingleDispatch.test_c3_abc.<locals>.B.__len__kr�rN�r(r)r*r�rrrr<rWj���
rr<c��eZdZy)�)TestSingleDispatch.test_c3_abc.<locals>.CNr'rrrr�r\mr_rr�c��eZdZy)�)TestSingleDispatch.test_c3_abc.<locals>.DNr'rrrr�r^pr�rr�c��eZdZd�Zy)�)TestSingleDispatch.test_c3_abc.<locals>.Xc��yrrr\s rrz2TestSingleDispatch.test_c3_abc.<locals>.X.__call__srrNrrrrr�r`rrrr�)�abcs)
rrIr
�_c3_mror�r!r�r'rrrOrr )r1rEr(r!r<r�r�r�rqrb�	many_abcss           r�test_c3_abczTestSingleDispatch.test_c3_abces���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�rNrYrrr�MetaArh~rZrrjc��eZdZy)�-TestSingleDispatch.test_false_meta.<locals>.ANr'rrrr!rl�r�rr!r�c��eZdZy)�.TestSingleDispatch.test_false_meta.<locals>.AANr'rrr�AArn�r�rroc��y)Nzbase Arras r�funz/TestSingleDispatch.test_false_meta.<locals>.fun�s��rc��y)N�fun Arras rr�z-TestSingleDispatch.test_false_meta.<locals>._����rrs)r�r
r�r�rO)r1rjr!rorqr��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 rrfz0TestSingleDispatch.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�rNrYrrr�Or|�rZrr~r�c��y)N�iterablerrys rrKz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>�r@rc��y�N�	containerrrys rrKz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>�s��Krc��yr.rrys rrKz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>�r0rc��yrBrrys rrKz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>�rCrr/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�rNrYrrr�Qr��rZrr�c��yr�rrys r�hz0TestSingleDispatch.test_mro_conflicts.<locals>.h�r�rc��yr.rrys rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._�rtrc��yr�rrys 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�rrys rr�z0TestSingleDispatch.test_mro_conflicts.<locals>.i�r�rc��yr;rrys rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._����rc��yr>rrys rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._����rr?c��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�rNrYrrrrar��rZrrac��eZdZd�Zy)�0TestSingleDispatch.test_mro_conflicts.<locals>.Uc��yr�rr\s rr�z8TestSingleDispatch.test_mro_conflicts.<locals>.U.__len__�r�rNrYrrr�Ur��rZrr�c��eZdZd�Zy)�0TestSingleDispatch.test_mro_conflicts.<locals>.Vc��yr�rr\s rr�z8TestSingleDispatch.test_mro_conflicts.<locals>.V.__len__�r�rNrYrrr�Vr��rZrr�c��yr�rrys r�jz0TestSingleDispatch.test_mro_conflicts.<locals>.j�r�rc��y)Nr�rrys rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._	s��rc��yr�rrys rr�z0TestSingleDispatch.test_mro_conflicts.<locals>._	r�rr�r�)rrIr
r�rrOr�r r!rrYr�r�r�rBr$r%r)r1rErfr~r.r�rS�re_oner��qr�r��re_twor�r�r�r�rarQr��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�rqr\s rrqzETestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.clear	s���	�	���!r)r(r)r*r�r�r�rqr�)r�r�s@�rr�r�	s���
"�
�
'�
"rr��WeakKeyDictionaryc����Srr)�tds�rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>"	s���Rrc��yr�rrys rrfz5TestSingleDispatch.test_cache_invalidation.<locals>.g$	���rr�r9r:c��yrHrrys rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>:	���rr/c��eZdZy)�5TestSingleDispatch.test_cache_invalidation.<locals>.XNr'rrrr�r�I	s��rr�c��yr.rrys rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>Q	s��Grr/c��yr2rrys rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>h	s��5Err3c��yrErrys rrKz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>n	r�rrP)rr�r�r�	swap_attrrIr
r�rOr�r�r�rPr��registryr�r/r��
_find_implrrr�rO�_clear_cache)
r1r�r�rErfrdrPr�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�rrys rr�z.TestSingleDispatch.test_annotations.<locals>.iu	r�rrzc��yr;rrys rr�z.TestSingleDispatch.test_annotations.<locals>._x	r�rc��yr>rrys rr�z.TestSingleDispatch.test_annotations.<locals>._{	r�rr�r>r9r<r�r?r�c��eZdZd�Zd�Zy)�.TestSingleDispatch.test_annotations.<locals>._c��||_yrry�r1rzs  rr�z7TestSingleDispatch.test_annotations.<locals>._.__init__�	�	����rc� �|j|k(Srryr0s  rr9z5TestSingleDispatch.test_annotations.<locals>._.__eq__�	s���x�x�5�(�(rN)r(r)r*r�r9rrrr�r��	s��
�
)rr�)rzzcollections.abc.Sequence)r
r�r�rrIrrOr�)r1r�r�s   r�test_annotationsz#TestSingleDispatch.test_annotationst	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�ryr�s  rrQz4TestSingleDispatch.test_method_register.<locals>.A.t�	s	��!��rc��d|_y�Nr�ryr�s  rr�z4TestSingleDispatch.test_method_register.<locals>.A._�	�	�� ��rc��d|_y�Nr�ryr�s  rr�z4TestSingleDispatch.test_method_register.<locals>.A._�	r�rN�
r(r)r*r
�singledispatchmethodrQr�r�r�r�rrrr!r��	sN��
�
+�
+�
"�,�
"�
�Z�Z��_�
!��
!�
�Z�Z��_�
!��
!rr!rr�rzr�r�rOr�)rQrOrzr.r/)r1r!r>rus    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��|Srrrys rrQz:TestSingleDispatch.test_staticmethod_register.<locals>.A.t�	�	���
rc�"�t|t�Sr�rlr�rys rr�z:TestSingleDispatch.test_staticmethod_register.<locals>.A._�	���"�#�s�+�+rc�"�t|t�Sr�rlr�rys rr�z:TestSingleDispatch.test_staticmethod_register.<locals>.A._�	r�rN�r(r)r*r
r�rrQr�r�r�r�rrrr!r��	sf��
�
+�
+�
�
��,�
�
�Z�Z��_�
�
,���
,�
�Z�Z��_�
�
,���
,rr!rr�rO�rMrQrO�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��||_yrryr�s  rr�z@TestSingleDispatch.test_classmethod_register.<locals>.A.__init__�	r�rc��|d�Sr�r�r rzs  rrQz9TestSingleDispatch.test_classmethod_register.<locals>.A.t�	����6�{�"rc��|d�Sr�rr�s  rr�z9TestSingleDispatch.test_classmethod_register.<locals>.A._�	����5�z�!rc��|d�Sr�rr�s  rr�z9TestSingleDispatch.test_classmethod_register.<locals>.A._�	r�rN�r(r)r*r�r
r�rrQr�r�r�r�rrrr!r��	sm��
��
+�
+�
�
#��,�
#�
�Z�Z��_�
�
"���
"�
�Z�Z��_�
�
"���
"rr!rr�r�r�rOr��rOrQrzr?s  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��||_yrryr�s  rr�z=TestSingleDispatch.test_callable_register.<locals>.A.__init__�	r�rc��|d�Sr�rr�s  rrQz6TestSingleDispatch.test_callable_register.<locals>.A.t�	r�rN)r(r)r*r�r
r�rrQrrrr!r�	s)��
��
+�
+�
�
#��,�
#rr!c��|d�Sr�rr�s  rr�z4TestSingleDispatch.test_callable_register.<locals>._�	����u�:�rc��|d�Sr�rr�s  rr�z4TestSingleDispatch.test_callable_register.<locals>._�	rrrr�r�r�rOr�)rQr�r�rr�rOrz)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��yrrrGs   rrHzETestSingleDispatch.test_abstractmethod_register.<locals>.Abstract.add�	s��rN)r(r)r*r
r�rIrJrHrrrrLr�	s(��
�
+�
+�
�
�
�
� �,�
rrLr�rH)rIrNrMrHrMr"rYrZ)r1rLs  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  rrQz6TestSingleDispatch.test_type_ann_register.<locals>.A.t�	r�rrzc��yr�rr�s  rr�z6TestSingleDispatch.test_type_ann_register.<locals>.A._�	���rc��yr�rr�s  rr�z6TestSingleDispatch.test_type_ann_register.<locals>.A._
rrNr�rrrr!r�	sT��
�
+�
+�
�,�
�
�Z�Z�
�S�
��
�
�Z�Z�
�S�
��
rr!rr�r�r�rOr�)rOrQr�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��|Srrrys rrQzCTestSingleDispatch.test_staticmethod_type_ann_register.<locals>.A.t
r�rrzc�"�t|t�Srr�rys rr�zCTestSingleDispatch.test_staticmethod_type_ann_register.<locals>.A._
r�rc�"�t|t�Srr�rys rr�zCTestSingleDispatch.test_staticmethod_type_ann_register.<locals>.A._
r�rNr�rrrr!r

sl��
�
+�
+�
�
��,�
�
�Z�Z�
�
,�s�
,���
,�
�Z�Z�
�
,�s�
,���
,rr!rr�rOr�r�s   r�#test_staticmethod_type_ann_registerz6TestSingleDispatch.test_staticmethod_type_ann_register	
r�rc��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��||_yrryr�s  rr�zITestSingleDispatch.test_classmethod_type_ann_register.<locals>.A.__init__
r�rc��|d�Sr�rr�s  rrQzBTestSingleDispatch.test_classmethod_type_ann_register.<locals>.A.t"
r�rrzc��|d�Sr�rr�s  rr�zBTestSingleDispatch.test_classmethod_type_ann_register.<locals>.A._&
r�rc��|d�Sr�rr�s  rr�zBTestSingleDispatch.test_classmethod_type_ann_register.<locals>.A._*
r�rNrrrrr!r$
ss��
��
+�
+�
�
#��,�
#�
�Z�Z�
�
"�C�
"���
"�
�Z�Z�
�
"�C�
"���
"rr!rr�r�r�rOr�rr?s  r�"test_classmethod_type_ann_registerz5TestSingleDispatch.test_classmethod_type_ann_register
rrc��Gd�d�}|j|�j|j|�j|j|�jfD]n}|j|��5|j	|j
tjrdnd�|j	|jdt�ddd��p|j	|jjd�|j	|�jjd�|j	|jjd�|j	|�jjd�|j	|jjd�|j	|�jjd�y#1swY��oxYw)	Nc��eZdZejdedefd��Zejededefd���Z	eje
dedefd���Zy)�=TestSingleDispatch.test_method_wrapping_attributes.<locals>.Arz�returnc��t|�S��My function docstring�r�r�s  rr zBTestSingleDispatch.test_method_wrapping_attributes.<locals>.A.func5
�
���3�x�rc��t|�Sr/r1r�s  r�cls_funczFTestSingleDispatch.test_method_wrapping_attributes.<locals>.A.cls_func9
�
���3�x�rc��t|�Sr/r1rys r�static_funczITestSingleDispatch.test_method_wrapping_attributes.<locals>.A.static_func>
r5rN)r(r)r*r
r�r�r�r rr4rr7rrrr!r,4
s���
�
+�
+�
 ��
 ��
 �,�
 ��
+�
+�
�
 �3�
 �3�
 ��,�
 ��
+�
+�
�
 ��
 ��
 ��,�
 rr!��methr0rzr r4r7)r r4r7r3rOrwr�HAVE_DOCSTRINGSrpr�r()r1r!r9s   r�test_method_wrapping_attributesz2TestSingleDispatch.test_method_wrapping_attributes3
sO��	 �	 �"
�F�F�
�C�H�H�
�J�J�
�C�L�L�
�M�M�
�C�O�O�

�D����4��(�� � ����%,�%<�%<�#:�'+�.�� � ��!5�!5�e�!<�c�B�)�(�
�	
��������&�1��������*�*�F�3�������,�,�j�9��������.�.�
�;�������/�/��?��������1�1�=�A�)�(�s
�3AG�G
	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�rYs  �rrXzgTestSingleDispatch.test_double_wrapped_methods.<locals>.classmethod_friendly_decorator.<locals>.wrapper]
s�����/��/�/r)�__func__rr
r�)r rXrYs  @r�classmethod_friendly_decoratorzVTestSingleDispatch.test_double_wrapped_methods.<locals>.classmethod_friendly_decorator[
s4����m�m�G�
�
�_�_�W�
%�
0�&��
0��Nrc�l��eZdZeej
dedefd���ZW�ededefd���Z	y)�MTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatchrzr-c3�6K�	t|���y#YyxYw�w)N�Doner1r�s  r�cls_context_managerzaTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatch.cls_context_managerd
s����"��c�(�N�!��6����
���c��t|�Srr1r�s  r�decorated_classmethodzcTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatch.decorated_classmethodl
r2rN)
r(r)r*r�
contextlib�contextmanagerr�r�rErH�r@s�r�WithoutSingleDispatchrBc
s[���
�
�
&�
&�
"�c�
"�c�
"�'��
"�,�
�
 ��
 ��
 ��,�
 rrLc���eZdZejeejdede	fd����Z
ejW�edede	fd����Zy)�JTestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatchrzr-c3�6K�	t|���y#YyxYw�w)r0rDr1r�s  rrEz^TestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatch.cls_context_managerr
s����
"��c�(�N�!��6�rFc��t|�Sr/r1r�s  rrHz`TestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatch.decorated_classmethod|
s
��
�3�x�rN)r(r)r*r
r�rrIrJr�r�rErHrKs�r�WithSingleDispatchrNq
sw���
�
+�
+�
�
�
&�
&�
"�c�
"�c�
"�'��,�
"��
+�
+�
+�
�
 ��
 ��
 ��,�,�
 rrQr`�5)rErH)r;r8r0rzrErH)rErOrHr3r�r(rwrr:rpr�)	r1rLrQr��without_single_dispatch_foo�single_dispatch_foo�method_namer9r@s	        @r�test_double_wrapped_methodsz.TestSingleDispatch.test_double_wrapped_methodsZ
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�rrys rr�z8TestSingleDispatch.test_invalid_registrations.<locals>.i�
r�rr�c��y)NzI annotated with a non-typerrys rr�z8TestSingleDispatch.test_invalid_registrations.<locals>._�
s��4r�42c��y)NzI forgot to annotaterrys rr�z8TestSingleDispatch.test_invalid_registrations.<locals>._�
s��-rzB<function TestSingleDispatch.test_invalid_registrations.<locals>._rzc��y)Nz%I annotated with a generic collectionrrys rr�z8TestSingleDispatch.test_invalid_registrations.<locals>._�
s��?rzInvalid annotation for 'arg'.z$typing.Iterable[str] is not a class.c��y)Nz
Invalid Unionrrys rr�z8TestSingleDispatch.test_invalid_registrations.<locals>._�
s��&rzFtyping.Union[int, typing.Iterable[str]] not all arguments are classes.)r
r�rYrZr�rMr�rBr��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>.f�
rerz)f requires at least 1 positional argument)r
r��assertRaisesRegexrZ)r1r��msgs   r� test_invalid_positional_argumentz3TestSingleDispatch.test_invalid_positional_argument�
s@��	�	!�	!�	�
"�	�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�defaultrrys rr�z(TestSingleDispatch.test_union.<locals>.f�
r�rrzc��y�N�typing.Unionrrys rr�z(TestSingleDispatch.test_union.<locals>._�
���!rc��y�N�types.UnionTyperrys rr�z(TestSingleDispatch.test_union.<locals>._���$rrmr�rprr9rtrM)
r
r�r�r_r`r��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��yrlrrys rr�z1TestSingleDispatch.test_union_conflict.<locals>.fr�rrzc��yrorrys rr�z1TestSingleDispatch.test_union_conflict.<locals>._rqrc��yrsrrys rr�z1TestSingleDispatch.test_union_conflict.<locals>._rurrmr�rtrrpr9)	r
r�r�r_r`r�rvr�rOrxs   r�test_union_conflictz&TestSingleDispatch.test_union_conflict
s���	�	!�	!�	�
"�	�
���	"�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��yrlrrys r�typing_unionz8TestSingleDispatch.test_union_None.<locals>.typing_union r�rrzc��yrorrys rr�z-TestSingleDispatch.test_union_None.<locals>._$rqrr9rmr�rpc��yrlrrys r�types_unionz7TestSingleDispatch.test_union_None.<locals>.types_union,r�rc��yrsrrys rr�z-TestSingleDispatch.test_union_None.<locals>._0rurrt)r
r�r�r_r`r�rOr�)r1r�r�r�s    r�test_union_Nonez"TestSingleDispatch.test_union_Nones��	�	!�	!�	�
"�	�
�	�	�	"�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��yrlrrys rr�z8TestSingleDispatch.test_register_genericalias.<locals>.f9r�r�Invalid first argument to c��y�Nztypes.GenericAliasrrys rrKz?TestSingleDispatch.test_register_genericalias.<locals>.<lambda>>s��.Brc��y�Nztyping.GenericAliasrrys rrKz?TestSingleDispatch.test_register_genericalias.<locals>.<lambda>@s��5Jrc��y)Nz$types.UnionTypes(types.GenericAlias)rrys rrKz?TestSingleDispatch.test_register_genericalias.<locals>.<lambda>Bs��4Zrc��y�Nz!typing.Union[typing.GenericAlias]rrys rrKz?TestSingleDispatch.test_register_genericalias.<locals>.<lambda>Ds��?brr9rmrMr�r)
r
r�rgrZr�r/r�r_�Listr�rwrvrOr�s  r�test_register_genericaliasz-TestSingleDispatch.test_register_genericalias8sL��	�	!�	!�	�
"�	��
#�
#�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��yrlrrys rr�zBTestSingleDispatch.test_register_genericalias_decorator.<locals>.fLr�rr�)
r
r�rgrZr�r/r�r_r�r�r�s  r�$test_register_genericalias_decoratorz7TestSingleDispatch.test_register_genericalias_decoratorKs���	�	!�	!�	�
"�	��
#�
#�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��yrlrrys rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>.fZr�rzInvalid annotation for 'arg'rzc��yr�rrys rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>.__s��+rc��yr�rrys rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>._cs��,rc��y)Nz#types.UnionType(types.GenericAlias)rrys rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>._gs��<rc��yr�rrys rr�zCTestSingleDispatch.test_register_genericalias_annotation.<locals>._ks��:rr9rmrMr�r)
r
r�rgrZr�r/r�r_r�rwr�rvrOrxs   r�%test_register_genericalias_annotationz8TestSingleDispatch.test_register_genericalias_annotationYs���	�	!�	!�	�
"�	��
#�
#�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;�>GN)&r(r)r*r�r�r�rr��
skipUnlessrrr*rr*rRrervr�r�r�r�r�rr
rrr!r)r;rVrdriryr~r�r�r�r�rrrr�r��s���	-�&�.
;�7��X����"5�6����:��7�:�"47�l\(�|;�.+�$},�@d)�L*�6-�4(�(/�,/�.�+�"(�(/�,%B�Nd
�L0�d�4�&2�$?�2,�&/�,rr�c�:�eZdZdZd�Zejd��Zy)�CachedCostItemr9c�6�tj�|_yr)r�RLock�lockr\s rr�zCachedCostItem.__init__xs�� �&�&�(��	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�us&��
�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��r1�items  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�rgrZr�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��y)NTrr\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�MyClassr��r�rr�r�zkThe '__dict__' attribute on 'MyMeta' instance does not support item assignment for caching 'prop' property.)r�rgrZr�)r1r�r�s   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!���-�-��.���rr�NzLCannot assign the same cached_property to two different names ('a' and 'b').)rYrZrOr�rB)r1�ctxr�s   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>._cp�s���
�q�L�G��Nrc���eZdZW�Zy)�2TestCachedProperty.test_reuse_same_name.<locals>.AN�r(r)r*�cp�r�s�rr!r�������Brr!c���eZdZW�Zy)�2TestCachedProperty.test_reuse_same_name.<locals>.BNr�r�s�rr<r��r�rr<r9r:N)rr�rOr�)r1r!r<r>r?r�r�s     @@r�test_reuse_same_namez'TestCachedProperty.test_reuse_same_name�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>�s��Drc��eZdZy)�8TestCachedProperty.test_set_name_not_called.<locals>.FooNr'rrr�Foor��r�rr�zGCannot use cached_property instance without calling __set_name__ on it.)rr�r�rgrZ)r1r�r�s   r�test_set_name_not_calledz+TestCachedProperty.test_set_name_not_called�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_class�s�����n�1�1�<�3O�3O�Prc��|jtjjtj
rd�yd�y)Nr�)rOr�r�rwrr:r\s r�test_doczTestCachedProperty.test_doc�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�)r1r+r�s   r�__set__zWTestCachedProperty.test_subclass_with___set__.<locals>.readonly_cached_property.__set__�s��$�%9�:�:rN)r(r)r*r�rrr�readonly_cached_propertyr��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���
"�&�
"�&�
"rrr9rN)rr�rOr�r�)r1rrQr�s   @r�test_subclass_with___set__z-TestCachedProperty.test_subclass_with___set__�sY���	;�|�'C�'C�	;�	"�	"�
��G���������#�����������#rN)
r(r)r*r�r�r�r�r�r�r�r�r�r�rrrr�r��s5��'�
.��
�

�"�.�Q�&�$rr��__main__)OrIr$r�collections.abcr��	itertoolsrr��randomrrr�rrur�r_r��
unittest.mockr�r�rrI�inspectr�test.supportrr	r
�import_fresh_modulerrrrLr�r�rJrrr$r�r&r-rPr5r7r��TestCaser�rrrr
rrrUr�r�r�r�r�r&r,r.r>r�r�r�rr�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�	�CD�CD�J
����[�"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�&|N�|N�~������������������*�*������[�"D�E��w��)�)��F��n,��*�*�n,�b��9�9�@�@�q$��*�*�q$�h�z���H�M�M�O�r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists