3 M(ÌYýã@s4ddlmZddlZddlmZGdd„deƒZdS)é)Úabsolute_importNé)ÚCachec@s6eZdZdZejddfdd„Zedd„ƒZdd„ZdS) ÚRRCachez-Random Replacement (RR) cache implementation.NcCstj||||ƒ||_dS)N)rÚ__init__Ú_RRCache__choice)ÚselfÚmaxsizeÚchoiceÚmissingÚ getsizeof©r ú;/private/tmp/pip-build-nl73fm5q/cachetools/cachetools/rr.pyr szRRCache.__init__cCs|jS)z(The `choice` function used by the cache.)r)rr r rr szRRCache.choicec CsJy|jt|ƒƒ}Wn$tk r6td|jjƒ‚YnX||j|ƒfSdS)z/Remove and return a random `(key, value)` pair.z %s is emptyN)rÚlistÚ IndexErrorÚKeyErrorÚ __class__Ú__name__Úpop)rÚkeyr r rÚpopitems zRRCache.popitem) rÚ __module__Ú __qualname__Ú__doc__Úrandomr rÚpropertyrr r r rrs   r)Ú __future__rrÚcacherrr r r rÚs