123456789101112131415161718192021222324252627 |
- # flake8: noqa: F405
- from functools import * # noqa: F403
- from .compat_utils import passthrough_module
- passthrough_module(__name__, 'functools')
- del passthrough_module
- try:
- cache # >= 3.9
- except NameError:
- cache = lru_cache(maxsize=None)
- try:
- cached_property # >= 3.8
- except NameError:
- class cached_property:
- def __init__(self, func):
- update_wrapper(self, func)
- self.func = func
- def __get__(self, instance, _):
- if instance is None:
- return self
- setattr(instance, self.func.__name__, self.func(instance))
- return getattr(instance, self.func.__name__)
|