Skip to content

Commit 72e4efe

Browse files
fix: Replace bare except blocks with specific exception types (#1348)
## Summary Replace bare `except:` blocks with specific exception tuple `except (TypeError, ValueError, AttributeError, KeyError):` in the union property parsing template. ## Changes - Updated `openapi_python_client/templates/property_templates/union_property.py.jinja:24` to catch only specific exceptions relevant to parsing operations - Removed `# noqa: E722` linting suppression comments that are no longer needed - Regenerated all golden records to reflect template changes ## Benefits - Makes error handling more explicit and intentional - Avoids catching system exceptions like `KeyboardInterrupt` or `SystemExit` - Improves code quality and complies with PEP 8 style guidelines - Removes the need for linting suppressions ## Test plan - [x] Regenerated golden records with `pdm regen` - [x] Verified all generated model files with union properties now use specific exception handling - [x] Confirmed the exception tuple covers the relevant error cases for parsing (TypeError, ValueError, AttributeError, KeyError)
1 parent c3dcb03 commit 72e4efe

File tree

11 files changed

+36
-36
lines changed

11 files changed

+36
-36
lines changed

end_to_end_tests/golden-record/my_test_api_client/api/default/get_models_oneof_with_required_const.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def _parse_response_200(
3737
response_200_type_0 = GetModelsOneofWithRequiredConstResponse200Type0.from_dict(data)
3838

3939
return response_200_type_0
40-
except: # noqa: E722
40+
except (TypeError, ValueError, AttributeError, KeyError):
4141
pass
4242
if not isinstance(data, dict):
4343
raise TypeError()

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ def _parse_a_camel_date_time(data: object) -> datetime.date | datetime.datetime:
272272
a_camel_date_time_type_0 = isoparse(data)
273273

274274
return a_camel_date_time_type_0
275-
except: # noqa: E722
275+
except (TypeError, ValueError, AttributeError, KeyError):
276276
pass
277277
if not isinstance(data, str):
278278
raise TypeError()
@@ -293,7 +293,7 @@ def _parse_a_nullable_date(data: object) -> datetime.date | None:
293293
a_nullable_date_type_0 = isoparse(data).date()
294294

295295
return a_nullable_date_type_0
296-
except: # noqa: E722
296+
except (TypeError, ValueError, AttributeError, KeyError):
297297
pass
298298
return cast(datetime.date | None, data)
299299

@@ -310,7 +310,7 @@ def _parse_a_nullable_uuid(data: object) -> None | UUID:
310310
a_nullable_uuid_type_0 = UUID(data)
311311

312312
return a_nullable_uuid_type_0
313-
except: # noqa: E722
313+
except (TypeError, ValueError, AttributeError, KeyError):
314314
pass
315315
return cast(None | UUID, data)
316316

@@ -332,15 +332,15 @@ def _parse_one_of_models(data: object) -> Any | FreeFormModel | ModelWithUnionPr
332332
one_of_models_type_0 = FreeFormModel.from_dict(data)
333333

334334
return one_of_models_type_0
335-
except: # noqa: E722
335+
except (TypeError, ValueError, AttributeError, KeyError):
336336
pass
337337
try:
338338
if not isinstance(data, dict):
339339
raise TypeError()
340340
one_of_models_type_1 = ModelWithUnionProperty.from_dict(data)
341341

342342
return one_of_models_type_1
343-
except: # noqa: E722
343+
except (TypeError, ValueError, AttributeError, KeyError):
344344
pass
345345
return cast(Any | FreeFormModel | ModelWithUnionProperty, data)
346346

@@ -355,15 +355,15 @@ def _parse_nullable_one_of_models(data: object) -> FreeFormModel | ModelWithUnio
355355
nullable_one_of_models_type_0 = FreeFormModel.from_dict(data)
356356

357357
return nullable_one_of_models_type_0
358-
except: # noqa: E722
358+
except (TypeError, ValueError, AttributeError, KeyError):
359359
pass
360360
try:
361361
if not isinstance(data, dict):
362362
raise TypeError()
363363
nullable_one_of_models_type_1 = ModelWithUnionProperty.from_dict(data)
364364

365365
return nullable_one_of_models_type_1
366-
except: # noqa: E722
366+
except (TypeError, ValueError, AttributeError, KeyError):
367367
pass
368368
return cast(FreeFormModel | ModelWithUnionProperty | None, data)
369369

@@ -380,7 +380,7 @@ def _parse_nullable_model(data: object) -> ModelWithUnionProperty | None:
380380
nullable_model_type_1 = ModelWithUnionProperty.from_dict(data)
381381

382382
return nullable_model_type_1
383-
except: # noqa: E722
383+
except (TypeError, ValueError, AttributeError, KeyError):
384384
pass
385385
return cast(ModelWithUnionProperty | None, data)
386386

@@ -447,7 +447,7 @@ def _parse_not_required_one_of_models(data: object) -> FreeFormModel | ModelWith
447447
not_required_one_of_models_type_0 = FreeFormModel.from_dict(data)
448448

449449
return not_required_one_of_models_type_0
450-
except: # noqa: E722
450+
except (TypeError, ValueError, AttributeError, KeyError):
451451
pass
452452
if not isinstance(data, dict):
453453
raise TypeError()
@@ -470,15 +470,15 @@ def _parse_not_required_nullable_one_of_models(
470470
not_required_nullable_one_of_models_type_0 = FreeFormModel.from_dict(data)
471471

472472
return not_required_nullable_one_of_models_type_0
473-
except: # noqa: E722
473+
except (TypeError, ValueError, AttributeError, KeyError):
474474
pass
475475
try:
476476
if not isinstance(data, dict):
477477
raise TypeError()
478478
not_required_nullable_one_of_models_type_1 = ModelWithUnionProperty.from_dict(data)
479479

480480
return not_required_nullable_one_of_models_type_1
481-
except: # noqa: E722
481+
except (TypeError, ValueError, AttributeError, KeyError):
482482
pass
483483
return cast(FreeFormModel | ModelWithUnionProperty | None | str | Unset, data)
484484

@@ -504,7 +504,7 @@ def _parse_not_required_nullable_model(data: object) -> ModelWithUnionProperty |
504504
not_required_nullable_model_type_1 = ModelWithUnionProperty.from_dict(data)
505505

506506
return not_required_nullable_model_type_1
507-
except: # noqa: E722
507+
except (TypeError, ValueError, AttributeError, KeyError):
508508
pass
509509
return cast(ModelWithUnionProperty | None | Unset, data)
510510

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ def _parse_some_nullable_object(data: object) -> BodyUploadFileTestsUploadPostSo
276276
some_nullable_object_type_0 = BodyUploadFileTestsUploadPostSomeNullableObject.from_dict(data)
277277

278278
return some_nullable_object_type_0
279-
except: # noqa: E722
279+
except (TypeError, ValueError, AttributeError, KeyError):
280280
pass
281281
return cast(BodyUploadFileTestsUploadPostSomeNullableObject | None, data)
282282

@@ -347,7 +347,7 @@ def _parse_some_array(data: object) -> list[AFormData] | None | Unset:
347347
some_array_type_0.append(some_array_type_0_item)
348348

349349
return some_array_type_0
350-
except: # noqa: E722
350+
except (TypeError, ValueError, AttributeError, KeyError):
351351
pass
352352
return cast(list[AFormData] | None | Unset, data)
353353

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ def _parse_a_camel_date_time(data: object) -> datetime.date | datetime.datetime:
279279
a_camel_date_time_type_0 = isoparse(data)
280280

281281
return a_camel_date_time_type_0
282-
except: # noqa: E722
282+
except (TypeError, ValueError, AttributeError, KeyError):
283283
pass
284284
if not isinstance(data, str):
285285
raise TypeError()
@@ -300,7 +300,7 @@ def _parse_a_nullable_date(data: object) -> datetime.date | None:
300300
a_nullable_date_type_0 = isoparse(data).date()
301301

302302
return a_nullable_date_type_0
303-
except: # noqa: E722
303+
except (TypeError, ValueError, AttributeError, KeyError):
304304
pass
305305
return cast(datetime.date | None, data)
306306

@@ -317,7 +317,7 @@ def _parse_a_nullable_uuid(data: object) -> None | UUID:
317317
a_nullable_uuid_type_0 = UUID(data)
318318

319319
return a_nullable_uuid_type_0
320-
except: # noqa: E722
320+
except (TypeError, ValueError, AttributeError, KeyError):
321321
pass
322322
return cast(None | UUID, data)
323323

@@ -339,15 +339,15 @@ def _parse_one_of_models(data: object) -> Any | FreeFormModel | ModelWithUnionPr
339339
one_of_models_type_0 = FreeFormModel.from_dict(data)
340340

341341
return one_of_models_type_0
342-
except: # noqa: E722
342+
except (TypeError, ValueError, AttributeError, KeyError):
343343
pass
344344
try:
345345
if not isinstance(data, dict):
346346
raise TypeError()
347347
one_of_models_type_1 = ModelWithUnionProperty.from_dict(data)
348348

349349
return one_of_models_type_1
350-
except: # noqa: E722
350+
except (TypeError, ValueError, AttributeError, KeyError):
351351
pass
352352
return cast(Any | FreeFormModel | ModelWithUnionProperty, data)
353353

@@ -362,15 +362,15 @@ def _parse_nullable_one_of_models(data: object) -> FreeFormModel | ModelWithUnio
362362
nullable_one_of_models_type_0 = FreeFormModel.from_dict(data)
363363

364364
return nullable_one_of_models_type_0
365-
except: # noqa: E722
365+
except (TypeError, ValueError, AttributeError, KeyError):
366366
pass
367367
try:
368368
if not isinstance(data, dict):
369369
raise TypeError()
370370
nullable_one_of_models_type_1 = ModelWithUnionProperty.from_dict(data)
371371

372372
return nullable_one_of_models_type_1
373-
except: # noqa: E722
373+
except (TypeError, ValueError, AttributeError, KeyError):
374374
pass
375375
return cast(FreeFormModel | ModelWithUnionProperty | None, data)
376376

@@ -387,7 +387,7 @@ def _parse_nullable_model(data: object) -> ModelWithUnionProperty | None:
387387
nullable_model_type_1 = ModelWithUnionProperty.from_dict(data)
388388

389389
return nullable_model_type_1
390-
except: # noqa: E722
390+
except (TypeError, ValueError, AttributeError, KeyError):
391391
pass
392392
return cast(ModelWithUnionProperty | None, data)
393393

@@ -454,7 +454,7 @@ def _parse_not_required_one_of_models(data: object) -> FreeFormModel | ModelWith
454454
not_required_one_of_models_type_0 = FreeFormModel.from_dict(data)
455455

456456
return not_required_one_of_models_type_0
457-
except: # noqa: E722
457+
except (TypeError, ValueError, AttributeError, KeyError):
458458
pass
459459
if not isinstance(data, dict):
460460
raise TypeError()
@@ -477,15 +477,15 @@ def _parse_not_required_nullable_one_of_models(
477477
not_required_nullable_one_of_models_type_0 = FreeFormModel.from_dict(data)
478478

479479
return not_required_nullable_one_of_models_type_0
480-
except: # noqa: E722
480+
except (TypeError, ValueError, AttributeError, KeyError):
481481
pass
482482
try:
483483
if not isinstance(data, dict):
484484
raise TypeError()
485485
not_required_nullable_one_of_models_type_1 = ModelWithUnionProperty.from_dict(data)
486486

487487
return not_required_nullable_one_of_models_type_1
488-
except: # noqa: E722
488+
except (TypeError, ValueError, AttributeError, KeyError):
489489
pass
490490
return cast(FreeFormModel | ModelWithUnionProperty | None | str | Unset, data)
491491

@@ -511,7 +511,7 @@ def _parse_not_required_nullable_model(data: object) -> ModelWithUnionProperty |
511511
not_required_nullable_model_type_1 = ModelWithUnionProperty.from_dict(data)
512512

513513
return not_required_nullable_model_type_1
514-
except: # noqa: E722
514+
except (TypeError, ValueError, AttributeError, KeyError):
515515
pass
516516
return cast(ModelWithUnionProperty | None | Unset, data)
517517

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,15 @@ def _parse_additional_property(
6161
additional_property_type_0 = ModelWithAnyJsonPropertiesAdditionalPropertyType0.from_dict(data)
6262

6363
return additional_property_type_0
64-
except: # noqa: E722
64+
except (TypeError, ValueError, AttributeError, KeyError):
6565
pass
6666
try:
6767
if not isinstance(data, list):
6868
raise TypeError()
6969
additional_property_type_1 = cast(list[str], data)
7070

7171
return additional_property_type_1
72-
except: # noqa: E722
72+
except (TypeError, ValueError, AttributeError, KeyError):
7373
pass
7474
return cast(
7575
bool | float | int | list[str] | ModelWithAnyJsonPropertiesAdditionalPropertyType0 | str, data

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,15 @@ def _parse_discriminated_union(
6868
componentsschemas_a_discriminated_union_type_0 = ADiscriminatedUnionType1.from_dict(data)
6969

7070
return componentsschemas_a_discriminated_union_type_0
71-
except: # noqa: E722
71+
except (TypeError, ValueError, AttributeError, KeyError):
7272
pass
7373
try:
7474
if not isinstance(data, dict):
7575
raise TypeError()
7676
componentsschemas_a_discriminated_union_type_1 = ADiscriminatedUnionType2.from_dict(data)
7777

7878
return componentsschemas_a_discriminated_union_type_1
79-
except: # noqa: E722
79+
except (TypeError, ValueError, AttributeError, KeyError):
8080
pass
8181
return cast(ADiscriminatedUnionType1 | ADiscriminatedUnionType2 | None | Unset, data)
8282

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def _parse_a_property(data: object) -> AnEnum | AnIntEnum | Unset:
5151
a_property_type_0 = AnEnum(data)
5252

5353
return a_property_type_0
54-
except: # noqa: E722
54+
except (TypeError, ValueError, AttributeError, KeyError):
5555
pass
5656
if not isinstance(data, int):
5757
raise TypeError()

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def _parse_fruit(
6161
fruit_apples = ModelWithUnionPropertyInlinedApples.from_dict(data)
6262

6363
return fruit_apples
64-
except: # noqa: E722
64+
except (TypeError, ValueError, AttributeError, KeyError):
6565
pass
6666
if not isinstance(data, dict):
6767
raise TypeError()

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def _parse_a(data: object) -> PostResponsesUnionsSimpleBeforeComplexResponse200A
6161
a_type_1 = PostResponsesUnionsSimpleBeforeComplexResponse200AType1.from_dict(data)
6262

6363
return a_type_1
64-
except: # noqa: E722
64+
except (TypeError, ValueError, AttributeError, KeyError):
6565
pass
6666
return cast(PostResponsesUnionsSimpleBeforeComplexResponse200AType1 | str, data)
6767

end_to_end_tests/literal-enums-golden-record/my_enum_api_client/models/post_user_list_body.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ def _parse_an_enum_value_with_null_item(data: object) -> AnEnumWithNull | None:
182182
componentsschemas_an_enum_with_null_type_1 = check_an_enum_with_null(data)
183183

184184
return componentsschemas_an_enum_with_null_type_1
185-
except: # noqa: E722
185+
except (TypeError, ValueError, AttributeError, KeyError):
186186
pass
187187
return cast(AnEnumWithNull | None, data)
188188

0 commit comments

Comments
 (0)