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,21 @@
|
|
|
1
|
+
"""API response object."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from typing import Optional, Generic, Mapping, TypeVar
|
|
5
|
+
from pydantic import Field, StrictInt, StrictBytes, BaseModel
|
|
6
|
+
|
|
7
|
+
T = TypeVar("T")
|
|
8
|
+
|
|
9
|
+
class ApiResponse(BaseModel, Generic[T]):
|
|
10
|
+
"""
|
|
11
|
+
API response object
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
status_code: StrictInt = Field(description="HTTP status code")
|
|
15
|
+
headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers")
|
|
16
|
+
data: T = Field(description="Deserialized data given the data type")
|
|
17
|
+
raw_data: StrictBytes = Field(description="Raw data (HTTP response body)")
|
|
18
|
+
|
|
19
|
+
model_config = {
|
|
20
|
+
"arbitrary_types_allowed": True
|
|
21
|
+
}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
Regula Face SDK Web API
|
|
3
|
-
|
|
4
|
-
<a href=\"https://regulaforensics.com/products/face-recognition-sdk/ \" target=\"_blank\">Regula Face SDK</a> is a cross-platform biometric verification solution for a digital identity verification process and image quality assurance. The SDK enables convenient and reliable face capture on the client side (mobile, web, and desktop) and further processing on the client or server side. The Face SDK includes the following features: * <a href=\"https://docs.regulaforensics.com/develop/face-sdk/overview/introduction/#face-detection\" target=\"_blank\">Face detection and image quality assessment</a> * <a href=\"https://docs.regulaforensics.com/develop/face-sdk/overview/introduction/#face-comparison-11\" target=\"_blank\">Face match (1:1)</a> * <a href=\"https://docs.regulaforensics.com/develop/face-sdk/overview/introduction/#face-identification-1n\" target=\"_blank\">Face search (1:N)</a> * <a href=\"https://docs.regulaforensics.com/develop/face-sdk/overview/introduction/#liveness-assessment\" target=\"_blank\">Liveness detection</a> Here is the <a href=\"https://github.com/regulaforensics/FaceSDK-web-openapi \" target=\"_blank\">OpenAPI specification on GitHub</a>. ### Clients * [JavaScript](https://github.com/regulaforensics/FaceSDK-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/FaceSDK-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/FaceSDK-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/FaceSDK-web-csharp-client) client for .NET & .NET Core # noqa: E501
|
|
1
|
+
# coding: utf-8
|
|
5
2
|
|
|
6
|
-
|
|
3
|
+
"""
|
|
7
4
|
Generated by: https://openapi-generator.tech
|
|
8
5
|
"""
|
|
9
6
|
|
|
10
|
-
|
|
11
7
|
import copy
|
|
8
|
+
import http.client as httplib
|
|
12
9
|
import logging
|
|
10
|
+
from logging import FileHandler
|
|
13
11
|
import multiprocessing
|
|
14
12
|
import sys
|
|
15
|
-
import
|
|
13
|
+
from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union
|
|
14
|
+
from typing_extensions import NotRequired, Self
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
from regula.facesdk.webclient.gen.exceptions import ApiValueError
|
|
16
|
+
import urllib3
|
|
19
17
|
|
|
20
18
|
|
|
21
19
|
JSON_SCHEMA_VALIDATION_KEYWORDS = {
|
|
@@ -24,46 +22,123 @@ JSON_SCHEMA_VALIDATION_KEYWORDS = {
|
|
|
24
22
|
'minLength', 'pattern', 'maxItems', 'minItems'
|
|
25
23
|
}
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
ServerVariablesT = Dict[str, str]
|
|
26
|
+
|
|
27
|
+
GenericAuthSetting = TypedDict(
|
|
28
|
+
"GenericAuthSetting",
|
|
29
|
+
{
|
|
30
|
+
"type": str,
|
|
31
|
+
"in": str,
|
|
32
|
+
"key": str,
|
|
33
|
+
"value": str,
|
|
34
|
+
},
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
OAuth2AuthSetting = TypedDict(
|
|
39
|
+
"OAuth2AuthSetting",
|
|
40
|
+
{
|
|
41
|
+
"type": Literal["oauth2"],
|
|
42
|
+
"in": Literal["header"],
|
|
43
|
+
"key": Literal["Authorization"],
|
|
44
|
+
"value": str,
|
|
45
|
+
},
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
APIKeyAuthSetting = TypedDict(
|
|
50
|
+
"APIKeyAuthSetting",
|
|
51
|
+
{
|
|
52
|
+
"type": Literal["api_key"],
|
|
53
|
+
"in": str,
|
|
54
|
+
"key": str,
|
|
55
|
+
"value": Optional[str],
|
|
56
|
+
},
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
BasicAuthSetting = TypedDict(
|
|
61
|
+
"BasicAuthSetting",
|
|
62
|
+
{
|
|
63
|
+
"type": Literal["basic"],
|
|
64
|
+
"in": Literal["header"],
|
|
65
|
+
"key": Literal["Authorization"],
|
|
66
|
+
"value": Optional[str],
|
|
67
|
+
},
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
BearerFormatAuthSetting = TypedDict(
|
|
72
|
+
"BearerFormatAuthSetting",
|
|
73
|
+
{
|
|
74
|
+
"type": Literal["bearer"],
|
|
75
|
+
"in": Literal["header"],
|
|
76
|
+
"format": Literal["JWT"],
|
|
77
|
+
"key": Literal["Authorization"],
|
|
78
|
+
"value": str,
|
|
79
|
+
},
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
BearerAuthSetting = TypedDict(
|
|
84
|
+
"BearerAuthSetting",
|
|
85
|
+
{
|
|
86
|
+
"type": Literal["bearer"],
|
|
87
|
+
"in": Literal["header"],
|
|
88
|
+
"key": Literal["Authorization"],
|
|
89
|
+
"value": str,
|
|
90
|
+
},
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
HTTPSignatureAuthSetting = TypedDict(
|
|
95
|
+
"HTTPSignatureAuthSetting",
|
|
96
|
+
{
|
|
97
|
+
"type": Literal["http-signature"],
|
|
98
|
+
"in": Literal["header"],
|
|
99
|
+
"key": Literal["Authorization"],
|
|
100
|
+
"value": None,
|
|
101
|
+
},
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
AuthSettings = TypedDict(
|
|
106
|
+
"AuthSettings",
|
|
107
|
+
{
|
|
108
|
+
},
|
|
109
|
+
total=False,
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class HostSettingVariable(TypedDict):
|
|
114
|
+
description: str
|
|
115
|
+
default_value: str
|
|
116
|
+
enum_values: List[str]
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
class HostSetting(TypedDict):
|
|
120
|
+
url: str
|
|
121
|
+
description: str
|
|
122
|
+
variables: NotRequired[Dict[str, HostSettingVariable]]
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class Configuration:
|
|
126
|
+
"""This class contains various settings of the API client.
|
|
127
|
+
|
|
128
|
+
:param host: Base url.
|
|
129
|
+
:param ignore_operation_servers
|
|
130
|
+
Boolean to ignore operation servers for the API client.
|
|
131
|
+
Config will use `host` as the base url regardless of the operation servers.
|
|
34
132
|
:param api_key: Dict to store API key(s).
|
|
35
133
|
Each entry in the dict specifies an API key.
|
|
36
134
|
The dict key is the name of the security scheme in the OAS specification.
|
|
37
135
|
The dict value is the API key secret.
|
|
38
|
-
:param api_key_prefix: Dict to store API prefix (e.g. Bearer)
|
|
136
|
+
:param api_key_prefix: Dict to store API prefix (e.g. Bearer).
|
|
39
137
|
The dict key is the name of the security scheme in the OAS specification.
|
|
40
138
|
The dict value is an API key prefix when generating the auth data.
|
|
41
|
-
:param username: Username for HTTP basic authentication
|
|
42
|
-
:param password: Password for HTTP basic authentication
|
|
43
|
-
:param
|
|
44
|
-
unknown properties. A server may send a response that includes additional
|
|
45
|
-
properties that are not known by the client in the following scenarios:
|
|
46
|
-
1. The OpenAPI document is incomplete, i.e. it does not match the server
|
|
47
|
-
implementation.
|
|
48
|
-
2. The client was generated using an older version of the OpenAPI document
|
|
49
|
-
and the server has been upgraded since then.
|
|
50
|
-
If a schema in the OpenAPI document defines the additionalProperties attribute,
|
|
51
|
-
then all undeclared properties received by the server are injected into the
|
|
52
|
-
additional properties map. In that case, there are undeclared properties, and
|
|
53
|
-
nothing to discard.
|
|
54
|
-
:param disabled_client_side_validations (string): Comma-separated list of
|
|
55
|
-
JSON schema validation keywords to disable JSON schema structural validation
|
|
56
|
-
rules. The following keywords may be specified: multipleOf, maximum,
|
|
57
|
-
exclusiveMaximum, minimum, exclusiveMinimum, maxLength, minLength, pattern,
|
|
58
|
-
maxItems, minItems.
|
|
59
|
-
By default, the validation is performed for data generated locally by the client
|
|
60
|
-
and data received from the server, independent of any validation performed by
|
|
61
|
-
the server side. If the input data does not satisfy the JSON schema validation
|
|
62
|
-
rules specified in the OpenAPI document, an exception is raised.
|
|
63
|
-
If disabled_client_side_validations is set, structural validation is
|
|
64
|
-
disabled. This can be useful to troubleshoot data validation problem, such as
|
|
65
|
-
when the OpenAPI document validation rules do not match the actual API data
|
|
66
|
-
received by the server.
|
|
139
|
+
:param username: Username for HTTP basic authentication.
|
|
140
|
+
:param password: Password for HTTP basic authentication.
|
|
141
|
+
:param access_token: Access token.
|
|
67
142
|
:param server_index: Index to servers configuration.
|
|
68
143
|
:param server_variables: Mapping with string values to replace variables in
|
|
69
144
|
templated server configuration. The validation of enums is performed for
|
|
@@ -72,27 +147,40 @@ class Configuration(object):
|
|
|
72
147
|
configuration.
|
|
73
148
|
:param server_operation_variables: Mapping from operation ID to a mapping with
|
|
74
149
|
string values to replace variables in templated server configuration.
|
|
75
|
-
The validation of enums is performed for variables with defined enum
|
|
150
|
+
The validation of enums is performed for variables with defined enum
|
|
151
|
+
values before.
|
|
76
152
|
:param ssl_ca_cert: str - the path to a file of concatenated CA certificates
|
|
77
|
-
in PEM format
|
|
153
|
+
in PEM format.
|
|
154
|
+
:param retries: Number of retries for API requests.
|
|
155
|
+
:param ca_cert_data: verify the peer using concatenated CA certificate data
|
|
156
|
+
in PEM (str) or DER (bytes) format.
|
|
78
157
|
|
|
79
158
|
"""
|
|
80
159
|
|
|
81
|
-
_default = None
|
|
82
|
-
|
|
83
|
-
def __init__(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
160
|
+
_default: ClassVar[Optional[Self]] = None
|
|
161
|
+
|
|
162
|
+
def __init__(
|
|
163
|
+
self,
|
|
164
|
+
host: Optional[str]=None,
|
|
165
|
+
api_key: Optional[Dict[str, str]]=None,
|
|
166
|
+
api_key_prefix: Optional[Dict[str, str]]=None,
|
|
167
|
+
username: Optional[str]=None,
|
|
168
|
+
password: Optional[str]=None,
|
|
169
|
+
access_token: Optional[str]=None,
|
|
170
|
+
server_index: Optional[int]=None,
|
|
171
|
+
server_variables: Optional[ServerVariablesT]=None,
|
|
172
|
+
server_operation_index: Optional[Dict[int, int]]=None,
|
|
173
|
+
server_operation_variables: Optional[Dict[int, ServerVariablesT]]=None,
|
|
174
|
+
ignore_operation_servers: bool=False,
|
|
175
|
+
ssl_ca_cert: Optional[str]=None,
|
|
176
|
+
retries: Optional[int] = None,
|
|
177
|
+
ca_cert_data: Optional[Union[str, bytes]] = None,
|
|
178
|
+
*,
|
|
179
|
+
debug: Optional[bool] = None,
|
|
180
|
+
) -> None:
|
|
93
181
|
"""Constructor
|
|
94
182
|
"""
|
|
95
|
-
self._base_path = "
|
|
183
|
+
self._base_path = "https://faceapi.regulaforensics.com" if host is None else host
|
|
96
184
|
"""Default Base url
|
|
97
185
|
"""
|
|
98
186
|
self.server_index = 0 if server_index is None and host is None else server_index
|
|
@@ -103,11 +191,13 @@ class Configuration(object):
|
|
|
103
191
|
self.server_operation_variables = server_operation_variables or {}
|
|
104
192
|
"""Default server variables
|
|
105
193
|
"""
|
|
194
|
+
self.ignore_operation_servers = ignore_operation_servers
|
|
195
|
+
"""Ignore operation servers
|
|
196
|
+
"""
|
|
106
197
|
self.temp_folder_path = None
|
|
107
198
|
"""Temp file folder for downloading files
|
|
108
199
|
"""
|
|
109
200
|
# Authentication Settings
|
|
110
|
-
self.access_token = access_token
|
|
111
201
|
self.api_key = {}
|
|
112
202
|
if api_key:
|
|
113
203
|
self.api_key = api_key
|
|
@@ -127,8 +217,9 @@ class Configuration(object):
|
|
|
127
217
|
self.password = password
|
|
128
218
|
"""Password for HTTP basic authentication
|
|
129
219
|
"""
|
|
130
|
-
self.
|
|
131
|
-
|
|
220
|
+
self.access_token = access_token
|
|
221
|
+
"""Access token
|
|
222
|
+
"""
|
|
132
223
|
self.logger = {}
|
|
133
224
|
"""Logging Settings
|
|
134
225
|
"""
|
|
@@ -140,13 +231,16 @@ class Configuration(object):
|
|
|
140
231
|
self.logger_stream_handler = None
|
|
141
232
|
"""Log stream handler
|
|
142
233
|
"""
|
|
143
|
-
self.logger_file_handler = None
|
|
234
|
+
self.logger_file_handler: Optional[FileHandler] = None
|
|
144
235
|
"""Log file handler
|
|
145
236
|
"""
|
|
146
237
|
self.logger_file = None
|
|
147
238
|
"""Debug file location
|
|
148
239
|
"""
|
|
149
|
-
|
|
240
|
+
if debug is not None:
|
|
241
|
+
self.debug = debug
|
|
242
|
+
else:
|
|
243
|
+
self.__debug = False
|
|
150
244
|
"""Debug switch
|
|
151
245
|
"""
|
|
152
246
|
|
|
@@ -158,6 +252,10 @@ class Configuration(object):
|
|
|
158
252
|
self.ssl_ca_cert = ssl_ca_cert
|
|
159
253
|
"""Set this to customize the certificate file to verify the peer.
|
|
160
254
|
"""
|
|
255
|
+
self.ca_cert_data = ca_cert_data
|
|
256
|
+
"""Set this to verify the peer using PEM (str) or DER (bytes)
|
|
257
|
+
certificate data.
|
|
258
|
+
"""
|
|
161
259
|
self.cert_file = None
|
|
162
260
|
"""client certificate file
|
|
163
261
|
"""
|
|
@@ -167,6 +265,10 @@ class Configuration(object):
|
|
|
167
265
|
self.assert_hostname = None
|
|
168
266
|
"""Set this to True/False to enable/disable SSL hostname verification.
|
|
169
267
|
"""
|
|
268
|
+
self.tls_server_name = None
|
|
269
|
+
"""SSL/TLS Server Name Indication (SNI)
|
|
270
|
+
Set this to the SNI value expected by the server.
|
|
271
|
+
"""
|
|
170
272
|
|
|
171
273
|
self.connection_pool_maxsize = multiprocessing.cpu_count() * 5
|
|
172
274
|
"""urllib3 connection pool's maximum number of connections saved
|
|
@@ -176,28 +278,34 @@ class Configuration(object):
|
|
|
176
278
|
cpu_count * 5 is used as default value to increase performance.
|
|
177
279
|
"""
|
|
178
280
|
|
|
179
|
-
self.proxy = None
|
|
281
|
+
self.proxy: Optional[str] = None
|
|
180
282
|
"""Proxy URL
|
|
181
283
|
"""
|
|
182
|
-
self.no_proxy = None
|
|
183
|
-
"""bypass proxy for host in the no_proxy list.
|
|
184
|
-
"""
|
|
185
284
|
self.proxy_headers = None
|
|
186
285
|
"""Proxy headers
|
|
187
286
|
"""
|
|
188
287
|
self.safe_chars_for_path_param = ''
|
|
189
288
|
"""Safe chars for path_param
|
|
190
289
|
"""
|
|
191
|
-
self.retries =
|
|
290
|
+
self.retries = retries
|
|
192
291
|
"""Adding retries to override urllib3 default value 3
|
|
193
292
|
"""
|
|
194
293
|
# Enable client side validation
|
|
195
294
|
self.client_side_validation = True
|
|
196
295
|
|
|
197
|
-
# Options to pass down to the underlying urllib3 socket
|
|
198
296
|
self.socket_options = None
|
|
297
|
+
"""Options to pass down to the underlying urllib3 socket
|
|
298
|
+
"""
|
|
299
|
+
|
|
300
|
+
self.datetime_format = "%Y-%m-%dT%H:%M:%S.%f%z"
|
|
301
|
+
"""datetime format
|
|
302
|
+
"""
|
|
199
303
|
|
|
200
|
-
|
|
304
|
+
self.date_format = "%Y-%m-%d"
|
|
305
|
+
"""date format
|
|
306
|
+
"""
|
|
307
|
+
|
|
308
|
+
def __deepcopy__(self, memo: Dict[int, Any]) -> Self:
|
|
201
309
|
cls = self.__class__
|
|
202
310
|
result = cls.__new__(cls)
|
|
203
311
|
memo[id(self)] = result
|
|
@@ -211,18 +319,11 @@ class Configuration(object):
|
|
|
211
319
|
result.debug = self.debug
|
|
212
320
|
return result
|
|
213
321
|
|
|
214
|
-
def __setattr__(self, name, value):
|
|
322
|
+
def __setattr__(self, name: str, value: Any) -> None:
|
|
215
323
|
object.__setattr__(self, name, value)
|
|
216
|
-
if name == 'disabled_client_side_validations':
|
|
217
|
-
s = set(filter(None, value.split(',')))
|
|
218
|
-
for v in s:
|
|
219
|
-
if v not in JSON_SCHEMA_VALIDATION_KEYWORDS:
|
|
220
|
-
raise ApiValueError(
|
|
221
|
-
"Invalid keyword: '{0}''".format(v))
|
|
222
|
-
self._disabled_client_side_validations = s
|
|
223
324
|
|
|
224
325
|
@classmethod
|
|
225
|
-
def set_default(cls, default):
|
|
326
|
+
def set_default(cls, default: Optional[Self]) -> None:
|
|
226
327
|
"""Set default instance of configuration.
|
|
227
328
|
|
|
228
329
|
It stores default configuration, which can be
|
|
@@ -230,24 +331,34 @@ class Configuration(object):
|
|
|
230
331
|
|
|
231
332
|
:param default: object of Configuration
|
|
232
333
|
"""
|
|
233
|
-
cls._default =
|
|
334
|
+
cls._default = default
|
|
234
335
|
|
|
235
336
|
@classmethod
|
|
236
|
-
def get_default_copy(cls):
|
|
237
|
-
"""
|
|
337
|
+
def get_default_copy(cls) -> Self:
|
|
338
|
+
"""Deprecated. Please use `get_default` instead.
|
|
339
|
+
|
|
340
|
+
Deprecated. Please use `get_default` instead.
|
|
341
|
+
|
|
342
|
+
:return: The configuration object.
|
|
343
|
+
"""
|
|
344
|
+
return cls.get_default()
|
|
345
|
+
|
|
346
|
+
@classmethod
|
|
347
|
+
def get_default(cls) -> Self:
|
|
348
|
+
"""Return the default configuration.
|
|
238
349
|
|
|
239
350
|
This method returns newly created, based on default constructor,
|
|
240
351
|
object of Configuration class or returns a copy of default
|
|
241
|
-
configuration
|
|
352
|
+
configuration.
|
|
242
353
|
|
|
243
354
|
:return: The configuration object.
|
|
244
355
|
"""
|
|
245
|
-
if cls._default is
|
|
246
|
-
|
|
247
|
-
return
|
|
356
|
+
if cls._default is None:
|
|
357
|
+
cls._default = cls()
|
|
358
|
+
return cls._default
|
|
248
359
|
|
|
249
360
|
@property
|
|
250
|
-
def logger_file(self):
|
|
361
|
+
def logger_file(self) -> Optional[str]:
|
|
251
362
|
"""The logger file.
|
|
252
363
|
|
|
253
364
|
If the logger_file is None, then add stream handler and remove file
|
|
@@ -259,7 +370,7 @@ class Configuration(object):
|
|
|
259
370
|
return self.__logger_file
|
|
260
371
|
|
|
261
372
|
@logger_file.setter
|
|
262
|
-
def logger_file(self, value):
|
|
373
|
+
def logger_file(self, value: Optional[str]) -> None:
|
|
263
374
|
"""The logger file.
|
|
264
375
|
|
|
265
376
|
If the logger_file is None, then add stream handler and remove file
|
|
@@ -278,7 +389,7 @@ class Configuration(object):
|
|
|
278
389
|
logger.addHandler(self.logger_file_handler)
|
|
279
390
|
|
|
280
391
|
@property
|
|
281
|
-
def debug(self):
|
|
392
|
+
def debug(self) -> bool:
|
|
282
393
|
"""Debug status
|
|
283
394
|
|
|
284
395
|
:param value: The debug status, True or False.
|
|
@@ -287,7 +398,7 @@ class Configuration(object):
|
|
|
287
398
|
return self.__debug
|
|
288
399
|
|
|
289
400
|
@debug.setter
|
|
290
|
-
def debug(self, value):
|
|
401
|
+
def debug(self, value: bool) -> None:
|
|
291
402
|
"""Debug status
|
|
292
403
|
|
|
293
404
|
:param value: The debug status, True or False.
|
|
@@ -298,18 +409,18 @@ class Configuration(object):
|
|
|
298
409
|
# if debug status is True, turn on debug logging
|
|
299
410
|
for _, logger in self.logger.items():
|
|
300
411
|
logger.setLevel(logging.DEBUG)
|
|
301
|
-
# turn on
|
|
302
|
-
|
|
412
|
+
# turn on httplib debug
|
|
413
|
+
httplib.HTTPConnection.debuglevel = 1
|
|
303
414
|
else:
|
|
304
415
|
# if debug status is False, turn off debug logging,
|
|
305
416
|
# setting log level to default `logging.WARNING`
|
|
306
417
|
for _, logger in self.logger.items():
|
|
307
418
|
logger.setLevel(logging.WARNING)
|
|
308
|
-
# turn off
|
|
309
|
-
|
|
419
|
+
# turn off httplib debug
|
|
420
|
+
httplib.HTTPConnection.debuglevel = 0
|
|
310
421
|
|
|
311
422
|
@property
|
|
312
|
-
def logger_format(self):
|
|
423
|
+
def logger_format(self) -> str:
|
|
313
424
|
"""The logger format.
|
|
314
425
|
|
|
315
426
|
The logger_formatter will be updated when sets logger_format.
|
|
@@ -320,7 +431,7 @@ class Configuration(object):
|
|
|
320
431
|
return self.__logger_format
|
|
321
432
|
|
|
322
433
|
@logger_format.setter
|
|
323
|
-
def logger_format(self, value):
|
|
434
|
+
def logger_format(self, value: str) -> None:
|
|
324
435
|
"""The logger format.
|
|
325
436
|
|
|
326
437
|
The logger_formatter will be updated when sets logger_format.
|
|
@@ -331,7 +442,7 @@ class Configuration(object):
|
|
|
331
442
|
self.__logger_format = value
|
|
332
443
|
self.logger_formatter = logging.Formatter(self.__logger_format)
|
|
333
444
|
|
|
334
|
-
def get_api_key_with_prefix(self, identifier, alias=None):
|
|
445
|
+
def get_api_key_with_prefix(self, identifier: str, alias: Optional[str]=None) -> Optional[str]:
|
|
335
446
|
"""Gets API key (with prefix if set).
|
|
336
447
|
|
|
337
448
|
:param identifier: The identifier of apiKey.
|
|
@@ -348,7 +459,9 @@ class Configuration(object):
|
|
|
348
459
|
else:
|
|
349
460
|
return key
|
|
350
461
|
|
|
351
|
-
|
|
462
|
+
return None
|
|
463
|
+
|
|
464
|
+
def get_basic_auth_token(self) -> Optional[str]:
|
|
352
465
|
"""Gets HTTP basic authentication header (string).
|
|
353
466
|
|
|
354
467
|
:return: The token for basic HTTP authentication.
|
|
@@ -363,15 +476,15 @@ class Configuration(object):
|
|
|
363
476
|
basic_auth=username + ':' + password
|
|
364
477
|
).get('authorization')
|
|
365
478
|
|
|
366
|
-
def auth_settings(self):
|
|
479
|
+
def auth_settings(self)-> AuthSettings:
|
|
367
480
|
"""Gets Auth Settings dict for api client.
|
|
368
481
|
|
|
369
482
|
:return: The Auth Settings information dict.
|
|
370
483
|
"""
|
|
371
|
-
auth = {}
|
|
484
|
+
auth: AuthSettings = {}
|
|
372
485
|
return auth
|
|
373
486
|
|
|
374
|
-
def to_debug_report(self):
|
|
487
|
+
def to_debug_report(self) -> str:
|
|
375
488
|
"""Gets the essential information for debugging.
|
|
376
489
|
|
|
377
490
|
:return: The report for debugging.
|
|
@@ -383,19 +496,32 @@ class Configuration(object):
|
|
|
383
496
|
"SDK Package Version: 1.0.0".\
|
|
384
497
|
format(env=sys.platform, pyversion=sys.version)
|
|
385
498
|
|
|
386
|
-
def get_host_settings(self):
|
|
499
|
+
def get_host_settings(self) -> List[HostSetting]:
|
|
387
500
|
"""Gets an array of host settings
|
|
388
501
|
|
|
389
502
|
:return: An array of host settings
|
|
390
503
|
"""
|
|
391
504
|
return [
|
|
505
|
+
{
|
|
506
|
+
'url': "https://faceapi.regulaforensics.com",
|
|
507
|
+
'description': "Latest stable Regula face demo endpoint",
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
'url': "https://nightly-faceapi.regulaforensics.com",
|
|
511
|
+
'description': "Nightly Regula face demo endpoint",
|
|
512
|
+
},
|
|
392
513
|
{
|
|
393
514
|
'url': "http://localhost:41101",
|
|
394
515
|
'description': "Local on-premise installation",
|
|
395
516
|
}
|
|
396
517
|
]
|
|
397
518
|
|
|
398
|
-
def get_host_from_settings(
|
|
519
|
+
def get_host_from_settings(
|
|
520
|
+
self,
|
|
521
|
+
index: Optional[int],
|
|
522
|
+
variables: Optional[ServerVariablesT]=None,
|
|
523
|
+
servers: Optional[List[HostSetting]]=None,
|
|
524
|
+
) -> str:
|
|
399
525
|
"""Gets host URL based on the index and variables
|
|
400
526
|
:param index: array index of the host settings
|
|
401
527
|
:param variables: hash of variable and the corresponding value
|
|
@@ -435,12 +561,12 @@ class Configuration(object):
|
|
|
435
561
|
return url
|
|
436
562
|
|
|
437
563
|
@property
|
|
438
|
-
def host(self):
|
|
564
|
+
def host(self) -> str:
|
|
439
565
|
"""Return generated host."""
|
|
440
566
|
return self.get_host_from_settings(self.server_index, variables=self.server_variables)
|
|
441
567
|
|
|
442
568
|
@host.setter
|
|
443
|
-
def host(self, value):
|
|
569
|
+
def host(self, value: str) -> None:
|
|
444
570
|
"""Fix base path."""
|
|
445
571
|
self._base_path = value
|
|
446
572
|
self.server_index = None
|