Skip to content

Commit edfbe3b

Browse files
committed
Improve name (and fix bug)
1 parent 79562fe commit edfbe3b

File tree

3 files changed

+16
-15
lines changed

3 files changed

+16
-15
lines changed

mypy/stubgen.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -521,15 +521,15 @@ def _get_func_return(self, o: FuncDef, ctx: FunctionContext) -> str | None:
521521
send_name = "None"
522522
return_name = "None"
523523
if has_yield_from_expression(o):
524-
yield_name = send_name = self.add_typing_import("Incomplete")
524+
yield_name = send_name = self.add_incomplete()
525525
else:
526526
for expr, in_assignment in all_yield_expressions(o):
527527
if expr.expr is not None and not is_none_expr(expr.expr):
528-
yield_name = self.add_obj_import("_typeshed", "Incomplete", require=True)
528+
yield_name = self.add_incomplete()
529529
if in_assignment:
530-
send_name = self.add_obj_import("_typeshed", "Incomplete", require=True)
530+
send_name = self.add_incomplete()
531531
if has_return_statement(o):
532-
return_name = self.add_obj_import("_typeshed", "Incomplete", require=True)
532+
return_name = self.add_incomplete()
533533
generator_name = self.add_typing_import("Generator")
534534
return f"{generator_name}[{yield_name}, {send_name}, {return_name}]"
535535
if not has_return_statement(o) and o.abstract_status == NOT_ABSTRACT:
@@ -736,15 +736,13 @@ def get_base_types(self, cdef: ClassDef) -> list[str]:
736736
self.add_typing_import("NamedTuple")
737737
else:
738738
# Invalid namedtuple() call, cannot determine fields
739-
base_types.append(
740-
self.add_obj_import("_typeshed", "Incomplete", require=True)
741-
)
739+
base_types.append(self.add_incomplete())
742740
elif self.is_typed_namedtuple(base):
743741
base_types.append(base.accept(p))
744742
else:
745743
# At this point, we don't know what the base class is, so we
746744
# just use Incomplete as the base class.
747-
base_types.append(self.add_obj_import("_typeshed", "Incomplete", require=True))
745+
base_types.append(self.add_incomplete())
748746
for name, value in cdef.keywords.items():
749747
if name == "metaclass":
750748
continue # handled separately
@@ -825,7 +823,7 @@ def _get_namedtuple_fields(self, call: CallExpr) -> list[tuple[str, str]] | None
825823
else:
826824
return None # Invalid namedtuple fields type
827825
if field_names:
828-
incomplete = self.add_typing_import("Incomplete")
826+
incomplete = self.add_incomplete()
829827
return [(field_name, incomplete) for field_name in field_names]
830828
else:
831829
return []
@@ -933,7 +931,7 @@ def process_typeddict(self, lvalue: NameExpr, rvalue: CallExpr) -> None:
933931
self._state = CLASS
934932

935933
def annotate_as_incomplete(self, lvalue: NameExpr) -> None:
936-
incomplete = self.add_obj_import("_typeshed", "Incomplete", require=True)
934+
incomplete = self.add_incomplete()
937935
self.add(f"{self._indent}{lvalue.name}: {incomplete}\n")
938936
self._state = VAR
939937

@@ -1136,10 +1134,10 @@ def get_str_type_of_node(
11361134
if isinstance(rvalue, NameExpr) and rvalue.name in ("True", "False"):
11371135
return "bool"
11381136
if can_infer_optional and isinstance(rvalue, NameExpr) and rvalue.name == "None":
1139-
incomplete = self.add_obj_import("_typeshed", "Incomplete", require=True)
1137+
incomplete = self.add_incomplete()
11401138
return f"{incomplete} | None"
11411139
if can_be_any:
1142-
return self.add_obj_import("_typeshed", "Incomplete", require=True)
1140+
return self.add_incomplete()
11431141
else:
11441142
return ""
11451143

mypy/stubgenc.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ def get_annotation(key: str) -> str | None:
288288
if argtype == "None":
289289
# None is not a useful annotation, but we can infer that the arg
290290
# is optional
291-
incomplete = self.add_obj_import("_typeshed", "Incomplete", require=True)
291+
incomplete = self.add_incomplete()
292292
argtype = f"{incomplete} | None"
293293
arglist.append(ArgSig(arg, argtype, default=True))
294294
else:
@@ -649,7 +649,7 @@ def generate_property_stub(
649649
classvar = self.add_typing_import("ClassVar")
650650
trailing_comment = " # read-only" if readonly else ""
651651
if inferred_type is None:
652-
inferred_type = self.add_obj_import("_typeshed", "Incomplete", require=True)
652+
inferred_type = self.add_incomplete()
653653

654654
static_properties.append(
655655
f"{self._indent}{name}: {classvar}[{inferred_type}] = ...{trailing_comment}"
@@ -661,7 +661,7 @@ def generate_property_stub(
661661
ro_properties.append(self._indent + sig.format_sig())
662662
else:
663663
if inferred_type is None:
664-
inferred_type = self.add_obj_import("_typeshed", "Incomplete", require=True)
664+
inferred_type = self.add_incomplete()
665665

666666
rw_properties.append(f"{self._indent}{name}: {inferred_type}")
667667

mypy/stubutil.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,9 @@ def add_typing_import(self, name: str, require: bool = True) -> str:
564564
"""
565565
return self.add_obj_import("typing", name, require=require)
566566

567+
def add_incomplete(self, require: bool = True) -> str:
568+
return self.add_obj_import("_typeshed", "Incomplete", require=require)
569+
567570
def add_abc_import(self, name: str, require: bool = True) -> str:
568571
"""Add a name to be imported from collections.abc, unless it's imported already.
569572

0 commit comments

Comments
 (0)