DialCache Python API

Generated with pydoc from bae1e5e. Use your browser's Find command to locate a symbol.

dialcache

Python Library Documentation: package dialcache

NAME
    dialcache - DialCache: explicit scopes, layered caching, and portable Redis frames.

PACKAGE CONTENTS
    _callbacks
    _shadow_log
    cache
    clock
    config
    context
    errors
    key
    local
    metrics
    protocol
    redis
    serializer

CLASSES
    builtins.Exception(builtins.BaseException)
        dialcache.errors.DialCacheError
            dialcache.errors.ConfigError(dialcache.errors.DialCacheError, builtins.ValueError)
            dialcache.errors.FallbackTimeoutError(dialcache.errors.DialCacheError, builtins.TimeoutError)
            dialcache.errors.MissingRemoteError
            dialcache.errors.RemoteReadTimeoutError(dialcache.errors.DialCacheError, builtins.TimeoutError)
            dialcache.errors.UseCaseIsAlreadyRegisteredError
            dialcache.errors.UseCaseNameIsReservedError
    builtins.dict(builtins.object)
        dialcache.key.CacheKeySpec
    builtins.object
        dialcache.cache.DialCache
        dialcache.config.Policy
        dialcache.key.Key
        dialcache.serializer.JsonSerializer
    enum.StrEnum(builtins.str, enum.ReprEnum)
        dialcache.config.CacheLayer
    typing.Protocol(typing.Generic)
        dialcache.serializer.Serializer

    class CacheKeySpec(builtins.dict)
     |  An entity id and the explicit result dimensions selected for a cache key.
     |
     |  Method resolution order:
     |      CacheKeySpec
     |      builtins.dict
     |      builtins.object
     |
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __mutable_keys__ = frozenset({'args', 'id'})
     |
     |  __optional_keys__ = frozenset()
     |
     |  __orig_bases__ = (<function TypedDict>,)
     |
     |  __readonly_keys__ = frozenset()
     |
     |  __required_keys__ = frozenset({'args', 'id'})
     |
     |  __total__ = True
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.dict:
     |
     |  __contains__(self, key, /)
     |      True if the dictionary has the specified key, else False.
     |
     |  __delitem__(self, key, /)
     |      Delete self[key].
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __ior__(self, value, /)
     |      Return self|=value.
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __len__(self, /)
     |      Return len(self).
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __or__(self, value, /)
     |      Return self|value.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __reversed__(self, /)
     |      Return a reverse iterator over the dict keys.
     |
     |  __ror__(self, value, /)
     |      Return value|self.
     |
     |  __setitem__(self, key, value, /)
     |      Set self[key] to value.
     |
     |  __sizeof__(self, /)
     |      Return the size of the dict in memory, in bytes.
     |
     |  clear(self, /)
     |      Remove all items from the dict.
     |
     |  copy(self, /)
     |      Return a shallow copy of the dict.
     |
     |  get(self, key, default=None, /)
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  items(self, /)
     |      Return a set-like object providing a view on the dict's items.
     |
     |  keys(self, /)
     |      Return a set-like object providing a view on the dict's keys.
     |
     |  pop(self, key, default=<unrepresentable>, /)
     |      D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
     |
     |      If the key is not found, return the default if given; otherwise,
     |      raise a KeyError.
     |
     |  popitem(self, /)
     |      Remove and return a (key, value) pair as a 2-tuple.
     |
     |      Pairs are returned in LIFO (last-in, first-out) order.
     |      Raises KeyError if the dict is empty.
     |
     |  setdefault(self, key, default=None, /)
     |      Insert key with a value of default if key is not in the dictionary.
     |
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  update(...)
     |      D.update([E, ]**F) -> None.  Update D from mapping/iterable E and F.
     |      If E is present and has a .keys() method, then does:  for k in E.keys(): D[k] = E[k]
     |      If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
     |      In either case, this is followed by: for k in F:  D[k] = F[k]
     |
     |  values(self, /)
     |      Return an object providing a view on the dict's values.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from builtins.dict:
     |
     |  __class_getitem__(object, /)
     |      dicts are generic over two types, signifying (respectively) the types of their keys and values
     |
     |  fromkeys(iterable, value=None, /)
     |      Create a new dictionary with keys from iterable and values set to value.
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.dict:
     |
     |  __new__(*args, **kwargs) class method of builtins.dict
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from builtins.dict:
     |
     |  __hash__ = None

    class CacheLayer(enum.StrEnum)
     |  CacheLayer(*values)
     |
     |  Method resolution order:
     |      CacheLayer
     |      enum.StrEnum
     |      builtins.str
     |      enum.ReprEnum
     |      enum.Enum
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __format__(self, format_spec, /) from builtins.str
     |      Return a formatted version of the string as described by format_spec.
     |
     |  __new__(cls, value) from enum.Enum
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  __str__(self, /) from builtins.str
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  LOCAL = <CacheLayer.LOCAL: 'local'>
     |
     |  REMOTE = <CacheLayer.REMOTE: 'remote'>
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from enum.StrEnum:
     |
     |  __repr__(self) from enum.Enum
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.str:
     |
     |  __add__(self, value, /)
     |      Return self+value.
     |
     |  __contains__(self, key, /)
     |      Return bool(key in self).
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __getnewargs__(self, /)
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __len__(self, /)
     |      Return len(self).
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __mod__(self, value, /)
     |      Return self%value.
     |
     |  __mul__(self, value, /)
     |      Return self*value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __rmod__(self, value, /)
     |      Return value%self.
     |
     |  __rmul__(self, value, /)
     |      Return value*self.
     |
     |  __sizeof__(self, /)
     |      Return the size of the string in memory, in bytes.
     |
     |  capitalize(self, /)
     |      Return a capitalized version of the string.
     |
     |      More specifically, make the first character have upper case and the
     |      rest lower case.
     |
     |  casefold(self, /)
     |      Return a version of the string suitable for caseless comparisons.
     |
     |  center(self, width, fillchar=' ', /)
     |      Return a centered string of length width.
     |
     |      Padding is done using the specified fill character (default is
     |      a space).
     |
     |  count(self, sub[, start[, end]], /)
     |      Return the number of non-overlapping occurrences of substring sub in string S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.
     |
     |  encode(self, /, encoding='utf-8', errors='strict')
     |      Encode the string using the codec registered for encoding.
     |
     |      encoding
     |        The encoding in which to encode the string.
     |      errors
     |        The error handling scheme to use for encoding errors.
     |        The default is 'strict' meaning that encoding errors raise a
     |        UnicodeEncodeError.  Other possible values are 'ignore', 'replace'
     |        and 'xmlcharrefreplace' as well as any other name registered with
     |        codecs.register_error that can handle UnicodeEncodeErrors.
     |
     |  endswith(self, suffix[, start[, end]], /)
     |      Return True if the string ends with the specified suffix, False otherwise.
     |
     |      suffix
     |        A string or a tuple of strings to try.
     |      start
     |        Optional start position. Default: start of the string.
     |      end
     |        Optional stop position. Default: end of the string.
     |
     |  expandtabs(self, /, tabsize=8)
     |      Return a copy where all tab characters are expanded using spaces.
     |
     |      If tabsize is not given, a tab size of 8 characters is assumed.
     |
     |  find(self, sub[, start[, end]], /)
     |      Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.  Return -1 on failure.
     |
     |  format(self, /, *args, **kwargs)
     |      Return a formatted version of the string, using substitutions from args and kwargs.
     |      The substitutions are identified by braces ('{' and '}').
     |
     |  format_map(self, mapping, /)
     |      Return a formatted version of the string, using substitutions from mapping.
     |      The substitutions are identified by braces ('{' and '}').
     |
     |  index(self, sub[, start[, end]], /)
     |      Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.  Raises ValueError when the substring is not found.
     |
     |  isalnum(self, /)
     |      Return True if the string is an alpha-numeric string, False otherwise.
     |
     |      A string is alpha-numeric if all characters in the string are
     |      alpha-numeric and there is at least one character in the string.
     |
     |  isalpha(self, /)
     |      Return True if the string is an alphabetic string, False otherwise.
     |
     |      A string is alphabetic if all characters in the string are
     |      alphabetic and there is at least one character in the string.
     |
     |  isascii(self, /)
     |      Return True if all characters in the string are ASCII, False otherwise.
     |
     |      ASCII characters have code points in the range U+0000-U+007F.
     |      Empty string is ASCII too.
     |
     |  isdecimal(self, /)
     |      Return True if the string is a decimal string, False otherwise.
     |
     |      A string is a decimal string if all characters in the string are
     |      decimal and there is at least one character in the string.
     |
     |  isdigit(self, /)
     |      Return True if the string is a digit string, False otherwise.
     |
     |      A string is a digit string if all characters in the string are
     |      digits and there is at least one character in the string.
     |
     |  isidentifier(self, /)
     |      Return True if the string is a valid Python identifier, False otherwise.
     |
     |      Call keyword.iskeyword(s) to test whether string s is a reserved
     |      identifier, such as "def" or "class".
     |
     |  islower(self, /)
     |      Return True if the string is a lowercase string, False otherwise.
     |
     |      A string is lowercase if all cased characters in the string are
     |      lowercase and there is at least one cased character in the string.
     |
     |  isnumeric(self, /)
     |      Return True if the string is a numeric string, False otherwise.
     |
     |      A string is numeric if all characters in the string are numeric and
     |      there is at least one character in the string.
     |
     |  isprintable(self, /)
     |      Return True if all characters in the string are printable, False otherwise.
     |
     |      A character is printable if repr() may use it in its output.
     |
     |  isspace(self, /)
     |      Return True if the string is a whitespace string, False otherwise.
     |
     |      A string is whitespace if all characters in the string are
     |      whitespace and there is at least one character in the string.
     |
     |  istitle(self, /)
     |      Return True if the string is a title-cased string, False otherwise.
     |
     |      In a title-cased string, upper- and title-case characters may only
     |      follow uncased characters and lowercase characters only cased ones.
     |
     |  isupper(self, /)
     |      Return True if the string is an uppercase string, False otherwise.
     |
     |      A string is uppercase if all cased characters in the string are
     |      uppercase and there is at least one cased character in the string.
     |
     |  join(self, iterable, /)
     |      Concatenate any number of strings.
     |
     |      The string whose method is called is inserted in between each given
     |      string.  The result is returned as a new string.
     |
     |      Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
     |
     |  ljust(self, width, fillchar=' ', /)
     |      Return a left-justified string of length width.
     |
     |      Padding is done using the specified fill character (default is
     |      a space).
     |
     |  lower(self, /)
     |      Return a copy of the string converted to lowercase.
     |
     |  lstrip(self, chars=None, /)
     |      Return a copy of the string with leading whitespace removed.
     |
     |      If chars is given and not None, remove characters in chars instead.
     |
     |  partition(self, sep, /)
     |      Partition the string into three parts using the given separator.
     |
     |      This will search for the separator in the string.  If the separator
     |      is found, returns a 3-tuple containing the part before the
     |      separator, the separator itself, and the part after it.
     |
     |      If the separator is not found, returns a 3-tuple containing
     |      the original string and two empty strings.
     |
     |  removeprefix(self, prefix, /)
     |      Return a str with the given prefix string removed if present.
     |
     |      If the string starts with the prefix string, return
     |      string[len(prefix):].  Otherwise, return a copy of the original
     |      string.
     |
     |  removesuffix(self, suffix, /)
     |      Return a str with the given suffix string removed if present.
     |
     |      If the string ends with the suffix string and that suffix is not
     |      empty, return string[:-len(suffix)].  Otherwise, return a copy of
     |      the original string.
     |
     |  replace(self, old, new, /, count=-1)
     |      Return a copy with all occurrences of substring old replaced by new.
     |
     |        count
     |          Maximum number of occurrences to replace.
     |          -1 (the default value) means replace all occurrences.
     |
     |      If the optional argument count is given, only the first count occurrences are
     |      replaced.
     |
     |  rfind(self, sub[, start[, end]], /)
     |      Return the highest index in S where substring sub is found, such that sub is contained within S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.  Return -1 on failure.
     |
     |  rindex(self, sub[, start[, end]], /)
     |      Return the highest index in S where substring sub is found, such that sub is contained within S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.  Raises ValueError when the substring is not found.
     |
     |  rjust(self, width, fillchar=' ', /)
     |      Return a right-justified string of length width.
     |
     |      Padding is done using the specified fill character (default is
     |      a space).
     |
     |  rpartition(self, sep, /)
     |      Partition the string into three parts using the given separator.
     |
     |      This will search for the separator in the string, starting at the
     |      end.  If the separator is found, returns a 3-tuple containing the
     |      part before the separator, the separator itself, and the part after
     |      it.
     |
     |      If the separator is not found, returns a 3-tuple containing two
     |      empty strings and the original string.
     |
     |  rsplit(self, /, sep=None, maxsplit=-1)
     |      Return a list of the substrings in the string, using sep as the separator string.
     |
     |        sep
     |          The separator used to split the string.
     |
     |          When set to None (the default value), will split on any
     |          whitespace character (including \n \r \t \f and spaces) and
     |          will discard empty strings from the result.
     |        maxsplit
     |          Maximum number of splits.
     |          -1 (the default value) means no limit.
     |
     |      Splitting starts at the end of the string and works to the front.
     |
     |  rstrip(self, chars=None, /)
     |      Return a copy of the string with trailing whitespace removed.
     |
     |      If chars is given and not None, remove characters in chars instead.
     |
     |  split(self, /, sep=None, maxsplit=-1)
     |      Return a list of the substrings in the string, using sep as the separator string.
     |
     |        sep
     |          The separator used to split the string.
     |
     |          When set to None (the default value), will split on any
     |          whitespace character (including \n \r \t \f and spaces) and
     |          will discard empty strings from the result.
     |        maxsplit
     |          Maximum number of splits.
     |          -1 (the default value) means no limit.
     |
     |      Splitting starts at the front of the string and works to the end.
     |
     |      Note, str.split() is mainly useful for data that has been
     |      intentionally delimited.  With natural text that includes
     |      punctuation, consider using the regular expression module.
     |
     |  splitlines(self, /, keepends=False)
     |      Return a list of the lines in the string, breaking at line boundaries.
     |
     |      Line breaks are not included in the resulting list unless keepends
     |      is given and true.
     |
     |  startswith(self, prefix[, start[, end]], /)
     |      Return True if the string starts with the specified prefix, False otherwise.
     |
     |      prefix
     |        A string or a tuple of strings to try.
     |      start
     |        Optional start position. Default: start of the string.
     |      end
     |        Optional stop position. Default: end of the string.
     |
     |  strip(self, chars=None, /)
     |      Return a copy of the string with leading and trailing whitespace removed.
     |
     |      If chars is given and not None, remove characters in chars instead.
     |
     |  swapcase(self, /)
     |      Convert uppercase characters to lowercase and lowercase characters to uppercase.
     |
     |  title(self, /)
     |      Return a version of the string where each word is titlecased.
     |
     |      More specifically, words start with uppercased characters and all
     |      remaining cased characters have lower case.
     |
     |  translate(self, table, /)
     |      Replace each character in the string using the given translation table.
     |
     |        table
     |          Translation table, which must be a mapping of Unicode ordinals
     |          to Unicode ordinals, strings, or None.
     |
     |      The table must implement lookup/indexing via __getitem__, for
     |      instance a dictionary or list.  If this operation raises
     |      LookupError, the character is left untouched.  Characters mapped to
     |      None are deleted.
     |
     |  upper(self, /)
     |      Return a copy of the string converted to uppercase.
     |
     |  zfill(self, width, /)
     |      Pad a numeric string with zeros on the left, to fill a field of the given width.
     |
     |      The string is never truncated.
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.str:
     |
     |  maketrans(x, y=<unrepresentable>, z=<unrepresentable>, /)
     |      Return a translation table usable for str.translate().
     |
     |      If there is only one argument, it must be a dictionary mapping
     |      Unicode ordinals (integers) or characters to Unicode ordinals,
     |      strings or None.  Character keys will be then converted to ordinals.
     |      If there are two arguments, they must be strings of equal length,
     |      and in the resulting dictionary, each character in x will be mapped
     |      to the character at the same position in y.  If there is a third
     |      argument, it must be a string, whose characters will be mapped to
     |      None in the result.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from enum.Enum:
     |
     |  __dir__(self)
     |      Returns public methods and other interesting attributes.
     |
     |  __reduce_ex__(self, proto)
     |      Helper for pickle.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |
     |  name
     |      The name of the Enum member.
     |
     |  value
     |      The value of the Enum member.
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumType:
     |
     |  __members__
     |      Returns a mapping of member name->value.
     |
     |      This mapping lists all enum members, including aliases.  Note that
     |      this is a read-only view of the internal mapping.

    class ConfigError(DialCacheError, builtins.ValueError)
     |  Invalid static configuration or malformed runtime policy.
     |
     |  Method resolution order:
     |      ConfigError
     |      DialCacheError
     |      builtins.ValueError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Data descriptors inherited from DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.ValueError:
     |
     |  __new__(*args, **kwargs) class method of builtins.ValueError
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class DialCache(builtins.object)
     |  DialCache(
     |      *,
     |      namespace: str = 'urn',
     |      redis: Any = None,
     |      policy_provider: Callable[[Key], Any] | None = None,
     |      metrics: Metrics | None = None,
     |      logger: Any = None,
     |      clock: Any = None,
     |      local_max_size: int = 10000,
     |      local_store: Any = None,
     |      shadow_max_in_flight: int = 1,
     |      read_timeout_ms: int = 50,
     |      should_attempt_stale_recovery: Callable[[BaseException], bool] | None = None,
     |      serializer: Any = None,
     |      compression: Any = True
     |  ) -> None
     |
     |  Explicitly enabled caching for one asyncio event loop.
     |
     |  The application owns Redis connections. Instances have independent scopes,
     |  LRU storage and in-flight tables. Values held in memory are shared by
     |  reference and should be treated as immutable.
     |
     |  ``logger`` receives ``warning(message, details)`` calls and defaults to
     |  the ``dialcache`` standard-library logger. Nothing it raises reaches the
     |  caller, and an awaitable it returns for any warning is driven in a task
     |  of its own. A confirmed shadow-mismatch warning without an earlier
     |  ``hook_error`` or ``render_error`` records its ``shadowMismatchLogging``
     |  outcome after the call returns, or after that awaitable settles:
     |  ``logger_error`` when either raises.
     |
     |  Methods defined here:
     |
     |  __init__(
     |      self,
     |      *,
     |      namespace: str = 'urn',
     |      redis: Any = None,
     |      policy_provider: Callable[[Key], Any] | None = None,
     |      metrics: Metrics | None = None,
     |      logger: Any = None,
     |      clock: Any = None,
     |      local_max_size: int = 10000,
     |      local_store: Any = None,
     |      shadow_max_in_flight: int = 1,
     |      read_timeout_ms: int = 50,
     |      should_attempt_stale_recovery: Callable[[BaseException], bool] | None = None,
     |      serializer: Any = None,
     |      compression: Any = True
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  async aget(self, key: Key, fallback: Callable[[], Any], **options: Any) -> Any
     |      Structured-key form of get_or_load, familiar to gcache callers.
     |
     |  async ainvalidate = invalidate_remote(self, key_type: str, id: Any, future_buffer_ms: int = 0) -> None
     |
     |  cached(
     |      self,
     |      *,
     |      key_type: str,
     |      cache_key: Callable[..., Mapping[str, object] | KeyScalar | Key] | None = None,
     |      id_arg: str | tuple[str, Callable[[Any], Any]] | None = None,
     |      use_case: str | None = None,
     |      arg_adapters: Mapping[str, Callable[[Any], Any]] | None = None,
     |      ignore_args: list[str] | tuple[str, ...] = (),
     |      **options: Any
     |  ) -> _CachedDecorator
     |      Decorate a loader with explicit cache_key selection (recommended) or id_arg.
     |
     |      The wrapper is always awaitable, including for a synchronous loader.
     |      Key callbacks and argument adapters are never called while disabled.
     |      An explicit selector receives the original positional and keyword
     |      arguments, including self for methods. Loader defaults are not injected:
     |      declare matching defaults on the selector when callers can omit them.
     |
     |      Options, shared with :meth:`get_or_load`: ``default_config``,
     |      ``fallback_timeout_ms``, ``serializer``, ``track_for_invalidation``,
     |      ``shadow_comparator``, ``shadow_mismatch_diff`` and
     |      ``should_attempt_stale_recovery``. ``shadow_mismatch_diff(cached,
     |      source)`` replaces the built-in JSON difference computation of
     |      confirmed-mismatch warnings, which runs only while
     |      ``shadow.mismatch_logging.diff`` is above ``"off"``. It returns a list
     |      of mappings, each with a str ``"path"`` (an RFC 6901 JSON Pointer) and
     |      optional ``"cached"`` and ``"source"`` sides; a missing key or
     |      ``UNDEFINED`` omits a side, and ``None`` is JSON null. Like the
     |      comparator it must be synchronous, deterministic, side-effect-free,
     |      non-mutating and bounded. A raise, an awaitable, or a result that is
     |      not such a list logs None for the paths and the diff; DialCache never
     |      falls back to the built-in computation. Non-callable callbacks raise
     |      ConfigError.
     |
     |  disable(self) -> Any
     |      Temporarily disable caching, preserving a live outer request memo.
     |
     |  enable(self, enabled: bool = True) -> Any
     |      Enable a request scope; nested scopes share the live outer memo.
     |
     |  get_coalescing_state(self) -> dict[str, Any]
     |      Report live process leaders, followers and oldest leader age.
     |
     |  async get_or_load(
     |      self,
     |      load: Callable[[], T | Awaitable[T]],
     |      *,
     |      key: Any = None,
     |      key_type: str,
     |      use_case: str,
     |      key_selector: Callable[[], Any] | None = None,
     |      **options: Any
     |  ) -> T
     |      Read a key or run its loader. Repeated inline use-case names are valid.
     |
     |      Options are those of :meth:`cached`, validated on every call.
     |
     |  async invalidate_remote(self, key_type: str, id: Any, future_buffer_ms: int = 0) -> None
     |      Write an entity fence after its source mutation commits; failures raise.
     |
     |  is_enabled(self) -> bool
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class DialCacheError(builtins.Exception)
     |  Base class for errors owned by DialCache.
     |
     |  Method resolution order:
     |      DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    DialCacheKeyConfig = class Policy(builtins.object)
     |  DialCacheKeyConfig(
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |
     |  Per-use-case policy; omitted fields inherit in runtime overlays.
     |
     |  ``None`` is a supplied value, never an omitted leaf. Constructing a Policy
     |  validates container shapes, boolean switches and read deadlines. TTL,
     |  ramp and optional shadow/recovery leaves remain available for narrow
     |  runtime fail-open resolution. Static operation setup uses
     |  :func:`validate_static_policy` to reject invalid defaults before calls.
     |
     |  ``shadow`` takes ``ramp`` and the confirmed-mismatch warning content:
     |  ``mismatch_logging={"value": bool, "diff": "off" | "paths" | "values"}``,
     |  both leaves off when omitted, and ``log_mismatches``, shorthand for
     |  ``{"value": True, "diff": "values"}`` when true and for both leaves off
     |  when false. A leaf written beside the shorthand overrides what it expands
     |  to; a runtime overlay's leaves then win leaf by leaf. The camelCase names
     |  ``mismatchLogging`` and ``logMismatches`` are accepted.
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __post_init__(self) -> None
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  disabled() -> Policy
     |      Disable every inherited serving, recovery and shadow path.
     |
     |  enabled(ttl_sec: int) -> Policy
     |
     |  from_mapping(value: Mapping[str, Any]) -> Policy
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'coalesce': 'Any', 'ramp': 'Mapping[str, Any]', 're...
     |
     |  __dataclass_fields__ = {'coalesce': Field(name='coalesce',type='Any',d...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('ttl_sec', 'ramp', 'request_local', 'coalesce', 'sta...
     |
     |  coalesce = UNSET
     |
     |  remote_read_timeout_ms = UNSET
     |
     |  request_local = UNSET
     |
     |  shadow = UNSET
     |
     |  stale_on_error_max_age_sec = UNSET

    class FallbackTimeoutError(DialCacheError, builtins.TimeoutError)
     |  FallbackTimeoutError(use_case: str, timeout_ms: int) -> None
     |
     |  The enabled source invocation exceeded its DialCache deadline.
     |
     |  Method resolution order:
     |      FallbackTimeoutError
     |      DialCacheError
     |      builtins.TimeoutError
     |      builtins.OSError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str, timeout_ms: int) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.OSError:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.OSError:
     |
     |  __new__(*args, **kwargs) class method of builtins.OSError
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.OSError:
     |
     |  characters_written
     |
     |  errno
     |      POSIX exception code
     |
     |  filename
     |      exception filename
     |
     |  filename2
     |      second exception filename
     |
     |  strerror
     |      exception strerror
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class JsonSerializer(builtins.object)
     |  Compact native JSON, plus the cross-language top-level undefined sentinel.
     |
     |  Nonfinite numbers and values outside JSON's domain are rejected. For custom
     |  Python types, supply a Serializer with an explicit portable representation.
     |
     |  Methods defined here:
     |
     |  dump(self, value: object) -> str
     |
     |  load(self, value: Payload) -> object
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class Key(builtins.object)
     |  Key(
     |      namespace: str,
     |      key_type: str,
     |      id: object,
     |      use_case: str,
     |      args: Sequence[tuple[str, str]] = (),
     |      tracked: bool = False
     |  ) -> None
     |
     |  Key(namespace: 'str', key_type: 'str', id: 'object', use_case: 'str', args: 'Sequence[tuple[str, str]]' = (), tracked: 'bool' = False)
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      namespace: str,
     |      key_type: str,
     |      id: object,
     |      use_case: str,
     |      args: Sequence[tuple[str, str]] = (),
     |      tracked: bool = False
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __post_init__(self) -> None
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  __str__(self) -> str
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |
     |  urn
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'args': 'Sequence[tuple[str, str]]', 'id': 'object'...
     |
     |  __dataclass_fields__ = {'args': Field(name='args',type='Sequence[tuple...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('namespace', 'key_type', 'id', 'use_case', 'args', '...
     |
     |  args = ()
     |
     |  tracked = False

    KeyConfig = class Policy(builtins.object)
     |  KeyConfig(
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |
     |  Per-use-case policy; omitted fields inherit in runtime overlays.
     |
     |  ``None`` is a supplied value, never an omitted leaf. Constructing a Policy
     |  validates container shapes, boolean switches and read deadlines. TTL,
     |  ramp and optional shadow/recovery leaves remain available for narrow
     |  runtime fail-open resolution. Static operation setup uses
     |  :func:`validate_static_policy` to reject invalid defaults before calls.
     |
     |  ``shadow`` takes ``ramp`` and the confirmed-mismatch warning content:
     |  ``mismatch_logging={"value": bool, "diff": "off" | "paths" | "values"}``,
     |  both leaves off when omitted, and ``log_mismatches``, shorthand for
     |  ``{"value": True, "diff": "values"}`` when true and for both leaves off
     |  when false. A leaf written beside the shorthand overrides what it expands
     |  to; a runtime overlay's leaves then win leaf by leaf. The camelCase names
     |  ``mismatchLogging`` and ``logMismatches`` are accepted.
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __post_init__(self) -> None
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  disabled() -> Policy
     |      Disable every inherited serving, recovery and shadow path.
     |
     |  enabled(ttl_sec: int) -> Policy
     |
     |  from_mapping(value: Mapping[str, Any]) -> Policy
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'coalesce': 'Any', 'ramp': 'Mapping[str, Any]', 're...
     |
     |  __dataclass_fields__ = {'coalesce': Field(name='coalesce',type='Any',d...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('ttl_sec', 'ramp', 'request_local', 'coalesce', 'sta...
     |
     |  coalesce = UNSET
     |
     |  remote_read_timeout_ms = UNSET
     |
     |  request_local = UNSET
     |
     |  shadow = UNSET
     |
     |  stale_on_error_max_age_sec = UNSET

    class MissingRemoteError(DialCacheError)
     |  An explicit remote maintenance operation has no remote adapter.
     |
     |  Method resolution order:
     |      MissingRemoteError
     |      DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Data descriptors inherited from DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class Policy(builtins.object)
     |  Policy(
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |
     |  Per-use-case policy; omitted fields inherit in runtime overlays.
     |
     |  ``None`` is a supplied value, never an omitted leaf. Constructing a Policy
     |  validates container shapes, boolean switches and read deadlines. TTL,
     |  ramp and optional shadow/recovery leaves remain available for narrow
     |  runtime fail-open resolution. Static operation setup uses
     |  :func:`validate_static_policy` to reject invalid defaults before calls.
     |
     |  ``shadow`` takes ``ramp`` and the confirmed-mismatch warning content:
     |  ``mismatch_logging={"value": bool, "diff": "off" | "paths" | "values"}``,
     |  both leaves off when omitted, and ``log_mismatches``, shorthand for
     |  ``{"value": True, "diff": "values"}`` when true and for both leaves off
     |  when false. A leaf written beside the shorthand overrides what it expands
     |  to; a runtime overlay's leaves then win leaf by leaf. The camelCase names
     |  ``mismatchLogging`` and ``logMismatches`` are accepted.
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __post_init__(self) -> None
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  disabled() -> Policy
     |      Disable every inherited serving, recovery and shadow path.
     |
     |  enabled(ttl_sec: int) -> Policy
     |
     |  from_mapping(value: Mapping[str, Any]) -> Policy
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'coalesce': 'Any', 'ramp': 'Mapping[str, Any]', 're...
     |
     |  __dataclass_fields__ = {'coalesce': Field(name='coalesce',type='Any',d...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('ttl_sec', 'ramp', 'request_local', 'coalesce', 'sta...
     |
     |  coalesce = UNSET
     |
     |  remote_read_timeout_ms = UNSET
     |
     |  request_local = UNSET
     |
     |  shadow = UNSET
     |
     |  stale_on_error_max_age_sec = UNSET

    RedisReadTimeoutError = class RemoteReadTimeoutError(DialCacheError, builtins.TimeoutError)
     |  RedisReadTimeoutError(use_case: str, timeout_ms: int) -> None
     |
     |  DialCache stopped waiting for a remote read.
     |
     |  Method resolution order:
     |      RemoteReadTimeoutError
     |      DialCacheError
     |      builtins.TimeoutError
     |      builtins.OSError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str, timeout_ms: int) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.OSError:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.OSError:
     |
     |  __new__(*args, **kwargs) class method of builtins.OSError
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.OSError:
     |
     |  characters_written
     |
     |  errno
     |      POSIX exception code
     |
     |  filename
     |      exception filename
     |
     |  filename2
     |      second exception filename
     |
     |  strerror
     |      exception strerror
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class RemoteReadTimeoutError(DialCacheError, builtins.TimeoutError)
     |  RemoteReadTimeoutError(use_case: str, timeout_ms: int) -> None
     |
     |  DialCache stopped waiting for a remote read.
     |
     |  Method resolution order:
     |      RemoteReadTimeoutError
     |      DialCacheError
     |      builtins.TimeoutError
     |      builtins.OSError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str, timeout_ms: int) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.OSError:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.OSError:
     |
     |  __new__(*args, **kwargs) class method of builtins.OSError
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.OSError:
     |
     |  characters_written
     |
     |  errno
     |      POSIX exception code
     |
     |  filename
     |      exception filename
     |
     |  filename2
     |      second exception filename
     |
     |  strerror
     |      exception strerror
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class Serializer(typing.Protocol)
     |  Serializer(*args, **kwargs)
     |
     |  Payloads are immutable. Asynchronous methods need an application deadline.
     |
     |  Method resolution order:
     |      Serializer
     |      typing.Protocol
     |      typing.Generic
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
     |
     |  dump(self, value: T) -> Payload | Awaitable[Payload]
     |
     |  load(self, value: Payload) -> T | Awaitable[T]
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __subclasshook__ = _proto_hook(other) from typing
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  __orig_bases__ = (typing.Protocol[~T],)
     |
     |  __parameters__ = (~T,)
     |
     |  __protocol_attrs__ = {'dump', 'load'}
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Protocol:
     |
     |  __init_subclass__(*args, **kwargs)
     |      Function to initialize subclasses.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Generic:
     |
     |  __class_getitem__(...)
     |      Parameterizes a generic class.
     |
     |      At least, parameterizing a generic class is the *main* thing this
     |      method does.  For example, for some generic class `Foo`, this is
     |      called when we do `Foo[int]` - there, with `cls=Foo` and
     |      `params=int`.
     |
     |      However, note that this method is also called when defining generic
     |      classes in the first place with `class Foo[T]: ...`.

    class UseCaseIsAlreadyRegisteredError(DialCacheError)
     |  UseCaseIsAlreadyRegisteredError(use_case: str) -> None
     |
     |  Method resolution order:
     |      UseCaseIsAlreadyRegisteredError
     |      DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class UseCaseNameIsReservedError(DialCacheError)
     |  UseCaseNameIsReservedError(use_case: str) -> None
     |
     |  Method resolution order:
     |      UseCaseNameIsReservedError
     |      DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

FUNCTIONS
    normalize_args(args: Mapping[str, object]) -> tuple[tuple[str, str], ...]
        Omit UNDEFINED and sort names by UTF-16 units; None remains literal null.

DATA
    KeyScalar = str | int | float | bool | None
    UNDEFINED = UNDEFINED
    UNSET = UNSET
    __all__ = ['DialCache', 'Policy', 'KeyConfig', 'DialCacheKeyConfig', '...

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/__init__.py

dialcache.cache

Python Library Documentation: module dialcache.cache in dialcache

NAME
    dialcache.cache - Async DialCache engine: admission, captured policy, traversal and ownership.

DESCRIPTION
    The implementation follows formal/guides/SPEC.md. External work is kept alive when a
    deadline stops a caller waiting: timing out never grants late work permission
    to publish a value or cancels another caller's shared source.

CLASSES
    builtins.object
        AbortSignal
        DialCache

    class AbortSignal(builtins.object)
     |  AbortSignal() -> None
     |
     |  Cooperative read cancellation; adapters may register an abort callback.
     |
     |  Methods defined here:
     |
     |  __init__(self) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  abort(self) -> None
     |
     |  add_callback(self, callback: Callable[[], Any]) -> None
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class DialCache(builtins.object)
     |  DialCache(
     |      *,
     |      namespace: str = 'urn',
     |      redis: Any = None,
     |      policy_provider: Callable[[Key], Any] | None = None,
     |      metrics: Metrics | None = None,
     |      logger: Any = None,
     |      clock: Any = None,
     |      local_max_size: int = 10000,
     |      local_store: Any = None,
     |      shadow_max_in_flight: int = 1,
     |      read_timeout_ms: int = 50,
     |      should_attempt_stale_recovery: Callable[[BaseException], bool] | None = None,
     |      serializer: Any = None,
     |      compression: Any = True
     |  ) -> None
     |
     |  Explicitly enabled caching for one asyncio event loop.
     |
     |  The application owns Redis connections. Instances have independent scopes,
     |  LRU storage and in-flight tables. Values held in memory are shared by
     |  reference and should be treated as immutable.
     |
     |  ``logger`` receives ``warning(message, details)`` calls and defaults to
     |  the ``dialcache`` standard-library logger. Nothing it raises reaches the
     |  caller, and an awaitable it returns for any warning is driven in a task
     |  of its own. A confirmed shadow-mismatch warning without an earlier
     |  ``hook_error`` or ``render_error`` records its ``shadowMismatchLogging``
     |  outcome after the call returns, or after that awaitable settles:
     |  ``logger_error`` when either raises.
     |
     |  Methods defined here:
     |
     |  __init__(
     |      self,
     |      *,
     |      namespace: str = 'urn',
     |      redis: Any = None,
     |      policy_provider: Callable[[Key], Any] | None = None,
     |      metrics: Metrics | None = None,
     |      logger: Any = None,
     |      clock: Any = None,
     |      local_max_size: int = 10000,
     |      local_store: Any = None,
     |      shadow_max_in_flight: int = 1,
     |      read_timeout_ms: int = 50,
     |      should_attempt_stale_recovery: Callable[[BaseException], bool] | None = None,
     |      serializer: Any = None,
     |      compression: Any = True
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  async aget(self, key: Key, fallback: Callable[[], Any], **options: Any) -> Any
     |      Structured-key form of get_or_load, familiar to gcache callers.
     |
     |  async ainvalidate = invalidate_remote(self, key_type: str, id: Any, future_buffer_ms: int = 0) -> None
     |
     |  cached(
     |      self,
     |      *,
     |      key_type: str,
     |      cache_key: Callable[..., Mapping[str, object] | KeyScalar | Key] | None = None,
     |      id_arg: str | tuple[str, Callable[[Any], Any]] | None = None,
     |      use_case: str | None = None,
     |      arg_adapters: Mapping[str, Callable[[Any], Any]] | None = None,
     |      ignore_args: list[str] | tuple[str, ...] = (),
     |      **options: Any
     |  ) -> _CachedDecorator
     |      Decorate a loader with explicit cache_key selection (recommended) or id_arg.
     |
     |      The wrapper is always awaitable, including for a synchronous loader.
     |      Key callbacks and argument adapters are never called while disabled.
     |      An explicit selector receives the original positional and keyword
     |      arguments, including self for methods. Loader defaults are not injected:
     |      declare matching defaults on the selector when callers can omit them.
     |
     |      Options, shared with :meth:`get_or_load`: ``default_config``,
     |      ``fallback_timeout_ms``, ``serializer``, ``track_for_invalidation``,
     |      ``shadow_comparator``, ``shadow_mismatch_diff`` and
     |      ``should_attempt_stale_recovery``. ``shadow_mismatch_diff(cached,
     |      source)`` replaces the built-in JSON difference computation of
     |      confirmed-mismatch warnings, which runs only while
     |      ``shadow.mismatch_logging.diff`` is above ``"off"``. It returns a list
     |      of mappings, each with a str ``"path"`` (an RFC 6901 JSON Pointer) and
     |      optional ``"cached"`` and ``"source"`` sides; a missing key or
     |      ``UNDEFINED`` omits a side, and ``None`` is JSON null. Like the
     |      comparator it must be synchronous, deterministic, side-effect-free,
     |      non-mutating and bounded. A raise, an awaitable, or a result that is
     |      not such a list logs None for the paths and the diff; DialCache never
     |      falls back to the built-in computation. Non-callable callbacks raise
     |      ConfigError.
     |
     |  disable(self) -> Any
     |      Temporarily disable caching, preserving a live outer request memo.
     |
     |  enable(self, enabled: bool = True) -> Any
     |      Enable a request scope; nested scopes share the live outer memo.
     |
     |  get_coalescing_state(self) -> dict[str, Any]
     |      Report live process leaders, followers and oldest leader age.
     |
     |  async get_or_load(
     |      self,
     |      load: Callable[[], T | Awaitable[T]],
     |      *,
     |      key: Any = None,
     |      key_type: str,
     |      use_case: str,
     |      key_selector: Callable[[], Any] | None = None,
     |      **options: Any
     |  ) -> T
     |      Read a key or run its loader. Repeated inline use-case names are valid.
     |
     |      Options are those of :meth:`cached`, validated on every call.
     |
     |  async invalidate_remote(self, key_type: str, id: Any, future_buffer_ms: int = 0) -> None
     |      Write an entity fence after its source mutation commits; failures raise.
     |
     |  is_enabled(self) -> bool
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

DATA
    KEY_MAX_BYTES = 2048
    KeyScalar = str | int | float | bool | None
    MAX_SAFE = 9007199254740991
    Metrics = dialcache.metrics.MetricsObserver | collections.abc.Callable...
    P = ~P
    SHADOW_MISMATCH_WARNING = 'DialCache shadow validation mismatch: %s'
    T = ~T
    UNSET = UNSET

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/cache.py

dialcache.config

Python Library Documentation: module dialcache.config in dialcache

NAME
    dialcache.config - Sparse runtime policy and the portable DialCache configuration domains.

CLASSES
    builtins.object
        LayerResolution
        MismatchLogging
        Policy
    enum.StrEnum(builtins.str, enum.ReprEnum)
        CacheLayer

    class CacheLayer(enum.StrEnum)
     |  CacheLayer(*values)
     |
     |  Method resolution order:
     |      CacheLayer
     |      enum.StrEnum
     |      builtins.str
     |      enum.ReprEnum
     |      enum.Enum
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __format__(self, format_spec, /) from builtins.str
     |      Return a formatted version of the string as described by format_spec.
     |
     |  __new__(cls, value) from enum.Enum
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  __str__(self, /) from builtins.str
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  LOCAL = <CacheLayer.LOCAL: 'local'>
     |
     |  REMOTE = <CacheLayer.REMOTE: 'remote'>
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from enum.StrEnum:
     |
     |  __repr__(self) from enum.Enum
     |      Return repr(self).
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.str:
     |
     |  __add__(self, value, /)
     |      Return self+value.
     |
     |  __contains__(self, key, /)
     |      Return bool(key in self).
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __getnewargs__(self, /)
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __hash__(self, /)
     |      Return hash(self).
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __len__(self, /)
     |      Return len(self).
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __mod__(self, value, /)
     |      Return self%value.
     |
     |  __mul__(self, value, /)
     |      Return self*value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __rmod__(self, value, /)
     |      Return value%self.
     |
     |  __rmul__(self, value, /)
     |      Return value*self.
     |
     |  __sizeof__(self, /)
     |      Return the size of the string in memory, in bytes.
     |
     |  capitalize(self, /)
     |      Return a capitalized version of the string.
     |
     |      More specifically, make the first character have upper case and the
     |      rest lower case.
     |
     |  casefold(self, /)
     |      Return a version of the string suitable for caseless comparisons.
     |
     |  center(self, width, fillchar=' ', /)
     |      Return a centered string of length width.
     |
     |      Padding is done using the specified fill character (default is
     |      a space).
     |
     |  count(self, sub[, start[, end]], /)
     |      Return the number of non-overlapping occurrences of substring sub in string S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.
     |
     |  encode(self, /, encoding='utf-8', errors='strict')
     |      Encode the string using the codec registered for encoding.
     |
     |      encoding
     |        The encoding in which to encode the string.
     |      errors
     |        The error handling scheme to use for encoding errors.
     |        The default is 'strict' meaning that encoding errors raise a
     |        UnicodeEncodeError.  Other possible values are 'ignore', 'replace'
     |        and 'xmlcharrefreplace' as well as any other name registered with
     |        codecs.register_error that can handle UnicodeEncodeErrors.
     |
     |  endswith(self, suffix[, start[, end]], /)
     |      Return True if the string ends with the specified suffix, False otherwise.
     |
     |      suffix
     |        A string or a tuple of strings to try.
     |      start
     |        Optional start position. Default: start of the string.
     |      end
     |        Optional stop position. Default: end of the string.
     |
     |  expandtabs(self, /, tabsize=8)
     |      Return a copy where all tab characters are expanded using spaces.
     |
     |      If tabsize is not given, a tab size of 8 characters is assumed.
     |
     |  find(self, sub[, start[, end]], /)
     |      Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.  Return -1 on failure.
     |
     |  format(self, /, *args, **kwargs)
     |      Return a formatted version of the string, using substitutions from args and kwargs.
     |      The substitutions are identified by braces ('{' and '}').
     |
     |  format_map(self, mapping, /)
     |      Return a formatted version of the string, using substitutions from mapping.
     |      The substitutions are identified by braces ('{' and '}').
     |
     |  index(self, sub[, start[, end]], /)
     |      Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.  Raises ValueError when the substring is not found.
     |
     |  isalnum(self, /)
     |      Return True if the string is an alpha-numeric string, False otherwise.
     |
     |      A string is alpha-numeric if all characters in the string are
     |      alpha-numeric and there is at least one character in the string.
     |
     |  isalpha(self, /)
     |      Return True if the string is an alphabetic string, False otherwise.
     |
     |      A string is alphabetic if all characters in the string are
     |      alphabetic and there is at least one character in the string.
     |
     |  isascii(self, /)
     |      Return True if all characters in the string are ASCII, False otherwise.
     |
     |      ASCII characters have code points in the range U+0000-U+007F.
     |      Empty string is ASCII too.
     |
     |  isdecimal(self, /)
     |      Return True if the string is a decimal string, False otherwise.
     |
     |      A string is a decimal string if all characters in the string are
     |      decimal and there is at least one character in the string.
     |
     |  isdigit(self, /)
     |      Return True if the string is a digit string, False otherwise.
     |
     |      A string is a digit string if all characters in the string are
     |      digits and there is at least one character in the string.
     |
     |  isidentifier(self, /)
     |      Return True if the string is a valid Python identifier, False otherwise.
     |
     |      Call keyword.iskeyword(s) to test whether string s is a reserved
     |      identifier, such as "def" or "class".
     |
     |  islower(self, /)
     |      Return True if the string is a lowercase string, False otherwise.
     |
     |      A string is lowercase if all cased characters in the string are
     |      lowercase and there is at least one cased character in the string.
     |
     |  isnumeric(self, /)
     |      Return True if the string is a numeric string, False otherwise.
     |
     |      A string is numeric if all characters in the string are numeric and
     |      there is at least one character in the string.
     |
     |  isprintable(self, /)
     |      Return True if all characters in the string are printable, False otherwise.
     |
     |      A character is printable if repr() may use it in its output.
     |
     |  isspace(self, /)
     |      Return True if the string is a whitespace string, False otherwise.
     |
     |      A string is whitespace if all characters in the string are
     |      whitespace and there is at least one character in the string.
     |
     |  istitle(self, /)
     |      Return True if the string is a title-cased string, False otherwise.
     |
     |      In a title-cased string, upper- and title-case characters may only
     |      follow uncased characters and lowercase characters only cased ones.
     |
     |  isupper(self, /)
     |      Return True if the string is an uppercase string, False otherwise.
     |
     |      A string is uppercase if all cased characters in the string are
     |      uppercase and there is at least one cased character in the string.
     |
     |  join(self, iterable, /)
     |      Concatenate any number of strings.
     |
     |      The string whose method is called is inserted in between each given
     |      string.  The result is returned as a new string.
     |
     |      Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
     |
     |  ljust(self, width, fillchar=' ', /)
     |      Return a left-justified string of length width.
     |
     |      Padding is done using the specified fill character (default is
     |      a space).
     |
     |  lower(self, /)
     |      Return a copy of the string converted to lowercase.
     |
     |  lstrip(self, chars=None, /)
     |      Return a copy of the string with leading whitespace removed.
     |
     |      If chars is given and not None, remove characters in chars instead.
     |
     |  partition(self, sep, /)
     |      Partition the string into three parts using the given separator.
     |
     |      This will search for the separator in the string.  If the separator
     |      is found, returns a 3-tuple containing the part before the
     |      separator, the separator itself, and the part after it.
     |
     |      If the separator is not found, returns a 3-tuple containing
     |      the original string and two empty strings.
     |
     |  removeprefix(self, prefix, /)
     |      Return a str with the given prefix string removed if present.
     |
     |      If the string starts with the prefix string, return
     |      string[len(prefix):].  Otherwise, return a copy of the original
     |      string.
     |
     |  removesuffix(self, suffix, /)
     |      Return a str with the given suffix string removed if present.
     |
     |      If the string ends with the suffix string and that suffix is not
     |      empty, return string[:-len(suffix)].  Otherwise, return a copy of
     |      the original string.
     |
     |  replace(self, old, new, /, count=-1)
     |      Return a copy with all occurrences of substring old replaced by new.
     |
     |        count
     |          Maximum number of occurrences to replace.
     |          -1 (the default value) means replace all occurrences.
     |
     |      If the optional argument count is given, only the first count occurrences are
     |      replaced.
     |
     |  rfind(self, sub[, start[, end]], /)
     |      Return the highest index in S where substring sub is found, such that sub is contained within S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.  Return -1 on failure.
     |
     |  rindex(self, sub[, start[, end]], /)
     |      Return the highest index in S where substring sub is found, such that sub is contained within S[start:end].
     |
     |      Optional arguments start and end are interpreted as in slice
     |      notation.  Raises ValueError when the substring is not found.
     |
     |  rjust(self, width, fillchar=' ', /)
     |      Return a right-justified string of length width.
     |
     |      Padding is done using the specified fill character (default is
     |      a space).
     |
     |  rpartition(self, sep, /)
     |      Partition the string into three parts using the given separator.
     |
     |      This will search for the separator in the string, starting at the
     |      end.  If the separator is found, returns a 3-tuple containing the
     |      part before the separator, the separator itself, and the part after
     |      it.
     |
     |      If the separator is not found, returns a 3-tuple containing two
     |      empty strings and the original string.
     |
     |  rsplit(self, /, sep=None, maxsplit=-1)
     |      Return a list of the substrings in the string, using sep as the separator string.
     |
     |        sep
     |          The separator used to split the string.
     |
     |          When set to None (the default value), will split on any
     |          whitespace character (including \n \r \t \f and spaces) and
     |          will discard empty strings from the result.
     |        maxsplit
     |          Maximum number of splits.
     |          -1 (the default value) means no limit.
     |
     |      Splitting starts at the end of the string and works to the front.
     |
     |  rstrip(self, chars=None, /)
     |      Return a copy of the string with trailing whitespace removed.
     |
     |      If chars is given and not None, remove characters in chars instead.
     |
     |  split(self, /, sep=None, maxsplit=-1)
     |      Return a list of the substrings in the string, using sep as the separator string.
     |
     |        sep
     |          The separator used to split the string.
     |
     |          When set to None (the default value), will split on any
     |          whitespace character (including \n \r \t \f and spaces) and
     |          will discard empty strings from the result.
     |        maxsplit
     |          Maximum number of splits.
     |          -1 (the default value) means no limit.
     |
     |      Splitting starts at the front of the string and works to the end.
     |
     |      Note, str.split() is mainly useful for data that has been
     |      intentionally delimited.  With natural text that includes
     |      punctuation, consider using the regular expression module.
     |
     |  splitlines(self, /, keepends=False)
     |      Return a list of the lines in the string, breaking at line boundaries.
     |
     |      Line breaks are not included in the resulting list unless keepends
     |      is given and true.
     |
     |  startswith(self, prefix[, start[, end]], /)
     |      Return True if the string starts with the specified prefix, False otherwise.
     |
     |      prefix
     |        A string or a tuple of strings to try.
     |      start
     |        Optional start position. Default: start of the string.
     |      end
     |        Optional stop position. Default: end of the string.
     |
     |  strip(self, chars=None, /)
     |      Return a copy of the string with leading and trailing whitespace removed.
     |
     |      If chars is given and not None, remove characters in chars instead.
     |
     |  swapcase(self, /)
     |      Convert uppercase characters to lowercase and lowercase characters to uppercase.
     |
     |  title(self, /)
     |      Return a version of the string where each word is titlecased.
     |
     |      More specifically, words start with uppercased characters and all
     |      remaining cased characters have lower case.
     |
     |  translate(self, table, /)
     |      Replace each character in the string using the given translation table.
     |
     |        table
     |          Translation table, which must be a mapping of Unicode ordinals
     |          to Unicode ordinals, strings, or None.
     |
     |      The table must implement lookup/indexing via __getitem__, for
     |      instance a dictionary or list.  If this operation raises
     |      LookupError, the character is left untouched.  Characters mapped to
     |      None are deleted.
     |
     |  upper(self, /)
     |      Return a copy of the string converted to uppercase.
     |
     |  zfill(self, width, /)
     |      Pad a numeric string with zeros on the left, to fill a field of the given width.
     |
     |      The string is never truncated.
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.str:
     |
     |  maketrans(x, y=<unrepresentable>, z=<unrepresentable>, /)
     |      Return a translation table usable for str.translate().
     |
     |      If there is only one argument, it must be a dictionary mapping
     |      Unicode ordinals (integers) or characters to Unicode ordinals,
     |      strings or None.  Character keys will be then converted to ordinals.
     |      If there are two arguments, they must be strings of equal length,
     |      and in the resulting dictionary, each character in x will be mapped
     |      to the character at the same position in y.  If there is a third
     |      argument, it must be a string, whose characters will be mapped to
     |      None in the result.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from enum.Enum:
     |
     |  __dir__(self)
     |      Returns public methods and other interesting attributes.
     |
     |  __reduce_ex__(self, proto)
     |      Helper for pickle.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |
     |  name
     |      The name of the Enum member.
     |
     |  value
     |      The value of the Enum member.
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumType:
     |
     |  __members__
     |      Returns a mapping of member name->value.
     |
     |      This mapping lists all enum members, including aliases.  Note that
     |      this is a read-only view of the internal mapping.

    DialCacheKeyConfig = class Policy(builtins.object)
     |  DialCacheKeyConfig(
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |
     |  Per-use-case policy; omitted fields inherit in runtime overlays.
     |
     |  ``None`` is a supplied value, never an omitted leaf. Constructing a Policy
     |  validates container shapes, boolean switches and read deadlines. TTL,
     |  ramp and optional shadow/recovery leaves remain available for narrow
     |  runtime fail-open resolution. Static operation setup uses
     |  :func:`validate_static_policy` to reject invalid defaults before calls.
     |
     |  ``shadow`` takes ``ramp`` and the confirmed-mismatch warning content:
     |  ``mismatch_logging={"value": bool, "diff": "off" | "paths" | "values"}``,
     |  both leaves off when omitted, and ``log_mismatches``, shorthand for
     |  ``{"value": True, "diff": "values"}`` when true and for both leaves off
     |  when false. A leaf written beside the shorthand overrides what it expands
     |  to; a runtime overlay's leaves then win leaf by leaf. The camelCase names
     |  ``mismatchLogging`` and ``logMismatches`` are accepted.
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __post_init__(self) -> None
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  disabled() -> Policy
     |      Disable every inherited serving, recovery and shadow path.
     |
     |  enabled(ttl_sec: int) -> Policy
     |
     |  from_mapping(value: Mapping[str, Any]) -> Policy
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'coalesce': 'Any', 'ramp': 'Mapping[str, Any]', 're...
     |
     |  __dataclass_fields__ = {'coalesce': Field(name='coalesce',type='Any',d...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('ttl_sec', 'ramp', 'request_local', 'coalesce', 'sta...
     |
     |  coalesce = UNSET
     |
     |  remote_read_timeout_ms = UNSET
     |
     |  request_local = UNSET
     |
     |  shadow = UNSET
     |
     |  stale_on_error_max_age_sec = UNSET

    KeyConfig = class Policy(builtins.object)
     |  KeyConfig(
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |
     |  Per-use-case policy; omitted fields inherit in runtime overlays.
     |
     |  ``None`` is a supplied value, never an omitted leaf. Constructing a Policy
     |  validates container shapes, boolean switches and read deadlines. TTL,
     |  ramp and optional shadow/recovery leaves remain available for narrow
     |  runtime fail-open resolution. Static operation setup uses
     |  :func:`validate_static_policy` to reject invalid defaults before calls.
     |
     |  ``shadow`` takes ``ramp`` and the confirmed-mismatch warning content:
     |  ``mismatch_logging={"value": bool, "diff": "off" | "paths" | "values"}``,
     |  both leaves off when omitted, and ``log_mismatches``, shorthand for
     |  ``{"value": True, "diff": "values"}`` when true and for both leaves off
     |  when false. A leaf written beside the shorthand overrides what it expands
     |  to; a runtime overlay's leaves then win leaf by leaf. The camelCase names
     |  ``mismatchLogging`` and ``logMismatches`` are accepted.
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __post_init__(self) -> None
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  disabled() -> Policy
     |      Disable every inherited serving, recovery and shadow path.
     |
     |  enabled(ttl_sec: int) -> Policy
     |
     |  from_mapping(value: Mapping[str, Any]) -> Policy
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'coalesce': 'Any', 'ramp': 'Mapping[str, Any]', 're...
     |
     |  __dataclass_fields__ = {'coalesce': Field(name='coalesce',type='Any',d...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('ttl_sec', 'ramp', 'request_local', 'coalesce', 'sta...
     |
     |  coalesce = UNSET
     |
     |  remote_read_timeout_ms = UNSET
     |
     |  request_local = UNSET
     |
     |  shadow = UNSET
     |
     |  stale_on_error_max_age_sec = UNSET

    class LayerResolution(builtins.object)
     |  LayerResolution(
     |      status: str,
     |      reason: str | None = None,
     |      ttl_sec: int | None = None,
     |      ramp: float | None = None,
     |      stale_on_error_max_age_sec: int | None = None,
     |      stale_on_error_config_error: bool = False
     |  ) -> None
     |
     |  LayerResolution(status: 'str', reason: 'str | None' = None, ttl_sec: 'int | None' = None, ramp: 'float | None' = None, stale_on_error_max_age_sec: 'int | None' = None, stale_on_error_config_error: 'bool' = False)
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      status: str,
     |      reason: str | None = None,
     |      ttl_sec: int | None = None,
     |      ramp: float | None = None,
     |      stale_on_error_max_age_sec: int | None = None,
     |      stale_on_error_config_error: bool = False
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |
     |  enabled
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'ramp': 'float | None', 'reason': 'str | None', 'st...
     |
     |  __dataclass_fields__ = {'ramp': Field(name='ramp',type='float | None',...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('status', 'reason', 'ttl_sec', 'ramp', 'stale_on_err...
     |
     |  ramp = None
     |
     |  reason = None
     |
     |  stale_on_error_config_error = False
     |
     |  stale_on_error_max_age_sec = None
     |
     |  ttl_sec = None

    class MismatchLogging(builtins.object)
     |  MismatchLogging(value: bool, diff: str, invalid: bool) -> None
     |
     |  The effective mismatch-logging leaves and whether any written input was invalid.
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(self, value: bool, diff: str, invalid: bool) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'diff': 'str', 'invalid': 'bool', 'value': 'bool'}
     |
     |  __dataclass_fields__ = {'diff': Field(name='diff',type='str',default=<...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('value', 'diff', 'invalid')

    class Policy(builtins.object)
     |  Policy(
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |
     |  Per-use-case policy; omitted fields inherit in runtime overlays.
     |
     |  ``None`` is a supplied value, never an omitted leaf. Constructing a Policy
     |  validates container shapes, boolean switches and read deadlines. TTL,
     |  ramp and optional shadow/recovery leaves remain available for narrow
     |  runtime fail-open resolution. Static operation setup uses
     |  :func:`validate_static_policy` to reject invalid defaults before calls.
     |
     |  ``shadow`` takes ``ramp`` and the confirmed-mismatch warning content:
     |  ``mismatch_logging={"value": bool, "diff": "off" | "paths" | "values"}``,
     |  both leaves off when omitted, and ``log_mismatches``, shorthand for
     |  ``{"value": True, "diff": "values"}`` when true and for both leaves off
     |  when false. A leaf written beside the shorthand overrides what it expands
     |  to; a runtime overlay's leaves then win leaf by leaf. The camelCase names
     |  ``mismatchLogging`` and ``logMismatches`` are accepted.
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      ttl_sec: Mapping[str, Any] = <factory>,
     |      ramp: Mapping[str, Any] = <factory>,
     |      request_local: Any = UNSET,
     |      coalesce: Any = UNSET,
     |      stale_on_error_max_age_sec: Any = UNSET,
     |      remote_read_timeout_ms: Any = UNSET,
     |      shadow: Any = UNSET
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __post_init__(self) -> None
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  disabled() -> Policy
     |      Disable every inherited serving, recovery and shadow path.
     |
     |  enabled(ttl_sec: int) -> Policy
     |
     |  from_mapping(value: Mapping[str, Any]) -> Policy
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'coalesce': 'Any', 'ramp': 'Mapping[str, Any]', 're...
     |
     |  __dataclass_fields__ = {'coalesce': Field(name='coalesce',type='Any',d...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('ttl_sec', 'ramp', 'request_local', 'coalesce', 'sta...
     |
     |  coalesce = UNSET
     |
     |  remote_read_timeout_ms = UNSET
     |
     |  request_local = UNSET
     |
     |  shadow = UNSET
     |
     |  stale_on_error_max_age_sec = UNSET

FUNCTIONS
    cache_ttl_sec_to_ms(value: Any) -> int

    deterministic_ramp_sample(urn: str, layer: str) -> float
        Stable FNV-1a over UTF-16 code units, identical across DialCache ports.

    deterministic_shadow_ramp_sample(urn: str) -> float

    expand_mismatch_logging(shadow: Mapping[str, Any]) -> dict[str, Any]
        Expand one shadow group's shorthand into the leaves it stands for.

        ``log_mismatches=True`` expands to ``{"value": True, "diff": "values"}`` and
        ``False`` to ``{"value": False, "diff": "off"}``; then the leaves written in
        the same group's ``mismatch_logging`` override them. A malformed shorthand
        expands to both leaves off and is marked ``invalid``. An omitted leaf stays
        omitted, and written leaves pass through unvalidated.

    is_safe_integer(value: Any) -> bool

    is_supported_cache_ttl_sec(value: Any) -> bool

    merge_policy(defaults: PolicyInput, runtime: PolicyInput) -> Policy | None
        Snapshot a sparse provider reply over the operation's static policy.

        A whole-provider ``None`` inherits the static policy. Invalid explicitly
        supplied leaves stay supplied, including ``None``, so runtime resolution
        cannot accidentally enable an inherited layer.

    normalize_policy(value: PolicyInput) -> Policy | None

    resolve_layer(policy: Policy | None, urn: str, layer: str | CacheLayer) -> LayerResolution
        Resolve one serving layer; malformed leaves disable only that layer.

    resolve_mismatch_logging(shadow: Mapping[str, Any]) -> MismatchLogging
        Resolve the effective mismatch-logging leaves of one shadow group.

        Each leaf validates independently: an omitted leaf is off, an invalid leaf
        acts off, and ``invalid`` reports that the group owes one config_resolution.

    validate_deadline_ms(value: Any, name: str = 'deadline') -> int

    validate_static_policy(value: PolicyInput) -> Policy | None
        Validate and capture operation defaults before registering the use case.

DATA
    DEFAULT_FALLBACK_TIMEOUT_MS = 60000
    DEFAULT_REMOTE_READ_TIMEOUT_MS = 50
    MAX_CACHE_TTL_SEC = 31536000
    MAX_SAFE_INTEGER = 9007199254740991
    MAX_SUPPORTED_DURATION_MS = 31536000000
    MAX_TIMER_DELAY_MS = 2147483647
    MAX_TRACKED_REDIS_VALUE_TTL_MS = 3600000
    MISMATCH_DIFF_LEVELS = ('off', 'paths', 'values')
    PolicyInput = dialcache.config.Policy | collections.abc.Mapping[str, t...
    UNSET = UNSET

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/config.py

dialcache.key

Python Library Documentation: module dialcache.key in dialcache

NAME
    dialcache.key - Portable DialCache identity, URI escaping, and deterministic cohorts.

CLASSES
    builtins.dict(builtins.object)
        CacheKeySpec
    builtins.object
        Key

    class CacheKeySpec(builtins.dict)
     |  An entity id and the explicit result dimensions selected for a cache key.
     |
     |  Method resolution order:
     |      CacheKeySpec
     |      builtins.dict
     |      builtins.object
     |
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __mutable_keys__ = frozenset({'args', 'id'})
     |
     |  __optional_keys__ = frozenset()
     |
     |  __orig_bases__ = (<function TypedDict>,)
     |
     |  __readonly_keys__ = frozenset()
     |
     |  __required_keys__ = frozenset({'args', 'id'})
     |
     |  __total__ = True
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.dict:
     |
     |  __contains__(self, key, /)
     |      True if the dictionary has the specified key, else False.
     |
     |  __delitem__(self, key, /)
     |      Delete self[key].
     |
     |  __eq__(self, value, /)
     |      Return self==value.
     |
     |  __ge__(self, value, /)
     |      Return self>=value.
     |
     |  __getitem__(self, key, /)
     |      Return self[key].
     |
     |  __gt__(self, value, /)
     |      Return self>value.
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __ior__(self, value, /)
     |      Return self|=value.
     |
     |  __iter__(self, /)
     |      Implement iter(self).
     |
     |  __le__(self, value, /)
     |      Return self<=value.
     |
     |  __len__(self, /)
     |      Return len(self).
     |
     |  __lt__(self, value, /)
     |      Return self<value.
     |
     |  __ne__(self, value, /)
     |      Return self!=value.
     |
     |  __or__(self, value, /)
     |      Return self|value.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __reversed__(self, /)
     |      Return a reverse iterator over the dict keys.
     |
     |  __ror__(self, value, /)
     |      Return value|self.
     |
     |  __setitem__(self, key, value, /)
     |      Set self[key] to value.
     |
     |  __sizeof__(self, /)
     |      Return the size of the dict in memory, in bytes.
     |
     |  clear(self, /)
     |      Remove all items from the dict.
     |
     |  copy(self, /)
     |      Return a shallow copy of the dict.
     |
     |  get(self, key, default=None, /)
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  items(self, /)
     |      Return a set-like object providing a view on the dict's items.
     |
     |  keys(self, /)
     |      Return a set-like object providing a view on the dict's keys.
     |
     |  pop(self, key, default=<unrepresentable>, /)
     |      D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
     |
     |      If the key is not found, return the default if given; otherwise,
     |      raise a KeyError.
     |
     |  popitem(self, /)
     |      Remove and return a (key, value) pair as a 2-tuple.
     |
     |      Pairs are returned in LIFO (last-in, first-out) order.
     |      Raises KeyError if the dict is empty.
     |
     |  setdefault(self, key, default=None, /)
     |      Insert key with a value of default if key is not in the dictionary.
     |
     |      Return the value for key if key is in the dictionary, else default.
     |
     |  update(...)
     |      D.update([E, ]**F) -> None.  Update D from mapping/iterable E and F.
     |      If E is present and has a .keys() method, then does:  for k in E.keys(): D[k] = E[k]
     |      If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
     |      In either case, this is followed by: for k in F:  D[k] = F[k]
     |
     |  values(self, /)
     |      Return an object providing a view on the dict's values.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from builtins.dict:
     |
     |  __class_getitem__(object, /)
     |      dicts are generic over two types, signifying (respectively) the types of their keys and values
     |
     |  fromkeys(iterable, value=None, /)
     |      Create a new dictionary with keys from iterable and values set to value.
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.dict:
     |
     |  __new__(*args, **kwargs) class method of builtins.dict
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes inherited from builtins.dict:
     |
     |  __hash__ = None

    class Key(builtins.object)
     |  Key(
     |      namespace: str,
     |      key_type: str,
     |      id: object,
     |      use_case: str,
     |      args: Sequence[tuple[str, str]] = (),
     |      tracked: bool = False
     |  ) -> None
     |
     |  Key(namespace: 'str', key_type: 'str', id: 'object', use_case: 'str', args: 'Sequence[tuple[str, str]]' = (), tracked: 'bool' = False)
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      namespace: str,
     |      key_type: str,
     |      id: object,
     |      use_case: str,
     |      args: Sequence[tuple[str, str]] = (),
     |      tracked: bool = False
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __post_init__(self) -> None
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  __str__(self) -> str
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |
     |  urn
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'args': 'Sequence[tuple[str, str]]', 'id': 'object'...
     |
     |  __dataclass_fields__ = {'args': Field(name='args',type='Sequence[tuple...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('namespace', 'key_type', 'id', 'use_case', 'args', '...
     |
     |  args = ()
     |
     |  tracked = False

FUNCTIONS
    encode_component(value: str) -> str

    invalidation_prefix(namespace: str, key_type: str, id: object) -> str

    normalize_args(args: Mapping[str, object]) -> tuple[tuple[str, str], ...]
        Omit UNDEFINED and sort names by UTF-16 units; None remains literal null.

    ramp_hash(key: Key | str, discriminator: str) -> int

    ramp_sample(key: Key | str, discriminator: str) -> float

    scalar_string(value: object) -> str
        JavaScript-compatible scalar spelling; Python integers retain all digits.

        Python's shortest-round-trip float digits use the same nearest-even rule;
        ECMAScript differs in the decimal/exponent presentation thresholds.

DATA
    KeyScalar = str | int | float | bool | None
    NotRequired = typing.NotRequired
        Special typing construct to mark a TypedDict key as potentially missing.

        For example::

            class Movie(TypedDict):
                title: str
                year: NotRequired[int]

            m = Movie(
                title='The Matrix',  # type checker error if key is omitted
                year=1999,
            )

    TypeAlias = typing.TypeAlias
        Special form for marking type aliases.

        TypeAlias can be used to indicate that an assignment should
        be recognized as a proper type alias definition by type
        checkers.

        For example::

            Predicate: TypeAlias = Callable[..., bool]

        It's invalid when used anywhere except as in the example above.

    UNDEFINED = UNDEFINED
    __annotations__ = {'KeyScalar': 'TypeAlias'}
    __conditional_annotations__ = set()

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/key.py

dialcache.serializer

Python Library Documentation: module dialcache.serializer in dialcache

NAME
    dialcache.serializer - Caller-supplied serialization and the portable JSON value binding.

CLASSES
    builtins.object
        JsonSerializer
    typing.Protocol(typing.Generic)
        Serializer

    class JsonSerializer(builtins.object)
     |  Compact native JSON, plus the cross-language top-level undefined sentinel.
     |
     |  Nonfinite numbers and values outside JSON's domain are rejected. For custom
     |  Python types, supply a Serializer with an explicit portable representation.
     |
     |  Methods defined here:
     |
     |  dump(self, value: object) -> str
     |
     |  load(self, value: Payload) -> object
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class Serializer(typing.Protocol)
     |  Serializer(*args, **kwargs)
     |
     |  Payloads are immutable. Asynchronous methods need an application deadline.
     |
     |  Method resolution order:
     |      Serializer
     |      typing.Protocol
     |      typing.Generic
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
     |
     |  dump(self, value: T) -> Payload | Awaitable[Payload]
     |
     |  load(self, value: Payload) -> T | Awaitable[T]
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __subclasshook__ = _proto_hook(other) from typing
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  __orig_bases__ = (typing.Protocol[~T],)
     |
     |  __parameters__ = (~T,)
     |
     |  __protocol_attrs__ = {'dump', 'load'}
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Protocol:
     |
     |  __init_subclass__(*args, **kwargs)
     |      Function to initialize subclasses.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Generic:
     |
     |  __class_getitem__(...)
     |      Parameterizes a generic class.
     |
     |      At least, parameterizing a generic class is the *main* thing this
     |      method does.  For example, for some generic class `Foo`, this is
     |      called when we do `Foo[int]` - there, with `cls=Foo` and
     |      `params=int`.
     |
     |      However, note that this method is also called when defining generic
     |      classes in the first place with `class Foo[T]: ...`.

DATA
    JSON_UNDEFINED_SENTINEL = '__dialcache_json_undefined_v1__'
    Payload = str | bytes
    T = ~T
    UNDEFINED = UNDEFINED

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/serializer.py

dialcache.redis

Python Library Documentation: module dialcache.redis in dialcache

NAME
    dialcache.redis - Semantic Redis boundary and a resource-free adapter for redis.asyncio clients.

DESCRIPTION
    The application owns connections and finite socket/retry budgets. Cancellation
    can stop a Python wait but cannot retract a dispatched Redis command. Writes
    may have executed after a connection error. Invalidation retries the idempotent
    script once with EVAL, preserving its original timestamp. This adapter never
    connects, disconnects, flushes, or closes the borrowed client.

CLASSES
    builtins.object
        InvalidationRequest
        ReadContext
        ReadRequest
        RedisAdapter
        WriteRequest
    typing.Protocol(typing.Generic)
        AbortSignal
        RedisClient

    class AbortSignal(typing.Protocol)
     |  AbortSignal(*args, **kwargs)
     |
     |  Method resolution order:
     |      AbortSignal
     |      typing.Protocol
     |      typing.Generic
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
     |
     |  add_callback(self, callback: Callable[[], Any]) -> None
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __subclasshook__ = _proto_hook(other) from typing
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |
     |  aborted
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  __parameters__ = ()
     |
     |  __protocol_attrs__ = {'aborted', 'add_callback'}
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Protocol:
     |
     |  __init_subclass__(*args, **kwargs)
     |      Function to initialize subclasses.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Generic:
     |
     |  __class_getitem__(...)
     |      Parameterizes a generic class.
     |
     |      At least, parameterizing a generic class is the *main* thing this
     |      method does.  For example, for some generic class `Foo`, this is
     |      called when we do `Foo[int]` - there, with `cls=Foo` and
     |      `params=int`.
     |
     |      However, note that this method is also called when defining generic
     |      classes in the first place with `class Foo[T]: ...`.

    class InvalidationRequest(builtins.object)
     |  InvalidationRequest(
     |      watermark_key: str,
     |      future_buffer_ms: int,
     |      invalidated_at_ms: int
     |  ) -> None
     |
     |  InvalidationRequest(watermark_key: 'str', future_buffer_ms: 'int', invalidated_at_ms: 'int')
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      watermark_key: str,
     |      future_buffer_ms: int,
     |      invalidated_at_ms: int
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'future_buffer_ms': 'int', 'invalidated_at_ms': 'in...
     |
     |  __dataclass_fields__ = {'future_buffer_ms': Field(name='future_buffer_...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('watermark_key', 'future_buffer_ms', 'invalidated_at...

    class ReadContext(builtins.object)
     |  ReadContext(timeout_ms: float, signal: AbortSignal | None = None) -> None
     |
     |  ReadContext(timeout_ms: 'float', signal: 'AbortSignal | None' = None)
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(self, timeout_ms: float, signal: AbortSignal | None = None) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'signal': 'AbortSignal | None', 'timeout_ms': 'floa...
     |
     |  __dataclass_fields__ = {'signal': Field(name='signal',type='AbortSigna...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('timeout_ms', 'signal')
     |
     |  signal = None

    class ReadRequest(builtins.object)
     |  ReadRequest(value_key: str, watermark_key: str | None = None) -> None
     |
     |  ReadRequest(value_key: 'str', watermark_key: 'str | None' = None)
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(self, value_key: str, watermark_key: str | None = None) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'value_key': 'str', 'watermark_key': 'str | None'}
     |
     |  __dataclass_fields__ = {'value_key': Field(name='value_key',type='str'...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('value_key', 'watermark_key')
     |
     |  watermark_key = None

    class RedisAdapter(builtins.object)
     |  RedisAdapter(client: Any) -> None
     |
     |  Borrow a redis.asyncio.Redis or RedisCluster with decode_responses=False.
     |
     |  Tracked Cluster reads require a client constructed for primary-only reads,
     |  with unchanged connection settings and no READONLY connection hook. A
     |  replica-configured client remains usable for untracked reads and mutations.
     |  Tracked MGET is one atomic snapshot, including through client redirects.
     |  ReadContext is informational; core owns its authoritative deadline.
     |
     |  Methods defined here:
     |
     |  __init__(self, client: Any) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  async invalidate(self, request: InvalidationRequest) -> None
     |
     |  async read(self, request: ReadRequest, context: ReadContext | None = None) -> ReadResult
     |
     |  async write(self, request: WriteRequest) -> None
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class RedisClient(typing.Protocol)
     |  RedisClient(*args, **kwargs)
     |
     |  Method resolution order:
     |      RedisClient
     |      typing.Protocol
     |      typing.Generic
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
     |
     |  invalidate(self, request: InvalidationRequest) -> None | Awaitable[None]
     |
     |  read(self, request: ReadRequest, context: ReadContext | None = None) -> ReadResult | Awaitable[ReadResult]
     |
     |  write(self, request: WriteRequest) -> None | Awaitable[None]
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __subclasshook__ = _proto_hook(other) from typing
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  __parameters__ = ()
     |
     |  __protocol_attrs__ = {'invalidate', 'read', 'write'}
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Protocol:
     |
     |  __init_subclass__(*args, **kwargs)
     |      Function to initialize subclasses.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Generic:
     |
     |  __class_getitem__(...)
     |      Parameterizes a generic class.
     |
     |      At least, parameterizing a generic class is the *main* thing this
     |      method does.  For example, for some generic class `Foo`, this is
     |      called when we do `Foo[int]` - there, with `cls=Foo` and
     |      `params=int`.
     |
     |      However, note that this method is also called when defining generic
     |      classes in the first place with `class Foo[T]: ...`.

    class WriteRequest(builtins.object)
     |  WriteRequest(
     |      value_key: str,
     |      cache_ttl_ms: float,
     |      value: Payload,
     |      created_at_ms: int
     |  ) -> None
     |
     |  WriteRequest(value_key: 'str', cache_ttl_ms: 'float', value: 'Payload', created_at_ms: 'int')
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      value_key: str,
     |      cache_ttl_ms: float,
     |      value: Payload,
     |      created_at_ms: int
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'cache_ttl_ms': 'float', 'created_at_ms': 'int', 'v...
     |
     |  __dataclass_fields__ = {'cache_ttl_ms': Field(name='cache_ttl_ms',type...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('value_key', 'cache_ttl_ms', 'value', 'created_at_ms...

DATA
    INVALIDATE_CACHE_SCRIPT = 'local function parse_safe_integer(raw)\n  i...
    INVALIDATE_CACHE_SCRIPT_SHA1 = 'e90603d37a1a3d7a49ae5417bea0d595b94dde...
    Payload = str | bytes
    ReadResult = dialcache.protocol.Frame | dialcache.protocol.Miss

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/redis.py

dialcache.protocol

Python Library Documentation: module dialcache.protocol in dialcache

NAME
    dialcache.protocol - DialCache version-1 frames and payload envelopes, independent of Redis clients.

CLASSES
    builtins.object
        CompressionResult
        DecompressionResult
        Frame
        Miss
    dialcache.errors.DialCacheError(builtins.Exception)
        RedisPayloadEncodingError
        RedisPayloadError
        RedisProtocolError

    class CompressionResult(builtins.object)
     |  CompressionResult(
     |      payload: Payload,
     |      outcome: str,
     |      original_bytes: int,
     |      stored_bytes: int
     |  ) -> None
     |
     |  CompressionResult(payload: 'Payload', outcome: 'str', original_bytes: 'int', stored_bytes: 'int')
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(
     |      self,
     |      payload: Payload,
     |      outcome: str,
     |      original_bytes: int,
     |      stored_bytes: int
     |  ) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'original_bytes': 'int', 'outcome': 'str', 'payload...
     |
     |  __dataclass_fields__ = {'original_bytes': Field(name='original_bytes',...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('payload', 'outcome', 'original_bytes', 'stored_byte...

    class DecompressionResult(builtins.object)
     |  DecompressionResult(payload: Payload, outcome: str) -> None
     |
     |  DecompressionResult(payload: 'Payload', outcome: 'str')
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(self, payload: Payload, outcome: str) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'outcome': 'str', 'payload': 'Payload'}
     |
     |  __dataclass_fields__ = {'outcome': Field(name='outcome',type='str',def...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('payload', 'outcome')

    class Frame(builtins.object)
     |  Frame(created_at_ms: int, payload: Payload) -> None
     |
     |  Frame(created_at_ms: 'int', payload: 'Payload')
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(self, created_at_ms: int, payload: Payload) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'created_at_ms': 'int', 'payload': 'Payload'}
     |
     |  __dataclass_fields__ = {'created_at_ms': Field(name='created_at_ms',ty...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('created_at_ms', 'payload')

    class Miss(builtins.object)
     |  Miss(reason: str, observed_watermark_ms: int | None = None) -> None
     |
     |  Miss(reason: 'str', observed_watermark_ms: 'int | None' = None)
     |
     |  Methods defined here:
     |
     |  __delattr__(self, name)
     |      Implement delattr(self, name).
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(self, reason: str, observed_watermark_ms: int | None = None) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __replace__ = _replace(self, /, **changes) from dataclasses
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __annotations__ = {'kind': 'str', 'observed_watermark_ms': 'int | None...
     |
     |  __dataclass_fields__ = {'kind': Field(name='kind',type='str',default='...
     |
     |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
     |
     |  __match_args__ = ('reason', 'observed_watermark_ms')
     |
     |  kind = 'miss'
     |
     |  observed_watermark_ms = None

    class RedisPayloadEncodingError(dialcache.errors.DialCacheError)
     |  An eligible frame carries an unsupported payload encoding.
     |
     |  Method resolution order:
     |      RedisPayloadEncodingError
     |      dialcache.errors.DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Data descriptors inherited from dialcache.errors.DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class RedisPayloadError(dialcache.errors.DialCacheError)
     |  A Redis reply is not a bulk byte string or nil.
     |
     |  Method resolution order:
     |      RedisPayloadError
     |      dialcache.errors.DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Data descriptors inherited from dialcache.errors.DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class RedisProtocolError(dialcache.errors.DialCacheError)
     |  Redis returned an unexpected command reply.
     |
     |  Method resolution order:
     |      RedisProtocolError
     |      dialcache.errors.DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Data descriptors inherited from dialcache.errors.DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

FUNCTIONS
    ceil_supported_cache_ttl_ms(value: float) -> int

    compress_payload(
        payload: Payload,
        threshold_bytes: int = 4096,
        level: int = 3,
        maximum: int = 536870912
    ) -> CompressionResult

    decode_read(raw: object) -> ReadResult

    decode_tracked_read(raw: object, raw_watermark: object) -> ReadResult

    decompress_payload(payload: Payload, maximum: int = 536870912) -> DecompressionResult

    encode_frame(payload: Payload, created_at_ms: int) -> bytes

    escape_raw_payload(payload: Payload) -> Payload

    utf8_bytes(value: str) -> bytes

    valid_timestamp(value: object) -> bool

    validate_future_buffer_ms(value: object) -> int

    validate_invalidation_reply(reply: object) -> None

    validate_set_reply(reply: object) -> None

    validate_timestamp(value: object) -> int

DATA
    MAX_DECOMPRESSED_BYTES = 536870912
    MAX_SAFE_INTEGER = 9007199254740991
    MAX_SUPPORTED_DURATION_MS = 31536000000
    MAX_TRACKED_REDIS_VALUE_TTL_MS = 3600000
    Payload = str | bytes
    ReadResult = dialcache.protocol.Frame | dialcache.protocol.Miss

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/protocol.py

dialcache.metrics

Python Library Documentation: module dialcache.metrics in dialcache

NAME
    dialcache.metrics - Backend-neutral metrics observer contract.

CLASSES
    typing.Protocol(typing.Generic)
        MetricsObserver

    class MetricsObserver(typing.Protocol)
     |  MetricsObserver(*args, **kwargs)
     |
     |  Receive bounded events with the shared DialCache diagnostic labels.
     |
     |  Events use the cross-port names, including ``cacheNamespace``, ``useCase``
     |  and ``keyType``. Observers are synchronous. Their failures never change a
     |  cache call's outcome.
     |
     |  Method resolution order:
     |      MetricsObserver
     |      typing.Protocol
     |      typing.Generic
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
     |
     |  observe(self, event: MetricEvent) -> None
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __subclasshook__ = _proto_hook(other) from typing
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  __parameters__ = ()
     |
     |  __protocol_attrs__ = {'observe'}
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Protocol:
     |
     |  __init_subclass__(*args, **kwargs)
     |      Function to initialize subclasses.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Generic:
     |
     |  __class_getitem__(...)
     |      Parameterizes a generic class.
     |
     |      At least, parameterizing a generic class is the *main* thing this
     |      method does.  For example, for some generic class `Foo`, this is
     |      called when we do `Foo[int]` - there, with `cls=Foo` and
     |      `params=int`.
     |
     |      However, note that this method is also called when defining generic
     |      classes in the first place with `class Foo[T]: ...`.

FUNCTIONS
    emit_metric(
        metrics: Metrics | None,
        event: str | Mapping[str, Any],
        **labels: Any
    ) -> None

DATA
    MetricEvent = dict[str, typing.Any]
    Metrics = dialcache.metrics.MetricsObserver | collections.abc.Callable...
    TypeAlias = typing.TypeAlias
        Special form for marking type aliases.

        TypeAlias can be used to indicate that an assignment should
        be recognized as a proper type alias definition by type
        checkers.

        For example::

            Predicate: TypeAlias = Callable[..., bool]

        It's invalid when used anywhere except as in the example above.

    __annotations__ = {'MetricEvent': 'TypeAlias', 'Metrics': 'TypeAlias'}
    __conditional_annotations__ = set()

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/metrics.py

dialcache.clock

Python Library Documentation: module dialcache.clock in dialcache

NAME
    dialcache.clock - Separate wall timestamps, monotonic elapsed time, and timer delivery.

CLASSES
    builtins.object
        SystemClock
    typing.Protocol(typing.Generic)
        Clock
        TimerHandle

    class Clock(typing.Protocol)
     |  Clock(*args, **kwargs)
     |
     |  Injectable clocks and timers for deterministic application tests.
     |
     |  Wall time stamps Redis frames. Monotonic time governs local expiry and
     |  deadlines. A controlled clock may advance elapsed time without delivering
     |  timers, so callers also check elapsed time when operations settle.
     |
     |  Method resolution order:
     |      Clock
     |      typing.Protocol
     |      typing.Generic
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
     |
     |  call_later(self, milliseconds: float, callback: Callable[[], None]) -> TimerHandle
     |
     |  monotonic_ms(self) -> int | float
     |
     |  wall_ms(self) -> int | float
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __subclasshook__ = _proto_hook(other) from typing
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  __parameters__ = ()
     |
     |  __protocol_attrs__ = {'call_later', 'monotonic_ms', 'wall_ms'}
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Protocol:
     |
     |  __init_subclass__(*args, **kwargs)
     |      Function to initialize subclasses.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Generic:
     |
     |  __class_getitem__(...)
     |      Parameterizes a generic class.
     |
     |      At least, parameterizing a generic class is the *main* thing this
     |      method does.  For example, for some generic class `Foo`, this is
     |      called when we do `Foo[int]` - there, with `cls=Foo` and
     |      `params=int`.
     |
     |      However, note that this method is also called when defining generic
     |      classes in the first place with `class Foo[T]: ...`.

    class SystemClock(builtins.object)
     |  System wall time and the process-wide monotonic millisecond grid.
     |
     |  Methods defined here:
     |
     |  call_later(self, milliseconds: float, callback: Callable[[], None]) -> TimerHandle
     |
     |  monotonic_ms(self) -> float
     |
     |  async sleep_ms(self, milliseconds: float) -> None
     |
     |  wall_ms(self) -> int
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object

    class TimerHandle(typing.Protocol)
     |  TimerHandle(*args, **kwargs)
     |
     |  Method resolution order:
     |      TimerHandle
     |      typing.Protocol
     |      typing.Generic
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__ = _no_init_or_replace_init(self, *args, **kwargs) from typing
     |
     |  cancel(self) -> None
     |
     |  ----------------------------------------------------------------------
     |  Class methods defined here:
     |
     |  __subclasshook__ = _proto_hook(other) from typing
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __dict__
     |      dictionary for instance variables
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |
     |  __abstractmethods__ = frozenset()
     |
     |  __parameters__ = ()
     |
     |  __protocol_attrs__ = {'cancel'}
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Protocol:
     |
     |  __init_subclass__(*args, **kwargs)
     |      Function to initialize subclasses.
     |
     |  ----------------------------------------------------------------------
     |  Class methods inherited from typing.Generic:
     |
     |  __class_getitem__(...)
     |      Parameterizes a generic class.
     |
     |      At least, parameterizing a generic class is the *main* thing this
     |      method does.  For example, for some generic class `Foo`, this is
     |      called when we do `Foo[int]` - there, with `cls=Foo` and
     |      `params=int`.
     |
     |      However, note that this method is also called when defining generic
     |      classes in the first place with `class Foo[T]: ...`.

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/clock.py

dialcache.errors

Python Library Documentation: module dialcache.errors in dialcache

NAME
    dialcache.errors - Public errors raised by DialCache operations and configuration.

CLASSES
    builtins.Exception(builtins.BaseException)
        DialCacheError
            ConfigError(DialCacheError, builtins.ValueError)
            FallbackTimeoutError(DialCacheError, builtins.TimeoutError)
            MissingRemoteError
            RemoteReadTimeoutError(DialCacheError, builtins.TimeoutError)
            UseCaseIsAlreadyRegisteredError
            UseCaseNameIsReservedError

    class ConfigError(DialCacheError, builtins.ValueError)
     |  Invalid static configuration or malformed runtime policy.
     |
     |  Method resolution order:
     |      ConfigError
     |      DialCacheError
     |      builtins.ValueError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Data descriptors inherited from DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.ValueError:
     |
     |  __new__(*args, **kwargs) class method of builtins.ValueError
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class DialCacheError(builtins.Exception)
     |  Base class for errors owned by DialCache.
     |
     |  Method resolution order:
     |      DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class FallbackTimeoutError(DialCacheError, builtins.TimeoutError)
     |  FallbackTimeoutError(use_case: str, timeout_ms: int) -> None
     |
     |  The enabled source invocation exceeded its DialCache deadline.
     |
     |  Method resolution order:
     |      FallbackTimeoutError
     |      DialCacheError
     |      builtins.TimeoutError
     |      builtins.OSError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str, timeout_ms: int) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.OSError:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.OSError:
     |
     |  __new__(*args, **kwargs) class method of builtins.OSError
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.OSError:
     |
     |  characters_written
     |
     |  errno
     |      POSIX exception code
     |
     |  filename
     |      exception filename
     |
     |  filename2
     |      second exception filename
     |
     |  strerror
     |      exception strerror
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class MissingRemoteError(DialCacheError)
     |  An explicit remote maintenance operation has no remote adapter.
     |
     |  Method resolution order:
     |      MissingRemoteError
     |      DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Data descriptors inherited from DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __init__(self, /, *args, **kwargs)
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    RedisReadTimeoutError = class RemoteReadTimeoutError(DialCacheError, builtins.TimeoutError)
     |  RedisReadTimeoutError(use_case: str, timeout_ms: int) -> None
     |
     |  DialCache stopped waiting for a remote read.
     |
     |  Method resolution order:
     |      RemoteReadTimeoutError
     |      DialCacheError
     |      builtins.TimeoutError
     |      builtins.OSError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str, timeout_ms: int) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.OSError:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.OSError:
     |
     |  __new__(*args, **kwargs) class method of builtins.OSError
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.OSError:
     |
     |  characters_written
     |
     |  errno
     |      POSIX exception code
     |
     |  filename
     |      exception filename
     |
     |  filename2
     |      second exception filename
     |
     |  strerror
     |      exception strerror
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class RemoteReadTimeoutError(DialCacheError, builtins.TimeoutError)
     |  RemoteReadTimeoutError(use_case: str, timeout_ms: int) -> None
     |
     |  DialCache stopped waiting for a remote read.
     |
     |  Method resolution order:
     |      RemoteReadTimeoutError
     |      DialCacheError
     |      builtins.TimeoutError
     |      builtins.OSError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str, timeout_ms: int) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.OSError:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.OSError:
     |
     |  __new__(*args, **kwargs) class method of builtins.OSError
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.OSError:
     |
     |  characters_written
     |
     |  errno
     |      POSIX exception code
     |
     |  filename
     |      exception filename
     |
     |  filename2
     |      second exception filename
     |
     |  strerror
     |      exception strerror
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class UseCaseIsAlreadyRegisteredError(DialCacheError)
     |  UseCaseIsAlreadyRegisteredError(use_case: str) -> None
     |
     |  Method resolution order:
     |      UseCaseIsAlreadyRegisteredError
     |      DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

    class UseCaseNameIsReservedError(DialCacheError)
     |  UseCaseNameIsReservedError(use_case: str) -> None
     |
     |  Method resolution order:
     |      UseCaseNameIsReservedError
     |      DialCacheError
     |      builtins.Exception
     |      builtins.BaseException
     |      builtins.object
     |
     |  Methods defined here:
     |
     |  __init__(self, use_case: str) -> None
     |      Initialize self.  See help(type(self)) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from DialCacheError:
     |
     |  __weakref__
     |      list of weak references to the object
     |
     |  ----------------------------------------------------------------------
     |  Static methods inherited from builtins.Exception:
     |
     |  __new__(*args, **kwargs) class method of builtins.Exception
     |      Create and return a new object.  See help(type) for accurate signature.
     |
     |  ----------------------------------------------------------------------
     |  Methods inherited from builtins.BaseException:
     |
     |  __reduce__(self, /)
     |      Helper for pickle.
     |
     |  __repr__(self, /)
     |      Return repr(self).
     |
     |  __setstate__(self, state, /)
     |
     |  __str__(self, /)
     |      Return str(self).
     |
     |  add_note(self, note, /)
     |      Add a note to the exception
     |
     |  with_traceback(self, tb, /)
     |      Set self.__traceback__ to tb and return self.
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from builtins.BaseException:
     |
     |  __cause__
     |
     |  __context__
     |
     |  __dict__
     |
     |  __suppress_context__
     |
     |  __traceback__
     |
     |  args

FILE
    /home/runner/work/DialCache/DialCache/python/dialcache/errors.py