From 9fec9eeecd1bbf76bcd66e59fbc14f5822e91518 Mon Sep 17 00:00:00 2001 From: Ezeudoh Tochukwu Date: Mon, 30 Dec 2024 07:43:44 +0100 Subject: [PATCH 1/2] Added support to add more option to config dict for creating new schema --- ninja_schema/orm/factory.py | 2 ++ tests/test_v2_pydantic/test_factory.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 tests/test_v2_pydantic/test_factory.py diff --git a/ninja_schema/orm/factory.py b/ninja_schema/orm/factory.py index 5c8ef24..7badf68 100755 --- a/ninja_schema/orm/factory.py +++ b/ninja_schema/orm/factory.py @@ -39,6 +39,7 @@ def create_schema( exclude: Optional[List[str]] = None, skip_registry: bool = False, optional_fields: Optional[Union[str, List[str]]] = None, + **model_config_options: DictStrAny, ) -> Union[Type["ModelSchema"], Type["Schema"], None]: from .model_schema import ModelSchema @@ -59,6 +60,7 @@ def create_schema( "depth": depth, "registry": registry, "optional": optional_fields, + **model_config_options, } cls.get_model_config(**model_config_kwargs) # type: ignore new_schema = ( diff --git a/tests/test_v2_pydantic/test_factory.py b/tests/test_v2_pydantic/test_factory.py new file mode 100644 index 0000000..c7695e0 --- /dev/null +++ b/tests/test_v2_pydantic/test_factory.py @@ -0,0 +1,18 @@ +import pytest + +from ninja_schema.orm.factory import SchemaFactory +from ninja_schema.pydanticutils import IS_PYDANTIC_V1 +from tests.models import Event + + +@pytest.mark.skipif(IS_PYDANTIC_V1, reason="requires pydantic == 2.1.x") +def test_create_schema_with_model_config_options(): + schema = SchemaFactory.create_schema( + Event, + skip_registry=True, + from_attributes=True, # model_config_option + title="Custom Title", # model_config_option + ) + + assert schema.model_config["from_attributes"] is True + assert schema.model_config["title"] == "Custom Title" From d223f96388eb3b1dbbbf5b0cef1db24b58f23d83 Mon Sep 17 00:00:00 2001 From: Ezeudoh Tochukwu Date: Mon, 30 Dec 2024 07:44:12 +0100 Subject: [PATCH 2/2] 0.14.1 --- ninja_schema/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ninja_schema/__init__.py b/ninja_schema/__init__.py index 5328f02..cc23034 100755 --- a/ninja_schema/__init__.py +++ b/ninja_schema/__init__.py @@ -1,6 +1,6 @@ """Django Schema - Builds Pydantic Schemas from Django Models with default field type validations""" -__version__ = "0.14.0" +__version__ = "0.14.1" from .orm.factory import SchemaFactory from .orm.model_schema import ModelSchema