@@ -121,7 +121,7 @@ def build( # noqa: PLR0911
121121 if parent_name :
122122 class_name = f"{ utils .pascal_case (parent_name )} { utils .pascal_case (class_name )} "
123123 class_info = Class .from_string (string = class_name , config = config )
124- var_names = data .model_extra .get ("x-enum-varnames" , [])
124+ var_names = data .model_extra .get ("x-enum-varnames" , []) if data . model_extra else []
125125 values = EnumProperty .values_from_list (value_list , class_info , var_names )
126126
127127 if class_info .name in schemas .classes_by_name :
@@ -184,15 +184,16 @@ def get_imports(self, *, prefix: str) -> set[str]:
184184 return imports
185185
186186 @staticmethod
187- def values_from_list (values : list [str ] | list [int ], class_info : Class , varnames : list [str ]) -> dict [str , ValueType ]:
187+ def values_from_list (values : list [str ] | list [int ], class_info : Class , var_names : list [str ]) -> dict [str , ValueType ]:
188188 """Convert a list of values into dict of {name: value}, where value can sometimes be None"""
189189 output : dict [str , ValueType ] = {}
190+ use_var_names = len (var_names ) == len (values )
190191
191192 for i , value in enumerate (values ):
192193 value = cast (Union [str , int ], value )
193194 if isinstance (value , int ):
194- if varnames :
195- key = varnames [i ].upper ()
195+ if use_var_names :
196+ key = var_names [i ].upper ()
196197 output [key ] = value
197198 elif value < 0 :
198199 output [f"VALUE_NEGATIVE_{ - value } " ] = value
0 commit comments