diff options
author | Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com> | 2022-03-03 00:55:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-03 00:55:35 +0100 |
commit | 80b67a9c4c9bcbfb8a05a5311e269ae3bd55eec7 (patch) | |
tree | 63aae7a94c351f3cfb4064ec51d12e5c13c5b2fd /astroid/objects.py | |
parent | da745538c7236028a22cdf0405f6829fcf6886bc (diff) | |
download | astroid-git-80b67a9c4c9bcbfb8a05a5311e269ae3bd55eec7.tar.gz |
Use functools.cached_property for 3.8+ (#1417)
Diffstat (limited to 'astroid/objects.py')
-rw-r--r-- | astroid/objects.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/astroid/objects.py b/astroid/objects.py index 76ade71d..56fbcd7a 100644 --- a/astroid/objects.py +++ b/astroid/objects.py @@ -22,8 +22,10 @@ leads to an inferred FrozenSet: Call(func=Name('frozenset'), args=Tuple(...)) """ +import sys +from typing import TYPE_CHECKING -from astroid import bases, decorators, util +from astroid import bases, util from astroid.exceptions import ( AttributeInferenceError, InferenceError, @@ -35,6 +37,11 @@ from astroid.nodes import node_classes, scoped_nodes objectmodel = util.lazy_import("interpreter.objectmodel") +if sys.version_info >= (3, 8) or TYPE_CHECKING: + from functools import cached_property +else: + from astroid.decorators import cachedproperty as cached_property + class FrozenSet(node_classes.BaseContainer): """class representing a FrozenSet composite node""" @@ -45,7 +52,7 @@ class FrozenSet(node_classes.BaseContainer): def _infer(self, context=None): yield self - @decorators.cachedproperty + @cached_property def _proxied(self): # pylint: disable=method-hidden ast_builtins = AstroidManager().builtins_module return ast_builtins.getattr("frozenset")[0] @@ -114,7 +121,7 @@ class Super(node_classes.NodeNG): index = mro.index(self.mro_pointer) return mro[index + 1 :] - @decorators.cachedproperty + @cached_property def _proxied(self): ast_builtins = AstroidManager().builtins_module return ast_builtins.getattr("super")[0] @@ -218,7 +225,7 @@ class ExceptionInstance(bases.Instance): the case of .args. """ - @decorators.cachedproperty + @cached_property def special_attributes(self): qname = self.qname() instance = objectmodel.BUILTIN_EXCEPTIONS.get( |