summaryrefslogtreecommitdiff
path: root/astroid/nodes
diff options
context:
space:
mode:
authorDaniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>2023-04-05 07:38:09 +0200
committerGitHub <noreply@github.com>2023-04-05 07:38:09 +0200
commit569b63706ea5ab7efab7ffe2ef91e6772c5e38ec (patch)
tree4239de4f5dd5f94234786b0cb5ec6dbda028deda /astroid/nodes
parentfc278f79f2981066c79213815efe1a25550360db (diff)
downloadastroid-git-569b63706ea5ab7efab7ffe2ef91e6772c5e38ec.tar.gz
Type ``igetattr`` (#2101)
Diffstat (limited to 'astroid/nodes')
-rw-r--r--astroid/nodes/node_classes.py8
-rw-r--r--astroid/nodes/scoped_nodes/scoped_nodes.py10
2 files changed, 10 insertions, 8 deletions
diff --git a/astroid/nodes/node_classes.py b/astroid/nodes/node_classes.py
index 8092abcf..2b24d8ef 100644
--- a/astroid/nodes/node_classes.py
+++ b/astroid/nodes/node_classes.py
@@ -11,7 +11,7 @@ import itertools
import sys
import typing
import warnings
-from collections.abc import Generator, Iterable, Mapping
+from collections.abc import Generator, Iterable, Iterator, Mapping
from functools import lru_cache
from typing import TYPE_CHECKING, Any, Callable, ClassVar, Optional, TypeVar, Union
@@ -3237,14 +3237,14 @@ class Slice(NodeNG):
"""
return "builtins.slice"
- def igetattr(self, attrname, context: InferenceContext | None = None):
+ def igetattr(
+ self, attrname: str, context: InferenceContext | None = None
+ ) -> Iterator[SuccessfulInferenceResult]:
"""Infer the possible values of the given attribute on the slice.
:param attrname: The name of the attribute to infer.
- :type attrname: str
:returns: The inferred possible values.
- :rtype: iterable(NodeNG)
"""
if attrname == "start":
yield self._wrap_attribute(self.lower)
diff --git a/astroid/nodes/scoped_nodes/scoped_nodes.py b/astroid/nodes/scoped_nodes/scoped_nodes.py
index 49ca3eb1..c7523772 100644
--- a/astroid/nodes/scoped_nodes/scoped_nodes.py
+++ b/astroid/nodes/scoped_nodes/scoped_nodes.py
@@ -416,14 +416,14 @@ class Module(LocalsDictNodeNG):
return result
raise AttributeInferenceError(target=self, attribute=name, context=context)
- def igetattr(self, name, context: InferenceContext | None = None):
+ def igetattr(
+ self, name: str, context: InferenceContext | None = None
+ ) -> Iterator[InferenceResult]:
"""Infer the possible values of the given variable.
:param name: The name of the variable to infer.
- :type name: str
:returns: The inferred possible values.
- :rtype: iterable(NodeNG) or None
"""
# set lookup name since this is necessary to infer on import nodes for
# instance
@@ -1560,7 +1560,9 @@ class FunctionDef(_base_nodes.MultiLineBlockNode, _base_nodes.Statement, Lambda)
"""
return self.fromlineno, self.tolineno
- def igetattr(self, name, context: InferenceContext | None = None):
+ def igetattr(
+ self, name: str, context: InferenceContext | None = None
+ ) -> Iterator[InferenceResult]:
"""Inferred getattr, which returns an iterator of inferred statements."""
try:
return bases._infer_stmts(self.getattr(name, context), context, frame=self)