@@ -141,122 +141,122 @@ It requires a lit bit of tweaking:
141
141
* There is a lot of optinal fields so we reduce merging threshold
142
142
143
143
```
144
- json_to_models -s flat -f attrs -m Swagger testing_tools/swagger.json
144
+ json_to_models -s flat -f dataclasses -m Swagger testing_tools/swagger.json
145
145
--dict-keys-fields securityDefinitions paths responses definitions properties
146
146
--merge percent_50 number
147
147
```
148
148
149
149
``` python
150
- import attr
150
+ from dataclasses import dataclass, field
151
151
from json_to_models.dynamic_typing import FloatString
152
152
from typing import Any, Dict, List, Optional, Union
153
153
154
154
155
- @attr.s
155
+ @dataclass
156
156
class Swagger :
157
- swagger: FloatString = attr.ib( converter = FloatString)
158
- info: ' Info' = attr.ib()
159
- host: str = attr.ib()
160
- schemes: List[str ] = attr.ib()
161
- base_path: str = attr.ib()
162
- consumes: List[str ] = attr.ib()
163
- produces: List[str ] = attr.ib()
164
- security_definitions: Dict[str , ' Parameter_SecurityDefinition' ] = attr.ib()
165
- security: List[' Security' ] = attr.ib()
166
- paths: Dict[str , ' Path' ] = attr.ib()
167
- definitions: Dict[str , ' Definition_Schema' ] = attr.ib()
168
-
169
-
170
- @attr.s
157
+ swagger: FloatString
158
+ info: ' Info'
159
+ host: str
160
+ schemes: List[str ]
161
+ base_path: str
162
+ consumes: List[str ]
163
+ produces: List[str ]
164
+ security_definitions: Dict[str , ' Parameter_SecurityDefinition' ]
165
+ security: List[' Security' ]
166
+ paths: Dict[str , ' Path' ]
167
+ definitions: Dict[str , ' Definition_Schema' ]
168
+
169
+
170
+ @dataclass
171
171
class Info :
172
- title: str = attr.ib()
173
- description: str = attr.ib()
174
- version: str = attr.ib()
172
+ title: str
173
+ description: str
174
+ version: str
175
175
176
176
177
- @attr.s
177
+ @dataclass
178
178
class Security :
179
- api_key: Optional[List[Any]] = attr.ib( factory = list )
180
- basic: Optional[List[Any]] = attr.ib( factory = list )
179
+ api_key: Optional[List[Any]] = field( default_factory = list )
180
+ basic: Optional[List[Any]] = field( default_factory = list )
181
181
182
182
183
- @attr.s
183
+ @dataclass
184
184
class Path :
185
- parameters: List[' Parameter_SecurityDefinition' ] = attr.ib()
186
- post: Optional[' Delete_Get_Patch_Post_Put' ] = attr.ib( default = None )
187
- get: Optional[' Delete_Get_Patch_Post_Put' ] = attr.ib( default = None )
188
- put: Optional[' Delete_Get_Patch_Post_Put' ] = attr.ib( default = None )
189
- patch: Optional[' Delete_Get_Patch_Post_Put' ] = attr.ib( default = None )
190
- delete: Optional[' Delete_Get_Patch_Post_Put' ] = attr.ib( default = None )
185
+ parameters: List[' Parameter_SecurityDefinition' ]
186
+ post: Optional[' Delete_Get_Patch_Post_Put' ] = None
187
+ get: Optional[' Delete_Get_Patch_Post_Put' ] = None
188
+ put: Optional[' Delete_Get_Patch_Post_Put' ] = None
189
+ patch: Optional[' Delete_Get_Patch_Post_Put' ] = None
190
+ delete: Optional[' Delete_Get_Patch_Post_Put' ] = None
191
191
192
192
193
- @attr.s
193
+ @dataclass
194
194
class Property :
195
- type : str = attr.ib()
196
- format : Optional[str ] = attr.ib( default = None )
197
- xnullable: Optional[bool ] = attr.ib( default = None )
198
- items: Optional[' Item_Schema' ] = attr.ib( default = None )
195
+ type : str
196
+ format : Optional[str ] = None
197
+ xnullable: Optional[bool ] = None
198
+ items: Optional[' Item_Schema' ] = None
199
199
200
200
201
- @attr.s
201
+ @dataclass
202
202
class Property_2E :
203
- type : str = attr.ib()
204
- title: Optional[str ] = attr.ib( default = None )
205
- read_only: Optional[bool ] = attr.ib( default = None )
206
- max_length: Optional[int ] = attr.ib( default = None )
207
- min_length: Optional[int ] = attr.ib( default = None )
208
- items: Optional[' Item' ] = attr.ib( default = None )
209
- enum: Optional[List[str ]] = attr.ib( factory = list )
210
- maximum: Optional[int ] = attr.ib( default = None )
211
- minimum: Optional[int ] = attr.ib( default = None )
212
- format : Optional[str ] = attr.ib( default = None )
213
-
214
-
215
- @attr.s
203
+ type : str
204
+ title: Optional[str ] = None
205
+ read_only: Optional[bool ] = None
206
+ max_length: Optional[int ] = None
207
+ min_length: Optional[int ] = None
208
+ items: Optional[' Item' ] = None
209
+ enum: Optional[List[str ]] = field( default_factory = list )
210
+ maximum: Optional[int ] = None
211
+ minimum: Optional[int ] = None
212
+ format : Optional[str ] = None
213
+
214
+
215
+ @dataclass
216
216
class Item :
217
- ref: Optional[str ] = attr.ib( default = None )
218
- title: Optional[str ] = attr.ib( default = None )
219
- type : Optional[str ] = attr.ib( default = None )
220
- max_length: Optional[int ] = attr.ib( default = None )
221
- min_length: Optional[int ] = attr.ib( default = None )
217
+ ref: Optional[str ] = None
218
+ title: Optional[str ] = None
219
+ type : Optional[str ] = None
220
+ max_length: Optional[int ] = None
221
+ min_length: Optional[int ] = None
222
222
223
223
224
- @attr.s
224
+ @dataclass
225
225
class Parameter_SecurityDefinition :
226
- name: str = attr.ib()
227
- in_: str = attr.ib()
228
- description : Optional[str ] = attr.ib( default = None )
229
- required : Optional[bool ] = attr.ib( default = None )
230
- type : Optional[str ] = attr.ib( default = None )
231
- schema : Optional[' Item_Schema ' ] = attr.ib( default = None )
226
+ name: str
227
+ in_: str
228
+ required : Optional[bool ] = None
229
+ schema : Optional[' Item_Schema ' ] = None
230
+ type : Optional[str ] = None
231
+ description : Optional[str ] = None
232
232
233
233
234
- @attr.s
234
+ @dataclass
235
235
class Delete_Get_Patch_Post_Put :
236
- operation_id: str = attr.ib()
237
- description: str = attr.ib()
238
- parameters: List[' Parameter_SecurityDefinition' ] = attr.ib()
239
- responses: Dict[str , ' Response' ] = attr.ib()
240
- tags: List[str ] = attr.ib()
236
+ operation_id: str
237
+ description: str
238
+ parameters: List[' Parameter_SecurityDefinition' ]
239
+ responses: Dict[str , ' Response' ]
240
+ tags: List[str ]
241
241
242
242
243
- @attr.s
243
+ @dataclass
244
244
class Item_Schema :
245
- ref: str = attr.ib()
245
+ ref: str
246
246
247
247
248
- @attr.s
248
+ @dataclass
249
249
class Response :
250
- description: str = attr.ib()
251
- schema: Optional[Union[' Definition_Schema ' , ' Item_Schema ' ]] = attr.ib( default = None )
250
+ description: str
251
+ schema: Optional[Union[' Item_Schema ' , ' Definition_Schema ' ]] = None
252
252
253
253
254
- @attr.s
254
+ @dataclass
255
255
class Definition_Schema :
256
- ref: Optional[str ] = attr.ib( default = None )
257
- required: Optional[List[str ]] = attr.ib( factory = list )
258
- type : Optional[str ] = attr.ib( default = None )
259
- properties: Optional[Dict[str , Union[' Property_2E' , ' Property' ]]] = attr.ib( factory = dict )
256
+ ref: Optional[str ] = None
257
+ required: Optional[List[str ]] = field( default_factory = list )
258
+ type : Optional[str ] = None
259
+ properties: Optional[Dict[str , Union[' Property_2E' , ' Property' ]]] = field( default_factory = dict )
260
260
```
261
261
262
262
</p >
0 commit comments