regula-facesdk-webclient 7.2.388.dev0__py3-none-any.whl → 8.1.433.dev0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- regula/facesdk/webclient/__init__.py +5 -5
- regula/facesdk/webclient/ext/api/group_api.py +2 -27
- regula/facesdk/webclient/ext/api/match_api.py +3 -29
- regula/facesdk/webclient/ext/api/person_api.py +8 -34
- regula/facesdk/webclient/ext/api/sdk.py +5 -3
- regula/facesdk/webclient/ext/api/search_api.py +2 -6
- regula/facesdk/webclient/ext/models/detect_request.py +6 -5
- regula/facesdk/webclient/ext/models/match_image.py +3 -3
- regula/facesdk/webclient/ext/models/match_request.py +7 -5
- regula/facesdk/webclient/gen/__init__.py +349 -18
- regula/facesdk/webclient/gen/api/__init__.py +30 -3
- regula/facesdk/webclient/gen/api/group_api.py +1854 -799
- regula/facesdk/webclient/gen/api/healthcheck_api.py +475 -215
- regula/facesdk/webclient/gen/api/liveness20_api.py +565 -0
- regula/facesdk/webclient/gen/api/match_api.py +801 -355
- regula/facesdk/webclient/gen/api/person_api.py +2399 -1039
- regula/facesdk/webclient/gen/api/search_api.py +286 -130
- regula/facesdk/webclient/gen/api_client.py +577 -476
- regula/facesdk/webclient/gen/api_response.py +21 -0
- regula/facesdk/webclient/gen/configuration.py +231 -105
- regula/facesdk/webclient/gen/exceptions.py +82 -33
- regula/facesdk/webclient/gen/models/__init__.py +202 -95
- regula/facesdk/webclient/gen/models/add_image_to_person_request.py +96 -0
- regula/facesdk/webclient/gen/models/add_image_to_person_request_data.py +92 -0
- regula/facesdk/webclient/gen/models/add_image_to_person_request_image.py +92 -0
- regula/facesdk/webclient/gen/models/add_image_to_person_response.py +92 -0
- regula/facesdk/webclient/gen/models/attribute_config.py +83 -0
- regula/facesdk/webclient/gen/models/attributes_data.py +82 -0
- regula/facesdk/webclient/gen/models/crop.py +88 -0
- regula/facesdk/webclient/gen/models/detail_item.py +136 -0
- regula/facesdk/webclient/gen/models/detect_attributes_details.py +84 -0
- regula/facesdk/webclient/gen/models/detect_details_meta.py +86 -0
- regula/facesdk/webclient/gen/models/detect_meta_data.py +84 -0
- regula/facesdk/webclient/gen/models/detect_request.py +94 -0
- regula/facesdk/webclient/gen/models/detect_request_data.py +90 -0
- regula/facesdk/webclient/gen/models/detect_response.py +89 -0
- regula/facesdk/webclient/gen/models/detect_response_results.py +86 -0
- regula/facesdk/webclient/gen/models/detect_result.py +98 -0
- regula/facesdk/webclient/gen/models/detection.py +98 -0
- regula/facesdk/webclient/gen/models/detection_attributes.py +92 -0
- regula/facesdk/webclient/gen/models/detection_attributes_details_inner.py +132 -0
- regula/facesdk/webclient/gen/models/detection_face.py +90 -0
- regula/facesdk/webclient/gen/models/detection_quality.py +107 -0
- regula/facesdk/webclient/gen/models/device_info.py +111 -0
- regula/facesdk/webclient/gen/models/face_attribute.py +40 -0
- regula/facesdk/webclient/gen/models/face_image_quality_align_type.py +32 -0
- regula/facesdk/webclient/gen/models/face_image_quality_groups.py +35 -0
- regula/facesdk/webclient/gen/models/face_image_quality_groups_strings.py +35 -0
- regula/facesdk/webclient/gen/models/face_image_quality_status.py +30 -0
- regula/facesdk/webclient/gen/models/face_quality_config_name.py +75 -0
- regula/facesdk/webclient/gen/models/face_quality_scenarios.py +37 -0
- regula/facesdk/webclient/gen/models/face_sdk_result.py +83 -0
- regula/facesdk/webclient/gen/models/face_sdk_result_code.py +68 -0
- regula/facesdk/webclient/gen/models/faces_response.py +100 -0
- regula/facesdk/webclient/gen/models/faces_response_data.py +90 -0
- regula/facesdk/webclient/gen/models/filter_op.py +29 -0
- regula/facesdk/webclient/gen/models/filter_search_request.py +87 -0
- regula/facesdk/webclient/gen/models/group.py +89 -0
- regula/facesdk/webclient/gen/models/group_data.py +85 -0
- regula/facesdk/webclient/gen/models/group_page.py +94 -0
- regula/facesdk/webclient/gen/models/group_page_items.py +90 -0
- regula/facesdk/webclient/gen/models/group_response.py +84 -0
- regula/facesdk/webclient/gen/models/group_to_create.py +86 -0
- regula/facesdk/webclient/gen/models/image.py +96 -0
- regula/facesdk/webclient/gen/models/image_fields.py +100 -0
- regula/facesdk/webclient/gen/models/image_fields_image.py +92 -0
- regula/facesdk/webclient/gen/models/image_page.py +94 -0
- regula/facesdk/webclient/gen/models/image_page_items.py +90 -0
- regula/facesdk/webclient/gen/models/image_source.py +34 -0
- regula/facesdk/webclient/gen/models/liveness_type.py +29 -0
- regula/facesdk/webclient/gen/models/match_and_search_request.py +103 -0
- regula/facesdk/webclient/gen/models/match_and_search_request_images_item.py +87 -0
- regula/facesdk/webclient/gen/models/match_and_search_response.py +107 -0
- regula/facesdk/webclient/gen/models/match_and_search_response_data.py +104 -0
- regula/facesdk/webclient/gen/models/match_and_search_response_data_detections_item.py +95 -0
- regula/facesdk/webclient/gen/models/match_image.py +89 -0
- regula/facesdk/webclient/gen/models/match_image_detection.py +95 -0
- regula/facesdk/webclient/gen/models/match_image_result.py +97 -0
- regula/facesdk/webclient/gen/models/match_request.py +102 -0
- regula/facesdk/webclient/gen/models/match_request_data.py +98 -0
- regula/facesdk/webclient/gen/models/match_response.py +105 -0
- regula/facesdk/webclient/gen/models/match_response_data.py +102 -0
- regula/facesdk/webclient/gen/models/operation_log.py +88 -0
- regula/facesdk/webclient/gen/models/output_image_params.py +89 -0
- regula/facesdk/webclient/gen/models/page.py +84 -0
- regula/facesdk/webclient/gen/models/person.py +97 -0
- regula/facesdk/webclient/gen/models/person_data.py +87 -0
- regula/facesdk/webclient/gen/models/person_fields.py +91 -0
- regula/facesdk/webclient/gen/models/person_items.py +90 -0
- regula/facesdk/webclient/gen/models/person_to_update_fields.py +89 -0
- regula/facesdk/webclient/gen/models/person_with_images.py +107 -0
- regula/facesdk/webclient/gen/models/person_with_images_data.py +90 -0
- regula/facesdk/webclient/gen/models/persons_page.py +94 -0
- regula/facesdk/webclient/gen/models/process_param.py +103 -0
- regula/facesdk/webclient/gen/models/process_param_attributes.py +90 -0
- regula/facesdk/webclient/gen/models/quality_config.py +86 -0
- regula/facesdk/webclient/gen/models/quality_detail.py +94 -0
- regula/facesdk/webclient/gen/models/quality_details_groups.py +90 -0
- regula/facesdk/webclient/gen/models/quality_request.py +93 -0
- regula/facesdk/webclient/gen/models/recognize_image.py +100 -0
- regula/facesdk/webclient/gen/models/recognize_image_data.py +84 -0
- regula/facesdk/webclient/gen/models/resize_options.py +86 -0
- regula/facesdk/webclient/gen/models/search_bad_params.py +86 -0
- regula/facesdk/webclient/gen/models/search_detection.py +102 -0
- regula/facesdk/webclient/gen/models/search_parameters.py +95 -0
- regula/facesdk/webclient/gen/models/search_parameters_create_person.py +86 -0
- regula/facesdk/webclient/gen/models/search_person.py +113 -0
- regula/facesdk/webclient/gen/models/search_person_data.py +96 -0
- regula/facesdk/webclient/gen/models/search_request.py +119 -0
- regula/facesdk/webclient/gen/models/search_result.py +92 -0
- regula/facesdk/webclient/gen/models/transaction_info.py +99 -0
- regula/facesdk/webclient/gen/models/transaction_labels.py +84 -0
- regula/facesdk/webclient/gen/models/update_group.py +85 -0
- regula/facesdk/webclient/gen/py.typed +0 -0
- regula/facesdk/webclient/gen/rest.py +136 -232
- {regula_facesdk_webclient-7.2.388.dev0.dist-info → regula_facesdk_webclient-8.1.433.dev0.dist-info}/METADATA +7 -4
- regula_facesdk_webclient-8.1.433.dev0.dist-info/RECORD +125 -0
- {regula_facesdk_webclient-7.2.388.dev0.dist-info → regula_facesdk_webclient-8.1.433.dev0.dist-info}/WHEEL +1 -1
- regula/facesdk/webclient/gen/api/diagnostics_api.py +0 -162
- regula/facesdk/webclient/gen/api/liveness_2_0_api.py +0 -306
- regula/facesdk/webclient/gen/api/liveness_api.py +0 -424
- regula/facesdk/webclient/gen/apis/__init__.py +0 -22
- regula/facesdk/webclient/gen/model/__init__.py +0 -5
- regula/facesdk/webclient/gen/model/add_image_to_person_request.py +0 -261
- regula/facesdk/webclient/gen/model/add_image_to_person_request_image.py +0 -204
- regula/facesdk/webclient/gen/model/add_image_to_person_response.py +0 -262
- regula/facesdk/webclient/gen/model/attribute_config.py +0 -120
- regula/facesdk/webclient/gen/model/attribute_config_list.py +0 -92
- regula/facesdk/webclient/gen/model/crop.py +0 -180
- regula/facesdk/webclient/gen/model/detect_attributes_details.py +0 -150
- regula/facesdk/webclient/gen/model/detect_details_meta.py +0 -178
- regula/facesdk/webclient/gen/model/detect_request.py +0 -232
- regula/facesdk/webclient/gen/model/detect_request_attributes.py +0 -120
- regula/facesdk/webclient/gen/model/detect_response.py +0 -147
- regula/facesdk/webclient/gen/model/detect_response_all_of.py +0 -120
- regula/facesdk/webclient/gen/model/detect_result.py +0 -235
- regula/facesdk/webclient/gen/model/detection.py +0 -230
- regula/facesdk/webclient/gen/model/detection_attributes.py +0 -150
- regula/facesdk/webclient/gen/model/detection_face.py +0 -232
- regula/facesdk/webclient/gen/model/detection_quality.py +0 -234
- regula/facesdk/webclient/gen/model/device_info.py +0 -231
- regula/facesdk/webclient/gen/model/face_align_type_quality.py +0 -109
- regula/facesdk/webclient/gen/model/face_attribute.py +0 -133
- regula/facesdk/webclient/gen/model/face_image_quality_align_type.py +0 -109
- regula/facesdk/webclient/gen/model/face_image_quality_groups.py +0 -118
- regula/facesdk/webclient/gen/model/face_image_quality_groups_strings.py +0 -118
- regula/facesdk/webclient/gen/model/face_image_quality_status.py +0 -103
- regula/facesdk/webclient/gen/model/face_quality_config_name.py +0 -238
- regula/facesdk/webclient/gen/model/face_quality_scenarios.py +0 -124
- regula/facesdk/webclient/gen/model/face_quality_status.py +0 -103
- regula/facesdk/webclient/gen/model/face_rectangular.py +0 -92
- regula/facesdk/webclient/gen/model/face_sdk_result.py +0 -121
- regula/facesdk/webclient/gen/model/face_sdk_result_code.py +0 -217
- regula/facesdk/webclient/gen/model/faces_response.py +0 -258
- regula/facesdk/webclient/gen/model/faces_response_all_of.py +0 -148
- regula/facesdk/webclient/gen/model/filter_op.py +0 -100
- regula/facesdk/webclient/gen/model/filter_search_request.py +0 -176
- regula/facesdk/webclient/gen/model/group.py +0 -206
- regula/facesdk/webclient/gen/model/group_all_of.py +0 -150
- regula/facesdk/webclient/gen/model/group_page.py +0 -178
- regula/facesdk/webclient/gen/model/group_page_all_of.py +0 -122
- regula/facesdk/webclient/gen/model/group_response.py +0 -150
- regula/facesdk/webclient/gen/model/group_to_create.py +0 -180
- regula/facesdk/webclient/gen/model/image.py +0 -318
- regula/facesdk/webclient/gen/model/image_fields.py +0 -258
- regula/facesdk/webclient/gen/model/image_fields_image.py +0 -204
- regula/facesdk/webclient/gen/model/image_page.py +0 -176
- regula/facesdk/webclient/gen/model/image_page_all_of.py +0 -120
- regula/facesdk/webclient/gen/model/image_source.py +0 -115
- regula/facesdk/webclient/gen/model/liveness_transaction.py +0 -334
- regula/facesdk/webclient/gen/model/liveness_type.py +0 -100
- regula/facesdk/webclient/gen/model/match_and_search_request.py +0 -290
- regula/facesdk/webclient/gen/model/match_and_search_request_all_of.py +0 -234
- regula/facesdk/webclient/gen/model/match_and_search_request_all_of_images.py +0 -148
- regula/facesdk/webclient/gen/model/match_and_search_request_images.py +0 -176
- regula/facesdk/webclient/gen/model/match_and_search_response.py +0 -233
- regula/facesdk/webclient/gen/model/match_and_search_response_all_of.py +0 -206
- regula/facesdk/webclient/gen/model/match_and_search_response_all_of_detections.py +0 -176
- regula/facesdk/webclient/gen/model/match_image.py +0 -205
- regula/facesdk/webclient/gen/model/match_image_detection.py +0 -178
- regula/facesdk/webclient/gen/model/match_image_result.py +0 -316
- regula/facesdk/webclient/gen/model/match_request.py +0 -233
- regula/facesdk/webclient/gen/model/match_request_output_image_params.py +0 -148
- regula/facesdk/webclient/gen/model/match_request_output_image_params_crop.py +0 -212
- regula/facesdk/webclient/gen/model/match_response.py +0 -205
- regula/facesdk/webclient/gen/model/match_response_all_of.py +0 -178
- regula/facesdk/webclient/gen/model/operation_log.py +0 -206
- regula/facesdk/webclient/gen/model/output_image_params.py +0 -146
- regula/facesdk/webclient/gen/model/page.py +0 -150
- regula/facesdk/webclient/gen/model/person.py +0 -319
- regula/facesdk/webclient/gen/model/person_all_of.py +0 -206
- regula/facesdk/webclient/gen/model/person_created_response.py +0 -178
- regula/facesdk/webclient/gen/model/person_fields.py +0 -235
- regula/facesdk/webclient/gen/model/person_to_update_fields.py +0 -206
- regula/facesdk/webclient/gen/model/person_with_images.py +0 -347
- regula/facesdk/webclient/gen/model/person_with_images_all_of.py +0 -122
- regula/facesdk/webclient/gen/model/persons_page.py +0 -176
- regula/facesdk/webclient/gen/model/persons_page_all_of.py +0 -120
- regula/facesdk/webclient/gen/model/persons_request.py +0 -291
- regula/facesdk/webclient/gen/model/persons_request_all_of.py +0 -150
- regula/facesdk/webclient/gen/model/process_param.py +0 -226
- regula/facesdk/webclient/gen/model/process_param_attributes.py +0 -120
- regula/facesdk/webclient/gen/model/quality_config.py +0 -154
- regula/facesdk/webclient/gen/model/quality_config_list.py +0 -92
- regula/facesdk/webclient/gen/model/quality_detail.py +0 -234
- regula/facesdk/webclient/gen/model/quality_details_groups.py +0 -202
- regula/facesdk/webclient/gen/model/quality_request.py +0 -146
- regula/facesdk/webclient/gen/model/recognize_image.py +0 -374
- regula/facesdk/webclient/gen/model/recognize_image_all_of.py +0 -150
- regula/facesdk/webclient/gen/model/resize_options.py +0 -178
- regula/facesdk/webclient/gen/model/rgb.py +0 -92
- regula/facesdk/webclient/gen/model/search_bad_params.py +0 -172
- regula/facesdk/webclient/gen/model/search_detection.py +0 -398
- regula/facesdk/webclient/gen/model/search_parameters.py +0 -174
- regula/facesdk/webclient/gen/model/search_parameters_create_person.py +0 -177
- regula/facesdk/webclient/gen/model/search_person.py +0 -373
- regula/facesdk/webclient/gen/model/search_person_all_of.py +0 -148
- regula/facesdk/webclient/gen/model/search_request.py +0 -394
- regula/facesdk/webclient/gen/model/search_request_all_of.py +0 -150
- regula/facesdk/webclient/gen/model/search_result.py +0 -150
- regula/facesdk/webclient/gen/model/search_result_all_of.py +0 -122
- regula/facesdk/webclient/gen/model/transaction_config.py +0 -92
- regula/facesdk/webclient/gen/model/transaction_info.py +0 -344
- regula/facesdk/webclient/gen/model/update_group.py +0 -150
- regula/facesdk/webclient/gen/model_utils.py +0 -2037
- regula_facesdk_webclient-7.2.388.dev0.dist-info/RECORD +0 -138
- {regula_facesdk_webclient-7.2.388.dev0.dist-info → regula_facesdk_webclient-8.1.433.dev0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import pprint
|
|
9
|
+
import re # noqa: F401
|
|
10
|
+
import json
|
|
11
|
+
|
|
12
|
+
from datetime import datetime
|
|
13
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
14
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
15
|
+
from typing import Optional, Set
|
|
16
|
+
from typing_extensions import Self
|
|
17
|
+
from pydantic import SkipValidation, Field
|
|
18
|
+
|
|
19
|
+
class DeviceInfo(BaseModel):
|
|
20
|
+
"""
|
|
21
|
+
DeviceInfo
|
|
22
|
+
""" # noqa: E501
|
|
23
|
+
app: SkipValidation[str] = Field(alias="app", description="Application name.")
|
|
24
|
+
license_id: SkipValidation[str] = Field(alias="licenseId", description="Unique license identifier.")
|
|
25
|
+
license_serial: SkipValidation[str] = Field(alias="licenseSerial", description="License serial number.")
|
|
26
|
+
license_valid_until: SkipValidation[datetime] = Field(alias="licenseValidUntil", description="License validity date.")
|
|
27
|
+
version: SkipValidation[str] = Field(alias="version", description="Product version.")
|
|
28
|
+
__properties: ClassVar[List[str]] = ["app", "licenseId", "licenseSerial", "licenseValidUntil", "version"]
|
|
29
|
+
|
|
30
|
+
model_config = ConfigDict(
|
|
31
|
+
populate_by_name=True,
|
|
32
|
+
validate_assignment=True,
|
|
33
|
+
protected_namespaces=(),
|
|
34
|
+
arbitrary_types_allowed=True,
|
|
35
|
+
use_enum_values=True
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def to_str(self) -> str:
|
|
40
|
+
"""Returns the string representation of the model using alias"""
|
|
41
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
42
|
+
|
|
43
|
+
def to_json(self) -> str:
|
|
44
|
+
"""Returns the JSON representation of the model using alias"""
|
|
45
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
46
|
+
return json.dumps(self.to_dict())
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
50
|
+
"""Create an instance of DeviceInfo from a JSON string"""
|
|
51
|
+
return cls.from_dict(json.loads(json_str))
|
|
52
|
+
|
|
53
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
54
|
+
"""Return the dictionary representation of the model using alias.
|
|
55
|
+
|
|
56
|
+
This has the following differences from calling pydantic's
|
|
57
|
+
`self.model_dump(by_alias=True)`:
|
|
58
|
+
|
|
59
|
+
* `None` is only added to the output dict for nullable fields that
|
|
60
|
+
were set at model initialization. Other fields with value `None`
|
|
61
|
+
are ignored.
|
|
62
|
+
"""
|
|
63
|
+
excluded_fields: Set[str] = set([
|
|
64
|
+
])
|
|
65
|
+
|
|
66
|
+
_dict = self.model_dump(
|
|
67
|
+
by_alias=True,
|
|
68
|
+
exclude=excluded_fields,
|
|
69
|
+
exclude_none=True,
|
|
70
|
+
)
|
|
71
|
+
# set to None if license_id (nullable) is None
|
|
72
|
+
# and model_fields_set contains the field
|
|
73
|
+
if self.license_id is None and "license_id" in self.model_fields_set:
|
|
74
|
+
_dict['licenseId'] = None
|
|
75
|
+
|
|
76
|
+
# set to None if license_serial (nullable) is None
|
|
77
|
+
# and model_fields_set contains the field
|
|
78
|
+
if self.license_serial is None and "license_serial" in self.model_fields_set:
|
|
79
|
+
_dict['licenseSerial'] = None
|
|
80
|
+
|
|
81
|
+
# set to None if license_valid_until (nullable) is None
|
|
82
|
+
# and model_fields_set contains the field
|
|
83
|
+
if self.license_valid_until is None and "license_valid_until" in self.model_fields_set:
|
|
84
|
+
_dict['licenseValidUntil'] = None
|
|
85
|
+
|
|
86
|
+
# set to None if version (nullable) is None
|
|
87
|
+
# and model_fields_set contains the field
|
|
88
|
+
if self.version is None and "version" in self.model_fields_set:
|
|
89
|
+
_dict['version'] = None
|
|
90
|
+
|
|
91
|
+
return _dict
|
|
92
|
+
|
|
93
|
+
@classmethod
|
|
94
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
95
|
+
"""Create an instance of DeviceInfo from a dict"""
|
|
96
|
+
if obj is None:
|
|
97
|
+
return None
|
|
98
|
+
|
|
99
|
+
if not isinstance(obj, dict):
|
|
100
|
+
return cls.model_validate(obj)
|
|
101
|
+
|
|
102
|
+
_obj = cls.model_validate({
|
|
103
|
+
"app": obj.get("app"),
|
|
104
|
+
"licenseId": obj.get("licenseId"),
|
|
105
|
+
"licenseSerial": obj.get("licenseSerial"),
|
|
106
|
+
"licenseValidUntil": obj.get("licenseValidUntil"),
|
|
107
|
+
"version": obj.get("version")
|
|
108
|
+
})
|
|
109
|
+
return _obj
|
|
110
|
+
|
|
111
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import json
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from typing_extensions import Self
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FaceAttribute(str, Enum):
|
|
14
|
+
"""
|
|
15
|
+
The name of the attribute. For definitions, see the [FaceAttribute enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-attribute/).
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
allowed enum values
|
|
20
|
+
"""
|
|
21
|
+
AGE = 'Age'
|
|
22
|
+
EMOTION = 'Emotion'
|
|
23
|
+
EYE_LEFT = 'EyeLeft'
|
|
24
|
+
EYE_RIGHT = 'EyeRight'
|
|
25
|
+
SMILE = 'Smile'
|
|
26
|
+
GLASSES = 'Glasses'
|
|
27
|
+
HEAD_COVERING = 'HeadCovering'
|
|
28
|
+
FOREHEAD_COVERING = 'ForeheadCovering'
|
|
29
|
+
MOUTH = 'Mouth'
|
|
30
|
+
MEDICAL_MASK = 'MedicalMask'
|
|
31
|
+
OCCLUSION = 'Occlusion'
|
|
32
|
+
STRONG_MAKEUP = 'StrongMakeup'
|
|
33
|
+
HEADPHONES = 'Headphones'
|
|
34
|
+
|
|
35
|
+
@classmethod
|
|
36
|
+
def from_json(cls, json_str: str) -> Self:
|
|
37
|
+
"""Create an instance of FaceAttribute from a JSON string"""
|
|
38
|
+
return cls(json.loads(json_str))
|
|
39
|
+
|
|
40
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import json
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from typing_extensions import Self
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FaceImageQualityAlignType(int, Enum):
|
|
14
|
+
"""
|
|
15
|
+
The aspect ratio according to which face alignment is performed. See the [FaceImageQualityAlignType enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-image-quality-align-type/). To get a thumbnail with aspect ratio 3:4, set `0`.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
allowed enum values
|
|
20
|
+
"""
|
|
21
|
+
ALIGN_3x4 = 0
|
|
22
|
+
ALIGN_4x5 = 1
|
|
23
|
+
ALIGN_2x3 = 2
|
|
24
|
+
ALIGN_1x1 = 3
|
|
25
|
+
ALIGN_7x9 = 4
|
|
26
|
+
|
|
27
|
+
@classmethod
|
|
28
|
+
def from_json(cls, json_str: str) -> Self:
|
|
29
|
+
"""Create an instance of FaceImageQualityAlignType from a JSON string"""
|
|
30
|
+
return cls(json.loads(json_str))
|
|
31
|
+
|
|
32
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import json
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from typing_extensions import Self
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FaceImageQualityGroups(int, Enum):
|
|
14
|
+
"""
|
|
15
|
+
The group ID of the characteristic, see the [FaceImageQualityGroups enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-image-quality-groups/) for details.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
allowed enum values
|
|
20
|
+
"""
|
|
21
|
+
IMAGE_CHARACTERISTICS = 1
|
|
22
|
+
HEAD_SIZE_AND_POSITIONS = 2
|
|
23
|
+
FACE_QUALITY = 3
|
|
24
|
+
EYES_CHARACTERISTICS = 4
|
|
25
|
+
SHADOWS_AND_LIGHTNING = 5
|
|
26
|
+
POSE_AND_EXPRESSION = 6
|
|
27
|
+
HEAD_OCCLUSION = 7
|
|
28
|
+
BACKGROUND = 8
|
|
29
|
+
|
|
30
|
+
@classmethod
|
|
31
|
+
def from_json(cls, json_str: str) -> Self:
|
|
32
|
+
"""Create an instance of FaceImageQualityGroups from a JSON string"""
|
|
33
|
+
return cls(json.loads(json_str))
|
|
34
|
+
|
|
35
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import json
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from typing_extensions import Self
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FaceImageQualityGroupsStrings(str, Enum):
|
|
14
|
+
"""
|
|
15
|
+
Face image quality assessment group name, see [FaceImageQualityGroups](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-image-quality-groups/).
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
allowed enum values
|
|
20
|
+
"""
|
|
21
|
+
IMAGE_CHARACTERISTICS = 'ImageCharacteristics'
|
|
22
|
+
HEAD_SIZE_AND_POSITIONS = 'HeadSizeAndPosition'
|
|
23
|
+
FACE_QUALITY = 'FaceQuality'
|
|
24
|
+
EYES_CHARACTERISTICS = 'EyesCharacteristics'
|
|
25
|
+
SHADOWS_AND_LIGHTNING = 'ShadowsAndLightning'
|
|
26
|
+
POSE_AND_EXPRESSION = 'PoseAndExpression'
|
|
27
|
+
HEAD_OCCLUSION = 'HeadOcclusion'
|
|
28
|
+
BACKGROUND = 'Background'
|
|
29
|
+
|
|
30
|
+
@classmethod
|
|
31
|
+
def from_json(cls, json_str: str) -> Self:
|
|
32
|
+
"""Create an instance of FaceImageQualityGroupsStrings from a JSON string"""
|
|
33
|
+
return cls(json.loads(json_str))
|
|
34
|
+
|
|
35
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import json
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from typing_extensions import Self
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FaceImageQualityStatus(int, Enum):
|
|
14
|
+
"""
|
|
15
|
+
The processing status returned for each quality characteristic, see the [FaceImageQualityStatus enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-image-quality-status/).
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
allowed enum values
|
|
20
|
+
"""
|
|
21
|
+
QUALITY_STATUS_FALSE = 0
|
|
22
|
+
QUALITY_STATUS_TRUE = 1
|
|
23
|
+
QUALITY_STATUS_UNDETERMINED = 2
|
|
24
|
+
|
|
25
|
+
@classmethod
|
|
26
|
+
def from_json(cls, json_str: str) -> Self:
|
|
27
|
+
"""Create an instance of FaceImageQualityStatus from a JSON string"""
|
|
28
|
+
return cls(json.loads(json_str))
|
|
29
|
+
|
|
30
|
+
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import json
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from typing_extensions import Self
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FaceQualityConfigName(str, Enum):
|
|
14
|
+
"""
|
|
15
|
+
The name of the characteristic. For definitions, see the [FaceQualityConfigName enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-quality-config-name/).
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
allowed enum values
|
|
20
|
+
"""
|
|
21
|
+
IMAGE_WIDTH = 'ImageWidth'
|
|
22
|
+
IMAGE_HEIGHT = 'ImageHeight'
|
|
23
|
+
IMAGE_WIDTH_TO_HEIGHT = 'ImageWidthToHeight'
|
|
24
|
+
IMAGE_CHANNELS_NUMBER = 'ImageChannelsNumber'
|
|
25
|
+
PADDING_RATIO = 'PaddingRatio'
|
|
26
|
+
FACE_MID_POINT_HORIZONTAL_POSITION = 'FaceMidPointHorizontalPosition'
|
|
27
|
+
FACE_MID_POINT_VERTICAL_POSITION = 'FaceMidPointVerticalPosition'
|
|
28
|
+
HEAD_WIDTH_RATIO = 'HeadWidthRatio'
|
|
29
|
+
HEAD_HEIGHT_RATIO = 'HeadHeightRatio'
|
|
30
|
+
EYES_DISTANCE = 'EyesDistance'
|
|
31
|
+
YAW = 'Yaw'
|
|
32
|
+
PITCH = 'Pitch'
|
|
33
|
+
ROLL = 'Roll'
|
|
34
|
+
BLUR_LEVEL = 'BlurLevel'
|
|
35
|
+
NOISE_LEVEL = 'NoiseLevel'
|
|
36
|
+
EYE_RIGHT_CLOSED = 'EyeRightClosed'
|
|
37
|
+
EYE_LEFT_CLOSED = 'EyeLeftClosed'
|
|
38
|
+
EYE_RIGHT_OCCLUDED = 'EyeRightOccluded'
|
|
39
|
+
EYE_LEFT_OCCLUDED = 'EyeLeftOccluded'
|
|
40
|
+
EYES_RED = 'EyesRed'
|
|
41
|
+
EYE_RIGHT_COVERED_WITH_HAIR = 'EyeRightCoveredWithHair'
|
|
42
|
+
EYE_LEFT_COVERED_WITH_HAIR = 'EyeLeftCoveredWithHair'
|
|
43
|
+
OFF_GAZE = 'OffGaze'
|
|
44
|
+
FACE_DYNAMIC_RANGE = 'FaceDynamicRange'
|
|
45
|
+
UNNATURAL_SKIN_TONE = 'UnnaturalSkinTone'
|
|
46
|
+
TOO_DARK = 'TooDark'
|
|
47
|
+
TOO_LIGHT = 'TooLight'
|
|
48
|
+
FACE_GLARE = 'FaceGlare'
|
|
49
|
+
SHADOWS_ON_FACE = 'ShadowsOnFace'
|
|
50
|
+
DARK_GLASSES = 'DarkGlasses'
|
|
51
|
+
REFLECTION_ON_GLASSES = 'ReflectionOnGlasses'
|
|
52
|
+
FRAMES_TOO_HEAVY = 'FramesTooHeavy'
|
|
53
|
+
FACE_OCCLUDED = 'FaceOccluded'
|
|
54
|
+
HEAD_COVERING = 'HeadCovering'
|
|
55
|
+
BACKGROUND_UNIFORMITY = 'BackgroundUniformity'
|
|
56
|
+
SHADOWS_ON_BACKGROUND = 'ShadowsOnBackground'
|
|
57
|
+
OTHER_FACES = 'OtherFaces'
|
|
58
|
+
SHOULDERS_POSE = 'ShouldersPose'
|
|
59
|
+
EXPRESSION_LEVEL = 'ExpressionLevel'
|
|
60
|
+
MOUTH_OPEN = 'MouthOpen'
|
|
61
|
+
FOREHEAD_COVERING = 'ForeheadCovering'
|
|
62
|
+
SMILE = 'Smile'
|
|
63
|
+
STRONG_MAKEUP = 'StrongMakeup'
|
|
64
|
+
HEADPHONES = 'Headphones'
|
|
65
|
+
MEDICAL_MASK = 'MedicalMask'
|
|
66
|
+
BACKGROUND_COLOR_MATCH = 'BackgroundColorMatch'
|
|
67
|
+
ART_FACE = 'ArtFace'
|
|
68
|
+
CONTACT_LENSES = 'ContactLenses'
|
|
69
|
+
|
|
70
|
+
@classmethod
|
|
71
|
+
def from_json(cls, json_str: str) -> Self:
|
|
72
|
+
"""Create an instance of FaceQualityConfigName from a JSON string"""
|
|
73
|
+
return cls(json.loads(json_str))
|
|
74
|
+
|
|
75
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import json
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from typing_extensions import Self
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FaceQualityScenarios(str, Enum):
|
|
14
|
+
"""
|
|
15
|
+
Face detection scenario. If set and the scenario is found, it automatically applies the relevant parameters, overriding any other parameters specified in the request. If the scenario is not set, is empty, or the name is not recognized, processing will follow the parameters directly set in the request. For detailed descriptions of available scenarios, refer to the [Scenarios page](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/usage/face-detection/scenarios/).
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
allowed enum values
|
|
20
|
+
"""
|
|
21
|
+
OLD_MODE = 'OldMode'
|
|
22
|
+
QUALITY_FULL = 'QualityFull'
|
|
23
|
+
QUALITY_ICAO = 'QualityICAO'
|
|
24
|
+
QUALITY_VISA_SCHENGEN = 'QualityVisaSchengen'
|
|
25
|
+
QUALITY_VISA_USA = 'QualityVisaUSA'
|
|
26
|
+
CROP_CENTRAL_FACE = 'CropCentralFace'
|
|
27
|
+
CROP_ALL_FACES = 'CropAllFaces'
|
|
28
|
+
THUMBNAIL = 'Thumbnail'
|
|
29
|
+
ATTRIBUTES_ALL = 'AttributesAll'
|
|
30
|
+
EMPTY = ''
|
|
31
|
+
|
|
32
|
+
@classmethod
|
|
33
|
+
def from_json(cls, json_str: str) -> Self:
|
|
34
|
+
"""Create an instance of FaceQualityScenarios from a JSON string"""
|
|
35
|
+
return cls(json.loads(json_str))
|
|
36
|
+
|
|
37
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import pprint
|
|
9
|
+
import re # noqa: F401
|
|
10
|
+
import json
|
|
11
|
+
|
|
12
|
+
from pydantic import BaseModel, ConfigDict
|
|
13
|
+
from typing import Any, ClassVar, Dict, List
|
|
14
|
+
from regula.facesdk.webclient.gen.models.face_sdk_result_code import FaceSDKResultCode
|
|
15
|
+
from typing import Optional, Set
|
|
16
|
+
from typing_extensions import Self
|
|
17
|
+
from pydantic import SkipValidation, Field
|
|
18
|
+
|
|
19
|
+
class FaceSDKResult(BaseModel):
|
|
20
|
+
"""
|
|
21
|
+
FaceSDKResult
|
|
22
|
+
""" # noqa: E501
|
|
23
|
+
code: SkipValidation[FaceSDKResultCode] = Field(alias="code")
|
|
24
|
+
__properties: ClassVar[List[str]] = ["code"]
|
|
25
|
+
|
|
26
|
+
model_config = ConfigDict(
|
|
27
|
+
populate_by_name=True,
|
|
28
|
+
validate_assignment=True,
|
|
29
|
+
protected_namespaces=(),
|
|
30
|
+
arbitrary_types_allowed=True,
|
|
31
|
+
use_enum_values=True
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def to_str(self) -> str:
|
|
36
|
+
"""Returns the string representation of the model using alias"""
|
|
37
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
38
|
+
|
|
39
|
+
def to_json(self) -> str:
|
|
40
|
+
"""Returns the JSON representation of the model using alias"""
|
|
41
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
42
|
+
return json.dumps(self.to_dict())
|
|
43
|
+
|
|
44
|
+
@classmethod
|
|
45
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
46
|
+
"""Create an instance of FaceSDKResult from a JSON string"""
|
|
47
|
+
return cls.from_dict(json.loads(json_str))
|
|
48
|
+
|
|
49
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
50
|
+
"""Return the dictionary representation of the model using alias.
|
|
51
|
+
|
|
52
|
+
This has the following differences from calling pydantic's
|
|
53
|
+
`self.model_dump(by_alias=True)`:
|
|
54
|
+
|
|
55
|
+
* `None` is only added to the output dict for nullable fields that
|
|
56
|
+
were set at model initialization. Other fields with value `None`
|
|
57
|
+
are ignored.
|
|
58
|
+
"""
|
|
59
|
+
excluded_fields: Set[str] = set([
|
|
60
|
+
])
|
|
61
|
+
|
|
62
|
+
_dict = self.model_dump(
|
|
63
|
+
by_alias=True,
|
|
64
|
+
exclude=excluded_fields,
|
|
65
|
+
exclude_none=True,
|
|
66
|
+
)
|
|
67
|
+
return _dict
|
|
68
|
+
|
|
69
|
+
@classmethod
|
|
70
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
71
|
+
"""Create an instance of FaceSDKResult from a dict"""
|
|
72
|
+
if obj is None:
|
|
73
|
+
return None
|
|
74
|
+
|
|
75
|
+
if not isinstance(obj, dict):
|
|
76
|
+
return cls.model_validate(obj)
|
|
77
|
+
|
|
78
|
+
_obj = cls.model_validate({
|
|
79
|
+
"code": obj.get("code")
|
|
80
|
+
})
|
|
81
|
+
return _obj
|
|
82
|
+
|
|
83
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import json
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from typing_extensions import Self
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class FaceSDKResultCode(int, Enum):
|
|
14
|
+
"""
|
|
15
|
+
The result code, see the [FaceSDKResultCode enum](https://docs.regulaforensics.com/develop/face-sdk/web-service/development/enums/face-sdk-result-code/).
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
allowed enum values
|
|
20
|
+
"""
|
|
21
|
+
FACER_OK = 0
|
|
22
|
+
FR_IMAGE_EMPTY = 1
|
|
23
|
+
FR_FACE_NOT_DETECTED = 2
|
|
24
|
+
FR_LANDMARKS_NOT_DETECTED = 3
|
|
25
|
+
FR_FACE_ALIGHNER_FAILED = 4
|
|
26
|
+
FR_DESCRIPTOR_EXTRACTOR_ERROR = 5
|
|
27
|
+
FR_IMAGE_DECODE_ERROR = 6
|
|
28
|
+
FR_INTERNAL_ERROR = 7
|
|
29
|
+
FACER_CONFIG_ERROR = 199
|
|
30
|
+
FACER_NO_LICENSE = 200
|
|
31
|
+
FACER_IS_NOT_INITIALIZED = 201
|
|
32
|
+
FACER_COMMAND_IS_NOT_SUPPORTED = 202
|
|
33
|
+
FACER_COMMAND_PARAMS_READ_ERROR = 203
|
|
34
|
+
FACER_LESS_THAN_TWO_IMAGES_IN_REQUEST = 224
|
|
35
|
+
FACER_VIDEO_DECODE_ERROR = 227
|
|
36
|
+
FACER_NOT_ENOUGH_FRAMES = 228
|
|
37
|
+
FACER_OUTPUT_IS_NOT_DEFINED = 229
|
|
38
|
+
FACER_CLOSED_EYES_DETECTED = 230
|
|
39
|
+
FACER_LOW_QUALITY = 231
|
|
40
|
+
FACER_HIGH_ASYMMETRY = 232
|
|
41
|
+
FACER_FACE_OVER_EMOTIONAL = 233
|
|
42
|
+
FACER_SUNGLASSES_DETECTED = 234
|
|
43
|
+
FACER_SMALL_AGE = 235
|
|
44
|
+
FACER_HEADDRESS_DETECTED = 236
|
|
45
|
+
FACER_FACES_NOT_MATCHED = 237
|
|
46
|
+
FACER_IMAGES_COUNT_LIMIT_EXCEEDED = 238
|
|
47
|
+
FACER_MEDICINE_MASK_DETECTED = 239
|
|
48
|
+
FACER_OCCLUSION_DETECTED = 240
|
|
49
|
+
FACER_FOREHEAD_GLASSES_DETECTED = 242
|
|
50
|
+
FACER_MOUTH_OPENED = 243
|
|
51
|
+
FACER_ART_MASK_DETECTED = 244
|
|
52
|
+
FACER_ELECTRONIC_DEVICE_DETECTED = 245
|
|
53
|
+
FACER_TRACK_BREAK = 246
|
|
54
|
+
FACER_WRONG_GEO = 247
|
|
55
|
+
FACER_WRONG_OF = 248
|
|
56
|
+
FACER_WRONG_VIEW = 249
|
|
57
|
+
FACER_TIMEOUT_LIVENESS_TRANSACTION = 250
|
|
58
|
+
FACER_FAILED_LIVENESS_TRANSACTION = 251
|
|
59
|
+
FACER_ABORTED_LIVENESS_TRANSACTION = 252
|
|
60
|
+
FACER_GENERAL_ERROR = 253
|
|
61
|
+
FACER_PASSIVE_LIVENESS_FAIL = 254
|
|
62
|
+
|
|
63
|
+
@classmethod
|
|
64
|
+
def from_json(cls, json_str: str) -> Self:
|
|
65
|
+
"""Create an instance of FaceSDKResultCode from a JSON string"""
|
|
66
|
+
return cls(json.loads(json_str))
|
|
67
|
+
|
|
68
|
+
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Generated by: https://openapi-generator.tech
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import pprint
|
|
9
|
+
import re # noqa: F401
|
|
10
|
+
import json
|
|
11
|
+
|
|
12
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictBytes, StrictFloat, StrictInt, StrictStr
|
|
13
|
+
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
14
|
+
from regula.facesdk.webclient.gen.models.person_with_images import PersonWithImages
|
|
15
|
+
from typing import Optional, Set
|
|
16
|
+
from typing_extensions import Self
|
|
17
|
+
from pydantic import SkipValidation, Field
|
|
18
|
+
|
|
19
|
+
class FacesResponse(BaseModel):
|
|
20
|
+
"""
|
|
21
|
+
FacesResponse
|
|
22
|
+
""" # noqa: E501
|
|
23
|
+
face_index: SkipValidation[Optional[float]] = Field(alias="faceIndex", default=None, description="The detected face index number.")
|
|
24
|
+
landmarks: SkipValidation[Optional[List[List[float]]]] = Field(alias="landmarks", default=None, description="Absolute coordinates (x,y) of five points of each detected face: left eye, right eye, nose, left point of lips, right point of lips.")
|
|
25
|
+
rotation_angle: SkipValidation[Optional[float]] = Field(alias="rotationAngle", default=None, description="Angle of rotation of the face from the vertical axis, degrees.")
|
|
26
|
+
roi: SkipValidation[Optional[List[float]]] = Field(alias="roi", default=None, description="The rectangular area of a detected face that is represented by a set of four elements: the X and Y coordinates of the top-left point, and the width and height dimensions of the rectangle.")
|
|
27
|
+
crop: SkipValidation[Optional[bytearray]] = Field(alias="crop", default=None, description="Base64-encoded aligned and cropped portrait.")
|
|
28
|
+
persons: SkipValidation[Optional[List[PersonWithImages]]] = Field(alias="persons", default=None, description="Detected Persons.")
|
|
29
|
+
__properties: ClassVar[List[str]] = ["faceIndex", "landmarks", "rotationAngle", "roi", "crop", "persons"]
|
|
30
|
+
|
|
31
|
+
model_config = ConfigDict(
|
|
32
|
+
populate_by_name=True,
|
|
33
|
+
validate_assignment=True,
|
|
34
|
+
protected_namespaces=(),
|
|
35
|
+
arbitrary_types_allowed=True,
|
|
36
|
+
use_enum_values=True
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def to_str(self) -> str:
|
|
41
|
+
"""Returns the string representation of the model using alias"""
|
|
42
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
43
|
+
|
|
44
|
+
def to_json(self) -> str:
|
|
45
|
+
"""Returns the JSON representation of the model using alias"""
|
|
46
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
47
|
+
return json.dumps(self.to_dict())
|
|
48
|
+
|
|
49
|
+
@classmethod
|
|
50
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
51
|
+
"""Create an instance of FacesResponse from a JSON string"""
|
|
52
|
+
return cls.from_dict(json.loads(json_str))
|
|
53
|
+
|
|
54
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
55
|
+
"""Return the dictionary representation of the model using alias.
|
|
56
|
+
|
|
57
|
+
This has the following differences from calling pydantic's
|
|
58
|
+
`self.model_dump(by_alias=True)`:
|
|
59
|
+
|
|
60
|
+
* `None` is only added to the output dict for nullable fields that
|
|
61
|
+
were set at model initialization. Other fields with value `None`
|
|
62
|
+
are ignored.
|
|
63
|
+
"""
|
|
64
|
+
excluded_fields: Set[str] = set([
|
|
65
|
+
])
|
|
66
|
+
|
|
67
|
+
_dict = self.model_dump(
|
|
68
|
+
by_alias=True,
|
|
69
|
+
exclude=excluded_fields,
|
|
70
|
+
exclude_none=True,
|
|
71
|
+
)
|
|
72
|
+
# override the default output from pydantic by calling `to_dict()` of each item in persons (list)
|
|
73
|
+
_items = []
|
|
74
|
+
if self.persons:
|
|
75
|
+
for _item_persons in self.persons:
|
|
76
|
+
if _item_persons:
|
|
77
|
+
_items.append(_item_persons.to_dict())
|
|
78
|
+
_dict['persons'] = _items
|
|
79
|
+
return _dict
|
|
80
|
+
|
|
81
|
+
@classmethod
|
|
82
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
83
|
+
"""Create an instance of FacesResponse from a dict"""
|
|
84
|
+
if obj is None:
|
|
85
|
+
return None
|
|
86
|
+
|
|
87
|
+
if not isinstance(obj, dict):
|
|
88
|
+
return cls.model_validate(obj)
|
|
89
|
+
|
|
90
|
+
_obj = cls.model_validate({
|
|
91
|
+
"faceIndex": obj.get("faceIndex"),
|
|
92
|
+
"landmarks": obj.get("landmarks"),
|
|
93
|
+
"rotationAngle": obj.get("rotationAngle"),
|
|
94
|
+
"roi": obj.get("roi"),
|
|
95
|
+
"crop": obj.get("crop"),
|
|
96
|
+
"persons": [PersonWithImages.from_dict(_item) for _item in obj.get("persons", []) if PersonWithImages.from_dict(_item) is not None]
|
|
97
|
+
})
|
|
98
|
+
return _obj
|
|
99
|
+
|
|
100
|
+
|