Skip to content

Commit 712b980

Browse files
committed
Preserve RootModel config object
1 parent e3b3818 commit 712b980

2 files changed

Lines changed: 4 additions & 1 deletion

File tree

src/datamodel_code_generator/model/pydantic_v2/root_model.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ def _has_meaningful_config(config: Any) -> bool:
7676
def _sync_config_items(self) -> None:
7777
config = self.extra_template_data.get("config")
7878
if config_items := _root_model_config_items(config):
79-
self.extra_template_data["config"] = dict(config_items)
8079
self.extra_template_data[_CONFIG_ITEMS_TEMPLATE_DATA_KEY] = config_items
8180
if IMPORT_CONFIG_DICT not in self._additional_imports:
8281
self._additional_imports.append(IMPORT_CONFIG_DICT)

tests/model/pydantic_v2/test_root_model.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,8 @@ def test_root_model_renders_existing_config_object() -> None:
292292

293293
assert "model_config = ConfigDict(" in rendered
294294
assert 'regex_engine="python-re",' in rendered
295+
assert isinstance(root_model.extra_template_data["config"], ConfigDict)
296+
assert root_model.extra_template_data["config"].dict(exclude_unset=True) == {"regex_engine": '"python-re"'}
295297
assert _CONFIG_ITEMS_TEMPLATE_DATA_KEY in root_model.extra_template_data
296298

297299

@@ -342,4 +344,6 @@ def test_root_model_rebuilds_stale_config_items() -> None:
342344

343345
assert "model_config = ConfigDict(" in rendered
344346
assert 'regex_engine="python-re",' in rendered
347+
assert isinstance(root_model.extra_template_data["config"], ConfigDict)
348+
assert root_model.extra_template_data["config"].dict(exclude_unset=True) == {"regex_engine": '"python-re"'}
345349
assert root_model.extra_template_data[_CONFIG_ITEMS_TEMPLATE_DATA_KEY] == [("regex_engine", '"python-re"')]

0 commit comments

Comments
 (0)