c4>ddlmZddlmZ en#e$rdZYnwxYw ddlmZn#GddeZYnxYwGdde Z d e _ Gd d e Z e efZn #e$re ZYnwxYwd ZeefZGd d eZddZddZGdde ZdS))ref)BoundMethodWeakrefc"t|dS)N__call__)hasattr)objects 4/usr/lib/python3/dist-packages/blinker/_utilities.pycallabler svz***) defaultdictc@eZdZd dZdZdZdZdZdZdZ d Z dS) r Nc|t|dstdtj|g|Ri|||_dS)Nrzfirst argument must be callable)r TypeErrordict__init__default_factory)selfrakws r rzdefaultdict.__init__sW+OZ88, ABBB M$ ) ) ) )b ) ) )#2D r c t||S#t$r||cYSwxYwN)r __getitem__KeyError __missing__)rkeys r rzdefaultdict.__getitem__sR -''c222 - - -'',,,,, -s ??cd|jt||x||<}|Sr)rr)rrvalues r rzdefaultdict.__missing__s6#+smm# $ 4 4 6 6 6DILr cr|jd}n|jf}t||dd|fS)N)rtypeitems)rargss r __reduce__zdefaultdict.__reduce__%s<#++,::tT4= =r c*|Sr)__copy__rs r copyzdefaultdict.copy,s==?? "r c>t||j|Sr)r rr&s r r%zdefaultdict.__copy__/s4::d2D99 9r cddl}t||j||S)Nr)r'r rdeepcopyr!)rmemor's r __deepcopy__zdefaultdict.__deepcopy__2sA KKK4::d2"mmDJJLL99;; ;r chd|jt|S)Nzdefaultdict({}, {}))formatrr__repr__r&s r r/zdefaultdict.__repr__7s1(//0D,0MM$,?,?AA Ar r) __name__ __module__ __qualname__rrrr#r'r%r,r/rr r r r s 3 3 3 3 - - -      > > > # # # : : : ; ; ;  A A A A Ar r c eZdZdZdZdZdS)_symbolc"|x|_|_dS)zConstruct a new named symbol.N)r0name)rr6s r rz_symbol.__init__>s$((  r c t|jffSr)symbolr6r&s r r#z_symbol.__reduce__Bs |##r c|jSr)r6r&s r r/z_symbol.__repr__Es yr N)r0r1r2rr#r/rr r r4r4<sA)))$$$r r4r8ceZdZdZiZdZdS)r8a?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. c |j|S#t$r+|j|t|cYSwxYwr)symbolsr setdefaultr4)clsr6s r __new__zsymbol.__new__ZsS ?;t$ $ ? ? ?;))$ >> > > > ?s 2AAN)r0r1r2__doc__r<r?rr r r8r8Js4  G?????r c.t|dr(t|jt|jfSt|dr(t|jt|jfSt |tr|St|S)N__func__im_func)ridrB__self__rCim_self isinstancetext)objs r hashable_identityrJgssJ3<  "S\"2"233 i 3;CK11 C   #wwr ceZdZdZdS)annotatable_weakrefz7A weakref.ref that supports custom instance attributes.N)r0r1r2r@rr r rLrLusAAAAr rLNc t|rt||}nt||}|D]\}}t ||||S)zReturn an annotated weak ref.)r callable_referencerLr!setattr)rcallback annotationsweakrrs r referencerSysk5!&(33"6844!''))"" Uc5!!!! Kr ct|dr|jt||St|dr|jt||St ||S)z@Return an annotated weak ref, supporting bound instance methods.rFN)target on_deleterE)rrFrrErL)rrPs r rNrNslvy!!Efn&@!8DDDD  $ $E)D!8DDDD vx 0 00r ceZdZdZdZdZdS) lazy_propertyz(A @property that is only evaluated once.c,||_|j|_dSr) _deferredr@)rdeferreds r rzlazy_property.__init__s!' r cn||S||}t||jj||Sr)rZrOr0)rrIr>rs r __get__zlazy_property.__get__s9 ;Ks##T^,e444 r N)r0r1r2r@rr]rr r rXrXs822(((r rXr)weakrefrblinker._saferefrr NameError collectionsr rrr4r0r8strunicoderHrJ WeakTypesrLrSrNrXrr r res //////+ HH+++++++++ ,A'''''''*A)A)A)A)A)Ad)A)A)A)A)AX     f   ?????V???. >DD DDD$ % BBBBB#BBB1111     F     s&'9 A%%A/.A/