Skip to content

Commit db62943

Browse files
author
Barry Barrette
committed
Fixing possible null reference and ensuring var names length matches the values length
1 parent e03be4c commit db62943

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

openapi_python_client/parser/properties/enum_property.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)