@@ -1139,6 +1139,7 @@ def _create_variant_model( # noqa: PLR0913, PLR0917
11391139 unique_name = self .model_resolver .get_class_name (variant_name , unique = True ).name
11401140 model_path = [* path [:- 1 ], unique_name ]
11411141 reference = self .model_resolver .add (model_path , unique_name , class_name = True , unique = False , loaded = True )
1142+ self ._set_schema_metadata (reference .path , obj )
11421143 self .set_schema_extensions (reference .path , obj )
11431144 model = self ._create_data_model (
11441145 model_type = data_model_type_class ,
@@ -1427,6 +1428,12 @@ def _set_schema_metadata(self, path: str, obj: JsonSchemaObject) -> None:
14271428 self .set_schema_id (path , obj )
14281429 self .set_additional_properties (path , obj )
14291430 self .set_unevaluated_properties (path , obj )
1431+ self .set_deprecated (path , obj )
1432+
1433+ def set_deprecated (self , path : str , obj : JsonSchemaObject ) -> None :
1434+ """Set deprecated flag in extra template data."""
1435+ if obj .extras .get ("deprecated" ) is True :
1436+ self .extra_template_data [path ]["deprecated" ] = True
14301437
14311438 def set_schema_extensions (self , path : str , obj : JsonSchemaObject ) -> None :
14321439 """Set schema extensions (x-* fields) in extra template data."""
@@ -2492,9 +2499,7 @@ def _parse_object_common_part( # noqa: PLR0912, PLR0913, PLR0915
24922499 )
24932500 name = self ._apply_title_as_name (name , obj ) # pragma: no cover
24942501 reference = self .model_resolver .add (path , name , class_name = True , loaded = True )
2495- self .set_additional_properties (reference .path , obj )
2496- self .set_unevaluated_properties (reference .path , obj )
2497- self .set_schema_id (reference .path , obj )
2502+ self ._set_schema_metadata (reference .path , obj )
24982503 self .set_schema_extensions (reference .path , obj )
24992504
25002505 generates_separate = self ._should_generate_separate_models (fields , base_classes )
@@ -2657,6 +2662,7 @@ def parse_all_of(
26572662 existing_ref = self .model_resolver .references .get (full_path )
26582663 if existing_ref is not None and not existing_ref .loaded :
26592664 reference = self .model_resolver .add (path , name , class_name = True , loaded = True )
2665+ self ._set_schema_metadata (reference .path , obj )
26602666 self .set_schema_extensions (reference .path , obj )
26612667 field = self .data_model_field_type (
26622668 name = None ,
@@ -2711,6 +2717,7 @@ def parse_all_of(
27112717 required = required ,
27122718 )
27132719 reference = self .model_resolver .add (path , name , class_name = True , loaded = True )
2720+ self ._set_schema_metadata (reference .path , obj )
27142721 self .set_schema_extensions (reference .path , obj )
27152722 all_of_data_type = self ._parse_object_common_part (
27162723 name ,
@@ -2906,8 +2913,7 @@ def parse_object(
29062913 )
29072914 data_model_type_class = self .data_model_root_type
29082915
2909- self .set_additional_properties (reference .path , obj )
2910- self .set_unevaluated_properties (reference .path , obj )
2916+ self ._set_schema_metadata (reference .path , obj )
29112917 self .set_schema_extensions (reference .path , obj )
29122918
29132919 generates_separate = self ._should_generate_separate_models (fields , None )
@@ -3368,6 +3374,7 @@ def parse_array(
33683374 """Parse array schema into a root model with array type."""
33693375 name = self ._apply_title_as_name (name , obj )
33703376 reference = self .model_resolver .add (path , name , loaded = True , class_name = True )
3377+ self ._set_schema_metadata (reference .path , obj )
33713378 self .set_schema_extensions (reference .path , obj )
33723379 field = self .parse_array_fields (original_name or name , obj , [* path , name ])
33733380
@@ -3613,7 +3620,7 @@ def _get_field_name_from_dict_enum(cls, enum_part: dict[str, Any], index: int) -
36133620 return str (enum_part ["const" ])
36143621 return f"value_{ index } "
36153622
3616- def parse_enum (
3623+ def parse_enum ( # noqa: PLR0915
36173624 self ,
36183625 name : str ,
36193626 obj : JsonSchemaObject ,
@@ -3690,6 +3697,7 @@ def parse_enum(
36903697 loaded = True ,
36913698 model_type = "enum" ,
36923699 )
3700+ self ._set_schema_metadata (reference .path , obj )
36933701 self .set_schema_extensions (reference .path , obj )
36943702 data_model_root_type = self .data_model_root_type (
36953703 reference = reference ,
@@ -3761,11 +3769,12 @@ def create_enum(reference_: Reference) -> DataType:
37613769 loaded = True ,
37623770 model_type = "enum" ,
37633771 )
3772+ self ._set_schema_metadata (reference .path , obj )
3773+ self .set_schema_extensions (reference .path , obj )
37643774
37653775 if not nullable :
37663776 return create_enum (reference )
37673777
3768- self .set_schema_extensions (reference .path , obj )
37693778 enum_reference = self .model_resolver .add (
37703779 [* path , "Enum" ],
37713780 f"{ reference .name } Enum" ,
0 commit comments