summaryrefslogtreecommitdiff
path: root/astroid/objects.py
diff options
context:
space:
mode:
authorDaniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>2022-03-03 00:55:35 +0100
committerGitHub <noreply@github.com>2022-03-03 00:55:35 +0100
commit80b67a9c4c9bcbfb8a05a5311e269ae3bd55eec7 (patch)
tree63aae7a94c351f3cfb4064ec51d12e5c13c5b2fd /astroid/objects.py
parentda745538c7236028a22cdf0405f6829fcf6886bc (diff)
downloadastroid-git-80b67a9c4c9bcbfb8a05a5311e269ae3bd55eec7.tar.gz
Use functools.cached_property for 3.8+ (#1417)
Diffstat (limited to 'astroid/objects.py')
-rw-r--r--astroid/objects.py15
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(