From ee11cef073cfb74e900c9dea9247e9ce6c3eb084 Mon Sep 17 00:00:00 2001 From: Kevin Michel <80679746+kmichel-aiven@users.noreply.github.com> Date: Wed, 5 Jun 2024 16:26:26 +0200 Subject: [PATCH] Fix alias for superclass with identical name (#1981) If an externally imported model is renamed because it has the same name as the current model, the alias was incorrectly suffixed with the original name. --- datamodel_code_generator/parser/base.py | 2 +- .../expected/main/main_require_referenced_field/required.py | 2 +- .../main/main_require_referenced_field_pydantic_v2/required.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/datamodel_code_generator/parser/base.py b/datamodel_code_generator/parser/base.py index 4510337a8..3961208b6 100644 --- a/datamodel_code_generator/parser/base.py +++ b/datamodel_code_generator/parser/base.py @@ -707,7 +707,7 @@ def __change_from_import( if from_ and import_ and alias != name: data_type.alias = ( alias - if from_ == '.' and data_type.full_name == import_ + if data_type.reference.short_name == import_ else f'{alias}.{name}' ) diff --git a/tests/data/expected/main/main_require_referenced_field/required.py b/tests/data/expected/main/main_require_referenced_field/required.py index 8cab3ee66..0d28d4505 100644 --- a/tests/data/expected/main/main_require_referenced_field/required.py +++ b/tests/data/expected/main/main_require_referenced_field/required.py @@ -9,6 +9,6 @@ from .referenced import Model as Model_1 -class Model(Model_1.Model): +class Model(Model_1): some_optional_property: str some_optional_typed_property: datetime diff --git a/tests/data/expected/main/main_require_referenced_field_pydantic_v2/required.py b/tests/data/expected/main/main_require_referenced_field_pydantic_v2/required.py index 5462db782..7536c9d5d 100644 --- a/tests/data/expected/main/main_require_referenced_field_pydantic_v2/required.py +++ b/tests/data/expected/main/main_require_referenced_field_pydantic_v2/required.py @@ -9,6 +9,6 @@ from .referenced import Model as Model_1 -class Model(Model_1.Model): +class Model(Model_1): some_optional_property: str some_optional_typed_property: AwareDatetime