Viewing File: /opt/alt/python38/lib/python3.8/site-packages/blinker/__pycache__/_utilities.cpython-38.pyc

U

Qi@s.ddlmZddlmZzeWnek
r<ddZYnXzddlmZWnGdddeZYnXzddl	m
Z
Wnek
rd	d
Z
YnXGdddeZ
d
e
_Gdd
d
eZzeefZWnek
reZYnXddZeefZGdddeZdddZdddZGdddeZdS))ref)BoundMethodWeakrefcCs
t|dS)N__call__)hasattr)objectr/_utilities.pycallable	sr	)defaultdictc@sNeZdZdddZddZddZdd	Zd
dZdd
ZddZ	ddZ
dS)r
NcOs6|dk	rt|dstdtj|f||||_dS)Nrzfirst argument must be callable)r	TypeErrordict__init__default_factory)selfrakwrrrr
szdefaultdict.__init__cCs2zt||WStk
r,||YSXdSN)r__getitem__KeyError__missing__)rkeyrrrrszdefaultdict.__getitem__cCs&|jdkrt||||<}|Sr)rr)rrvaluerrrrs
zdefaultdict.__missing__cCs0|jdkrt}n|jf}t||dd|fSr)rtupletypeitems)rargsrrr
__reduce__%s
zdefaultdict.__reduce__cCs|Sr)__copy__rrrrcopy,szdefaultdict.copycCst||j|Sr)rrrrrrr/szdefaultdict.__copy__cCs"ddl}t||j||S)Nr)rrrZdeepcopyr)rZmemorrrr__deepcopy__2s
zdefaultdict.__deepcopy__cCsd|jt|fS)Nzdefaultdict(%s, %s))rr__repr__rrrrr!7szdefaultdict.__repr__)N)__name__
__module____qualname__r
rrrrrr r!rrrrr
s
r
)contextmanagercCsdd}|j|_|S)Nc_stddS)Nz8Python 2.5 or above is required to use context managers.)RuntimeError)rrrrroops@szcontextmanager.<locals>.oops)r")fnr'rrrr%?sr%c@s$eZdZddZddZddZdS)_symbolcCs||_|_dS)zConstruct a new named symbol.N)r"name)rr*rrrr
Hsz_symbol.__init__cCst|jffSr)symbolr*rrrrrLsz_symbol.__reduce__cCs|jSr)r*rrrrr!Osz_symbol.__repr__N)r"r#r$r
rr!rrrrr)Fsr)r+c@seZdZdZiZddZdS)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.

    cCs8z|j|WStk
r2|j|t|YSXdSr)symbolsr
setdefaultr))clsr*rrr__new__dszsymbol.__new__N)r"r#r$__doc__r,r/rrrrr+Ts
cCsVt|drt|jt|jfSt|dr<t|jt|jfSt|trJ|St|SdS)N__func__im_func)ridr1__self__r2im_self
isinstancetext)objrrrhashable_identityqs


r9c@seZdZdZdS)annotatable_weakrefz7A weakref.ref that supports custom instance attributes.N)r"r#r$r0rrrrr:sr:NcKs@t|rt||}n
t||}|D]\}}t|||q&|S)zReturn an annotated weak ref.)r	callable_referencer:rsetattr)rcallbackZannotationsZweakrrrrr	references
r>cCsJt|dr |jdk	r t||dSt|dr@|jdk	r@t||dSt||S)z@Return an annotated weak ref, supporting bound instance methods.r5N)targetZ	on_deleter4)rr5rr4r:)rr=rrrr;s
r;c@s eZdZdZddZddZdS)
lazy_propertyz(A @property that is only evaluated once.cCs||_|j|_dSr)	_deferredr0)rZdeferredrrrr
szlazy_property.__init__cCs*|dkr|S||}t||jj||Sr)rAr<r")rr8r.rrrr__get__s

zlazy_property.__get__N)r"r#r$r0r
rBrrrrr@sr@)N)N)weakrefrZblinker._saferefrr		NameErrorcollectionsr
r
contextlibr%ImportErrorrr)r"r+strZunicoder7r9Z	WeakTypesr:r>r;r@rrrr<module>s4,


	
Back to Directory File Manager