|
40 | 40 | ) |
41 | 41 | from datamodel_code_generator.model import DataModel, DataModelFieldBase |
42 | 42 | from datamodel_code_generator.model import pydantic as pydantic_model |
43 | | -from datamodel_code_generator.model.base import UNDEFINED, get_module_name |
| 43 | +from datamodel_code_generator.model.base import UNDEFINED, get_module_name, sanitize_module_name |
44 | 44 | from datamodel_code_generator.model.dataclass import DataClass |
45 | 45 | from datamodel_code_generator.model.enum import ( |
46 | 46 | SPECIALIZED_ENUM_TYPE_MATCH, |
@@ -967,7 +967,7 @@ def _parse_object_common_part( # noqa: PLR0913, PLR0917 |
967 | 967 | self.data_model_field_type(required=True, original_name=required_, data_type=DataType()) |
968 | 968 | ) |
969 | 969 | if self.use_title_as_name and obj.title: # pragma: no cover |
970 | | - name = obj.title |
| 970 | + name = sanitize_module_name(obj.title, treat_dot_as_module=self.treat_dot_as_module) |
971 | 971 | reference = self.model_resolver.add(path, name, class_name=True, loaded=True) |
972 | 972 | self.set_additional_properties(reference.path, obj) |
973 | 973 |
|
@@ -1184,7 +1184,7 @@ def parse_object( |
1184 | 1184 | stacklevel=2, |
1185 | 1185 | ) |
1186 | 1186 | if self.use_title_as_name and obj.title: |
1187 | | - name = obj.title |
| 1187 | + name = sanitize_module_name(obj.title, treat_dot_as_module=self.treat_dot_as_module) |
1188 | 1188 | reference = self.model_resolver.add( |
1189 | 1189 | path, |
1190 | 1190 | name, |
@@ -1281,7 +1281,7 @@ def parse_item( # noqa: PLR0911, PLR0912 |
1281 | 1281 | ) -> DataType: |
1282 | 1282 | """Parse a single JSON Schema item into a data type.""" |
1283 | 1283 | if self.use_title_as_name and item.title: |
1284 | | - name = item.title |
| 1284 | + name = sanitize_module_name(item.title, treat_dot_as_module=self.treat_dot_as_module) |
1285 | 1285 | singular_name = False |
1286 | 1286 | if parent and not item.enum and item.has_constraint and (parent.has_constraint or self.field_constraints): |
1287 | 1287 | root_type_path = get_special_path("array", path) |
@@ -1441,7 +1441,7 @@ def parse_array( |
1441 | 1441 | ) -> DataType: |
1442 | 1442 | """Parse array schema into a root model with array type.""" |
1443 | 1443 | if self.use_title_as_name and obj.title: |
1444 | | - name = obj.title |
| 1444 | + name = sanitize_module_name(obj.title, treat_dot_as_module=self.treat_dot_as_module) |
1445 | 1445 | reference = self.model_resolver.add(path, name, loaded=True, class_name=True) |
1446 | 1446 | field = self.parse_array_fields(original_name or name, obj, [*path, name]) |
1447 | 1447 |
|
@@ -1530,7 +1530,7 @@ def parse_root_type( # noqa: PLR0912 |
1530 | 1530 | else: |
1531 | 1531 | required = not obj.nullable and not (obj.has_default and self.apply_default_values_for_required_fields) |
1532 | 1532 | if self.use_title_as_name and obj.title: |
1533 | | - name = obj.title |
| 1533 | + name = sanitize_module_name(obj.title, treat_dot_as_module=self.treat_dot_as_module) |
1534 | 1534 | if not reference: |
1535 | 1535 | reference = self.model_resolver.add(path, name, loaded=True, class_name=True) |
1536 | 1536 | self.set_title(reference.path, obj) |
@@ -1729,7 +1729,7 @@ def create_enum(reference_: Reference) -> DataType: |
1729 | 1729 | return self.data_type(reference=reference_) |
1730 | 1730 |
|
1731 | 1731 | if self.use_title_as_name and obj.title: |
1732 | | - name = obj.title |
| 1732 | + name = sanitize_module_name(obj.title, treat_dot_as_module=self.treat_dot_as_module) |
1733 | 1733 | reference = self.model_resolver.add( |
1734 | 1734 | path, |
1735 | 1735 | name, |
|
0 commit comments