|
12 | 12 | from textwrap import dedent
|
13 | 13 |
|
14 | 14 | 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 |
17 | 17 | from astroid.context import InferenceContext
|
18 | 18 | from astroid.exceptions import (
|
19 | 19 | AstroidTypeError,
|
@@ -72,7 +72,7 @@ def _extract_namedtuple_arg_or_keyword( # pylint: disable=inconsistent-return-s
|
72 | 72 |
|
73 | 73 | def infer_func_form(
|
74 | 74 | node: nodes.Call,
|
75 |
| - base_type: nodes.NodeNG, |
| 75 | + base_type: list[nodes.NodeNG], |
76 | 76 | context: InferenceContext | None = None,
|
77 | 77 | enum: bool = False,
|
78 | 78 | ) -> tuple[nodes.ClassDef, str, list[str]]:
|
@@ -146,7 +146,7 @@ def infer_func_form(
|
146 | 146 | class_node.parent = node.parent
|
147 | 147 | class_node.postinit(
|
148 | 148 | # set base class=tuple
|
149 |
| - bases=[base_type], |
| 149 | + bases=base_type, |
150 | 150 | body=[],
|
151 | 151 | decorators=None,
|
152 | 152 | )
|
@@ -186,7 +186,7 @@ def infer_named_tuple(
|
186 | 186 | node: nodes.Call, context: InferenceContext | None = None
|
187 | 187 | ) -> Iterator[nodes.ClassDef]:
|
188 | 188 | """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())] |
190 | 190 | class_node, name, attributes = infer_func_form(
|
191 | 191 | node, tuple_base_name, context=context
|
192 | 192 | )
|
@@ -295,9 +295,11 @@ def _check_namedtuple_attributes(typename, attributes, rename=False):
|
295 | 295 | return attributes
|
296 | 296 |
|
297 | 297 |
|
298 |
| -def infer_enum(node, context=None): |
| 298 | +def infer_enum( |
| 299 | + node: nodes.Call, context: InferenceContext | None = None |
| 300 | +) -> Iterator[bases.Instance]: |
299 | 301 | """Specific inference function for enum Call node."""
|
300 |
| - enum_meta = extract_node( |
| 302 | + enum_meta = _extract_single_node( |
301 | 303 | """
|
302 | 304 | class EnumMeta(object):
|
303 | 305 | 'docstring'
|
@@ -331,7 +333,7 @@ def value(self):
|
331 | 333 | __members__ = ['']
|
332 | 334 | """
|
333 | 335 | )
|
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] |
335 | 337 | return iter([class_node.instantiate_class()])
|
336 | 338 |
|
337 | 339 |
|
|
0 commit comments