slipstream.interfaces ===================== .. py:module:: slipstream.interfaces .. autoapi-nested-parse:: Slipstream interfaces. Attributes ---------- .. autoapisummary:: slipstream.interfaces.Key Classes ------- .. autoapisummary:: slipstream.interfaces.ICodec slipstream.interfaces.CacheMeta slipstream.interfaces.ICache Module Contents --------------- .. py:type:: Key :canonical: str | int | float | bytes | bool .. py:class:: ICodec Base class for codecs. .. py:method:: encode(obj: Any) -> bytes :abstractmethod: Serialize object. .. py:method:: decode(s: bytes) -> object :abstractmethod: Deserialize object. .. py:class:: CacheMeta Bases: :py:obj:`abc.ABCMeta` Metaclass adds default functionality to ICache. .. py:class:: ICache Base class for cache implementations. >>> class MyCache(ICache): ... def __init__(self): ... self.db = {} ... def __contains__(self, key: Key) -> bool: ... return key in self.db ... def __delitem__(self, key: Key) -> None: ... del self.db[key] ... def __getitem__(self, key: Key | list[Key]) -> Any: ... return self.db.get(key, None) ... def __setitem__(self, key: Key, val: Any) -> None: ... self.db[key] = val >>> cache = MyCache() >>> cache['prize'] = '🏆' >>> cache['prize'] '🏆' >>> del cache['prize'] >>> 'prize' in cache False