Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/blinker/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/blinker/__pycache__/_utilities.cpython-35.opt-1.pyc



��Qi�"@syddlmZddlmZyeWnek
rHdd�ZYnXyddlmZWnGdd�de�ZYnXyddl	m
Z
Wnek
r�d	d
�Z
YnXGdd�de�Z
d
e
_Gdd
�d
e�ZyeefZWnek
reZYnXdd�ZeefZGdd�de�Zddd�Zddd�ZGdd�de�ZdS)�)�ref)�BoundMethodWeakrefcCs
t|d�S)N�__call__)�hasattr)�object�r�C/opt/alt/python35/lib/python3.5/site-packages/blinker/_utilities.py�callable	sr	)�defaultdictc@sseZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dS)r
NcOsH|dk	r(t|d�r(td��tj|||�||_dS)Nrzfirst argument must be callable)r�	TypeError�dict�__init__�default_factory)�selfr�a�kwrrrr
s
zdefaultdict.__init__cCs:ytj||�SWntk
r5|j|�SYnXdS)N)r�__getitem__�KeyError�__missing__)r�keyrrrrs
zdefaultdict.__getitem__cCs3|jdkrt|��|j�||<}|S)N)rr)rr�valuerrrrszdefaultdict.__missing__cCsF|jdkrt�}n|jf}t|�|dd|j�fS)N)r�tuple�type�items)r�argsrrr�
__reduce__%szdefaultdict.__reduce__cCs
|j�S)N)�__copy__)rrrr�copy,szdefaultdict.copycCst|�|j|�S)N)rr)rrrrr/szdefaultdict.__copy__cCs1ddl}t|�|j|j|j���S)Nr)rrr�deepcopyr)r�memorrrr�__deepcopy__2szdefaultdict.__deepcopy__cCsd|jtj|�fS)Nzdefaultdict(%s, %s))rr�__repr__)rrrrr!7s	zdefaultdict.__repr__)�__name__�
__module__�__qualname__r
rrrrrr r!rrrrr
sr
)�contextmanagercCsdd�}|j|_|S)Nc_std��dS)Nz8Python 2.5 or above is required to use context managers.)�RuntimeError)rrrrr�oops@szcontextmanager.<locals>.oops)r")�fnr'rrrr%?sr%c@s4eZdZdd�Zdd�Zdd�ZdS)�_symbolcCs||_|_dS)zConstruct a new named symbol.N)r"�name)rr*rrrr
Hsz_symbol.__init__cCst|jffS)N)�symbolr*)rrrrrLsz_symbol.__reduce__cCs|jS)N)r*)rrrrr!Osz_symbol.__repr__N)r"r#r$r
rr!rrrrr)Fsr)r+c@s(eZdZdZiZdd�ZdS)r+a?A constant symbol.

    >>> symbol('foo') is symbol('foo')
    True
    >>> symbol('foo')
    foo

    A slight refinement of the MAGICCOOKIE=object() pattern.  The primary
    advantage of symbol() is its repr().  They are also singletons.

    Repeated calls of symbol('name') will all return the same instance.

    cCsAy|j|SWn+tk
r<|jj|t|��SYnXdS)N)�symbolsr�
setdefaultr))�clsr*rrr�__new__ds
zsymbol.__new__N)r"r#r$�__doc__r,r/rrrrr+Ts
cCswt|d�r+t|j�t|j�fSt|d�rVt|j�t|j�fSt|t�ri|St|�SdS)N�__func__�im_func)r�idr1�__self__r2�im_self�
isinstance�text)�objrrr�hashable_identityqsr9c@seZdZdZdS)�annotatable_weakrefz7A weakref.ref that supports custom instance attributes.N)r"r#r$r0rrrrr:sr:NcKs^t|�rt||�}nt||�}x*|j�D]\}}t|||�q:W|S)zReturn an annotated weak ref.)r	�callable_referencer:r�setattr)r�callbackZannotationsZweakrrrrr�	reference�sr>cCsot|d�r1|jdk	r1td|d|�St|d�rb|jdk	rbtd|d|�St||�S)z@Return an annotated weak ref, supporting bound instance methods.r5N�targetZ	on_deleter4)rr5rr4r:)rr=rrrr;�s
r;c@s.eZdZdZdd�Zdd�ZdS)�
lazy_propertyz(A @property that is only evaluated once.cCs||_|j|_dS)N)�	_deferredr0)rZdeferredrrrr
�s	zlazy_property.__init__cCs9|dkr|S|j|�}t||jj|�|S)N)rAr<r")rr8r.rrrr�__get__�s
zlazy_property.__get__N)r"r#r$r0r
rBrrrrr@�sr@)�weakrefrZblinker._saferefrr	�	NameError�collectionsr
r�
contextlibr%�ImportErrorrr)r"r+�strZunicoder7r9Z	WeakTypesr:r>r;r@rrrr�<module>s4
,