From 492f0237ca78ce5586093e015be27853bda74630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Fri, 20 Oct 2023 20:12:29 +0900 Subject: [PATCH 1/2] [python] add circular reference import MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- .../src/main/resources/python/model_anyof.mustache | 8 +++----- .../src/main/resources/python/model_generic.mustache | 7 ++----- .../src/main/resources/python/model_oneof.mustache | 8 +++----- .../openapi3/client/petstore/python/tests/test_model.py | 1 - 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/python/model_anyof.mustache b/modules/openapi-generator/src/main/resources/python/model_anyof.mustache index 0c391c0071f7..b769b3c51934 100644 --- a/modules/openapi-generator/src/main/resources/python/model_anyof.mustache +++ b/modules/openapi-generator/src/main/resources/python/model_anyof.mustache @@ -183,10 +183,8 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} {{#vendorExtensions.x-py-postponed-model-imports.size}} {{#vendorExtensions.x-py-postponed-model-imports}} -from typing import TYPE_CHECKING -if TYPE_CHECKING: - {{{.}}} - # TODO: pydantic v2 +{{{.}}} {{/vendorExtensions.x-py-postponed-model-imports}} - # {{classname}}.model_rebuild() +# TODO: Rewrite to not use raise_errors +{{classname}}.model_rebuild(raise_errors=False) {{/vendorExtensions.x-py-postponed-model-imports.size}} diff --git a/modules/openapi-generator/src/main/resources/python/model_generic.mustache b/modules/openapi-generator/src/main/resources/python/model_generic.mustache index ca6372d2d90c..b5e6e7ec42c4 100644 --- a/modules/openapi-generator/src/main/resources/python/model_generic.mustache +++ b/modules/openapi-generator/src/main/resources/python/model_generic.mustache @@ -379,9 +379,6 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} {{#vendorExtensions.x-py-postponed-model-imports}} {{{.}}} {{/vendorExtensions.x-py-postponed-model-imports}} -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # {{classname}}.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +{{classname}}.model_rebuild(raise_errors=False) {{/vendorExtensions.x-py-postponed-model-imports.size}} diff --git a/modules/openapi-generator/src/main/resources/python/model_oneof.mustache b/modules/openapi-generator/src/main/resources/python/model_oneof.mustache index 36c46e5c4f2b..e5d081332b4e 100644 --- a/modules/openapi-generator/src/main/resources/python/model_oneof.mustache +++ b/modules/openapi-generator/src/main/resources/python/model_oneof.mustache @@ -207,10 +207,8 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}} {{#vendorExtensions.x-py-postponed-model-imports.size}} {{#vendorExtensions.x-py-postponed-model-imports}} -from typing import TYPE_CHECKING -if TYPE_CHECKING: - {{{.}}} - # TODO: pydantic v2 +{{{.}}} {{/vendorExtensions.x-py-postponed-model-imports}} - # {{classname}}.model_rebuild() +# TODO: Rewrite to not use raise_errors +{{classname}}.model_rebuild(raise_errors=False) {{/vendorExtensions.x-py-postponed-model-imports.size}} diff --git a/samples/openapi3/client/petstore/python/tests/test_model.py b/samples/openapi3/client/petstore/python/tests/test_model.py index c41bfe8e7538..c96ec890acc2 100644 --- a/samples/openapi3/client/petstore/python/tests/test_model.py +++ b/samples/openapi3/client/petstore/python/tests/test_model.py @@ -560,7 +560,6 @@ def test_object_with_additional_properties(self): # should not throw the following errors: # pydantic.errors.ConfigError: field "additional_properties" not yet prepared so type is still a ForwardRef, you might need to call ObjectToTestAdditionalProperties.update_forward_refs(). - @unittest.skip("TODO: pydantic v2: fix circular dependencies between CircularReferenceModel, FirstRef, SecondRef") def test_first_ref(self): # shouldn't throw "still a ForwardRef" error a = petstore_api.FirstRef.from_dict({}) From 104b9c9c53d4b855ac1c231ee87ad4e9e57430d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=B5=E3=81=81?= Date: Fri, 20 Oct 2023 20:12:46 +0900 Subject: [PATCH 2/2] [python] update samples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ふぁ --- .../petstore/python-aiohttp/petstore_api/models/animal.py | 7 ++----- .../petstore_api/models/circular_reference_model.py | 7 ++----- .../python-aiohttp/petstore_api/models/dummy_model.py | 7 ++----- .../python-aiohttp/petstore_api/models/first_ref.py | 7 ++----- .../python-aiohttp/petstore_api/models/second_ref.py | 7 ++----- .../petstore_api/models/self_reference_model.py | 7 ++----- .../client/petstore/python/petstore_api/models/animal.py | 7 ++----- .../python/petstore_api/models/circular_reference_model.py | 7 ++----- .../petstore/python/petstore_api/models/dummy_model.py | 7 ++----- .../petstore/python/petstore_api/models/first_ref.py | 7 ++----- .../petstore/python/petstore_api/models/second_ref.py | 7 ++----- .../python/petstore_api/models/self_reference_model.py | 7 ++----- 12 files changed, 24 insertions(+), 60 deletions(-) diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/animal.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/animal.py index a1763f52a566..32fe036bae8d 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/animal.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/animal.py @@ -105,9 +105,6 @@ def from_dict(cls, obj: dict) -> Union[Self, Self]: from petstore_api.models.cat import Cat from petstore_api.models.dog import Dog -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # Animal.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +Animal.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/circular_reference_model.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/circular_reference_model.py index 934c6ea455c4..61c8c4ba5351 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/circular_reference_model.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/circular_reference_model.py @@ -91,9 +91,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.first_ref import FirstRef -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # CircularReferenceModel.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +CircularReferenceModel.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/dummy_model.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/dummy_model.py index bb8682915ad6..d19044c50967 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/dummy_model.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/dummy_model.py @@ -91,9 +91,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.self_reference_model import SelfReferenceModel -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # DummyModel.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +DummyModel.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/first_ref.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/first_ref.py index 568eca6f756b..f4b956738d0f 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/first_ref.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/first_ref.py @@ -91,9 +91,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.second_ref import SecondRef -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # FirstRef.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +FirstRef.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/second_ref.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/second_ref.py index 9140870ee899..c6bd7020089c 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/second_ref.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/second_ref.py @@ -91,9 +91,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.circular_reference_model import CircularReferenceModel -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # SecondRef.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +SecondRef.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/self_reference_model.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/self_reference_model.py index 2eaf5838dbbf..20be75789fc6 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/self_reference_model.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/self_reference_model.py @@ -91,9 +91,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.dummy_model import DummyModel -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # SelfReferenceModel.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +SelfReferenceModel.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/animal.py b/samples/openapi3/client/petstore/python/petstore_api/models/animal.py index 138891981e1d..37513302f9a3 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/animal.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/animal.py @@ -113,9 +113,6 @@ def from_dict(cls, obj: dict) -> Union[Self, Self]: from petstore_api.models.cat import Cat from petstore_api.models.dog import Dog -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # Animal.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +Animal.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/circular_reference_model.py b/samples/openapi3/client/petstore/python/petstore_api/models/circular_reference_model.py index 87c75c69894c..26cf803fa376 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/circular_reference_model.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/circular_reference_model.py @@ -104,9 +104,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.first_ref import FirstRef -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # CircularReferenceModel.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +CircularReferenceModel.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/dummy_model.py b/samples/openapi3/client/petstore/python/petstore_api/models/dummy_model.py index f36c7e906d7f..fa768f76d0fd 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/dummy_model.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/dummy_model.py @@ -104,9 +104,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.self_reference_model import SelfReferenceModel -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # DummyModel.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +DummyModel.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/first_ref.py b/samples/openapi3/client/petstore/python/petstore_api/models/first_ref.py index c74cacde3be7..d00e6075aa30 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/first_ref.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/first_ref.py @@ -104,9 +104,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.second_ref import SecondRef -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # FirstRef.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +FirstRef.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/second_ref.py b/samples/openapi3/client/petstore/python/petstore_api/models/second_ref.py index 440a92d69ff8..6efde5d11d67 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/second_ref.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/second_ref.py @@ -104,9 +104,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.circular_reference_model import CircularReferenceModel -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # SecondRef.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +SecondRef.model_rebuild(raise_errors=False) diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/self_reference_model.py b/samples/openapi3/client/petstore/python/petstore_api/models/self_reference_model.py index dea2c090fa28..e14bd9532ed9 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/self_reference_model.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/self_reference_model.py @@ -104,9 +104,6 @@ def from_dict(cls, obj: dict) -> Self: return _obj from petstore_api.models.dummy_model import DummyModel -from typing import TYPE_CHECKING -if TYPE_CHECKING: - # TODO: pydantic v2 - # SelfReferenceModel.model_rebuild() - pass +# TODO: Rewrite to not use raise_errors +SelfReferenceModel.model_rebuild(raise_errors=False)