diff --git a/codegen/parser/schemas/schema.py b/codegen/parser/schemas/schema.py index 51bb3bb89..4396b50e9 100644 --- a/codegen/parser/schemas/schema.py +++ b/codegen/parser/schemas/schema.py @@ -357,31 +357,38 @@ class ListSchema(SchemaData): @override def get_type_string(self, include_constraints: bool = True) -> str: - type_string = f"list[{self.item_schema.get_type_string()}]" + type_string = f"builtins.list[{self.item_schema.get_type_string()}]" if include_constraints and (args := self._get_field_args()): return f"Annotated[{type_string}, {self._get_field_string(args)}]" return type_string @override def get_param_type_string(self) -> str: - return f"list[{self.item_schema.get_param_type_string()}]" + # We **must** refer to `builtins.list` here explicitly to avoid shadowing: + # class A: + # def list(self): ... + # def meth(self) -> list[int]: ... # Oops, it's the `list` method, bad hint + return f"builtins.list[{self.item_schema.get_param_type_string()}]" @override def get_model_imports(self) -> set[str]: imports = super().get_model_imports() imports.add("from githubkit.compat import PYDANTIC_V2") + imports.add("import builtins") imports.update(self.item_schema.get_model_imports()) return imports @override def get_type_imports(self) -> set[str]: imports = super().get_type_imports() + imports.add("import builtins") imports.update(self.item_schema.get_type_imports()) return imports @override def get_param_imports(self) -> set[str]: imports = super().get_param_imports() + imports.add("import builtins") imports.update(self.item_schema.get_param_imports()) return imports @@ -389,6 +396,7 @@ def get_param_imports(self) -> set[str]: def get_using_imports(self) -> set[str]: imports = super().get_using_imports() imports.add("from githubkit.compat import PYDANTIC_V2") + imports.add("import builtins") imports.update(self.item_schema.get_using_imports()) return imports
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: