utg-base 1.16.1__tar.gz → 1.17.1__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.
- {utg_base-1.16.1 → utg_base-1.17.1}/PKG-INFO +2 -1
- {utg_base-1.16.1 → utg_base-1.17.1}/pyproject.toml +2 -1
- utg_base-1.17.1/src/utg_base/env.py +66 -0
- utg_base-1.16.1/src/utg_base/env.py +0 -31
- {utg_base-1.16.1 → utg_base-1.17.1}/README.md +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/api/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/api/base.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/api/pagination.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/api/permissions.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/api/routers.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/api/serializers.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/api/spectacular.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/authentications/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/authentications/microservice_authentication.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/authentications/models.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/apps.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/filters/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/filters/task_result.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/management/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/management/commands/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/management/commands/migrate_tasks.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/serializers/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/serializers/periodic_task.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/serializers/task_result.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/urls.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/views/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/views/periodic_task.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/views/task_result.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/constants/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/constants/available_languages.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/logging.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/middleware/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/middleware/debug.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/middleware/locale.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/migration/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/migration/apps.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/migration/management/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/migration/management/commands/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/migration/management/commands/makemigrations.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/models/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/models/jwt_user.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/models/timestamp.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/permissions/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/permissions/decorators.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/permissions/folder.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/permissions/utils.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/references_api/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/references_api/apps.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/references_api/migrations/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/references_api/urls.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/references_api/utils.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/services/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/services/base_api.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/signals/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/signals/sync_perms.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/u_services/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/u_services/apps.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/u_services/constants.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/u_services/migrations/0001_initial.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/u_services/migrations/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/u_services/models.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/u_services/u_requests.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/__init__.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/data.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/date.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/dict_util.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/response_processors.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/signals.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/sql.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/string.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/thread.py +0 -0
- {utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/utils/translation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: utg-base
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.17.1
|
|
4
4
|
Summary: UTG Base Package
|
|
5
5
|
Author: Olimboy
|
|
6
6
|
Author-email: shavkatov.olimboy@mail.ru
|
|
@@ -17,6 +17,7 @@ Requires-Dist: djangorestframework (>=3.16.1,<4.0.0)
|
|
|
17
17
|
Requires-Dist: djangorestframework-simplejwt[crypto] (>=5.5.1,<6.0.0)
|
|
18
18
|
Requires-Dist: dotenv (>=0.9.9,<0.10.0)
|
|
19
19
|
Requires-Dist: drf-spectacular[sidecar] (>=0.29.0,<0.30.0)
|
|
20
|
+
Requires-Dist: environs (>=14.5.0,<15.0.0)
|
|
20
21
|
Requires-Dist: hvac (>=2.4.0,<3.0.0)
|
|
21
22
|
Requires-Dist: inflect (>=7.2.1,<8.0.0)
|
|
22
23
|
Requires-Dist: openpyxl (>=3.1.2,<4.0.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "utg-base"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.17.1"
|
|
4
4
|
description = "UTG Base Package"
|
|
5
5
|
authors = ["Olimboy <shavkatov.olimboy@mail.ru>", "Rovshen <rovshenashirov1619@gmail.com>"]
|
|
6
6
|
readme = "README.md"
|
|
@@ -21,6 +21,7 @@ django-celery-results = "^2.6.0"
|
|
|
21
21
|
hvac = "^2.4.0"
|
|
22
22
|
dotenv = "^0.9.9"
|
|
23
23
|
django-redis = "^6.0.0"
|
|
24
|
+
environs = "^14.5.0"
|
|
24
25
|
|
|
25
26
|
[[tool.poetry.source]]
|
|
26
27
|
name = "PyPI"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import typing
|
|
3
|
+
from functools import wraps
|
|
4
|
+
|
|
5
|
+
import dotenv
|
|
6
|
+
import hvac
|
|
7
|
+
from django.conf import settings
|
|
8
|
+
from environs import Env, _StrType, EnvError
|
|
9
|
+
|
|
10
|
+
dotenv.load_dotenv(settings.BASE_DIR / '.env')
|
|
11
|
+
|
|
12
|
+
assert os.environ.get('VAULT_URL') is not None, "VAULT_URL not defined, please set VAULT_URL on .env file"
|
|
13
|
+
assert os.environ.get('VAULT_TOKEN') is not None, "VAULT_TOKEN not defined, please set VAULT_TOKEN on .env file"
|
|
14
|
+
assert os.environ.get('VAULT_PATH') is not None, "VAULT_PATH not defined, please set VAULT_PATH on .env file"
|
|
15
|
+
|
|
16
|
+
client = hvac.Client(
|
|
17
|
+
url=os.environ.get("VAULT_URL"),
|
|
18
|
+
token=os.environ.get("VAULT_TOKEN"),
|
|
19
|
+
verify=False
|
|
20
|
+
)
|
|
21
|
+
if not client.is_authenticated():
|
|
22
|
+
raise Exception("Vault authentication failed")
|
|
23
|
+
|
|
24
|
+
envs = client.secrets.kv.read_secret_version(
|
|
25
|
+
path=os.environ.get("VAULT_PATH"),
|
|
26
|
+
mount_point="utg-scada"
|
|
27
|
+
)['data']['data']
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class VaultEnv(Env):
|
|
31
|
+
_wrap_methods = {
|
|
32
|
+
'int', 'bool', 'str', 'float', 'decimal',
|
|
33
|
+
'list', 'dict', 'json',
|
|
34
|
+
'datetime', 'date', 'time', 'timedelta',
|
|
35
|
+
'path', 'log_level', 'uuid', 'url', 'enum',
|
|
36
|
+
'dj_db_url', 'dj_email_url', 'dj_cache_url'
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
def __call__(self, key, default=None, **kwargs):
|
|
40
|
+
try:
|
|
41
|
+
return super().__call__(key, default=default, **kwargs)
|
|
42
|
+
except EnvError:
|
|
43
|
+
return default
|
|
44
|
+
|
|
45
|
+
def __getattribute__(self, name):
|
|
46
|
+
attr = super().__getattribute__(name)
|
|
47
|
+
|
|
48
|
+
if callable(attr) and name in self._wrap_methods:
|
|
49
|
+
@wraps(attr)
|
|
50
|
+
def wrapper(*args, **kwargs):
|
|
51
|
+
if len(args) < 2:
|
|
52
|
+
kwargs.setdefault("default", None)
|
|
53
|
+
return attr(*args, **kwargs)
|
|
54
|
+
|
|
55
|
+
return wrapper
|
|
56
|
+
|
|
57
|
+
return attr
|
|
58
|
+
|
|
59
|
+
def _get_value(self, env_key: _StrType, default: typing.Any) -> typing.Any:
|
|
60
|
+
if env_key in os.environ:
|
|
61
|
+
return os.environ.get(env_key, default)
|
|
62
|
+
else:
|
|
63
|
+
return envs.get(env_key, default)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
env = VaultEnv()
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
|
|
3
|
-
import dotenv
|
|
4
|
-
import hvac
|
|
5
|
-
from django.conf import settings
|
|
6
|
-
|
|
7
|
-
dotenv.load_dotenv(settings.BASE_DIR / '.env')
|
|
8
|
-
|
|
9
|
-
assert os.environ.get('VAULT_URL') is not None, "VAULT_URL not defined, please set VAULT_URL on .env file"
|
|
10
|
-
assert os.environ.get('VAULT_TOKEN') is not None, "VAULT_TOKEN not defined, please set VAULT_TOKEN on .env file"
|
|
11
|
-
assert os.environ.get('VAULT_PATH') is not None, "VAULT_PATH not defined, please set VAULT_PATH on .env file"
|
|
12
|
-
|
|
13
|
-
client = hvac.Client(
|
|
14
|
-
url=os.environ.get("VAULT_URL"),
|
|
15
|
-
token=os.environ.get("VAULT_TOKEN"),
|
|
16
|
-
verify=False
|
|
17
|
-
)
|
|
18
|
-
if not client.is_authenticated():
|
|
19
|
-
raise Exception("Vault authentication failed")
|
|
20
|
-
|
|
21
|
-
envs = client.secrets.kv.read_secret_version(
|
|
22
|
-
path=os.environ.get("VAULT_PATH"),
|
|
23
|
-
mount_point="utg-scada"
|
|
24
|
-
)['data']['data']
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def env(key, default=None):
|
|
28
|
-
if key in os.environ:
|
|
29
|
-
return os.environ.get(key, default)
|
|
30
|
-
else:
|
|
31
|
-
return envs.get(key, default)
|
|
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
|
{utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/authentications/microservice_authentication.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
|
{utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/celery/management/commands/migrate_tasks.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
|
{utg_base-1.16.1 → utg_base-1.17.1}/src/utg_base/migration/management/commands/makemigrations.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
|
|
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
|