mirror of
https://github.com/chatmail/core.git
synced 2026-04-05 23:22:11 +03:00
Add lint environment to `deltachat-rpc-client/` and set line length to 120, same as in `python/`. Switch from flake8 to ruff. Fix ruff warnings.
33 lines
823 B
Python
33 lines
823 B
Python
"""Helpers for properties."""
|
|
|
|
|
|
def with_doc(f):
|
|
return property(f, None, None, f.__doc__)
|
|
|
|
|
|
# copied over unmodified from
|
|
# https://github.com/devpi/devpi/blob/master/common/devpi_common/types.py
|
|
def cached(f):
|
|
"""returns a cached property that is calculated by function f."""
|
|
|
|
def get(self):
|
|
try:
|
|
return self._property_cache[f]
|
|
except AttributeError:
|
|
self._property_cache = {}
|
|
except KeyError:
|
|
pass
|
|
res = f(self)
|
|
self._property_cache[f] = res
|
|
return res
|
|
|
|
def set(self, val):
|
|
propcache = self.__dict__.setdefault("_property_cache", {})
|
|
propcache[f] = val
|
|
|
|
def fdel(self):
|
|
propcache = self.__dict__.setdefault("_property_cache", {})
|
|
del propcache[f]
|
|
|
|
return property(get, set, fdel)
|