Skip to content

Commit bc5f4bc

Browse files
Update models
1 parent afd8cdf commit bc5f4bc

33 files changed

+97
-40
lines changed

dev.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,31 @@
11
# Development
22

3-
To regenerate models, clone [latest OpenAPI definitions](https://github.com/regulaforensics/DocumentReader-web-openapi)
4-
and use next command from the project root:
3+
Models generation based on [openapi spec](https://github.com/regulaforensics/DocumentReader-api-openapi).
4+
5+
## Generation
6+
7+
To regenerate models from openapi definition,
8+
clone [latest open api definitions](https://github.com/regulaforensics/DocumentReader-api-openapi)
9+
and use next command from the project root.
510
```bash
611
./update-models.sh
712
```
13+
14+
## Generator configuration Features
15+
16+
1. When generating oneOf schemas, the generator creates its
17+
own abstract class, which does not look like it would like.
18+
The problem was solved by replacing the abstract generator
19+
class with ours using typeMappings in the generator config.
20+
2. The generator treats the discriminator value as a string,
21+
but in our case it's numbers. To solve this problem, changes
22+
have been made to the model_generic.mustache template.
23+
24+
## Problem solving
25+
26+
To solve new problems, use the generator
27+
settings ([python](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/python.md),
28+
[common](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/customization.md))
29+
and [templates](https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator/src/main/resources/python).
30+
31+
**Do not edit the generated files! They will be overwritten after generation!**

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from importlib import import_module
1313
from pydantic import BaseModel, ConfigDict, Field, StrictInt
1414
from typing import Any, ClassVar, Dict, List, Optional, Union
15+
from regula.documentreader.webclient.gen.models.authenticity_result_type import AuthenticityResultType
1516
from regula.documentreader.webclient.gen.models.check_diagnose import CheckDiagnose
1617
from regula.documentreader.webclient.gen.models.check_result import CheckResult
1718
from typing import Optional, Set
@@ -46,7 +47,7 @@ class AuthenticityCheckResultItem(BaseModel):
4647
"""
4748
Common fields for all authenticity result objects
4849
""" # noqa: E501
49-
type: StrictInt = Field(description="Same as authenticity result type, but used for safe parsing of not-described values: https://docs.regulaforensics.com/develop/doc-reader-sdk/web-service/development/enums/authenticity-result-type/", alias="Type")
50+
type: AuthenticityResultType = Field(alias="Type")
5051
element_result: Optional[CheckResult] = Field(default=None, alias="ElementResult")
5152
element_diagnose: Optional[CheckDiagnose] = Field(default=None, alias="ElementDiagnose")
5253
percent_value: Optional[StrictInt] = Field(default=None, alias="PercentValue")

regula/documentreader/webclient/gen/models/authenticity_result.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from pydantic import ConfigDict, Field
1313
from typing import Any, ClassVar, Dict, List
1414
from regula.documentreader.webclient.gen.models.authenticity_check_list import AuthenticityCheckList
15+
from regula.documentreader.webclient.gen.models.result import Result
1516
from regula.documentreader.webclient.gen.models.result_item import ResultItem
1617
from typing import Optional, Set
1718
from typing_extensions import Self
@@ -81,7 +82,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8182
"light": obj.get("light"),
8283
"list_idx": obj.get("list_idx"),
8384
"page_idx": obj.get("page_idx"),
84-
"result_type": obj.get("result_type") if obj.get("result_type") is not None else 0,
85+
"result_type": obj.get("result_type"),
8586
"AuthenticityCheckList": AuthenticityCheckList.from_dict(obj["AuthenticityCheckList"]) if obj.get("AuthenticityCheckList") is not None else None
8687
})
8788
return _obj

regula/documentreader/webclient/gen/models/byte_array_result.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
from pydantic import ConfigDict, Field, StrictStr
1313
from typing import Any, ClassVar, Dict, List
14+
from regula.documentreader.webclient.gen.models.result import Result
1415
from regula.documentreader.webclient.gen.models.result_item import ResultItem
1516
from typing import Optional, Set
1617
from typing_extensions import Self
@@ -77,7 +78,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
7778
"light": obj.get("light"),
7879
"list_idx": obj.get("list_idx"),
7980
"page_idx": obj.get("page_idx"),
80-
"result_type": obj.get("result_type") if obj.get("result_type") is not None else 0,
81+
"result_type": obj.get("result_type"),
8182
"ByteArray": obj.get("ByteArray")
8283
})
8384
return _obj

regula/documentreader/webclient/gen/models/chosen_document_type_result.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from pydantic import ConfigDict, Field, StrictStr
1313
from typing import Any, ClassVar, Dict, List, Optional
1414
from regula.documentreader.webclient.gen.models.one_candidate import OneCandidate
15+
from regula.documentreader.webclient.gen.models.result import Result
1516
from regula.documentreader.webclient.gen.models.result_item import ResultItem
1617
from typing import Optional, Set
1718
from typing_extensions import Self
@@ -84,7 +85,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8485
"light": obj.get("light"),
8586
"list_idx": obj.get("list_idx"),
8687
"page_idx": obj.get("page_idx"),
87-
"result_type": obj.get("result_type") if obj.get("result_type") is not None else 0,
88+
"result_type": obj.get("result_type"),
8889
"OneCandidate": OneCandidate.from_dict(obj["OneCandidate"]) if obj.get("OneCandidate") is not None else None,
8990
"XML_buffer": obj.get("XML_buffer")
9091
})

regula/documentreader/webclient/gen/models/doc_bar_code_info.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from pydantic import ConfigDict, Field
1313
from typing import Any, ClassVar, Dict, List
1414
from regula.documentreader.webclient.gen.models.doc_bar_code_info_fields_list import DocBarCodeInfoFieldsList
15+
from regula.documentreader.webclient.gen.models.result import Result
1516
from regula.documentreader.webclient.gen.models.result_item import ResultItem
1617
from typing import Optional, Set
1718
from typing_extensions import Self
@@ -81,7 +82,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8182
"light": obj.get("light"),
8283
"list_idx": obj.get("list_idx"),
8384
"page_idx": obj.get("page_idx"),
84-
"result_type": obj.get("result_type") if obj.get("result_type") is not None else 0,
85+
"result_type": obj.get("result_type"),
8586
"DocBarCodeInfo": DocBarCodeInfoFieldsList.from_dict(obj["DocBarCodeInfo"]) if obj.get("DocBarCodeInfo") is not None else None
8687
})
8788
return _obj

regula/documentreader/webclient/gen/models/document_binary_info_result.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
from pydantic import ConfigDict, Field
1313
from typing import Any, ClassVar, Dict, List
14+
from regula.documentreader.webclient.gen.models.result import Result
1415
from regula.documentreader.webclient.gen.models.result_item import ResultItem
1516
from regula.documentreader.webclient.gen.models.t_doc_binary_info import TDocBinaryInfo
1617
from typing import Optional, Set
@@ -81,7 +82,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8182
"light": obj.get("light"),
8283
"list_idx": obj.get("list_idx"),
8384
"page_idx": obj.get("page_idx"),
84-
"result_type": obj.get("result_type") if obj.get("result_type") is not None else 0,
85+
"result_type": obj.get("result_type"),
8586
"TDocBinaryInfo": TDocBinaryInfo.from_dict(obj["TDocBinaryInfo"]) if obj.get("TDocBinaryInfo") is not None else None
8687
})
8788
return _obj

regula/documentreader/webclient/gen/models/document_image_result.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from pydantic import ConfigDict, Field
1313
from typing import Any, ClassVar, Dict, List
1414
from regula.documentreader.webclient.gen.models.image_data import ImageData
15+
from regula.documentreader.webclient.gen.models.result import Result
1516
from regula.documentreader.webclient.gen.models.result_item import ResultItem
1617
from typing import Optional, Set
1718
from typing_extensions import Self
@@ -81,7 +82,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8182
"light": obj.get("light"),
8283
"list_idx": obj.get("list_idx"),
8384
"page_idx": obj.get("page_idx"),
84-
"result_type": obj.get("result_type") if obj.get("result_type") is not None else 0,
85+
"result_type": obj.get("result_type"),
8586
"RawImageContainer": ImageData.from_dict(obj["RawImageContainer"]) if obj.get("RawImageContainer") is not None else None
8687
})
8788
return _obj

regula/documentreader/webclient/gen/models/document_position_result.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from pydantic import ConfigDict, Field
1313
from typing import Any, ClassVar, Dict, List
1414
from regula.documentreader.webclient.gen.models.document_position import DocumentPosition
15+
from regula.documentreader.webclient.gen.models.result import Result
1516
from regula.documentreader.webclient.gen.models.result_item import ResultItem
1617
from typing import Optional, Set
1718
from typing_extensions import Self
@@ -81,7 +82,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8182
"light": obj.get("light"),
8283
"list_idx": obj.get("list_idx"),
8384
"page_idx": obj.get("page_idx"),
84-
"result_type": obj.get("result_type") if obj.get("result_type") is not None else 0,
85+
"result_type": obj.get("result_type"),
8586
"DocumentPosition": DocumentPosition.from_dict(obj["DocumentPosition"]) if obj.get("DocumentPosition") is not None else None
8687
})
8788
return _obj

regula/documentreader/webclient/gen/models/document_types_candidates_result.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from pydantic import ConfigDict, Field
1313
from typing import Any, ClassVar, Dict, List, Optional
1414
from regula.documentreader.webclient.gen.models.document_types_candidates_list import DocumentTypesCandidatesList
15+
from regula.documentreader.webclient.gen.models.result import Result
1516
from regula.documentreader.webclient.gen.models.result_item import ResultItem
1617
from typing import Optional, Set
1718
from typing_extensions import Self
@@ -81,7 +82,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
8182
"light": obj.get("light"),
8283
"list_idx": obj.get("list_idx"),
8384
"page_idx": obj.get("page_idx"),
84-
"result_type": obj.get("result_type") if obj.get("result_type") is not None else 0,
85+
"result_type": obj.get("result_type"),
8586
"CandidatesList": DocumentTypesCandidatesList.from_dict(obj["CandidatesList"]) if obj.get("CandidatesList") is not None else None
8687
})
8788
return _obj

0 commit comments

Comments
 (0)