skyflow-flowvault-python 1.0.0__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.
- common/.coveragerc +4 -0
- common/__init__.py +3 -0
- common/client/__init__.py +0 -0
- common/client/base_skyflow.py +345 -0
- common/client/utils/__init__.py +1 -0
- common/client/utils/_utils.py +127 -0
- common/errors/__init__.py +1 -0
- common/errors/_skyflow_error.py +17 -0
- common/generated/__init__.py +0 -0
- common/generated/rest/__init__.py +24 -0
- common/generated/rest/authentication/__init__.py +4 -0
- common/generated/rest/authentication/client.py +181 -0
- common/generated/rest/authentication/raw_client.py +241 -0
- common/generated/rest/client.py +153 -0
- common/generated/rest/core/__init__.py +52 -0
- common/generated/rest/core/api_error.py +23 -0
- common/generated/rest/core/client_wrapper.py +86 -0
- common/generated/rest/core/datetime_utils.py +28 -0
- common/generated/rest/core/file.py +67 -0
- common/generated/rest/core/force_multipart.py +16 -0
- common/generated/rest/core/http_client.py +543 -0
- common/generated/rest/core/http_response.py +55 -0
- common/generated/rest/core/jsonable_encoder.py +100 -0
- common/generated/rest/core/pydantic_utilities.py +255 -0
- common/generated/rest/core/query_encoder.py +58 -0
- common/generated/rest/core/remove_none_from_dict.py +11 -0
- common/generated/rest/core/request_options.py +35 -0
- common/generated/rest/core/serialization.py +276 -0
- common/generated/rest/environment.py +8 -0
- common/generated/rest/errors/__init__.py +9 -0
- common/generated/rest/errors/bad_request_error.py +14 -0
- common/generated/rest/errors/not_found_error.py +14 -0
- common/generated/rest/errors/unauthorized_error.py +14 -0
- common/generated/rest/py.typed +0 -0
- common/generated/rest/types/__init__.py +9 -0
- common/generated/rest/types/googlerpc_status.py +22 -0
- common/generated/rest/types/protobuf_any.py +21 -0
- common/generated/rest/types/v_1_get_auth_token_response.py +33 -0
- common/generated/rest/version.py +6 -0
- common/service_account/__init__.py +1 -0
- common/service_account/_utils.py +248 -0
- common/service_account/client/__init__.py +0 -0
- common/service_account/client/auth_client.py +13 -0
- common/utils/__init__.py +4 -0
- common/utils/_helpers.py +18 -0
- common/utils/_skyflow_messages.py +445 -0
- common/utils/_utils.py +50 -0
- common/utils/constants.py +291 -0
- common/utils/enums/__init__.py +12 -0
- common/utils/enums/content_types.py +9 -0
- common/utils/enums/detect_entities.py +73 -0
- common/utils/enums/detect_output_transcriptions.py +8 -0
- common/utils/enums/env.py +13 -0
- common/utils/enums/log_level.py +8 -0
- common/utils/enums/masking_method.py +5 -0
- common/utils/enums/redaction_type.py +7 -0
- common/utils/enums/request_method.py +8 -0
- common/utils/enums/token_mode.py +6 -0
- common/utils/enums/token_type.py +6 -0
- common/utils/logger/__init__.py +2 -0
- common/utils/logger/_log_helpers.py +47 -0
- common/utils/logger/_logger.py +50 -0
- common/utils/validations/__init__.py +11 -0
- common/utils/validations/_validations.py +267 -0
- common/vault/base_vault_client.py +122 -0
- common/vault/base_vault_controller.py +58 -0
- common/vault/data/__init__.py +2 -0
- common/vault/data/_base_insert_request.py +7 -0
- common/vault/data/_base_insert_response.py +11 -0
- skyflow/__init__.py +2 -0
- skyflow/client/__init__.py +1 -0
- skyflow/client/_http_config_builder.py +45 -0
- skyflow/client/skyflow.py +15 -0
- skyflow/error/__init__.py +3 -0
- skyflow/generated/__init__.py +0 -0
- skyflow/generated/rest/__init__.py +164 -0
- skyflow/generated/rest/_default_clients.py +32 -0
- skyflow/generated/rest/client.py +385 -0
- skyflow/generated/rest/core/__init__.py +127 -0
- skyflow/generated/rest/core/api_error.py +23 -0
- skyflow/generated/rest/core/client_wrapper.py +148 -0
- skyflow/generated/rest/core/datetime_utils.py +70 -0
- skyflow/generated/rest/core/file.py +67 -0
- skyflow/generated/rest/core/force_multipart.py +18 -0
- skyflow/generated/rest/core/http_client.py +940 -0
- skyflow/generated/rest/core/http_response.py +63 -0
- skyflow/generated/rest/core/http_sse/__init__.py +42 -0
- skyflow/generated/rest/core/http_sse/_api.py +455 -0
- skyflow/generated/rest/core/http_sse/_decoders.py +74 -0
- skyflow/generated/rest/core/http_sse/_exceptions.py +7 -0
- skyflow/generated/rest/core/http_sse/_models.py +17 -0
- skyflow/generated/rest/core/jsonable_encoder.py +133 -0
- skyflow/generated/rest/core/logging.py +107 -0
- skyflow/generated/rest/core/parse_error.py +36 -0
- skyflow/generated/rest/core/pydantic_utilities.py +486 -0
- skyflow/generated/rest/core/query_encoder.py +58 -0
- skyflow/generated/rest/core/remove_none_from_dict.py +11 -0
- skyflow/generated/rest/core/request_options.py +40 -0
- skyflow/generated/rest/core/serialization.py +347 -0
- skyflow/generated/rest/environment.py +8 -0
- skyflow/generated/rest/errors/__init__.py +53 -0
- skyflow/generated/rest/errors/bad_request_error.py +11 -0
- skyflow/generated/rest/errors/forbidden_error.py +11 -0
- skyflow/generated/rest/errors/internal_server_error.py +11 -0
- skyflow/generated/rest/errors/not_found_error.py +11 -0
- skyflow/generated/rest/errors/too_many_requests_error.py +11 -0
- skyflow/generated/rest/errors/unauthorized_error.py +11 -0
- skyflow/generated/rest/py.typed +0 -0
- skyflow/generated/rest/query/__init__.py +4 -0
- skyflow/generated/rest/query/client.py +139 -0
- skyflow/generated/rest/query/raw_client.py +239 -0
- skyflow/generated/rest/raw_client.py +86 -0
- skyflow/generated/rest/records/__init__.py +34 -0
- skyflow/generated/rest/records/client.py +685 -0
- skyflow/generated/rest/records/raw_client.py +988 -0
- skyflow/generated/rest/records/types/__init__.py +34 -0
- skyflow/generated/rest/records/types/update_request_update_type.py +5 -0
- skyflow/generated/rest/tokens/__init__.py +4 -0
- skyflow/generated/rest/tokens/client.py +246 -0
- skyflow/generated/rest/tokens/raw_client.py +507 -0
- skyflow/generated/rest/types/__init__.py +116 -0
- skyflow/generated/rest/types/column_redactions.py +33 -0
- skyflow/generated/rest/types/delete_response.py +23 -0
- skyflow/generated/rest/types/delete_response_object.py +42 -0
- skyflow/generated/rest/types/detokenize_response.py +23 -0
- skyflow/generated/rest/types/detokenize_response_object.py +54 -0
- skyflow/generated/rest/types/error_response.py +20 -0
- skyflow/generated/rest/types/error_response_error.py +28 -0
- skyflow/generated/rest/types/execute_query_record_response.py +22 -0
- skyflow/generated/rest/types/execute_query_response.py +26 -0
- skyflow/generated/rest/types/execute_query_response_metadata.py +26 -0
- skyflow/generated/rest/types/get_request_data.py +60 -0
- skyflow/generated/rest/types/get_response.py +23 -0
- skyflow/generated/rest/types/get_tokens_from_values_request_object.py +30 -0
- skyflow/generated/rest/types/get_tokens_from_values_response.py +23 -0
- skyflow/generated/rest/types/google_protobuf_value.py +8 -0
- skyflow/generated/rest/types/http_code.py +6 -0
- skyflow/generated/rest/types/insert_record_data.py +36 -0
- skyflow/generated/rest/types/insert_response.py +23 -0
- skyflow/generated/rest/types/record_response_object.py +70 -0
- skyflow/generated/rest/types/token_group_redactions.py +33 -0
- skyflow/generated/rest/types/tokenize_response_object.py +49 -0
- skyflow/generated/rest/types/unique_value.py +22 -0
- skyflow/generated/rest/types/update_record_data.py +52 -0
- skyflow/generated/rest/types/update_record_data_update_type.py +5 -0
- skyflow/generated/rest/types/update_response.py +23 -0
- skyflow/generated/rest/types/upsert.py +45 -0
- skyflow/generated/rest/types/upsert_update_type.py +5 -0
- skyflow/generated/rest/version.py +6 -0
- skyflow/service_account/__init__.py +15 -0
- skyflow/utils/__init__.py +9 -0
- skyflow/utils/_http_config.py +36 -0
- skyflow/utils/_response_parsing.py +66 -0
- skyflow/utils/_retry.py +97 -0
- skyflow/utils/_skyflow_messages.py +114 -0
- skyflow/utils/_utils.py +54 -0
- skyflow/utils/_version.py +1 -0
- skyflow/utils/enums/__init__.py +3 -0
- skyflow/utils/enums/_custom_header_key.py +10 -0
- skyflow/utils/enums/_env_urls.py +9 -0
- skyflow/utils/enums/_upsert_type.py +7 -0
- skyflow/utils/validations/__init__.py +9 -0
- skyflow/utils/validations/_validations.py +195 -0
- skyflow/vault/__init__.py +0 -0
- skyflow/vault/client/__init__.py +0 -0
- skyflow/vault/client/client.py +102 -0
- skyflow/vault/controller/__init__.py +1 -0
- skyflow/vault/controller/_vault.py +475 -0
- skyflow/vault/data/__init__.py +30 -0
- skyflow/vault/data/_column_redactions.py +4 -0
- skyflow/vault/data/_delete_options.py +8 -0
- skyflow/vault/data/_delete_request.py +5 -0
- skyflow/vault/data/_delete_response.py +9 -0
- skyflow/vault/data/_delete_response_record.py +9 -0
- skyflow/vault/data/_detokenize_options.py +8 -0
- skyflow/vault/data/_detokenize_request.py +9 -0
- skyflow/vault/data/_detokenize_response.py +9 -0
- skyflow/vault/data/_detokenize_response_record.py +16 -0
- skyflow/vault/data/_detokenize_response_record_metadata.py +10 -0
- skyflow/vault/data/_get_options.py +8 -0
- skyflow/vault/data/_get_request.py +17 -0
- skyflow/vault/data/_get_request_record.py +13 -0
- skyflow/vault/data/_get_response.py +9 -0
- skyflow/vault/data/_get_response_record.py +17 -0
- skyflow/vault/data/_insert_options.py +8 -0
- skyflow/vault/data/_insert_request.py +11 -0
- skyflow/vault/data/_insert_request_record.py +9 -0
- skyflow/vault/data/_insert_response.py +9 -0
- skyflow/vault/data/_insert_response_record.py +17 -0
- skyflow/vault/data/_request_context.py +16 -0
- skyflow/vault/data/_token.py +8 -0
- skyflow/vault/data/_token_group_redactions.py +4 -0
- skyflow/vault/data/_update_options.py +8 -0
- skyflow/vault/data/_update_request.py +11 -0
- skyflow/vault/data/_update_request_record.py +6 -0
- skyflow/vault/data/_update_response.py +9 -0
- skyflow/vault/data/_update_response_record.py +17 -0
- skyflow/vault/data/_upsert_options.py +7 -0
- skyflow_flowvault_python-1.0.0.dist-info/METADATA +896 -0
- skyflow_flowvault_python-1.0.0.dist-info/RECORD +202 -0
- skyflow_flowvault_python-1.0.0.dist-info/WHEEL +5 -0
- skyflow_flowvault_python-1.0.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
OPTIONAL_TOKEN='token'
|
|
2
|
+
PROTOCOL='https'
|
|
3
|
+
SKY_META_DATA_HEADER='sky-metadata'
|
|
4
|
+
CTX_KEY_REGEX=r'^[a-zA-Z0-9_]+$'
|
|
5
|
+
|
|
6
|
+
class SKYFLOW:
|
|
7
|
+
SKYFLOW_ID = 'skyflowId'
|
|
8
|
+
X_SKYFLOW_AUTHORIZATION = 'x-skyflow-authorization'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class HttpHeader:
|
|
12
|
+
CONTENT_TYPE = 'Content-Type'
|
|
13
|
+
CONTENT_TYPE_LOWERCASE = 'content-type'
|
|
14
|
+
X_REQUEST_ID = 'x-request-id'
|
|
15
|
+
ERROR_FROM_CLIENT = 'error-from-client'
|
|
16
|
+
AUTHORIZATION = 'Authorization'
|
|
17
|
+
X_SKYFLOW_AUTHORIZATION_HEADER = 'X-Skyflow-Authorization'
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class HttpStatusCode:
|
|
21
|
+
OK = 200
|
|
22
|
+
BAD_REQUEST = 400
|
|
23
|
+
UNAUTHORIZED = 401
|
|
24
|
+
INTERNAL_SERVER_ERROR = 500
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class ContentType:
|
|
28
|
+
APPLICATION_JSON = 'application/json'
|
|
29
|
+
APPLICATION_X_WWW_FORM_URLENCODED = 'application/x-www-form-urlencoded'
|
|
30
|
+
TEXT_PLAIN = 'text/plain'
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class DetectStatus:
|
|
34
|
+
IN_PROGRESS = 'IN_PROGRESS'
|
|
35
|
+
SUCCESS = 'SUCCESS'
|
|
36
|
+
FAILED = 'FAILED'
|
|
37
|
+
UNKNOWN = 'UNKNOWN'
|
|
38
|
+
|
|
39
|
+
class Detect:
|
|
40
|
+
WAIT_TIME = 64
|
|
41
|
+
|
|
42
|
+
class FileExtension:
|
|
43
|
+
JSON = 'json'
|
|
44
|
+
MP3 = 'mp3'
|
|
45
|
+
WAV = 'wav'
|
|
46
|
+
PDF = 'pdf'
|
|
47
|
+
TXT = 'txt'
|
|
48
|
+
DOC = 'doc'
|
|
49
|
+
DOCX = 'docx'
|
|
50
|
+
JPG = 'jpg'
|
|
51
|
+
JPEG = 'jpeg'
|
|
52
|
+
PNG = 'png'
|
|
53
|
+
BMP = 'bmp'
|
|
54
|
+
TIF = 'tif'
|
|
55
|
+
TIFF = 'tiff'
|
|
56
|
+
PPT = 'ppt'
|
|
57
|
+
PPTX = 'pptx'
|
|
58
|
+
CSV = 'csv'
|
|
59
|
+
XLS = 'xls'
|
|
60
|
+
XLSX = 'xlsx'
|
|
61
|
+
XML = 'xml'
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class FileProcessing:
|
|
65
|
+
PROCESSED_PREFIX = 'processed-'
|
|
66
|
+
DEIDENTIFIED_PREFIX = 'deidentified.'
|
|
67
|
+
ENTITIES = 'entities'
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class EncodingType:
|
|
71
|
+
UTF8 = 'utf8'
|
|
72
|
+
UTF_8 = 'utf-8'
|
|
73
|
+
BASE64 = 'base64'
|
|
74
|
+
BINARY = 'binary'
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class JWT:
|
|
78
|
+
ALGORITHM_RS256 = 'RS256'
|
|
79
|
+
GRANT_TYPE_JWT_BEARER = 'urn:ietf:params:oauth:grant-type:jwt-bearer'
|
|
80
|
+
ISSUER_SDK = 'sdk'
|
|
81
|
+
SIGNED_TOKEN_PREFIX = 'signed_token_'
|
|
82
|
+
ROLE_PREFIX = 'role:'
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
class ApiKey:
|
|
86
|
+
SKY_PREFIX = 'sky-'
|
|
87
|
+
LENGTH = 42
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
class UrlProtocol:
|
|
91
|
+
HTTPS = 'https'
|
|
92
|
+
HTTP = 'http'
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
class BooleanString:
|
|
96
|
+
TRUE = 'true'
|
|
97
|
+
FALSE = 'false'
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class ResponseField:
|
|
101
|
+
STATUS = 'Status'
|
|
102
|
+
BODY = 'Body'
|
|
103
|
+
RECORDS = 'records'
|
|
104
|
+
TOKENS = 'tokens'
|
|
105
|
+
ERROR = 'error'
|
|
106
|
+
SKYFLOW_ID = 'skyflow_id'
|
|
107
|
+
REQUEST_INDEX = 'request_index'
|
|
108
|
+
REQUEST_ID = 'request_id'
|
|
109
|
+
HTTP_CODE = 'http_code'
|
|
110
|
+
HTTP_STATUS = 'http_status'
|
|
111
|
+
GRPC_CODE = 'grpc_code'
|
|
112
|
+
DETAILS = 'details'
|
|
113
|
+
MESSAGE = 'message'
|
|
114
|
+
ERROR_FROM_CLIENT = 'error_from_client'
|
|
115
|
+
TOKEN = 'token'
|
|
116
|
+
VALUE = 'value'
|
|
117
|
+
TYPE = 'type'
|
|
118
|
+
TOKENIZED_DATA = 'tokenized_data'
|
|
119
|
+
SIGNED_TOKEN = 'signed_token'
|
|
120
|
+
RESPONSES = 'responses'
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class CredentialField:
|
|
124
|
+
PRIVATE_KEY = 'privateKey'
|
|
125
|
+
CLIENT_ID = 'clientID'
|
|
126
|
+
KEY_ID = 'keyID'
|
|
127
|
+
TOKEN_URI = 'tokenURI'
|
|
128
|
+
TOKEN_URI_OPTION = 'token_uri'
|
|
129
|
+
CLIENT_NAME = 'clientName'
|
|
130
|
+
CREDENTIALS_STRING = 'credentials_string'
|
|
131
|
+
API_KEY = 'api_key'
|
|
132
|
+
TOKEN = 'token'
|
|
133
|
+
PATH = 'path'
|
|
134
|
+
CONTEXT = 'context'
|
|
135
|
+
ROLES = 'roles'
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
class JwtField:
|
|
139
|
+
ISS = 'iss'
|
|
140
|
+
KEY = 'key'
|
|
141
|
+
AUD = 'aud'
|
|
142
|
+
SUB = 'sub'
|
|
143
|
+
EXP = 'exp'
|
|
144
|
+
CTX = 'ctx'
|
|
145
|
+
TOK = 'tok'
|
|
146
|
+
IAT = 'iat'
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
class OptionField:
|
|
150
|
+
ROLE_IDS = 'role_ids'
|
|
151
|
+
DATA_TOKENS = 'data_tokens'
|
|
152
|
+
TIME_TO_LIVE = 'time_to_live'
|
|
153
|
+
ROLES = 'roles'
|
|
154
|
+
CTX = 'ctx'
|
|
155
|
+
VAULT_ID = 'vault_id'
|
|
156
|
+
CONNECTION_ID = 'connection_id'
|
|
157
|
+
CONNECTION_URL = 'connection_url'
|
|
158
|
+
VAULT_CLIENT = 'vault_client'
|
|
159
|
+
VAULT_CONTROLLER = 'vault_controller'
|
|
160
|
+
DETECT_CONTROLLER = 'detect_controller'
|
|
161
|
+
CONTROLLER = 'controller'
|
|
162
|
+
VERIFY_SIGNATURE = 'verify_signature'
|
|
163
|
+
VERIFY_AUD = 'verify_aud'
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
class ConfigField:
|
|
167
|
+
CREDENTIALS = 'credentials'
|
|
168
|
+
CLUSTER_ID = 'cluster_id'
|
|
169
|
+
ENV = 'env'
|
|
170
|
+
VAULT_ID = 'vault_id'
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
class RequestParameter:
|
|
174
|
+
VALUE = 'value'
|
|
175
|
+
COLUMN_GROUP = 'column_group'
|
|
176
|
+
REDACTION = 'redaction'
|
|
177
|
+
REDACTION_TYPE = 'redaction_type'
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
class FileUploadField:
|
|
181
|
+
TABLE = 'table'
|
|
182
|
+
SKYFLOW_ID = 'skyflow_id'
|
|
183
|
+
COLUMN_NAME = 'column_name'
|
|
184
|
+
FILE_PATH = 'file_path'
|
|
185
|
+
BASE64 = 'base64'
|
|
186
|
+
FILE_OBJECT = 'file_object'
|
|
187
|
+
FILE_NAME = 'file_name'
|
|
188
|
+
FILE = 'file'
|
|
189
|
+
NAME = 'name'
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
class DeidentifyFileRequestField:
|
|
193
|
+
ENTITIES = 'entities'
|
|
194
|
+
ALLOW_REGEX_LIST = 'allow_regex_list'
|
|
195
|
+
RESTRICT_REGEX_LIST = 'restrict_regex_list'
|
|
196
|
+
OUTPUT_PROCESSED_IMAGE = 'output_processed_image'
|
|
197
|
+
OUTPUT_OCR_TEXT = 'output_ocr_text'
|
|
198
|
+
MASKING_METHOD = 'masking_method'
|
|
199
|
+
PIXEL_DENSITY = 'pixel_density'
|
|
200
|
+
DENSITY = 'density'
|
|
201
|
+
MAX_RESOLUTION = 'max_resolution'
|
|
202
|
+
OUTPUT_PROCESSED_AUDIO = 'output_processed_audio'
|
|
203
|
+
OUTPUT_TRANSCRIPTION = 'output_transcription'
|
|
204
|
+
BLEEP = 'bleep'
|
|
205
|
+
OUTPUT_DIRECTORY = 'output_directory'
|
|
206
|
+
WAIT_TIME = 'wait_time'
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
class DeidentifyField:
|
|
210
|
+
TEXT = 'text'
|
|
211
|
+
ENTITY_TYPES = 'entity_types'
|
|
212
|
+
TOKEN_TYPE = 'token_type'
|
|
213
|
+
ALLOW_REGEX = 'allow_regex'
|
|
214
|
+
RESTRICT_REGEX = 'restrict_regex'
|
|
215
|
+
TRANSFORMATIONS = 'transformations'
|
|
216
|
+
FORMAT = 'format'
|
|
217
|
+
OUTPUT = 'output'
|
|
218
|
+
STATUS = 'status'
|
|
219
|
+
RUN_ID = 'run_id'
|
|
220
|
+
WORD_CHARACTER_COUNT = 'word_character_count'
|
|
221
|
+
WORD_COUNT = 'word_count'
|
|
222
|
+
CHARACTER_COUNT = 'character_count'
|
|
223
|
+
SIZE = 'size'
|
|
224
|
+
DURATION = 'duration'
|
|
225
|
+
PAGES = 'pages'
|
|
226
|
+
SLIDES = 'slides'
|
|
227
|
+
PROCESSED_FILE = 'processed_file'
|
|
228
|
+
PROCESSED_FILE_TYPE = 'processed_file_type'
|
|
229
|
+
PROCESSED_FILE_EXTENSION = 'processed_file_extension'
|
|
230
|
+
REDACTED_FILE = 'redacted_file'
|
|
231
|
+
SHIFT_DATES = 'shift_dates'
|
|
232
|
+
DEFAULT = 'default'
|
|
233
|
+
ENTITY_UNQ_COUNTER = 'entity_unq_counter'
|
|
234
|
+
ENTITY_UNIQUE_COUNTER = 'entity_unique_counter'
|
|
235
|
+
ENTITY_ONLY = 'entity_only'
|
|
236
|
+
VAULT_TOKEN = 'vault_token'
|
|
237
|
+
ENTITIES = 'entities'
|
|
238
|
+
MAX_DAYS = 'max_days'
|
|
239
|
+
MIN_DAYS = 'min_days'
|
|
240
|
+
MAX = 'max'
|
|
241
|
+
MIN = 'min'
|
|
242
|
+
FILE = 'file'
|
|
243
|
+
TYPE = 'type'
|
|
244
|
+
EXTENSION = 'extension'
|
|
245
|
+
IN_PROGRESS = 'IN_PROGRESS'
|
|
246
|
+
REQUEST_OPTIONS = 'request_options'
|
|
247
|
+
BLEEP_GAIN = 'bleep_gain'
|
|
248
|
+
BLEEP_FREQUENCY = 'bleep_frequency'
|
|
249
|
+
BLEEP_START_PADDING = 'bleep_start_padding'
|
|
250
|
+
BLEEP_STOP_PADDING = 'bleep_stop_padding'
|
|
251
|
+
DENSITY = 'density'
|
|
252
|
+
TOKEN_FORMAT = 'token_format'
|
|
253
|
+
PROCESSED_FILE_RESPONSE_KEY = 'processedFile'
|
|
254
|
+
PROCESSED_FILE_TYPE_RESPONSE_KEY = 'processedFileType'
|
|
255
|
+
PROCESSED_FILE_EXTENSION_RESPONSE_KEY = 'processedFileExtension'
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
class RequestOperation:
|
|
259
|
+
INSERT = 'INSERT'
|
|
260
|
+
DELETE = 'DELETE'
|
|
261
|
+
GET = 'GET'
|
|
262
|
+
UPDATE = 'UPDATE'
|
|
263
|
+
QUERY = 'QUERY'
|
|
264
|
+
TOKENIZE = 'TOKENIZE'
|
|
265
|
+
DETOKENIZE = 'DETOKENIZE'
|
|
266
|
+
FILE_UPLOAD = 'FILE_UPLOAD'
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
class ConfigType:
|
|
270
|
+
VAULT = 'vault'
|
|
271
|
+
CONNECTION = 'connection'
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
class SqlCommand:
|
|
275
|
+
SELECT = 'SELECT'
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
class SdkPrefix:
|
|
279
|
+
SKYFLOW_PYTHON = 'skyflow-python@'
|
|
280
|
+
PYTHON_RUNTIME = 'Python '
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
class SdkMetricsKey:
|
|
284
|
+
SDK_NAME_VERSION = 'sdk_name_version'
|
|
285
|
+
SDK_CLIENT_DEVICE_MODEL = 'sdk_client_device_model'
|
|
286
|
+
SDK_CLIENT_OS_DETAILS = 'sdk_client_os_details'
|
|
287
|
+
SDK_RUNTIME_DETAILS = 'sdk_runtime_details'
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
class ErrorDefaults:
|
|
291
|
+
UNKNOWN_REQUEST_ID = 'unknown-request-id'
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from .env import Env, EnvUrls
|
|
2
|
+
from .log_level import LogLevel
|
|
3
|
+
from .content_types import ContentType
|
|
4
|
+
from .detect_entities import DetectEntities
|
|
5
|
+
from .token_mode import TokenMode
|
|
6
|
+
from .token_type import TokenType
|
|
7
|
+
from .request_method import RequestMethod
|
|
8
|
+
from .redaction_type import RedactionType
|
|
9
|
+
from .detect_entities import DetectEntities
|
|
10
|
+
from .detect_output_transcriptions import DetectOutputTranscriptions
|
|
11
|
+
from .masking_method import MaskingMethod
|
|
12
|
+
from .token_type import TokenType
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class DetectEntities(Enum):
|
|
4
|
+
ACCOUNT_NUMBER = "account_number"
|
|
5
|
+
AGE = "age"
|
|
6
|
+
ALL = "all"
|
|
7
|
+
BANK_ACCOUNT = "bank_account"
|
|
8
|
+
BLOOD_TYPE = "blood_type"
|
|
9
|
+
CONDITION = "condition"
|
|
10
|
+
CORPORATE_ACTION = "corporate_action"
|
|
11
|
+
CREDIT_CARD = "credit_card"
|
|
12
|
+
CREDIT_CARD_EXPIRATION = "credit_card_expiration"
|
|
13
|
+
CVV = "cvv"
|
|
14
|
+
DATE = "date"
|
|
15
|
+
DAY = "day"
|
|
16
|
+
DATE_INTERVAL = "date_interval"
|
|
17
|
+
DOB = "dob"
|
|
18
|
+
DOSE = "dose"
|
|
19
|
+
DRIVER_LICENSE = "driver_license"
|
|
20
|
+
DRUG = "drug"
|
|
21
|
+
DURATION = "duration"
|
|
22
|
+
EFFECT = "effect"
|
|
23
|
+
EMAIL_ADDRESS = "email_address"
|
|
24
|
+
EVENT = "event"
|
|
25
|
+
FILENAME = "filename"
|
|
26
|
+
FINANCIAL_METRIC = "financial_metric"
|
|
27
|
+
GENDER = "gender"
|
|
28
|
+
HEALTHCARE_NUMBER = "healthcare_number"
|
|
29
|
+
INJURY = "injury"
|
|
30
|
+
IP_ADDRESS = "ip_address"
|
|
31
|
+
LANGUAGE = "language"
|
|
32
|
+
LOCATION = "location"
|
|
33
|
+
LOCATION_ADDRESS = "location_address"
|
|
34
|
+
LOCATION_ADDRESS_STREET = "location_address_street"
|
|
35
|
+
LOCATION_CITY = "location_city"
|
|
36
|
+
LOCATION_COORDINATE = "location_coordinate"
|
|
37
|
+
LOCATION_COUNTRY = "location_country"
|
|
38
|
+
LOCATION_STATE = "location_state"
|
|
39
|
+
LOCATION_ZIP = "location_zip"
|
|
40
|
+
MARITAL_STATUS = "marital_status"
|
|
41
|
+
MEDICAL_CODE = "medical_code"
|
|
42
|
+
MEDICAL_PROCESS = "medical_process"
|
|
43
|
+
MONEY = "money"
|
|
44
|
+
MONTH = "month"
|
|
45
|
+
NAME = "name"
|
|
46
|
+
NAME_FAMILY = "name_family"
|
|
47
|
+
NAME_GIVEN = "name_given"
|
|
48
|
+
NAME_MEDICAL_PROFESSIONAL = "name_medical_professional"
|
|
49
|
+
NUMERICAL_PII = "numerical_pii"
|
|
50
|
+
OCCUPATION = "occupation"
|
|
51
|
+
ORGANIZATION = "organization"
|
|
52
|
+
ORGANIZATION_ID = "organization_id"
|
|
53
|
+
ORGANIZATION_MEDICAL_FACILITY = "organization_medical_facility"
|
|
54
|
+
ORIGIN = "origin"
|
|
55
|
+
PASSPORT_NUMBER = "passport_number"
|
|
56
|
+
PASSWORD = "password"
|
|
57
|
+
PHONE_NUMBER = "phone_number"
|
|
58
|
+
PROJECT = "project"
|
|
59
|
+
PHYSICAL_ATTRIBUTE = "physical_attribute"
|
|
60
|
+
POLITICAL_AFFILIATION = "political_affiliation"
|
|
61
|
+
PRODUCT = "product"
|
|
62
|
+
RELIGION = "religion"
|
|
63
|
+
ROUTING_NUMBER = "routing_number"
|
|
64
|
+
SEXUALITY = "sexuality"
|
|
65
|
+
SSN = "ssn"
|
|
66
|
+
STATISTICS = "statistics"
|
|
67
|
+
TIME = "time"
|
|
68
|
+
TREND = "trend"
|
|
69
|
+
URL = "url"
|
|
70
|
+
USERNAME = "username"
|
|
71
|
+
VEHICLE_ID = "vehicle_id"
|
|
72
|
+
YEAR = "year"
|
|
73
|
+
ZODIAC_SIGN = "zodiac_sign"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class DetectOutputTranscriptions(Enum):
|
|
4
|
+
DIARIZED_TRANSCRIPTION = "diarized_transcription"
|
|
5
|
+
MEDICAL_DIARIZED_TRANSCRIPTION = "medical_diarized_transcription"
|
|
6
|
+
MEDICAL_TRANSCRIPTION = "medical_transcription"
|
|
7
|
+
TRANSCRIPTION = "transcription"
|
|
8
|
+
PLAINTEXT_TRANSCRIPTION = "plaintext_transcription"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class Env(Enum):
|
|
4
|
+
DEV = 'DEV'
|
|
5
|
+
SANDBOX = 'SANDBOX'
|
|
6
|
+
PROD = 'PROD'
|
|
7
|
+
STAGE = 'STAGE'
|
|
8
|
+
|
|
9
|
+
class EnvUrls(Enum):
|
|
10
|
+
PROD = "vault.skyflowapis.com"
|
|
11
|
+
SANDBOX = "vault.skyflowapis-preview.com"
|
|
12
|
+
DEV = "vault.skyflowapis.dev"
|
|
13
|
+
STAGE = "vault.skyflowapis.tech"
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
from ..enums import LogLevel
|
|
2
|
+
from . import Logger
|
|
3
|
+
from ..constants import ResponseField
|
|
4
|
+
|
|
5
|
+
_active_log_level = LogLevel.ERROR
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def set_active_log_level(level):
|
|
9
|
+
global _active_log_level
|
|
10
|
+
_active_log_level = level
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def log_info(message, logger = None):
|
|
14
|
+
if not logger:
|
|
15
|
+
logger = Logger(LogLevel.INFO)
|
|
16
|
+
|
|
17
|
+
logger.info(message)
|
|
18
|
+
|
|
19
|
+
def log_warn(message, logger=None):
|
|
20
|
+
if not logger:
|
|
21
|
+
logger = Logger(_active_log_level)
|
|
22
|
+
logger.warn(message)
|
|
23
|
+
|
|
24
|
+
def log_error_log(message, logger=None):
|
|
25
|
+
if not logger:
|
|
26
|
+
logger = Logger(LogLevel.ERROR)
|
|
27
|
+
logger.error(message)
|
|
28
|
+
|
|
29
|
+
def log_error(message, http_code, request_id=None, grpc_code=None, http_status=None, details=None, logger=None):
|
|
30
|
+
if not logger:
|
|
31
|
+
logger = Logger(LogLevel.ERROR)
|
|
32
|
+
|
|
33
|
+
log_data = {
|
|
34
|
+
ResponseField.HTTP_CODE: http_code,
|
|
35
|
+
ResponseField.MESSAGE: message
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if grpc_code is not None:
|
|
39
|
+
log_data[ResponseField.GRPC_CODE] = grpc_code
|
|
40
|
+
if http_status is not None:
|
|
41
|
+
log_data[ResponseField.HTTP_STATUS] = http_status
|
|
42
|
+
if request_id is not None:
|
|
43
|
+
log_data[ResponseField.REQUEST_ID] = request_id
|
|
44
|
+
if details is not None:
|
|
45
|
+
log_data[ResponseField.DETAILS] = details
|
|
46
|
+
|
|
47
|
+
logger.error(log_data)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from ..enums.log_level import LogLevel
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Logger:
|
|
6
|
+
def __init__(self, level=LogLevel.ERROR):
|
|
7
|
+
self.current_level = level
|
|
8
|
+
self.logger = logging.getLogger('skyflow-python')
|
|
9
|
+
self.logger.propagate = False # Prevent logs from being handled by parent loggers
|
|
10
|
+
|
|
11
|
+
# Remove any existing handlers to avoid duplicates or inherited handlers
|
|
12
|
+
if self.logger.hasHandlers():
|
|
13
|
+
self.logger.handlers.clear()
|
|
14
|
+
|
|
15
|
+
self.set_log_level(level)
|
|
16
|
+
|
|
17
|
+
handler = logging.StreamHandler()
|
|
18
|
+
|
|
19
|
+
# Create a formatter that only includes the message without any prefixes
|
|
20
|
+
formatter = logging.Formatter('%(message)s')
|
|
21
|
+
handler.setFormatter(formatter)
|
|
22
|
+
|
|
23
|
+
self.logger.addHandler(handler)
|
|
24
|
+
|
|
25
|
+
def set_log_level(self, level):
|
|
26
|
+
self.current_level = level
|
|
27
|
+
log_level_mapping = {
|
|
28
|
+
LogLevel.DEBUG: logging.DEBUG,
|
|
29
|
+
LogLevel.INFO: logging.INFO,
|
|
30
|
+
LogLevel.WARN: logging.WARNING,
|
|
31
|
+
LogLevel.ERROR: logging.ERROR,
|
|
32
|
+
LogLevel.OFF: logging.CRITICAL + 1
|
|
33
|
+
}
|
|
34
|
+
self.logger.setLevel(log_level_mapping[level])
|
|
35
|
+
|
|
36
|
+
def debug(self, message):
|
|
37
|
+
if self.current_level.value <= LogLevel.DEBUG.value:
|
|
38
|
+
self.logger.debug(message)
|
|
39
|
+
|
|
40
|
+
def info(self, message):
|
|
41
|
+
if self.current_level.value <= LogLevel.INFO.value:
|
|
42
|
+
self.logger.info(message)
|
|
43
|
+
|
|
44
|
+
def warn(self, message):
|
|
45
|
+
if self.current_level.value <= LogLevel.WARN.value:
|
|
46
|
+
self.logger.warning(message)
|
|
47
|
+
|
|
48
|
+
def error(self, message):
|
|
49
|
+
if self.current_level.value <= LogLevel.ERROR.value:
|
|
50
|
+
self.logger.error(message)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from ._validations import (
|
|
2
|
+
validate_required_field,
|
|
3
|
+
validate_api_key,
|
|
4
|
+
validate_credentials,
|
|
5
|
+
validate_token_options,
|
|
6
|
+
validate_log_level,
|
|
7
|
+
validate_keys,
|
|
8
|
+
validate_non_empty_string_list,
|
|
9
|
+
validate_vault_config,
|
|
10
|
+
validate_update_vault_config,
|
|
11
|
+
)
|