Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3ee439d

Browse files
40417 - skip unknown descriminator
1 parent c57c15b commit 3ee439d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+74
-76
lines changed

‎dev.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ class with ours using typeMappings in the generator config.
2020
2. The generator treats the discriminator value as a string,
2121
but in our case it's numbers. To solve this problem, changes
2222
have been made to the model_generic.mustache template.
23+
3. By default, when the discriminator was unknown, the client
24+
threw an error. To avoid this, such models will be skipped.
25+
To solve this problem, changes have been made
26+
to the model_generic.mustache template.
2327

2428
## Problem solving
2529

‎generator-templates/model_generic.mustache

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
264264
return import_module("{{packageName}}.models.{{model.classFilename}}").{{modelName}}.from_dict(obj)
265265
{{/mappedModels}}
266266

267-
raise ValueError("{{{classname}}} failed to lookup discriminator value from " +
268-
json.dumps(obj) + ". Discriminator property name: " + cls.__discriminator_property_name +
269-
", mapping: " + json.dumps(cls.__discriminator_value_class_map))
267+
return None
270268
{{/discriminator}}
271269
{{/hasChildren}}
272270
{{^hasChildren}}
@@ -309,7 +307,7 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
309307
"{{{baseName}}}": obj.get("{{{baseName}}}"){{^-last}},{{/-last}}
310308
{{/items.isEnumOrRef}}
311309
{{^items.isEnumOrRef}}
312-
"{{{baseName}}}": [{{{items.dataType}}}.from_dict(_item) for _item in obj["{{{baseName}}}"]] if obj.get("{{{baseName}}}") is not None else None{{^-last}},{{/-last}}
310+
"{{{baseName}}}": [{{{items.dataType}}}.from_dict(_item) for _item in obj.get("{{{baseName}}}", []) if {{{items.dataType}}}.from_dict(_item) is not None]{{^-last}},{{/-last}}
313311
{{/items.isEnumOrRef}}
314312
{{/items.isPrimitiveType}}
315313
{{#items.isPrimitiveType}}

‎regula/documentreader/webclient/gen/models/area_array.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
9191

9292
_obj = cls.model_validate({
9393
"Count": obj.get("Count"),
94-
"List": [RectangleCoordinates.from_dict(_item) for _item in obj["List"]] if obj.get("List") is not NoneelseNone,
95-
"Points": [PointArray.from_dict(_item) for _item in obj["Points"]] if obj.get("Points") is not NoneelseNone
94+
"List": [RectangleCoordinates.from_dict(_item) for _item in obj.get("List", []) if RectangleCoordinates.from_dict(_item) is not None],
95+
"Points": [PointArray.from_dict(_item) for _item in obj.get("Points", []) if PointArray.from_dict(_item) is not None]
9696
})
9797
return _obj
9898

‎regula/documentreader/webclient/gen/models/area_container.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
9191

9292
_obj = cls.model_validate({
9393
"Count": obj.get("Count"),
94-
"List": [RectangleCoordinates.from_dict(_item) for _item in obj["List"]] if obj.get("List") is not NoneelseNone,
95-
"Points": [PointsContainer.from_dict(_item) for _item in obj["Points"]] if obj.get("Points") is not NoneelseNone
94+
"List": [RectangleCoordinates.from_dict(_item) for _item in obj.get("List", []) if RectangleCoordinates.from_dict(_item) is not None],
95+
"Points": [PointsContainer.from_dict(_item) for _item in obj.get("Points", []) if PointsContainer.from_dict(_item) is not None]
9696
})
9797
return _obj
9898

‎regula/documentreader/webclient/gen/models/authenticity_check_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8282

8383
_obj = cls.model_validate({
8484
"Count": obj.get("Count"),
85-
"List": [AuthenticityCheckResult.from_dict(_item) for _item in obj["List"]] if obj.get("List") is not NoneelseNone
85+
"List": [AuthenticityCheckResult.from_dict(_item) for _item in obj.get("List", []) if AuthenticityCheckResult.from_dict(_item) is not None]
8686
})
8787
return _obj
8888

‎regula/documentreader/webclient/gen/models/authenticity_check_result.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8888
"Type": obj.get("Type"),
8989
"Result": obj.get("Result"),
9090
"Count": obj.get("Count"),
91-
"List": [AuthenticityCheckResultItem.from_dict(_item) for _item in obj["List"]] if obj.get("List") is not NoneelseNone
91+
"List": [AuthenticityCheckResultItem.from_dict(_item) for _item in obj.get("List", []) if AuthenticityCheckResultItem.from_dict(_item) is not None]
9292
})
9393
return _obj
9494

‎regula/documentreader/webclient/gen/models/authenticity_check_result_item.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,6 @@ def from_dict(cls, obj: Dict[str, Any]) -> Optional[Union[SecurityFeatureResult,
161161
if object_type == 'SecurityFeatureResult':
162162
return import_module("regula.documentreader.webclient.gen.models.security_feature_result").SecurityFeatureResult.from_dict(obj)
163163

164-
raise ValueError("AuthenticityCheckResultItem failed to lookup discriminator value from " +
165-
json.dumps(obj) + ". Discriminator property name: " + cls.__discriminator_property_name +
166-
", mapping: " + json.dumps(cls.__discriminator_value_class_map))
164+
return None
167165

168166

‎regula/documentreader/webclient/gen/models/container_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8282

8383
_obj = cls.model_validate({
8484
"Count": obj.get("Count"),
85-
"List": [ResultItem.from_dict(_item) for _item in obj["List"]] if obj.get("List") is not NoneelseNone
85+
"List": [ResultItem.from_dict(_item) for _item in obj.get("List", []) if ResultItem.from_dict(_item) is not None]
8686
})
8787
return _obj
8888

‎regula/documentreader/webclient/gen/models/doc_bar_code_info_fields_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8282

8383
_obj = cls.model_validate({
8484
"nFields": obj.get("nFields"),
85-
"pArrayFields": [PArrayField.from_dict(_item) for _item in obj["pArrayFields"]] if obj.get("pArrayFields") is not NoneelseNone
85+
"pArrayFields": [PArrayField.from_dict(_item) for _item in obj.get("pArrayFields", []) if PArrayField.from_dict(_item) is not None]
8686
})
8787
return _obj
8888

‎regula/documentreader/webclient/gen/models/doc_visual_extended_field.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
101101
"wFieldType": obj.get("wFieldType"),
102102
"FieldName": obj.get("FieldName"),
103103
"StringsCount": obj.get("StringsCount"),
104-
"StringsResult": [StringRecognitionResult.from_dict(_item) for _item in obj["StringsResult"]] if obj.get("StringsResult") is not NoneelseNone,
104+
"StringsResult": [StringRecognitionResult.from_dict(_item) for _item in obj.get("StringsResult", []) if StringRecognitionResult.from_dict(_item) is not None],
105105
"Buf_Length": obj.get("Buf_Length"),
106106
"Buf_Text": obj.get("Buf_Text"),
107107
"FieldMask": obj.get("FieldMask"),

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /