Skip to content

Commit a43da72

Browse files
committed
fix: don't declare unused variable if model has no properties
1 parent 3fb5fb2 commit a43da72

File tree

5 files changed

+35
-0
lines changed

5 files changed

+35
-0
lines changed

end_to_end_tests/baseline_openapi_3.0.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2175,6 +2175,11 @@
21752175
}
21762176
]
21772177
},
2178+
"ModelWithNoProperties": {
2179+
"type": "object",
2180+
"properties": {},
2181+
"additionalProperties": false
2182+
},
21782183
"AllOfSubModel": {
21792184
"title": "AllOfSubModel",
21802185
"type": "object",

end_to_end_tests/baseline_openapi_3.1.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2181,6 +2181,11 @@ info:
21812181
}
21822182
]
21832183
},
2184+
"ModelWithNoProperties": {
2185+
"type": "object",
2186+
"properties": {},
2187+
"additionalProperties": false
2188+
},
21842189
"AllOfSubModel": {
21852190
"title": "AllOfSubModel",
21862191
"type": "object",

end_to_end_tests/golden-record/my_test_api_client/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
from .model_with_circular_ref_in_additional_properties_b import ModelWithCircularRefInAdditionalPropertiesB
5959
from .model_with_date_time_property import ModelWithDateTimeProperty
6060
from .model_with_discriminated_union import ModelWithDiscriminatedUnion
61+
from .model_with_no_properties import ModelWithNoProperties
6162
from .model_with_primitive_additional_properties import ModelWithPrimitiveAdditionalProperties
6263
from .model_with_primitive_additional_properties_a_date_holder import ModelWithPrimitiveAdditionalPropertiesADateHolder
6364
from .model_with_property_ref import ModelWithPropertyRef
@@ -133,6 +134,7 @@
133134
"ModelWithCircularRefInAdditionalPropertiesB",
134135
"ModelWithDateTimeProperty",
135136
"ModelWithDiscriminatedUnion",
137+
"ModelWithNoProperties",
136138
"ModelWithPrimitiveAdditionalProperties",
137139
"ModelWithPrimitiveAdditionalPropertiesADateHolder",
138140
"ModelWithPropertyRef",
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from typing import Any, Dict, Type, TypeVar
2+
3+
from attrs import define as _attrs_define
4+
5+
T = TypeVar("T", bound="ModelWithNoProperties")
6+
7+
8+
@_attrs_define
9+
class ModelWithNoProperties:
10+
""" """
11+
12+
def to_dict(self) -> Dict[str, Any]:
13+
field_dict: Dict[str, Any] = {}
14+
15+
return field_dict
16+
17+
@classmethod
18+
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
19+
model_with_no_properties = cls()
20+
21+
return model_with_no_properties

openapi_python_client/templates/model.py.jinja

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ return field_dict
138138
{% for lazy_import in model.lazy_imports %}
139139
{{ lazy_import }}
140140
{% endfor %}
141+
{% if (model.required_properties or model.optional_properties or model.additional_properties) %}
141142
d = src_dict.copy()
142143
{% for property in model.required_properties + model.optional_properties %}
143144
{% if property.required %}
@@ -153,6 +154,7 @@ return field_dict
153154
{% endif %}
154155

155156
{% endfor %}
157+
{% endif %}
156158
{{ module_name }} = cls(
157159
{% for property in model.required_properties + model.optional_properties %}
158160
{{ property.python_name }}={{ property.python_name }},

0 commit comments

Comments
 (0)