atk-common 3.19.0__tar.gz → 3.20.0__tar.gz
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.
- {atk_common-3.19.0 → atk_common-3.20.0}/PKG-INFO +1 -1
- {atk_common-3.19.0 → atk_common-3.20.0}/setup.py +1 -1
- atk_common-3.20.0/src/atk_common/classes/env_handler.py +76 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common.egg-info/PKG-INFO +1 -1
- atk_common-3.19.0/src/atk_common/classes/env_handler.py +0 -38
- {atk_common-3.19.0 → atk_common-3.20.0}/README.md +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/license.txt +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/pyproject.toml +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/setup.cfg +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/__init__.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/classes/__init__.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/classes/bo_logger.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/classes/docker_handler.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/classes/error_handler.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/classes/http_response_handler.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/classes/rabbitmq_consumer.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/__init__.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/api_error_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/camera_cabinet_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/camera_role_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/certificate_issuer_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/command_status_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/command_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/config_reply_status_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/detection_status_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/encryption_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/file_exists_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/history_status_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/image_encoding_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/image_part_category_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/image_part_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/image_shelf_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/log_level_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/metering_direction_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/mq_retry_action_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/multimotor_status_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/piezo_vehicle_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/process_status_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/response_status_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/section_role_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/sensor_order_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/sensor_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/speed_control_status_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/speed_control_stop_reason.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/test_image_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/violation_type_enum.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/interfaces/__init__.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/interfaces/docker_handler_interface.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/interfaces/env_handler_interface.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/interfaces/error_handler_interface.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/interfaces/http_response_handler_interface.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/interfaces/logger_interface.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/__init__.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/consumer_retry_handler.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/datetime_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/db_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/default_should_retry.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/error_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/file_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/hash_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/http_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/internal_response_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/mq_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/utils/str_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common.egg-info/SOURCES.txt +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common.egg-info/dependency_links.txt +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common.egg-info/requires.txt +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common.egg-info/top_level.txt +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/src/shared_python_atk_enforcement/__init__.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/tests/test_docker_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/tests/test_error_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/tests/test_http_utils.py +0 -0
- {atk_common-3.19.0 → atk_common-3.20.0}/tests/test_log_utils.py +0 -0
@@ -36,7 +36,7 @@ setup(
|
|
36
36
|
# For a discussion on single-sourcing the version across setup.py and the
|
37
37
|
# project code, see
|
38
38
|
# https://packaging.python.org/guides/single-sourcing-package-version/
|
39
|
-
version="3.
|
39
|
+
version="3.20.0", # Required
|
40
40
|
# This is a one-line description or tagline of what your project does. This
|
41
41
|
# corresponds to the "Summary" metadata field:
|
42
42
|
# https://packaging.python.org/specifications/core-metadata/#summary
|
@@ -0,0 +1,76 @@
|
|
1
|
+
import os
|
2
|
+
from pathlib import Path
|
3
|
+
from typing import Optional
|
4
|
+
from atk_common.interfaces import IEnvHandler
|
5
|
+
from atk_common.interfaces import ILogger
|
6
|
+
|
7
|
+
class MyEnvHandler(IEnvHandler):
|
8
|
+
def __init__(self, logger: Optional[ILogger]):
|
9
|
+
self.logger = logger
|
10
|
+
|
11
|
+
def set_logger(self, logger: ILogger):
|
12
|
+
self.logger = logger
|
13
|
+
|
14
|
+
def val_str(self, value: Optional[object]) -> str:
|
15
|
+
if value is None:
|
16
|
+
return '<Empty>'
|
17
|
+
if isinstance(value, str):
|
18
|
+
if value.strip() == '' or value.lower() == 'null':
|
19
|
+
return '<Null>'
|
20
|
+
return value
|
21
|
+
return str(value)
|
22
|
+
|
23
|
+
def is_value_null_or_empty(self, value: Optional[str]) -> bool:
|
24
|
+
if value is None:
|
25
|
+
return True
|
26
|
+
s = value.strip()
|
27
|
+
return s == '' or s.lower() == 'null'
|
28
|
+
|
29
|
+
def get_env_value(self, key: str) -> Optional[str]:
|
30
|
+
val = os.environ.get(key)
|
31
|
+
if val is None:
|
32
|
+
err_msg = f"Environment key '{key}' is missing."
|
33
|
+
if self.logger:
|
34
|
+
self.logger.error(err_msg)
|
35
|
+
raise ValueError(err_msg)
|
36
|
+
if self.logger:
|
37
|
+
self.logger.info(key + ':' + self.val_str(val))
|
38
|
+
if self.is_value_null_or_empty(val):
|
39
|
+
return None
|
40
|
+
return val
|
41
|
+
|
42
|
+
@staticmethod
|
43
|
+
def read_secret(path):
|
44
|
+
return Path(path).read_text().rstrip('\n')
|
45
|
+
|
46
|
+
def get_env_value_secret(self, key: str, file_key: str) -> str:
|
47
|
+
val = os.environ.get(key)
|
48
|
+
if val is None:
|
49
|
+
err_msg = f"Environment key '{key}' is missing."
|
50
|
+
if self.logger:
|
51
|
+
self.logger.error(err_msg)
|
52
|
+
raise ValueError(err_msg)
|
53
|
+
if self.is_value_null_or_empty(val):
|
54
|
+
secret_path = os.getenv(file_key)
|
55
|
+
if secret_path is None:
|
56
|
+
err_msg = f"Secret file key '{file_key}' is missing."
|
57
|
+
if self.logger:
|
58
|
+
self.logger.error(err_msg)
|
59
|
+
raise ValueError(err_msg)
|
60
|
+
if self.is_value_null_or_empty(secret_path):
|
61
|
+
err_msg = f"Secret file variable '{file_key}' is not set."
|
62
|
+
if self.logger:
|
63
|
+
self.logger.error(err_msg)
|
64
|
+
raise ValueError(err_msg)
|
65
|
+
if not Path(secret_path).is_file():
|
66
|
+
err_msg = f"Secret file '{secret_path}' not found."
|
67
|
+
if self.logger:
|
68
|
+
self.logger.error(err_msg)
|
69
|
+
raise ValueError(err_msg)
|
70
|
+
val = self.read_secret(secret_path)
|
71
|
+
if self.is_value_null_or_empty(val):
|
72
|
+
err_msg = f"Secret from key file '{secret_path}' is empty."
|
73
|
+
if self.logger:
|
74
|
+
self.logger.error(err_msg)
|
75
|
+
raise ValueError(err_msg)
|
76
|
+
return val
|
@@ -1,38 +0,0 @@
|
|
1
|
-
import os
|
2
|
-
from typing import Optional
|
3
|
-
from atk_common.interfaces import IEnvHandler
|
4
|
-
from atk_common.interfaces import ILogger
|
5
|
-
|
6
|
-
class EnvHandler(IEnvHandler):
|
7
|
-
def __init__(self, logger: Optional[ILogger]): # type: ignore
|
8
|
-
self.logger = logger
|
9
|
-
|
10
|
-
def val_str(self, value):
|
11
|
-
if value is None:
|
12
|
-
return '<Empty>'
|
13
|
-
if isinstance(value, str):
|
14
|
-
if value.strip() == '' or value.lower() == 'null':
|
15
|
-
return '<Null>'
|
16
|
-
return value
|
17
|
-
return str(value)
|
18
|
-
|
19
|
-
def is_value_null_or_empty(self, value):
|
20
|
-
if isinstance(value, str):
|
21
|
-
return value.strip() == '' or value.lower() == 'null'
|
22
|
-
return False
|
23
|
-
|
24
|
-
def get_env_value(self, key, abort_on_error=True):
|
25
|
-
val = os.environ.get(key)
|
26
|
-
if self.logger:
|
27
|
-
self.logger.info(key + ':' + self.val_str(val))
|
28
|
-
if val is None and abort_on_error:
|
29
|
-
err_msg = f"Environment variable '{key}' is not set."
|
30
|
-
if self.logger:
|
31
|
-
self.logger.error(err_msg)
|
32
|
-
raise ValueError(err_msg)
|
33
|
-
if self.is_value_null_or_empty(val):
|
34
|
-
return None
|
35
|
-
return val
|
36
|
-
|
37
|
-
def set_logger(self, logger: ILogger):
|
38
|
-
self.logger = logger
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/config_reply_status_type_enum.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/enums/speed_control_status_type_enum.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/interfaces/docker_handler_interface.py
RENAMED
File without changes
|
File without changes
|
{atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/interfaces/error_handler_interface.py
RENAMED
File without changes
|
{atk_common-3.19.0 → atk_common-3.20.0}/src/atk_common/interfaces/http_response_handler_interface.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|