Source code for memoize.entry

"""
[Internal use only] Contains implementation of cache entry.
"""

import datetime

from typing import Any

CacheKey = str
CachedValue = Any


[docs]class CacheEntry: """Implementation of cache entry used internally""" def __init__(self, created: datetime.datetime, update_after: datetime.datetime, expires_after: datetime.datetime, value: CachedValue) -> None: self.value = value self.created = created self.update_after = update_after self.expires_after = expires_after self.__hashable = (self.value, self.created, self.update_after, self.expires_after) def __repr__(self) -> str: return "CacheEntry[value={value},created={created},update_after={update_after},expires_after={expires_after}]" \ .format(value=self.value, created=self.created, update_after=self.update_after, expires_after=self.expires_after) def __str__(self) -> str: return self.__repr__() def __eq__(self, o) -> bool: return self.__hashable.__eq__(o.__hashable) if isinstance(o, CacheEntry) else False def __hash__(self) -> int: return hash(self.__hashable)