grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 6ûÜX�ã @sœddlmZyddlmZWn ek r<ddlmZYnXeƒZGdd„deƒZGdd„de ƒZ dd „e j Dƒe _ Gd d „d e ƒZ d d „e j Dƒe _ d S)é)ÚRLock)Ú DictMixin)ÚMappingc@s<eZdZdZdZdd„Zdd„Zdd„Zd d „Zd d „Z dS) ÚLazyDictz"Dictionary populated on first use.Nc CsB|jdkr4tjƒz|jdkr&|jƒWdtjƒX|j|jƒS)N)ÚdataÚ _fill_lockÚacquireÚ_fillÚreleaseÚupper)ÚselfÚkey©rú/usr/lib/python3.6/lazy.pyÚ __getitem__s    zLazyDict.__getitem__c Cs>|jdkr4tjƒz|jdkr&|jƒWdtjƒX||jkS)N)rrrr r )r r rrrÚ __contains__s    zLazyDict.__contains__c Cs>|jdkr4tjƒz|jdkr&|jƒWdtjƒXt|jƒS)N)rrrr r Úiter)r rrrÚ__iter__$s    zLazyDict.__iter__c Cs>|jdkr4tjƒz|jdkr&|jƒWdtjƒXt|jƒS)N)rrrr r Úlen)r rrrÚ__len__.s    zLazyDict.__len__c Cs>|jdkr4tjƒz|jdkr&|jƒWdtjƒX|jjƒS)N)rrrr r Úkeys)r rrrr8s    z LazyDict.keys) Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrrrrrrrr s    rc&@sjeZdZdZdddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'g&Zd+d)d*„Zd(S),ÚLazyListzList populated on first use.Ú__str__Ú__repr__Ú __unicode__Ú__hash__Ú __sizeof__Ú__cmp__Ú__lt__Ú__le__Ú__eq__Ú__ne__Ú__gt__Ú__ge__ÚappendÚcountÚindexÚextendÚinsertÚpopÚremoveÚreverseÚsortÚ__add__Ú__radd__Ú__iadd__Ú__mul__Ú__rmul__Ú__imul__rrÚ __nonzero__rÚ __setitem__Ú __delitem__rÚ __reversed__Z __getslice__Z __setslice__Z __delslice__Ncs^ˆdkrtƒSGdd„dtƒ‰ˆg‰‡‡‡fdd„}xˆjD]}tˆ|||ƒƒq.LazyListN)rrrrrrrrWsrcs‡‡‡‡fdd„}|S)Nc sdtjƒz:tˆƒdkr@tj|ˆjƒƒxˆjD]}tˆ|ƒq.WWdtjƒXt tˆƒ|f|ž|ŽS)Nr) rrrÚlistr+r-Ú_propsÚdelattrr Úgetattr)r ÚargsÚkwÚ method_name)rÚclsÚ fill_iterÚnamerrÚ_lazy]s   z-LazyList.__new__..lazy.._lazyr)rDrE)rrBrC)rDrÚlazy\s zLazyList.__new__..lazy)r;r<Úsetattr)rBrCrFrDZnew_listr)rrBrCrÚ__new__Ps zLazyList.__new__)N)rrrrr<rHrrrrrCs    rcCsg|]}tt|ƒr|‘qSr)Úhasattrr;)Ú.0Úproprrrú rsrLc0@seZdZdZd5Zd6d3d4„Zd2S)7ÚLazySetzSet populated on first use.rrrrr r!r"r#r$r%r&r'rrr7rr8r9rÚ__sub__Ú__and__Ú__xor__Ú__or__Ú__rsub__Ú__rand__Ú__rxor__Ú__ror__Ú__isub__Ú__iand__Ú__ixor__Ú__ior__ÚaddÚclearÚcopyÚ differenceÚdifference_updateÚdiscardÚ intersectionÚintersection_updateÚ isdisjointÚissubsetÚ issupersetr-r.Úsymmetric_differenceÚsymmetric_difference_updateÚunionÚupdateNcs^ˆdkrtƒSGdd„dtƒ‰ˆg‰‡‡‡fdd„}xˆjD]}tˆ|||ƒƒq.LazySetN)rrrrrrrrMŒsrMcs‡‡‡‡fdd„}|S)Nc srtjƒzHtˆƒdkrNxˆjƒD]}tj||ƒq WxˆjD]}tˆ|ƒq)r r?r@ÚirA)rMrBrCrDrrrE’s   z,LazySet.__new__..lazy.._lazyr)rDrE)rMrBrC)rDrrF‘s zLazySet.__new__..lazy)rir<rG)rBrCrFrDZnew_setr)rMrBrCrrH‡s zLazySet.__new__)0rrrrr r!r"r#r$r%r&r'rrr7rr8r9rrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdr-r.rerfrgrh)N)rrrrr<rHrrrrrMusrMcCsg|]}tt|ƒr|‘qSr)rIri)rJrKrrrrL¨sN)Z threadingrÚUserDictrÚ ImportErrorÚ collectionsrrrr;rr<rirMrrrrÚs 6/3