3 M(ÌY1ã@s@dZddlmZd ZGdd„deƒZeƒfZdd„Zdd„Z d S) z'Key functions for memoizing decorators.é)Úabsolute_importÚhashkeyÚtypedkeyc@s:eZdZdZejfdd„Zejfdd„Zejfdd„ZdS)Ú _HashedTupleNcCs |j}|dkr||ƒ|_}|S)N)Ú_HashedTuple__hashvalue)ÚselfÚhashÚ hashvalue©r ú=/private/tmp/pip-build-nl73fm5q/cachetools/cachetools/keys.pyÚ__hash__ sz_HashedTuple.__hash__cCst|||ƒƒS)N)r)rÚotherÚaddr r r Ú__add__sz_HashedTuple.__add__cCst|||ƒƒS)N)r)rr rr r r Ú__radd__sz_HashedTuple.__radd__)Ú__name__Ú __module__Ú __qualname__rÚtupler rrr r r r rsrcOs*|rt|tt|jƒƒtƒƒSt|ƒSdS)z8Return a cache key for the specified hashable arguments.N)rÚsumÚsortedÚitemsÚ_kwmark)ÚargsÚkwargsr r r rscOsBt||Ž}|tdd„|Dƒƒ7}|tdd„t|jƒƒDƒƒ7}|S)z>Return a typed cache key for the specified hashable arguments.css|]}t|ƒVqdS)N)Útype)Ú.0Úvr r r ú )sztypedkey..css|]\}}t|ƒVqdS)N)r)rÚ_rr r r r*s)rrrr)rrÚkeyr r r r%s N)rr) Ú__doc__Ú __future__rÚ__all__rrÚobjectrrrr r r r Ús