@@ -2567,6 +2567,46 @@ def parse_enum(
25672567 )
25682568 )
25692569
2570+ if not enum_fields :
2571+ if not nullable :
2572+ return self .data_type_manager .get_data_type (Types .null )
2573+ name = self ._apply_title_as_name (name , obj )
2574+ reference = self .model_resolver .add (
2575+ path ,
2576+ name ,
2577+ class_name = True ,
2578+ singular_name = singular_name ,
2579+ singular_name_suffix = "Enum" ,
2580+ loaded = True ,
2581+ )
2582+ data_model_root_type = self .data_model_root_type (
2583+ reference = reference ,
2584+ fields = [
2585+ self .data_model_field_type (
2586+ data_type = self .data_type_manager .get_data_type (Types .null ),
2587+ default = obj .default ,
2588+ required = False ,
2589+ nullable = True ,
2590+ strip_default_none = self .strip_default_none ,
2591+ extras = self .get_field_extras (obj ),
2592+ use_annotated = self .use_annotated ,
2593+ has_default = obj .has_default ,
2594+ use_field_description = self .use_field_description ,
2595+ use_inline_field_description = self .use_inline_field_description ,
2596+ original_name = None ,
2597+ )
2598+ ],
2599+ custom_base_class = obj .custom_base_path or self .base_class ,
2600+ custom_template_dir = self .custom_template_dir ,
2601+ extra_template_data = self .extra_template_data ,
2602+ path = self .current_source_path ,
2603+ default = obj .default if obj .has_default else UNDEFINED ,
2604+ nullable = obj .type_has_null ,
2605+ treat_dot_as_module = self .treat_dot_as_module ,
2606+ )
2607+ self .results .append (data_model_root_type )
2608+ return self .data_type (reference = reference )
2609+
25702610 def create_enum (reference_ : Reference ) -> DataType :
25712611 type_ : Types | None = (
25722612 self ._get_type_with_mappings (obj .type , obj .format ) if isinstance (obj .type , str ) else None
0 commit comments