blob: ec003ea90e076a6b4e714f242a5bd6006c0cb833 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 | # 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__)
 |