Skip to content

Commit 3621e2e

Browse files
authored
Add typing and small refactors to namedtuple brain (#1681)
1 parent 9531e03 commit 3621e2e

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

astroid/brain/brain_namedtuple_enum.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
from textwrap import dedent
1313

1414
import astroid
15-
from astroid import arguments, inference_tip, nodes, util
16-
from astroid.builder import AstroidBuilder, extract_node
15+
from astroid import arguments, bases, inference_tip, nodes, util
16+
from astroid.builder import AstroidBuilder, _extract_single_node, extract_node
1717
from astroid.context import InferenceContext
1818
from astroid.exceptions import (
1919
AstroidTypeError,
@@ -72,7 +72,7 @@ def _extract_namedtuple_arg_or_keyword( # pylint: disable=inconsistent-return-s
7272

7373
def infer_func_form(
7474
node: nodes.Call,
75-
base_type: nodes.NodeNG,
75+
base_type: list[nodes.NodeNG],
7676
context: InferenceContext | None = None,
7777
enum: bool = False,
7878
) -> tuple[nodes.ClassDef, str, list[str]]:
@@ -146,7 +146,7 @@ def infer_func_form(
146146
class_node.parent = node.parent
147147
class_node.postinit(
148148
# set base class=tuple
149-
bases=[base_type],
149+
bases=base_type,
150150
body=[],
151151
decorators=None,
152152
)
@@ -186,7 +186,7 @@ def infer_named_tuple(
186186
node: nodes.Call, context: InferenceContext | None = None
187187
) -> Iterator[nodes.ClassDef]:
188188
"""Specific inference function for namedtuple Call node"""
189-
tuple_base_name = nodes.Name(name="tuple", parent=node.root())
189+
tuple_base_name: list[nodes.NodeNG] = [nodes.Name(name="tuple", parent=node.root())]
190190
class_node, name, attributes = infer_func_form(
191191
node, tuple_base_name, context=context
192192
)
@@ -295,9 +295,11 @@ def _check_namedtuple_attributes(typename, attributes, rename=False):
295295
return attributes
296296

297297

298-
def infer_enum(node, context=None):
298+
def infer_enum(
299+
node: nodes.Call, context: InferenceContext | None = None
300+
) -> Iterator[bases.Instance]:
299301
"""Specific inference function for enum Call node."""
300-
enum_meta = extract_node(
302+
enum_meta = _extract_single_node(
301303
"""
302304
class EnumMeta(object):
303305
'docstring'
@@ -331,7 +333,7 @@ def value(self):
331333
__members__ = ['']
332334
"""
333335
)
334-
class_node = infer_func_form(node, enum_meta, context=context, enum=True)[0]
336+
class_node = infer_func_form(node, [enum_meta], context=context, enum=True)[0]
335337
return iter([class_node.instantiate_class()])
336338

337339

astroid/nodes/scoped_nodes/scoped_nodes.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2508,12 +2508,10 @@ def instance_attr(self, name, context=None):
25082508
return values
25092509
raise AttributeInferenceError(target=self, attribute=name, context=context)
25102510

2511-
def instantiate_class(self):
2511+
def instantiate_class(self) -> bases.Instance:
25122512
"""Get an :class:`Instance` of the :class:`ClassDef` node.
25132513
2514-
:returns: An :class:`Instance` of the :class:`ClassDef` node,
2515-
or self if this is not possible.
2516-
:rtype: Instance or ClassDef
2514+
:returns: An :class:`Instance` of the :class:`ClassDef` node
25172515
"""
25182516
try:
25192517
if any(cls.name in EXCEPTION_BASE_CLASSES for cls in self.mro()):

0 commit comments

Comments
 (0)