403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/test_functools.cpython-36.opt-2.pyc
3

�
�^21�@s�ddlZddlZddlZddlZddlmZddlZddlmZddl	Z	ddl
mZddlZddl
Z
ddlmZddlZyddlZWnek
r�dZYnXddlZejddgd�Zejddgd	�Zejd
dgd	�Zejdd
��Zdd�Zdd�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�d�Z!e
j"ed�Gdd�de!e
j#��Z$Gdd�de!e
j#�Z%e�r~Gdd �d ej&�Z'Gd!d"�d"ej&�Z(e
j"ed�Gd#d$�d$e$��Z)Gd%d&�d&e%�Z*Gd'd(�d(e
j#�Z+Gd)d*�d*e
j#�Z,Gd+d,�d,e,�Z-e
j"ed�Gd-d.�d.e
j#��Z.Gd/d0�d0�Z/e
j"ed�Gd1d2�d2e/e
j#��Z0Gd3d4�d4e/e
j#�Z1Gd5d6�d6e
j#�Z2ej3Gd7d8�d8��Z4Gd9d:�d:�Z5ej6�d;d<��Z7ej6�d=d>��Z8Gd?d@�d@e5e
j#�Z9GdAdB�dBe5e
j#�Z:GdCdD�dDe
j#�Z;e<dEk�r�e
j=�dS)F�N)�permutations)�choice)�support)�proxy�	functools�
_functools)Zblocked)Zfresh�decimalZ_decimalccs0tj|}|tj|<z
dVWd|tj|<XdS)N)�sys�modules)�nameZreplacementZoriginal_module�r�3/opt/alt/python36/lib64/python3.6/test_functools.py�replaced_modules



rcOs||fS)Nr)�args�kwrrr
�capture#srcCs|j|j|j|jfS)N)�funcr�keywords�__dict__)�partrrr
�	signature(src@seZdZdS)�MyTupleN)�__name__�
__module__�__qualname__rrrr
r,src@seZdZdd�ZdS)�BadTuplecCst|�t|�S)N)�list)�self�otherrrr
�__add__0szBadTuple.__add__N)rrrrrrrr
r/src@seZdZdS)�MyDictN)rrrrrrr
r 3sr c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3S)4�TestPartialcCs�|jtddddd�}|jt|��|j|dddd	d
�dtddd	d�f�|jtdd
��}|jt|ddddg��dddd	g�dS)N���
�)�a�b����()r'�c)r&r'r,cSs|dS)Nr$r)�xrrr
�<lambda>>sz1TestPartial.test_basic_examples.<locals>.<lambda>)r"r#r(r))�partialr�
assertTrue�callable�assertEqual�dict�mapr)r�prrr
�test_basic_examples9szTestPartial.test_basic_examplescCsJ|jtddddd�}|j|jt�|j|jd�|j|jtddd��dS)Nr"r#r$r%)r&r')r"r#)r/rr2rrrr3)rr5rrr
�test_attributesAszTestPartial.test_attributescCsB|jt|j�y|jd��Wntk
r2YnX|jd�dS)Nr#z%First arg not checked for callability)�assertRaises�	TypeErrorr/�fail)rrrr
�test_argument_checkingHsz"TestPartial.test_argument_checkingcCs`ddd�}ddi}|j|dd�}|j|f|�d�|j|ddi�|d	d
�|j|ddi�dS)Nr$r%cSs|S)Nr)r&r'rrr
rSszBTestPartial.test_protection_of_callers_dict_argument.<locals>.funcr&r(�)r&�)r')r$r%)r/r2)rr�dr5rrr
�(test_protection_of_callers_dict_argumentQs

z4TestPartial.test_protection_of_callers_dict_argumentcCsNddi}|jtf|�}|j|�fddif�d|d<|j|�fddif�dS)Nr&r(r<)r/rr2)rr>r5rrr
�test_kwargs_copy\s
zTestPartial.test_kwargs_copycCsl|jt�}|j|�fif�|j|dd�dif�|jtdd�}|j|�dif�|j|dd�dif�dS)Nr"r#r(r))r"r#)r"r#)r"r#r(r))r/rr2)rr5rrr
�test_arg_combinationses
z!TestPartial.test_arg_combinationscCs�|jt�}|j|ji�|j|�fif�|j|dd�fddif�|jtdd�}|j|jddi�|j|�fddif�|j|dd�fddd�f�|j|ddd�fddd�f�dS)Nr")r&r&r#)r')r&r'r()r/rr2r)rr5rrr
�test_kw_combinationsos
z TestPartial.test_kw_combinationscCsVxPfdddd	gD]>}|jtf|��}|d
}|d�\}}|j||koJ|ik�qWdS)Nrr"r#r(r-)r)rr")rr"r#)rr"r#r()r-)r/rr0)rrr5�expected�got�emptyrrr
�test_positional}s
zTestPartial.test_positionalcCsNxHdD]@}|jt|d�}|dd�}|dd�\}}|j||koB|fk�qWdS)Nr&r�@)r&)r&r-)r-)r&rNrG)r/rr0)rr&r5rCrErDrrr
�test_keyword�s


zTestPartial.test_keywordcCsd|jtddd�}|ddd�\}}|j|dko8|ddd�k�|�\}}|j|d	ko\|ddik�dS)
Nrr")r&r#)r')r&r'r&)rr")r)r/rr0)rr5Zargs1Zkw1Zargs2Zkw2rrr
�test_no_side_effects�s

z TestPartial.test_no_side_effectscCsfdd�}|jt|j|dd��|jt|j|d�d�|jt|j|�dd�|jt|j|dd�d�dS)NcSs||dS)Nr)r-�yrrr
�f�sz-TestPartial.test_error_propagation.<locals>.fr"r)rJ)r8�ZeroDivisionErrorr/)rrKrrr
�test_error_propagation�s
z"TestPartial.test_error_propagationcCs>|jtdd�}t|�}|j|j|j�d}|jtt|d�dS)N�)�baser)r/�intrr2rr8�ReferenceError�getattr)rrKr5rrr
�test_weakref�s
zTestPartial.test_weakrefcCsPttttd���}|jtjd�}|j||�d�|jdj�}|j||�d�dS)Nr$��
0123456789)rr4�str�ranger/�joinr2)r�datarXrrr
�#test_with_bound_and_unbound_methods�s
z/TestPartial.test_with_bound_and_unbound_methodscCsB|j}|td�}||dd�}|tddd�}|jt|�t|��dS)N�asdfT)�bar)r/rr2)rr/�inner�nestedZflatrrr
�test_nested_optimization�s

z$TestPartial.test_nested_optimizationcCs:|j}dd�}||d�}||d�}d|_|j|jd�dS)NcSs|S)Nr)r\rrr
�foo�sz;TestPartial.test_nested_partial_with_attribute.<locals>.foo�first�secondZspam)r/Znew_attrr2)rr/r`r5Zp2rrr
�"test_nested_partial_with_attribute�s

z.TestPartial.test_nested_partial_with_attributecst�t�f}djdd�|D���t�t�d�}dj|�dj|�g}|jtjtjfkrZd�n|jj�|jt�}|j��dt�d	�t	|��|jtf|��}|j��dt�d��d	�t	|��|jtf|�}|j
t	|��fd
d�|D��|jtf|�|�}|j
t	|���fdd�|D��dS)
Nz, css|]}t|�VqdS)N)�repr)�.0r&rrr
�	<genexpr>�sz(TestPartial.test_repr.<locals>.<genexpr>)r&r'za={a!r}, b={b!r}zb={b!r}, a={a!r}zfunctools.partial�(�)cs"g|]}��dt�d|�d��qS)rgz, rh)r)re�kwargs_repr)rrr
�
<listcomp>�sz)TestPartial.test_repr.<locals>.<listcomp>c
s(g|] }��dt�d��d|�d��qS)rgz, rh)r)reri)�	args_reprrrr
rj�s)�objectrX�
format_mapr/�c_functools�py_functoolsrrr2rd�assertIn)rr�kwargsZkwargs_reprsrKr)rkrr
�	test_repr�s(
"



zTestPartial.test_reprcCs|jtjtjfkrd}n|jj}|jt�}|j|fiif�z|jt|�d|f�Wd|jtfiif�X|jt�}|jt|fiif�z|jt|�d|tf�Wd|jtfiif�X|jt�}|jtfd|iif�z|jt|�d|tf�Wd|jtfiif�XdS)Nzfunctools.partialz%s(...)z%s(%r, ...)r&z
%s(%r, a=...))r/rnrorr�__setstate__r2rd)rrrKrrr
�test_recursive_repr�s$


zTestPartial.test_recursive_reprcCsp|j��^|jtdgdgd�}g|_x<ttjd�D]*}tjtj||��}|j	t|�t|��q4WWdQRXdS)Nr[T)r\r")
�AllowPickler/r�attrrW�pickle�HIGHEST_PROTOCOL�loads�dumpsr2)rrK�proto�f_copyrrr
�test_pickle�s
zTestPartial.test_picklecCsl|jtdgdgd�}g|_tj|�}|jt|�t|��|j|j|j�|j|j|j�|j|j|j�dS)Nr[T)r\)r/rrv�copyr2�assertIsrr)rrKr|rrr
�	test_copy�s
zTestPartial.test_copycCs�|jtdgdgd�}g|_tj|�}|jt|�t|��|j|j|j�|j|j|j�|j|jd|jd�|j|j|j�|j|jd|jd�dS)Nr[T)r\rr\)	r/rrvr~�deepcopyr2ZassertIsNotrr)rrKr|rrr
�
test_deepcopys
zTestPartial.test_deepcopycCs�|jt�}|jtd
tdd�tgd�f�|jt|�tdtdd�tgd�f�|j|ddd�dddd�f�|jtd
tdd�df�|jt|�tdtdd�if�|j|ddd�dddd�f�|jtdddf�|j|ddd�dd	dif�|j|d�dif�|j|�dif�|jtfidf�|jt|�tfiif�|j|ddd�dd	dif�|j|d�dif�|j|�fif�dS)Nr"r$)r&)rvr#r%)r')r&r'r')r")r")r"r#)r")r")r"r#)r")r"r#)r"r#)r")r#)r#)r/rrsrr3r2)rrKrrr
�
test_setstates"

zTestPartial.test_setstatecCs�|jt�}|jt|jtfif�|jt|jtfiidf�|jt|jtfidg�|jt|jdfidf�|jt|jtdidf�|jt|jtgidf�|jt|jtfgdf�dS)N)r/rr8r9rsr)rrKrrr
�test_setstate_errors)s
z TestPartial.test_setstate_errorscCs(|jt�}|jttd�tdd�df�t|�}|j|tdtdd�if�|jt	|d�t
�|jt	|d�t�|�}|j|d	ddif�|jt	|d�t
�|jt	|d�t�|jttd
�idf�t|�}|j|tdiif�|jt	|d�t
�|d�}|j|dif�|jt	|d�t
�dS)
Nr"r$)r&r#r&r)r")r")r")r")r")r"r#)r/rrsrrr r2r3r�type�tupler)rrK�s�rrrr
�test_setstate_subclasses3s"
z$TestPartial.test_setstate_subclassesc,Cs�|j����|jt�}|j|fiif�z>x8ttjd�D]&}|jt��tj	||�WdQRXq:WWd|jtfiif�X|jt�}|jt|fiif�zZxTttjd�D]B}tj
tj	||��}z|j|jd|�Wd|jtfiif�Xq�WWd|jtfiif�X|jt�}|jtfd|iif�z\xVttjd�D]D}tj
tj	||��}z|j|j
d|�Wd|jtfiif�X�q<WWd|jtfiif�XWdQRXdS)Nr"rr&)rur/rrsrWrwrxr8�RecursionErrorrzryrrr)rrKr{r|rrr
�test_recursive_pickleGs4


z!TestPartial.test_recursive_picklecCs.Gdd�d�}|jt�}|jt|j|��dS)Nc@seZdZdd�Zdd�ZdS)z7TestPartial.test_setstate_refcount.<locals>.BadSequencecSsdS)Nr)r)rrrr
�__len__msz?TestPartial.test_setstate_refcount.<locals>.BadSequence.__len__cSs4|dkrtS|dkr ttd��S|dkr,iSt�dS)Nrr"i@Br#r()r#r()�maxr�rW�
IndexError)r�keyrrr
�__getitem__oszCTestPartial.test_setstate_refcount.<locals>.BadSequence.__getitem__N)rrrr�r�rrrr
�BadSequencelsr�)r/rlr8r9rs)rr�rKrrr
�test_setstate_refcountks
z"TestPartial.test_setstate_refcountN)rrrr6r7r;r?r@rArBrFrHrIrMrSrZr_rcrrrtr}r�r�r�r�r�r�r�rrrr
r!7s2		
	
$r!z requires the C _functools modulec@s<eZdZerejZGdd�d�Zdd�Zdd�Zdd�Zd	S)
�TestPartialCc@seZdZdd�Zdd�ZdS)zTestPartialC.AllowPicklecCs|S)Nr)rrrr
�	__enter__�sz"TestPartialC.AllowPickle.__enter__cCsdS)NFr)rr��value�tbrrr
�__exit__�sz!TestPartialC.AllowPickle.__exit__N)rrrr�r�rrrr
ru�srucCs�|jtddddd�}|jtt|dt�|jtt|dd
�|jtt|dtddd��|jt�}y|`Wnt	k
rxYnX|j
d	�dS)Nr"r#r$r%)r&r'rrrz-partial object allowed __dict__ to be deleted)r"r#)r/rr8�AttributeError�setattrr4r3�hexrr9r:)rr5rrr
�test_attributes_unwritable�s
z'TestPartialC.test_attributes_unwritablec	CsT|jt�}d|jd<t|�}|jd|�|jd|�|jt��|�WdQRXdS)Nr�i�Z1234z'value')r/rrrdrpr8r9)rr5r�rrr
�'test_manually_adding_non_string_keyword�s

z4TestPartialC.test_manually_adding_non_string_keywordcsP|jt��G�fdd�dt�}dg�j|�<t��}|jd|�|jd|�dS)NcseZdZ�fdd�ZdS)z@TestPartialC.test_keystr_replaces_value.<locals>.MutatesYourDictcsdg�j|<dS)NZsth2�astr)r)r)r5rr
�__str__�szHTestPartialC.test_keystr_replaces_value.<locals>.MutatesYourDict.__str__N)rrrr�r)r5rr
�MutatesYourDict�sr�Zsthr�z['sth'])r/rrlrrdrp)rr�r�r)r5r
�test_keystr_replaces_value�s
z'TestPartialC.test_keystr_replaces_valueN)	rrrrnr/rur�r�r�rrrr
r�{s
r�c@s eZdZejZGdd�d�ZdS)�
TestPartialPyc@s$eZdZdd�Zdd�Zdd�ZdS)zTestPartialPy.AllowPicklecCstdt�|_dS)Nr)rro�_cm)rrrr
�__init__�sz"TestPartialPy.AllowPickle.__init__cCs
|jj�S)N)r�r�)rrrr
r��sz#TestPartialPy.AllowPickle.__enter__cCs|jj|||�S)N)r�r�)rr�r�r�rrr
r��sz"TestPartialPy.AllowPickle.__exit__N)rrrr�r�r�rrrr
ru�sruN)rrrror/rurrrr
r��sr�c@seZdZdS)�CPartialSubclassN)rrrrrrr
r��sr�c@seZdZdS)�PyPartialSubclassN)rrrrrrr
r��sr�c@seZdZereZdZdS)�TestPartialCSubclassN)rrrrnr�r/r_rrrr
r��sr�c@seZdZeZdS)�TestPartialPySubclassN)rrrr�r/rrrr
r��sr�c@sreZdZGdd�de�Ze�Zdd�Zdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestPartialMethodc@s�eZdZeje�Zejed�Zejedd�Zejeddd�Z	ejed�Z
ejejedd	�d
�Zeje
e�d�Zejee�dd
�ZdS)zTestPartialMethod.Ar"r#)r&r(r))r'r<�)r,r=��	)r>N)rrrr�
partialmethodr�nothing�
positionalr�bothr^r/�over_partial�staticmethod�static�classmethod�clsrrrr
�A�s
r�cCsZ|j|jj�|jfif�|j|jjd�|jdfif�|j|jjdd�|jfddif�|j|jjddd�|jdfddif�|j|jj�|jdfif�|j|jjd�|jddfif�|j|jjdd�|jdfddif�|j|jjddd�|jddfddif�|j|jj�|jfddif�|j|jjd�|jdfddif�|j|jjdd�|jfddd�f�|j|jjddd�|jdfddd�f�|j|jj�|jd	fd
dif�|j|jjd�|jd	dfd
dif�|j|jjdd�|jd	fddd�f�|j|jjddd�|jd	dfddd�f�|j|jj|jddd�|jd	dfddd�f�dS)
Nr<r�)r,r,r"r&r#)r&r,r(r'r))r'r,)r2r&r�r�rr�r�)rrrr
rA�s""& $("$( $&*z'TestPartialMethod.test_arg_combinationscCs�|j|jj�|jddfif�|j|jjd�|jdddfif�|j|jjdd�|jddfddif�|j|jjddd�|jdddfddif�|j|jj|jddd�|jdddfddif�dS)Nr"r<r�r=)r>r>)r2r&r^r�)rrrr
�test_nested�s
"&*zTestPartialMethod.test_nestedcCs�|j|jj�|jdfddif�|j|jjd�|jddfddif�|j|jjdd�|jdfddd�f�|j|jjddd�|jddfddd�f�|j|jj|jddd�|jddfddd�f�dS)Nr=r,r�r<r�)r>)r,r>)r2r&r�r�)rrrr
�test_over_partial�s
 $&*z#TestPartialMethod.test_over_partialcCs`|j}|j|jj|�|j|jj|�|j|jj|�|j|jj|j�|j|jjj|j�dS)N)r&rr��__self__r^r�r�r�)r�objrrr
�test_bound_method_introspectionsz1TestPartialMethod.test_bound_method_introspectioncCsf|j}|jt|jd��|jt|jd��|jt|jd��|jt|jd��|jt|jjd��dS)Nr�)r��assertFalse�hasattrr�r^r�r�r&)rr�rrr
�test_unbound_method_retrievalsz/TestPartialMethod.test_unbound_method_retrievalcCs�x|j|jgD�]}|j|d���|j|j�d	if�|j|jd�d
if�|j|jdd�dddif�|j|jddd�dddif�|j|j�|jfddif�|j|jd�|jdfddif�|j|jdd�|jfddd�f�|j|jddd�|jdfddd�f�WdQRXqWdS)
N)r�r�r<)r>r>r�)r,)r,r>)r�)r�r<)r�)r�r<)r�r&�subTestr2r�r�)rr�rrr
�test_descriptorss "z"TestPartialMethod.test_descriptorscCsL|j|jjdd�|jfddif�|j|jj|jdd�|jfddif�dS)Nr()r&r&)r2r&rr�)rrrr
�test_overriding_keywords!s"z*TestPartialMethod.test_overriding_keywordscCs*|jt��Gdd�dt�}WdQRXdS)Nc@seZdZejdd�ZdS)z.TestPartialMethod.test_invalid_args.<locals>.BNr")rrrrr��methodrrrr
�B'sr�)r8r9rl)rr�rrr
�test_invalid_args%sz#TestPartialMethod.test_invalid_argscCs$|jtt|j�d�djt��dS)Nr�z#functools.partialmethod({}, 3, b=4))r2rd�varsr��formatr)rrrr
rr*szTestPartialMethod.test_reprcCspGdd�dtj�}|j|jj�|j|jj�x<|jj|jj|jj	|jj
|jjgD]}|jt
|dd��qRWdS)Nc@s&eZdZejdd��Zejed�ZdS)z1TestPartialMethod.test_abstract.<locals>.AbstractcSsdS)Nr)rr-rJrrr
�add1sz5TestPartialMethod.test_abstract.<locals>.Abstract.addr<N)	rrr�abc�abstractmethodr�rr��add5rrrr
�Abstract/sr��__isabstractmethod__F)r��ABCMetar0r�r�r�r�r�r�r�r^r�r�rR)rr�rrrr
�
test_abstract.s
(zTestPartialMethod.test_abstractN)rrrrlr�r&rAr�r�r�r�r�r�r�rrr�rrrr
r��s

r�c@s�eZdZejejfdd�Zdd�Zdd�Ze	j
ejj
dkd�d	d
��Zdd�Zd
d�Zdd�Zeje	j
ejj
dkd�dd���ZdS)�TestUpdateWrapperc	Cs�x$|D]}|jt||�t||��qWxT|D]L}t||�}t||�}x2|D]*}|dkr`|dkr`qJ|j||||�qJWq,W|j|j|�dS)Nr�__wrapped__)rrRr�)	r�wrapper�wrapped�assigned�updatedrZwrapper_attrZwrapped_attrr�rrr
�
check_wrapper@s




zTestUpdateWrapper.check_wrappercCs<dd�dd�}d|_d|_dd�d	d
�}tj||�||fS)NzThis is a new annotation)r&cSsdS)Nr)r&rrr
rKTsz,TestUpdateWrapper._default_update.<locals>.fzThis is also a testzThis is a bald faced liezThis is the prior annotation)r'cSsdS)Nr)r'rrr
r�Ysz2TestUpdateWrapper._default_update.<locals>.wrapper)rvr�r�update_wrapper)rrKr�rrr
�_default_updateSsz!TestUpdateWrapper._default_updatecCsv|j�\}}|j||�|j|j|�|j|jd�|j|j|j�|j|jd�|j|jdd�|j	d|j�dS)NrKzThis is also a testr&zThis is a new annotationr')
r�r�rr�r2rrrv�__annotations__�assertNotIn)rr�rKrrr
�test_default_update^sz%TestUpdateWrapper.test_default_updater#z)Docstrings are omitted with -O2 and abovecCs|j�\}}|j|jd�dS)NzThis is a test)r�r2�__doc__)rr�rKrrr
�test_default_update_dochsz)TestUpdateWrapper.test_default_update_doccCs�dd�}d|_dd�}tj||ff�|j||ff�|j|jd�|j|j|j�|j|jd�|j|j	i�|j
t|d��dS)NcSsdS)Nrrrrr
rKosz+TestUpdateWrapper.test_no_update.<locals>.fzThis is also a testcSsdS)Nrrrrr
r�ssz1TestUpdateWrapper.test_no_update.<locals>.wrapperr�rv)rvrr�r�r2r�assertNotEqualrr�r�r�r�)rrKr�rrr
�test_no_updatensz TestUpdateWrapper.test_no_updatecCs�dd�}d|_tdddd�|_dd	�}i|_d
}d}tj||||�|j||||�|j|jd�|j|j	|j	�|j|j
d�|j|jd�|j|j|j�dS)NcSsdS)Nrrrrr
rK~sz2TestUpdateWrapper.test_selective_update.<locals>.fzThis is a different testr"r#r()r&r'r,cSsdS)Nrrrrr
r��sz8TestUpdateWrapper.test_selective_update.<locals>.wrapperrv�	dict_attrr�)rv)r�)rvr3r�rr�r�r2rr�rr�)rrKr��assign�updaterrr
�test_selective_update}sz'TestUpdateWrapper.test_selective_updatecCs�dd�}dd�}i|_d}d	}tj||||�|jd|j�|j|ji�|`|jt��tj||||�WdQRXd|_|jt��tj||||�WdQRXdS)
NcSsdS)Nrrrrr
rK�sz4TestUpdateWrapper.test_missing_attributes.<locals>.fcSsdS)Nrrrrr
r��sz:TestUpdateWrapper.test_missing_attributes.<locals>.wrapperrvr�r")rv)r�)r�rr�r�rr2r8r�)rrKr�r�r�rrr
�test_missing_attributes�sz)TestUpdateWrapper.test_missing_attributescCsFdd�}tj|t�|j|jd�|j|jjd��|j|ji�dS)NcSsdS)Nrrrrr
r��sz6TestUpdateWrapper.test_builtin_update.<locals>.wrapperr�zmax()	rr�r�r2rr0r��
startswithr�)rr�rrr
�test_builtin_update�s
z%TestUpdateWrapper.test_builtin_updateN)rrrr�WRAPPER_ASSIGNMENTS�WRAPPER_UPDATESr�r�r��unittest�skipIfr	�flags�optimizer�r�r�r�rZrequires_docstringsr�rrrr
r�>s
r�c@sHeZdZdd�Zdd�Zejejj	dkd�dd��Z
d	d
�Zdd�Zd
S)�	TestWrapscCs.dd�}d|_d|_tj|�dd��}||fS)NcSsdS)Nrrrrr
rK�sz$TestWraps._default_update.<locals>.fzThis is also a testzThis is still a bald faced liecSsdS)Nrrrrr
r��sz*TestWraps._default_update.<locals>.wrapper)rvr�r�wraps)rrKr�rrr
r��s
zTestWraps._default_updatecCsH|j�\}}|j||�|j|jd�|j|j|j�|j|jd�dS)NrKzThis is also a test)r�r�r2rrrv)rr�rKrrr
r��s
zTestWraps.test_default_updater#z)Docstrings are omitted with -O2 and abovecCs|j�\}}|j|jd�dS)NzThis is a test)r�r2r�)rr��_rrr
r��sz!TestWraps.test_default_update_doccCstdd�}d|_tj|ff�dd��}|j||ff�|j|jd�|j|j|j�|j|jd�|j	t
|d��dS)NcSsdS)Nrrrrr
rK�sz#TestWraps.test_no_update.<locals>.fzThis is also a testcSsdS)Nrrrrr
r��sz)TestWraps.test_no_update.<locals>.wrapperr�rv)rvrr�r�r2rr�rr�r�r�)rrKr�rrr
r��szTestWraps.test_no_updatecCs�dd�}d|_tdddd�|_dd	�}d}d}tj|||�|dd
���}|j||||�|j|jd�|j|j	|j	�|j|j
d�|j|jd�|j|j|j�dS)NcSsdS)Nrrrrr
rK�sz*TestWraps.test_selective_update.<locals>.fzThis is a different testr"r#r()r&r'r,cSs
i|_|S)N)r�)rKrrr
�
add_dict_attr�sz6TestWraps.test_selective_update.<locals>.add_dict_attrrvr�cSsdS)Nrrrrr
r��sz0TestWraps.test_selective_update.<locals>.wrapperr�)rv)r�)rvr3r�rr�r�r2rr�rr�)rrKr�r�r�r�rrr
r��szTestWraps.test_selective_updateN)
rrrr�r�r�r�r	r�r�r�r�r�rrrr
r��sr�c@s&eZdZerejZdd�Zdd�ZdS)�
TestReducecCsGdd�d�}dd�}|j|j|dddgd�d	�|j|j|ddggd
dggg�ddd
dg�|j|jdd
�tdd�d�d�|j|jdd
�tdd�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|f�|jt|j|t��Gdd�d�}|jt|j||��|j|j|gd�d�|j|j|gd�d�Gdd�d�}|jt|jd|��dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z'TestReduce.test_reduce.<locals>.SquarescSs||_g|_dS)N)r��sofar)rr�rrr
r��sz0TestReduce.test_reduce.<locals>.Squares.__init__cSs
t|j�S)N)�lenr�)rrrr
r��sz/TestReduce.test_reduce.<locals>.Squares.__len__cSsXd|ko|jknst�t|j�}x$||krL|jj||�|d7}q*W|j|S)Nrr")r�r�r�r��append)r�i�nrrr
r��s

z3TestReduce.test_reduce.<locals>.Squares.__getitem__N)rrrr�r�r�rrrr
�Squares�sr�cSs||S)Nr)r-rJrrr
r�sz#TestReduce.test_reduce.<locals>.addr&r'r,rTr�r>�wcSs||S)Nr)r-rJrrr
r.	sz(TestReduce.test_reduce.<locals>.<lambda>r#r�r"i�cSs||S)Nr)r-rJrrr
r.s�lh�r$ir�*�1c@seZdZdd�ZdS)z/TestReduce.test_reduce.<locals>.TestFailingItercSst�dS)N)�RuntimeError)rrrr
�__iter__sz8TestReduce.test_reduce.<locals>.TestFailingIter.__iter__N)rrrr�rrrr
�TestFailingItersr�c@seZdZdd�ZdS)z&TestReduce.test_reduce.<locals>.BadSeqcSst�dS)N)�
ValueError)r�indexrrr
r�%sz2TestReduce.test_reduce.<locals>.BadSeq.__getitem__N)rrrr�rrrr
�BadSeq$sr�)r�r�)r2rrWr8r9rlr�r�)rr�r�r�r�rrr
�test_reduce�s: zTestReduce.test_reducecCs�Gdd�d�}ddlm}|j|j||d��d�|j|j||d�d�d�|jt|j||d��|j|j||d�d�d�|j|j||d	��d�|j|j||d	�d�d�d	d
dd�}|j|j||�d
j|j���dS)Nc@seZdZdd�Zdd�ZdS)z5TestReduce.test_iterator_usage.<locals>.SequenceClasscSs
||_dS)N)r�)rr�rrr
r�,sz>TestReduce.test_iterator_usage.<locals>.SequenceClass.__init__cSs&d|ko|jknr|St�dS)Nr)r�r�)rr�rrr
r�.szATestReduce.test_iterator_usage.<locals>.SequenceClass.__getitem__N)rrrr�r�rrrr
�
SequenceClass+srr)r�r<r$r��4r"r#r()ZoneZtwoZthreerT)�operatorr�r2rr8r9rX�keys)rrr�r>rrr
�test_iterator_usage*s	zTestReduce.test_iterator_usageN)rrrrn�reducerrrrrrr
r��s8r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestCmpToKeycCs�dd�}|j|�}|j|d�|d��|j|d�|d��|j|d�|d��dd�}|j|�}|j|d�|d��|j|d	�|d
��|j|d	�|d
��|j|d	�|d
��dS)NcSs||k||kS)Nr)r-rJrrr
�cmp1Csz*TestCmpToKey.test_cmp_to_key.<locals>.cmp1r(r"cSst|�t|�S)N)rP)r-rJrrr
�cmp2Jsz*TestCmpToKey.test_cmp_to_key.<locals>.cmp2g@�4r#Z35)�
cmp_to_keyr2�
assertGreaterZassertGreaterEqualZ
assertLess�assertLessEqualr�)rrr�r	rrr
�test_cmp_to_keyBs

zTestCmpToKey.test_cmp_to_keyc-Csdd�}|j|d�}|j|dd�|dd��|j|dd�|dd��|jttf��|d�dkWdQRX|jttf��d|d�kWdQRX|jt��|j�}WdQRX|jt��|j|d�}WdQRX|j|�}|jt��|�WdQRX|jt��|dd�WdQRXdS)NcSs||k||kS)Nr)r-rJrrr
rSsz4TestCmpToKey.test_cmp_to_key_arguments.<locals>.cmp1)�mycmpr()r�r")rr2rr8r9r�)rrr�rrr
�test_cmp_to_key_argumentsRs"
z&TestCmpToKey.test_cmp_to_key_argumentscs|dd�}|j|�}|jt��|d�|d�kWdQRXGdd�d���fdd�}|jt��|d�|d�kWdQRXdS)NcSst�dS)N)rL)r-rJrrr
rgsz'TestCmpToKey.test_bad_cmp.<locals>.cmp1r(r"c@seZdZdd�ZdS)z)TestCmpToKey.test_bad_cmp.<locals>.BadCmpcSst�dS)N)rL)rrrrr
�__lt__nsz0TestCmpToKey.test_bad_cmp.<locals>.BadCmp.__lt__N)rrrrrrrr
�BadCmpmsrcs��S)Nr)r-rJ)rrr
rps)rr8rL)rrr�r)rr
�test_bad_cmpfs
zTestCmpToKey.test_bad_cmpcCs*dd�}|j|d�}|j|d�jd�dS)NcSs||k||kS)Nr)r-rJrrr
rvsz)TestCmpToKey.test_obj_field.<locals>.cmp1)r�2)rr2r�)rrr�rrr
�test_obj_fielduszTestCmpToKey.test_obj_fieldcCs4dd�}|jttd�|j|�d�ddddd	g�dS)
NcSs||S)Nr)r-rJrrr
r|sz)TestCmpToKey.test_sort_int.<locals>.mycmpr<)r�r)r(r#r"r)r2�sortedrWr)rrrrr
�
test_sort_int{szTestCmpToKey.test_sort_intcCs\dd�}ddddddd	d
dg	}t||j|�d�}|jd
d�|D�dddddd	dddg	�dS)NcSs"t|�t|�}}||k||kS)N)rP)r-rJrrr
r�sz-TestCmpToKey.test_sort_int_str.<locals>.mycmpr<�3r=r#�0r�r)Z10r")r�cSsg|]}t|��qSr)rP)rer�rrr
rj�sz2TestCmpToKey.test_sort_int_str.<locals>.<listcomp>rr(r$)rrr2)rr�valuesrrr
�test_sort_int_str�s
zTestCmpToKey.test_sort_int_strcCs:dd�}|j|�}|d�}|jtt|�|j|tj�dS)NcSs||S)Nr)r-rJrrr
r�sz%TestCmpToKey.test_hash.<locals>.mycmpr$)rr8r9�hashZassertNotIsInstance�collections�Hashable)rrr��krrr
�	test_hash�s

zTestCmpToKey.test_hashN)
rrrrrrrrrr rrrr
r@s	rc@seZdZerejZdS)�
TestCmpToKeyCN)rrrrnrrrrr
r!�sr!c@seZdZeej�ZdS)�TestCmpToKeyPyN)rrrr�rorrrrr
r"�sr"c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�TestTotalOrderingcCs�tjGdd�d��}|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z3TestTotalOrdering.test_total_ordering_lt.<locals>.AcSs
||_dS)N)r�)rr�rrr
r��sz<TestTotalOrdering.test_total_ordering_lt.<locals>.A.__init__cSs|j|jkS)N)r�)rrrrr
r�sz:TestTotalOrdering.test_total_ordering_lt.<locals>.A.__lt__cSs|j|jkS)N)r�)rrrrr
�__eq__�sz:TestTotalOrdering.test_total_ordering_lt.<locals>.A.__eq__N)rrrr�rr$rrrr
r��sr�r"r#)r�total_orderingr0r�)rr�rrr
�test_total_ordering_lt�sz(TestTotalOrdering.test_total_ordering_ltcCs�tjGdd�d��}|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z3TestTotalOrdering.test_total_ordering_le.<locals>.AcSs
||_dS)N)r�)rr�rrr
r��sz<TestTotalOrdering.test_total_ordering_le.<locals>.A.__init__cSs|j|jkS)N)r�)rrrrr
�__le__�sz:TestTotalOrdering.test_total_ordering_le.<locals>.A.__le__cSs|j|jkS)N)r�)rrrrr
r$�sz:TestTotalOrdering.test_total_ordering_le.<locals>.A.__eq__N)rrrr�r'r$rrrr
r��sr�r"r#)rr%r0r�)rr�rrr
�test_total_ordering_le�sz(TestTotalOrdering.test_total_ordering_lecCs�tjGdd�d��}|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z3TestTotalOrdering.test_total_ordering_gt.<locals>.AcSs
||_dS)N)r�)rr�rrr
r��sz<TestTotalOrdering.test_total_ordering_gt.<locals>.A.__init__cSs|j|jkS)N)r�)rrrrr
�__gt__�sz:TestTotalOrdering.test_total_ordering_gt.<locals>.A.__gt__cSs|j|jkS)N)r�)rrrrr
r$�sz:TestTotalOrdering.test_total_ordering_gt.<locals>.A.__eq__N)rrrr�r)r$rrrr
r��sr�r"r#)rr%r0r�)rr�rrr
�test_total_ordering_gt�sz(TestTotalOrdering.test_total_ordering_gtcCs�tjGdd�d��}|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�dS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z3TestTotalOrdering.test_total_ordering_ge.<locals>.AcSs
||_dS)N)r�)rr�rrr
r��sz<TestTotalOrdering.test_total_ordering_ge.<locals>.A.__init__cSs|j|jkS)N)r�)rrrrr
�__ge__�sz:TestTotalOrdering.test_total_ordering_ge.<locals>.A.__ge__cSs|j|jkS)N)r�)rrrrr
r$�sz:TestTotalOrdering.test_total_ordering_ge.<locals>.A.__eq__N)rrrr�r+r$rrrr
r��sr�r"r#)rr%r0r�)rr�rrr
�test_total_ordering_ge�sz(TestTotalOrdering.test_total_ordering_gecCs�tjGdd�dt��}|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�|j|d�|d�k�dS)Nc@seZdZdS)z=TestTotalOrdering.test_total_ordering_no_overwrite.<locals>.AN)rrrrrrr
r��sr�r"r#)rr%rPr0)rr�rrr
� test_total_ordering_no_overwrite�sz2TestTotalOrdering.test_total_ordering_no_overwritecCs.|jt��tjGdd�d��}WdQRXdS)Nc@seZdZdS)z7TestTotalOrdering.test_no_operations_defined.<locals>.AN)rrrrrrr
r��sr�)r8r�rr%)rr�rrr
�test_no_operations_defined�sz,TestTotalOrdering.test_no_operations_definedc�s4tjG�fdd�d���tjG�fdd�d���tjG�fdd�d���tjG�fdd�d���tjG�fd	d
�d
���|jd��(|jt���d �dkWdQRXWdQRX|jd
��,|jt���d��d�kWdQRXWdQRX|jd��,|jt���d��d�kWdQRXWdQRX|jd��,|jt���d��d�kWdQRXWdQRX|jd��,|jt���d��d�kWdQRXWdQRX|jd��,|jt���d��d�kWdQRXWdQRX|jd��,|jt���d��d�kWdQRXWdQRX|jd��,|jt���d��d�kWdQRXWdQRX|jd��,|jt���d��d�kWdQRXWdQRX|jd��@�d�}�d�}|j||�|jt��||kWdQRXWdQRX|jd��@�d�}�d�}|j||�|jt��||kWdQRXWdQRXdS)!Ncs,eZdZdd�Z�fdd�Z�fdd�ZdS)zRTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThancSs
||_dS)N)r�)rr�rrr
r��sz[TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__init__cst|��r|j|jkSdS)NF)�
isinstancer�)rr)�ImplementsLessThanrr
r$�s
zYTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__eq__cst|��r|j|jkStS)N)r/r��NotImplemented)rr)r0rr
rs
zYTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__lt__N)rrrr�r$rr)r0rr
r0�sr0cs,eZdZdd�Z�fdd�Z�fdd�ZdS)zUTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThancSs
||_dS)N)r�)rr�rrr
r�sz^TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__init__cst|��r|j|jkSdS)NF)r/r�)rr)�ImplementsGreaterThanrr
r$	s
z\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__eq__cst|��r|j|jkStS)N)r/r�r1)rr)r2rr
r)
s
z\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__gt__N)rrrr�r$r)r)r2rr
r2sr2cs,eZdZdd�Z�fdd�Z�fdd�ZdS)zYTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTocSs
||_dS)N)r�)rr�rrr
r�szbTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__init__cst|��r|j|jkSdS)NF)r/r�)rr)�ImplementsLessThanEqualTorr
r$s
z`TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__eq__cst|��r|j|jkStS)N)r/r�r1)rr)r3rr
r's
z`TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__le__N)rrrr�r$r'r)r3rr
r3sr3cs,eZdZdd�Z�fdd�Z�fdd�ZdS)z\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTocSs
||_dS)N)r�)rr�rrr
r�!szeTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__init__cst|��r|j|jkSdS)NF)r/r�)rr)�ImplementsGreaterThanEqualTorr
r$#s
zcTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__eq__cst|��r|j|jkStS)N)r/r�r1)rr)r4rr
r+'s
zcTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__ge__N)rrrr�r$r+r)r4rr
r4sr4cs(eZdZdd�Z�fdd�Zdd�ZdS)zXTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplementedcSs
||_dS)N)r�)rr�rrr
r�.szaTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__init__cst|��r|j|jkSdS)NF)r/r�)rr)�ComparatorNotImplementedrr
r$0s
z_TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__eq__cSstS)N)r1)rrrrr
r4sz_TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__lt__N)rrrr�r$rr)r5rr
r5,sr5zLT < 1r"zLT < LErzLT < GTzLE <= LTr#zLE <= GEr(zGT > GEr)zGT > LTr<zGE >= GTr�zGE >= LEr=z
GE when equalr�z
LE when equalr����)rr%r�r8r9r2)rr&r'r)r5r2r4r0r3r
�$test_type_error_when_not_implemented�sF



 $$$$$$$$z6TestTotalOrdering.test_type_error_when_not_implementedc
Cslxfttjd�D]T}xNdD]F}|j||d��.tt|�}tjtj||��}|j||�WdQRXqWqWdS)Nr"rr)r'r+)r�r{)rr)r'r+)	rWrwrxr�rR�Orderable_LTryrzr)rr{rr�Zmethod_copyrrr
r}`s

zTestTotalOrdering.test_pickleN)rrrr&r(r*r,r-r.r7r}rrrr
r#�skr#c@s$eZdZdd�Zdd�Zdd�ZdS)r8cCs
||_dS)N)r�)rr�rrr
r�jszOrderable_LT.__init__cCs|j|jkS)N)r�)rrrrr
rlszOrderable_LT.__lt__cCs|j|jkS)N)r�)rrrrr
r$nszOrderable_LT.__eq__N)rrrr�rr$rrrr
r8hsr8c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
ejed�dd��Zejed�dd��Zejed�dd��Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*S)+�TestLRUc
s^dd�}|jjdd�|�}|j�\}}}}|j|d�|j|d�|j|d�|j|d�td�}xBtd�D]6}t|�t|�}	}
||	|
�}||	|
�}|j||�qlW|j�\}}}}|j||k�|j||d�|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	d
��}|j|j�j
d�d�x td�D]}|j|�d��q�W|j�d�|j�\}}}}|j|d�|j|d�|j|d�|jjd��fdd
��}|j|j�j
d�d�x td�D]}|j|�d��qpW|j�d�|j�\}}}}|j|d�|j|d�|j|d�|jjd
��fdd
��}|j|j�j
d
�d�x"dD]}	|j||	�|	d��q�W|j�d�|j�\}}}}|j|d�|j|d�|j|d
�dS)NcSsd||S)Nr(r)r-rJrrr
�origuszTestLRU.test_lru.<locals>.origr%)�maxsizerr<i�r"cs�d7�dS)Nr"r%rr)�f_cntrr
rK�szTestLRU.test_lru.<locals>.fcs�d7�dS)Nr"r%rr)r<rr
rK�sr)r#cs�d7�|dS)Nr"r$r)r-)r<rr
rK�sr=r�r�r$�)r=r�r=r�r=r�r�r�r�r�r�r�r�r�r�r=)�module�	lru_cache�
cache_infor2rWrr0�cache_clearrr�r;)
rr:rK�hits�missesr;�currsize�domainr�r-rJ�actualrCr)r<r
�test_lruts~



zTestLRU.test_lrucCsPtj}z<|jjd�t�t_x$d
D]}|jtd	d|��|�q WWd|t_XdS)Nr)rr"r#r(r<r�r=Zabcdefghijklmn)
rrr"r#r(r(r)r<r�r"r=r#r")�builtinsr�r>r?r2)rZold_lenr�rrr
�test_lru_reentrancy_with_len�s
 z$TestLRU.test_lru_reentrancy_with_lencCshtjdd�dd��}tjdd�dd��}|jt��|g�WdQRX|jt��|g�WdQRXdS)N)r;cSsdS)Nr)�orrr
�infinite_cache�sz3TestLRU.test_lru_type_error.<locals>.infinite_cacher$cSsdS)Nr)rJrrr
�
limited_cache�sz2TestLRU.test_lru_type_error.<locals>.limited_cache)rr?r8r9)rrKrLrrr
�test_lru_type_error�szTestLRU.test_lru_type_errorcs�|jjdd��fdd���|j�fdd�td�D�dddd	d
ddd
ddddddddg�|j�j�|jjddddd���j�|j�j�|jjddddd��dS)N)r;cs$|dkr|S�|d��|d�S)Nr#r"r)r�)�fibrr
rN�sz/TestLRU.test_lru_with_maxsize_none.<locals>.fibcsg|]}�|��qSrr)rer�)rNrr
rj�sz6TestLRU.test_lru_with_maxsize_none.<locals>.<listcomp>rNrr"r#r(r<r��
r��"�7�Y���iyib�)rBrCr;rD)r>r?r2rWr@�
_CacheInforA)rr)rNr
�test_lru_with_maxsize_none�s&

z"TestLRU.test_lru_with_maxsize_nonecsn|jjdd�dd���x2d
D]*}|j�fdd�td	�D�ttd	���qW|j�j�|jjdd
ddd��dS)Nr$)r;cSs|S)Nr)r�rrr
�eq�sz2TestLRU.test_lru_with_maxsize_negative.<locals>.eqrr"csg|]}�|��qSrr)rer�)rXrr
rj�sz:TestLRU.test_lru_with_maxsize_negative.<locals>.<listcomp>�i,)rBrCr;rDi����)rr"i����)r>r?r2rWrr@rV)rr�r)rXr
�test_lru_with_maxsize_negative�s

*
z&TestLRU.test_lru_with_maxsize_negativecCs�xzdD]r}|jj|�dd��}|j|d�d�|jt��}|d�WdQRX|j|jj�|jt��|d�WdQRXqWdS)N�cSsd|S)Nr�r)r�rrr
rsz.TestLRU.test_lru_with_exceptions.<locals>.funcrr&�)Nr[)r>r?r2r8r�ZassertIsNone�	exception�__context__)rr;r�cmrrr
�test_lru_with_exceptionss
z TestLRU.test_lru_with_exceptionscCs�x�dD]�}|jj|dd�dd��}|j|d�d�|jt|d��td��|j|d�d	�|jt|d��td	��|j|dd
�d�|jt|dd
��td��|j|dd
�d	�|jt|dd
��td	��|j|j�jd�|j|j�jd�qWdS)
Nr[T)r;�typedcSs||S)Nr)r-rrr
�squaresz+TestLRU.test_lru_with_types.<locals>.squarer(r�g@g"@)r-r))Nr[)r>r?r2r�r@rBrC)rr;rbrrr
�test_lru_with_typess
zTestLRU.test_lru_with_typescs�|jj��fdd���|j�fdd�td�D�ddddd	d
ddd
dddddddg�|j�j�|jjddddd���j�|j�j�|jjddddd��dS)Ncs(|dkr|S�|dd��|dd�S)Nr#r")r�r)r�)rNrr
rN$sz/TestLRU.test_lru_with_keyword_args.<locals>.fibcsg|]}�|d��qS))r�r)re�number)rNrr
rj*sz6TestLRU.test_lru_with_keyword_args.<locals>.<listcomp>rNrr"r#r(r<r�rOr�rPrQrRrSrTiyibrUr[)rBrCr;rD)r>r?r2rWr@rVrA)rr)rNr
�test_lru_with_keyword_args#s&

z"TestLRU.test_lru_with_keyword_argscs�|jjdd��fdd���|j�fdd�td�D�dddd	d
ddd
ddddddddg�|j�j�|jjddddd���j�|j�j�|jjddddd��dS)N)r;cs(|dkr|S�|dd��|dd�S)Nr#r")r�r)r�)rNrr
rN4sz<TestLRU.test_lru_with_keyword_args_maxsize_none.<locals>.fibcsg|]}�|d��qS))r�r)rerd)rNrr
rj9szCTestLRU.test_lru_with_keyword_args_maxsize_none.<locals>.<listcomp>rNrr"r#r(r<r�rOr�rPrQrRrSrTiyibrU)rBrCr;rD)r>r?r2rWr@rVrA)rr)rNr
�'test_lru_with_keyword_args_maxsize_none3s&

z/TestLRU.test_lru_with_keyword_args_maxsize_nonecCsj|jjdd�dd��}|j|ddd�d
dg�|j|ddd
�ddg�|j|j�|jjddddd��dS)Nr$)r;c[st|j��S)N)r�items)rqrrr
rKCsz$TestLRU.test_kwargs_order.<locals>.fr"r#)r&r'r&r')r'r&r)rBrCr;rD)r&r")r'r#)r'r#)r&r")r>r?r2r@rV)rrKrrr
�test_kwargs_orderAs

zTestLRU.test_kwargs_ordercCsJdd�dd�}|jj�|�}x(|jjD]}|jt||�t||��q&WdS)NZzomg_annotation)�zomgcSsdS)Nr�r)rirrr
rKLsz,TestLRU.test_lru_cache_decoration.<locals>.f)r>r?r�r2rR)rrK�grvrrr
�test_lru_cache_decorationKsz!TestLRU.test_lru_cache_decorationzThis test requires threading.c	s�d\}�dd���jj|�d�����j�\}}}}�j|d�tj�������fdd�����fd	d
�}tj�}tj	d�z�fdd
�t
|�D�}tj|���j�WdQRX�j�\}}}}�jt
kr�j||��j|�||�n �j||��j|�||��j||�tj|d�g}|�fdd
�t
|�D�7}�j�tj|���j�WdQRXWdtj	|�XdS)Nr<�cSsd||S)Nr(r)r-rJrrr
r:Vsz-TestLRU.test_lru_cache_threaded.<locals>.orig)r;rcs8�jd�x(t��D]}�j�|d��|d��qWdS)Nr$r)�waitrWr2)rr�)rK�mr:r�startrr
�full]s
z-TestLRU.test_lru_cache_threaded.<locals>.fullcs,�jd�xtd��D]}�j�qWdS)Nr$r#)rmrWrA)r�)rKrnrorr
�clearbs
z.TestLRU.test_lru_cache_threaded.<locals>.clearg���ư>csg|]}tj�|gd��qS))�targetr)�	threading�Thread)rer)rprr
rjksz3TestLRU.test_lru_cache_threaded.<locals>.<listcomp>)rrcsg|]}tj�|gd��qS))rrr)rsrt)rer)rprr
rj|s)r<rl)r>r?r@r2rsZEventr	�getswitchintervalr�setswitchintervalrW�
start_threads�setror
rtrq)	rr�rBrCr;rDrqZorig_si�threadsr)rKrprnr:rror
�test_lru_cache_threadedSs:


zTestLRU.test_lru_cache_threadedcs d
\}�tj|d��tj|d��tj|d���jj�|d��fdd����j�j�dd�|df������fdd	���fd
d�t|�D�}tj|��vxnt��D]b}�j	d��j
��j	d��j
��j	d��j
��j�j�d|d|�||df�q�WWdQRXdS)Nr<r=r")r;cs�jd�d|S)Nr$r()rm)r-)�pauserr
rK�s
z+TestLRU.test_lru_cache_threaded2.<locals>.frcs>x8t��D],}�jd��j�|�d|��jd�q
WdS)Nr$r()rWrmr2)r�)rKrnrro�stoprr
�test�s
z.TestLRU.test_lru_cache_threaded2.<locals>.testcsg|]}tj�d��qS))rr)rsrt)rer)r}rr
rj�sz4TestLRU.test_lru_cache_threaded2.<locals>.<listcomp>r$)r<r=)rsZBarrierr>r?r2r@rWrrwrm�reset)rr�ryr�r)rKrnr{rror|r}r
�test_lru_cache_threaded2�s"


z TestLRU.test_lru_cache_threaded2c	s^�jjdd�dd�����fdd���fdd�td	ddd
dg�D�}tj|��WdQRXdS)Nr#)r;cSstjd�d|S)Ng{�G�z�?r()�timeZsleep)r-rrr
rK�s
z+TestLRU.test_lru_cache_threaded3.<locals>.fcs2�j|d���j�|�d||�WdQRXdS)N)Zthreadr()r�r2)r�r-)rKrrr
r}�sz.TestLRU.test_lru_cache_threaded3.<locals>.testcs"g|]\}}tj�||fd��qS))rrr)rsrt)rer��v)r}rr
rj�sz4TestLRU.test_lru_cache_threaded3.<locals>.<listcomp>r"r()r>r?�	enumeraterrw)rryr)rKrr}r
�test_lru_cache_threaded3�s
z TestLRU.test_lru_cache_threaded3cs^|jjdd�dd���G��fdd�d����d����d��|j��d���d��dS)	Nr$)r;cSs|S)Nr)r-rrr
�	test_func�sz.TestLRU.test_need_for_rlock.<locals>.test_funccs*eZdZdd�Zdd�Z��fdd�ZdS)z-TestLRU.test_need_for_rlock.<locals>.DoubleEqcSs
||_dS)N)r-)rr-rrr
r��sz6TestLRU.test_need_for_rlock.<locals>.DoubleEq.__init__cSs|jS)N)r-)rrrr
�__hash__�sz6TestLRU.test_need_for_rlock.<locals>.DoubleEq.__hash__cs"|jdkr��d��|j|jkS)Nr#r")r-)rr)�DoubleEqr�rr
r$�s
z4TestLRU.test_need_for_rlock.<locals>.DoubleEq.__eq__N)rrrr�r�r$r)r�r�rr
r��sr�r"r#)r>r?r2)rr)r�r�r
�test_need_for_rlock�szTestLRU.test_need_for_rlockc
Cs(|jt��tjdd��}WdQRXdS)NcSsdS)Nrrrrr
rK�sz3TestLRU.test_early_detection_of_bad_call.<locals>.f)r8r9rr?)rrKrrr
� test_early_detection_of_bad_call�sz(TestLRU.test_early_detection_of_bad_callc
s�G�fdd�dt�}|d�}|d�}|d�}�j|jj�d
�x&dD]}�j|j|�|d	d�qDW�j|j|j|jfd��j|jj�d�x&dD]}�j|j|�|d	d�q�W�j|j|j|jfd��j|jj�d�x(dD] }�j|j|�|d	d��q�W�j|j|j|jfd��j|jj�d��j|jj�|jj���j|jj�|jj���j|jj�|jj��dS)Ncs$eZdZdZ�jjd�dd��ZdS)z"TestLRU.test_lru_method.<locals>.Xrr#cSs|jd7_|d|S)Nr"r$)r<)rr-rrr
rK�sz$TestLRU.test_lru_method.<locals>.X.fN)rrrr<r>r?rKr)rrr
�X�sr�r<r=rr#r"r(r$r�r)r\)rrr#r)
r"r#r#r(r"r"r"r#r(r()r�rr)r)r�r#r#)
r"r#r"r"r"r"r(r#r#r#)r�r)r)r$r$r#r#)
r#r"r"r"r"r#r"r(r#r")r�r)r<)r\r\r#r#)rPr2rKr@r<)rr�r&r'r,r-r)rr
�test_lru_method�s(


 zTestLRU.test_lru_methodc
Csx|j}xl|jd|j|jfD]T}xNttjd�D]<}|j||d��$tjtj	||��}|j
||�WdQRXq0WqWdS)Nrr")r{r)�	__class__�cached_func�cached_meth�cached_staticmethrWrwrxr�ryrzr)rr�rKr{r|rrr
r}�szTestLRU.test_picklecCs~|j}dd�}|jj|d�}|jd|j|j|jjd�|�f}x:|D]2}|j|d��tj|�}|j	||�WdQRXqDWdS)NcSsd||S)Nr(r)r-rJrrr
r:�szTestLRU.test_copy.<locals>.origr#r)r)
r�r>r/r�r�r�r?r�r~r)rr�r:r�funcsrKr|rrr
r��s

zTestLRU.test_copycCs~|j}dd�}|jj|d�}|jd|j|j|jjd�|�f}x:|D]2}|j|d��tj	|�}|j
||�WdQRXqDWdS)NcSsd||S)Nr(r)r-rJrrr
r:sz#TestLRU.test_deepcopy.<locals>.origr#r)r)r�r>r/r�r�r�r?r�r~r�r)rr�r:rr�rKr|rrr
r�s

zTestLRU.test_deepcopyN)rrrrGrIrMrWrZr`rcrerfrhrkr��
skipUnlessrsrzrr�r�r�r�r}r�r�rrrr
r9rs(Y	
1r9cCsd||S)Nr(r)r-rJrrr
�py_cached_func
sr�cCsd||S)Nr(r)r-rJrrr
�
c_cached_funcsr�c@s:eZdZeZefZej�dd��Ze	ej�dd���Z
dS)�	TestLRUPycCsd||S)Nr(r)rr-rJrrr
r�szTestLRUPy.cached_methcCsd||S)Nr(r)r-rJrrr
r�szTestLRUPy.cached_staticmethN)rrrror>r�r�r?r�r�r�rrrr
r�s
r�c@s:eZdZeZefZej�dd��Ze	ej�dd���Z
dS)�TestLRUCcCsd||S)Nr(r)rr-rJrrr
r�(szTestLRUC.cached_methcCsd||S)Nr(r)r-rJrrr
r�,szTestLRUC.cached_staticmethN)rrrrnr>r�r�r?r�r�r�rrrr
r�$s
r�c@s~eZdZdd�Zdd�Zdd�Zdd�Zeje	d	�e
jd
d���Zdd
�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS)�TestSingleDispatchcCs\tjdd��}dd�}|jt|�|j|d�d�|j|d�d�|j|dd	d
g�d�dS)NcSsdS)NrOr)r�rrr
rj4sz3TestSingleDispatch.test_simple_overloads.<locals>.gcSsdS)N�integerr)r�rrr
�g_int7sz7TestSingleDispatch.test_simple_overloads.<locals>.g_intrVrOr"r�r#r()r�singledispatch�registerrPr2)rrjr�rrr
�test_simple_overloads3sz(TestSingleDispatch.test_simple_overloadscCs�tjdd��}Gdd�d�}Gdd�d|�}Gdd�d|�}Gd	d
�d
||�}dd�}d
d�}|j||�|j||�|j||��d�|j||��d�|j||��d�|j||��d�dS)NcSsdS)NrOr)r�rrr
rj?sz&TestSingleDispatch.test_mro.<locals>.gc@seZdZdS)z&TestSingleDispatch.test_mro.<locals>.AN)rrrrrrr
r�Bsr�c@seZdZdS)z&TestSingleDispatch.test_mro.<locals>.CN)rrrrrrr
�CDsr�c@seZdZdS)z&TestSingleDispatch.test_mro.<locals>.BN)rrrrrrr
r�Fsr�c@seZdZdS)z&TestSingleDispatch.test_mro.<locals>.DN)rrrrrrr
�DHsr�cSsdS)Nr�r)r&rrr
�g_AJsz(TestSingleDispatch.test_mro.<locals>.g_AcSsdS)Nr�r)r'rrr
�g_BLsz(TestSingleDispatch.test_mro.<locals>.g_B)rr�r�r2)rrjr�r�r�r�r�r�rrr
�test_mro>szTestSingleDispatch.test_mrocCsntjdd��}|jt�dd��}|j|d�d�|j|d�d�|j|jt�|�|j|jt�|jt��dS)	NcSsdS)NrOr)r�rrr
rjVsz5TestSingleDispatch.test_register_decorator.<locals>.gcSs
d|fS)Nzint %sr)r�rrr
r�Ysz9TestSingleDispatch.test_register_decorator.<locals>.g_intrTrOr=zint 12)	rr�r�rPr2r�dispatchrlrV)rrjr�rrr
�test_register_decoratorUsz*TestSingleDispatch.test_register_decoratorcCs:tjdd��}|j|jd�tjjdkr6|j|jd�dS)NcSsdS)NZTestr)r�rrr
rjdsz6TestSingleDispatch.test_wrapping_attributes.<locals>.grjr#zSimple test)rr�r2rr	r�r�r�)rrjrrr
�test_wrapping_attributescsz+TestSingleDispatch.test_wrapping_attributeszrequires _decimalcCs�tjdd��}|jtj�dd��}tjd�}tjd�}|j||�d	�|j||�d
�|jtj�dd��}|j||�d�|j||�d�dS)NcSsdS)NrOr)r�rrr
rjosz,TestSingleDispatch.test_c_classes.<locals>.gcSs|jS)N)r)r�rrr
r�rsz,TestSingleDispatch.test_c_classes.<locals>._�Exponent < Emin�Number got roundedcSsdS)NzToo small to care.r)r�rrr
r�yszToo small to care.)r�)r�)r�)rr�r�rZDecimalExceptionZ	SubnormalZRoundedr2)rrjr��subnZrndrrr
�test_c_classesls

z!TestSingleDispatch.test_c_classescCst}tj}|j|j|j|jg}xBt|�D]6}|t|�}|j	|t|j|j|j
|j|j|j
tg�q(W|j
|j|j|jg}xFt|�D]:}||j|�}|j	||j|j|j|j
|j|j|j
tg�q�W|j
|jtg}xBt|�D]6}||j|j|j
tg�}|j	||jt|j|j
tg�q�WGdd�d|j�}|jj|�|j|jg}xVt|�D]J}|||�}|j	|||j|j|j|jt|j|j|j
|j|j|j
tg
��qDWGdd�d|j�}|j|j|j
|jg}xJt|�D]>}|||�}|j	|||j|jt|j|j
|j|j|j
tg
��q�WdS)Nc@seZdZdS)z.TestSingleDispatch.test_compose_mro.<locals>.DN)rrrrrrr
r��sr�c@seZdZdd�ZdS)z.TestSingleDispatch.test_compose_mro.<locals>.CcSsdS)Nr)rrrr
�__call__�sz7TestSingleDispatch.test_compose_mro.<locals>.C.__call__N)rrrr�rrrr
r��sr�)rr�_compose_mro�Sequence�MutableMapping�Mapping�Setrr3r2�
Collection�Sized�Iterable�	Containerrl�OrderedDict�ChainMaprV�defaultdict�MutableSequencer��
Reversible�Callable)rr,�mro�basesZhaystackrnr�r�rrr
�test_compose_mrosF


z#TestSingleDispatch.test_compose_mrocCs~t}ddi}dddg}t�dh}t|�}d"}tjdd��}|j||�d�|j||�d�|j||�d�|j||�d�|j||�d�|j|jd	d
��|j||�d�|j||�d�|j||�d�|j||�d�|j||�d�|j|jdd
��|j||�d
�|j||�d�|j||�d�|j||�d�|j||�d�|j|j	dd
��|j||�d
�|j||�d�|j||�d�|j||�d�|j||�d�|j|j
dd
��|j||�d
�|j||�d�|j||�d�|j||�d�|j||�d�|j|jdd
��|j||�d
�|j||�d�|j||�d�|j||�d�|j||�d�|j|jdd
��|j||�d
�|j||�d�|j||�d�|j||�d�|j||�d�|j|j
dd
��|j||�d
�|j||�d�|j||�d�|j||�d�|j||�d�|j|jdd
��|j||�d
�|j||�d�|j||�d�|j||�d�|j||�d�|jtdd
��|j||�d�|j||�d�|j||�d�|j||�d�|j||�d�|jtdd
��|j||�d�|j||�d�|j||�d�|j||�d�|j||�d�|jtdd
��|j||�d�|j||�d�|j||�d�|j||�d�|j||�d�|jtdd
��|j||�d�|j||�d�|j||�d�|j||�d�|j||�d�|jtd d
��|j||�d�|j||�d�|j||�d�|j||�d�|j||�d!�dS)#Nr&r'r"r#r(cSsdS)NrOr)r�rrr
rj�sz/TestSingleDispatch.test_register_abc.<locals>.grOcSsdS)N�sizedr)r�rrr
r.�sz6TestSingleDispatch.test_register_abc.<locals>.<lambda>r�cSsdS)N�mutablemappingr)r�rrr
r.�sr�cSsdS)NZchainmapr)r�rrr
r.�scSsdS)N�mutablesequencer)r�rrr
r.�sr�cSsdS)N�
mutablesetr)r�rrr
r.�sr�cSsdS)N�mappingr)r�rrr
r.�scSsdS)N�sequencer)r�rrr
r.�sr�cSsdS)Nrxr)r�rrr
r.�srxcSsdS)Nr3r)r�rrr
r.�sr3cSsdS)Nrr)r�rrr
r.�srcSsdS)Nzconcrete-setr)r�rrr
r.szconcrete-setcSsdS)Nz
frozen-setr)r�rrr
r.sz
frozen-setcSsdS)Nr�r)r�rrr
r.sr�)r"r#r()rrl�	frozensetrr�r2r�r�r�r�r��
MutableSetr�r�r�r3rrxr�)rr,r>�lr�rK�trjrrr
�test_register_abc�s�

z$TestSingleDispatch.test_register_abcc	Cs�t}tj}Gdd�dt�}Gdd�d|�}|jjGdd�dt��}Gdd�dt�}Gd	d
�d
|||�}||j|||j||j|tg	}x0t|j|j|jg�D]}	|j	|||	d�|�q�W|j
|j|j|j|jg}
|j	|||
d�|�dS)Nc@seZdZdS)z)TestSingleDispatch.test_c3_abc.<locals>.AN)rrrrrrr
r�sr�c@seZdZdd�ZdS)z)TestSingleDispatch.test_c3_abc.<locals>.BcSsdS)Nrr)rrrr
r�sz1TestSingleDispatch.test_c3_abc.<locals>.B.__len__N)rrrr�rrrr
r�sr�c@seZdZdS)z)TestSingleDispatch.test_c3_abc.<locals>.CN)rrrrrrr
r�sr�c@seZdZdS)z)TestSingleDispatch.test_c3_abc.<locals>.DN)rrrrrrr
r�sr�c@seZdZdd�ZdS)z)TestSingleDispatch.test_c3_abc.<locals>.XcSsdS)Nr)rrrr
r�!sz2TestSingleDispatch.test_c3_abc.<locals>.X.__call__N)rrrr�rrrr
r� sr�)�abcs)rr�_c3_mrorlr�r�r�r�rr2r�r�)rr,r�r�r�r�r�r�rCr�Z	many_abcsrrr
�test_c3_abcszTestSingleDispatch.test_c3_abccCslGdd�dt�}Gdd�d|d�}Gdd�d|�}tjdd	��}|j|�d
d��}|�}|j||�d�dS)
Nc@seZdZdd�ZdS)z1TestSingleDispatch.test_false_meta.<locals>.MetaAcSsdS)Nrr)rrrr
r�-sz9TestSingleDispatch.test_false_meta.<locals>.MetaA.__len__N)rrrr�rrrr
�MetaA,sr�c@seZdZdS)z-TestSingleDispatch.test_false_meta.<locals>.AN)rrrrrrr
r�/sr�)�	metaclassc@seZdZdS)z.TestSingleDispatch.test_false_meta.<locals>.AAN)rrrrrrr
�AA1sr�cSsdS)Nzbase Ar)r&rrr
�fun3sz/TestSingleDispatch.test_false_meta.<locals>.funcSsdS)Nzfun Ar)r&rrr
r�6sz-TestSingleDispatch.test_false_meta.<locals>._zfun A)r�rr�r�r2)rr�r�r�r�r�Zaarrr
�test_false_meta*sz"TestSingleDispatch.test_false_metacCs�t}tjdd��}Gdd�d|j�}|�}|j||�d�|j|jdd��|j|jdd��|j|jd	d��|j|jd
d��|j||�d�|jj|�|j||�d�|jj|�|j||�d�|jj|�|j||�d�Gd
d�d�}|�}|j||�d�|jj|�|j||�d�|jj|�|j	t
��}||�WdQRX|jt|j
�d1�Gdd�d|j�}|�}	|j||	�d�|jj|�|j||	�d�|jj|�|j||	�d�tjdd��}
|
j|j�dd��}|
j|j�dd��}|j	t
��}|
|jdd���WdQRX|jt|j
�d2�Gdd�d|j�}
|jj|
�tjdd��}|j|j�d d��}|j|j�d!d��}|
�}|j||�d"�Gd#d$�d$�}Gd%d&�d&||j�}|�}|j|
|�d�|jj|�|j|
|�d�Gd'd(�d(�}|�}|j|
|�d�|jj|�|j	t
��}|
|�WdQRX|jt|j
�d3�Gd)d*�d*|j|�}tjd+d,��}|j|�d-d��}|j|j�d.d��}|�}|j||�d/�|jj|�|j||�d0�dS)4NcSsdS)NrOr)�argrrr
rj>sz0TestSingleDispatch.test_mro_conflicts.<locals>.gc@seZdZdd�ZdS)z0TestSingleDispatch.test_mro_conflicts.<locals>.OcSsdS)Nrr)rrrr
r�Bsz8TestSingleDispatch.test_mro_conflicts.<locals>.O.__len__N)rrrr�rrrr
�OAsr�rOcSsdS)N�iterabler)r�rrr
r.Fsz7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>cSsdS)N�	containerr)r�rrr
r.GscSsdS)Nr�r)r�rrr
r.HscSsdS)Nrxr)r�rrr
r.Isr�rxc@seZdZdS)z0TestSingleDispatch.test_mro_conflicts.<locals>.PN)rrrrrrr
�PRsr�r��]Ambiguous dispatch: <class 'collections.abc.Container'> or <class 'collections.abc.Iterable'>�]Ambiguous dispatch: <class 'collections.abc.Iterable'> or <class 'collections.abc.Container'>c@seZdZdd�ZdS)z0TestSingleDispatch.test_mro_conflicts.<locals>.QcSsdS)Nrr)rrrr
r�csz8TestSingleDispatch.test_mro_conflicts.<locals>.Q.__len__N)rrrr�rrrr
�Qbsr�cSsdS)NrOr)r�rrr
�hlsz0TestSingleDispatch.test_mro_conflicts.<locals>.hcSsdS)Nr�r)r�rrr
r�osz0TestSingleDispatch.test_mro_conflicts.<locals>._cSsdS)Nr�r)r�rrr
r�rscSsdS)Nrrrrrr
r.zs�ZAmbiguous dispatch: <class 'collections.abc.Container'> or <class 'collections.abc.Sized'>�ZAmbiguous dispatch: <class 'collections.abc.Sized'> or <class 'collections.abc.Container'>c@seZdZdS)z0TestSingleDispatch.test_mro_conflicts.<locals>.RN)rrrrrrr
�R�sr�cSsdS)NrOr)r�rrr
r��sz0TestSingleDispatch.test_mro_conflicts.<locals>.icSsdS)Nr�r)r�rrr
r��scSsdS)Nr�r)r�rrr
r��sr�c@seZdZdS)z0TestSingleDispatch.test_mro_conflicts.<locals>.SN)rrrrrrr
�S�sr�c@seZdZdd�ZdS)z0TestSingleDispatch.test_mro_conflicts.<locals>.TcSsdS)Nrr)rrrr
r��sz8TestSingleDispatch.test_mro_conflicts.<locals>.T.__len__N)rrrr�rrrr
�T�sr�c@seZdZdd�ZdS)z0TestSingleDispatch.test_mro_conflicts.<locals>.UcSsdS)Nrr)rrrr
r��sz8TestSingleDispatch.test_mro_conflicts.<locals>.U.__len__N)rrrr�rrrr
�U�sr�c@seZdZdd�ZdS)z0TestSingleDispatch.test_mro_conflicts.<locals>.VcSsdS)Nrr)rrrr
r��sz8TestSingleDispatch.test_mro_conflicts.<locals>.V.__len__N)rrrr�rrrr
�V�sr�cSsdS)NrOr)r�rrr
�j�sz0TestSingleDispatch.test_mro_conflicts.<locals>.jcSsdS)Nr�r)r�rrr
r��scSsdS)Nr�r)r�rrr
r��sr�r�)r�r�)r�r�)r�r�)rrr�r�r2r�r�r�r�r8r�rprVr]r�r�r�)rr,rjr�rJr�r5Zre_oner��qr�r�Zre_twor�r�r�r�r�r�r��uZre_threer�r�r�rrr
�test_mro_conflicts<s�z%TestSingleDispatch.test_mro_conflictsc
s4ddlm}G�fdd�d|��tj}����fdd�t_t}tjdd��}i}g}|jt��d�|j||�d	�|jt��d
�|j�jg�|j�jt	g�|j�j
t	|jt�|j||�d	�|jt��d�|j�jg�|j�jt	t
g�|j�j
t	|jt�|j�j
t
|jt�|j�j
t	�j
t
�|j||�d	�|j||�d	�|j�jt
t	g�|j�jt	t
g�|jt
dd��|j�jt
t	g�|jt��d�|j||�d	�|jt��d
�|j�jt
t	g�|j�jt	t
t	g�|j�j
t	tjt	|j��|j||�d
�|jt��d�|j�jt
t	g�|j�jt	t
t	t
g�|j�j
t
tjt
|j��Gdd�d�}|jj|�|j||�d	�|j||�d
�|j�jt
t	t	t
g�|j�jt	t
t	t
g�|j|jdd��|jt��d�|j||�d�|jt��d
�|j�jt
t	t	t
g�|j�jt	t
t	t
t	g�|j||�d
�|jt��d�|j�jt
t	t	t
g�|j�jt	t
t	t
t	t
g�|j||�d
�|j||�d�|j�jt
t	t	t
t
t	g�|j�jt	t
t	t
t	t
g�|jt
�|jt	�|j�jt
t	t	t
t
t	t
t	g�|j�jt	t
t	t
t	t
g�|jj|�|jt��d�|j||�d
�|jt��d
�|j|jdd��|jt��d�|j||�d�|jt��d
�|j||�d
�|jt��d�|jt	dd��|j||�d�|j||�d
�|j�|jt��d�|t_dS)Nr)�UserDictcs6eZdZ��fdd�Zdd�Zdd�Zdd�Z�ZS)	z?TestSingleDispatch.test_cache_invalidation.<locals>.TracingDictcs"t�|�j||�g|_g|_dS)N)�superr��set_ops�get_ops)rrrq)�TracingDictr�rr
r��szHTestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.__init__cSs|j|}|jj|�|S)N)rYr�r�)rr��resultrrr
r��s
zKTestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.__getitem__cSs|jj|�||j|<dS)N)r�r�rY)rr�r�rrr
�__setitem__�szKTestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.__setitem__cSs|jj�dS)N)rYrq)rrrr
rq�szETestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.clear)rrrr�r�r�rq�
__classcell__r)r�)r�r
r��sr�cs�S)Nrr)�tdrr
r.�sz<TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>cSsdS)NrOr)r�rrr
rj�sz5TestSingleDispatch.test_cache_invalidation.<locals>.grOr"r#cSsdS)Nrr)r�rrr
r.�src@seZdZdS)z5TestSingleDispatch.test_cache_invalidation.<locals>.XN)rrrrrrr
r��sr�cSsdS)Nr�r)r�rrr
r.�sr�cSsdS)Nr�r)r�rrr
r.sr�cSsdS)Nr3r)r�rrr
r.sr3)rr�r�WeakKeyDictionaryr�r2r�r�r�r3rY�registryrlrr��
_find_implr�r�r�r��_clear_cache)rr�Z	_orig_wkdr,rjr>r�r�r)r�r�r
�test_cache_invalidation�s�


z*TestSingleDispatch.test_cache_invalidationc	Cs4tjdd��}d}|jt|��|�WdQRXdS)NcWsdS)Nr)rrrr
rK"sz>TestSingleDispatch.test_invalid_positional_argument.<locals>.fz)f requires at least 1 positional argument)rr�ZassertRaisesRegexr9)rrK�msgrrr
� test_invalid_positional_argument!sz3TestSingleDispatch.test_invalid_positional_argumentN)rrrr�r�r�r�r�r�rrZcpython_onlyr�r�r�r�r�r�r�r�rrrr
r�2s	
6^er��__main__)>r�rHrr~�	itertoolsrrwZrandomrr	r}rr�r��weakrefr�
contextlibrs�ImportErrorrZimport_fresh_modulerornr�contextmanagerrrrr�rrr3r r!r�ZTestCaser�r�r/r�r�r�r�r�r�r�r�rr!r"r#r%r8r9r?r�r�r�r�r�r�mainrrrr
�<module>s�
	F3rr=
RSL
z


Youez - 2016 - github.com/yon3zu
LinuXploit