utg-base 1.17.0__py3-none-any.whl → 1.17.1__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.
utg_base/env.py CHANGED
@@ -1,10 +1,11 @@
1
1
  import os
2
2
  import typing
3
+ from functools import wraps
3
4
 
4
5
  import dotenv
5
6
  import hvac
6
7
  from django.conf import settings
7
- from environs import Env, _StrType
8
+ from environs import Env, _StrType, EnvError
8
9
 
9
10
  dotenv.load_dotenv(settings.BASE_DIR / '.env')
10
11
 
@@ -27,6 +28,34 @@ envs = client.secrets.kv.read_secret_version(
27
28
 
28
29
 
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
+
30
59
  def _get_value(self, env_key: _StrType, default: typing.Any) -> typing.Any:
31
60
  if env_key in os.environ:
32
61
  return os.environ.get(env_key, default)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: utg-base
3
- Version: 1.17.0
3
+ Version: 1.17.1
4
4
  Summary: UTG Base Package
5
5
  Author: Olimboy
6
6
  Author-email: shavkatov.olimboy@mail.ru
@@ -25,7 +25,7 @@ utg_base/celery/views/periodic_task.py,sha256=OyRJh_-KCicUZD84hksRoOXLHGk7mLF7Ql
25
25
  utg_base/celery/views/task_result.py,sha256=c9HIcohrToRfz1jfZRRZ1ri15FOasjKgMYnzKcA2X8M,726
26
26
  utg_base/constants/__init__.py,sha256=nC8qE-2V6APtjSz8j0A-3ez8yyoRpdRO8pwQnvvpRMk,53
27
27
  utg_base/constants/available_languages.py,sha256=zQh0S0PMuYUdRW_RH36llvMxbvsfbdUtotDjFeysWfQ,56
28
- utg_base/env.py,sha256=uvxxPdhu4I4UppbpHCb7Slrbin8Qs-WJZWwTenI60jE,1103
28
+ utg_base/env.py,sha256=X8Zg3QrWT1FZ7LmAQype1BdhdtaVNAHXJNp9VGq3oQM,1986
29
29
  utg_base/logging.py,sha256=JHGhuLKU1js_26ReE0LCLWZ66fmlGKuLG9sfbQSfI5w,4565
30
30
  utg_base/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  utg_base/middleware/debug.py,sha256=exkeYUK-zSN3PMd4L9F6WlROmQ7Qlpmi_Gr2dqt5vk4,416
@@ -68,6 +68,6 @@ utg_base/utils/sql.py,sha256=rqIWcSjdjIMszdRnsnhV5TTYB8W17RPOujIQA9rKC_Y,762
68
68
  utg_base/utils/string.py,sha256=ATwIo9uLa00p85h_NjRYLcjRs8o3KSGF7s2yhTg5GiA,1073
69
69
  utg_base/utils/thread.py,sha256=4RqRnwtyHymY-dNcuPrMSTamE2V7wCMVfzzyIb0P4TI,2191
70
70
  utg_base/utils/translation.py,sha256=GxJHUt0iar_0E7RWBPbeLFQ4DhgXBjffHCmxfKyjFtk,463
71
- utg_base-1.17.0.dist-info/METADATA,sha256=xctjO4kqJJyglcBor4tRKY8vqnjYaiaH8BL32UVxH9s,960
72
- utg_base-1.17.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
73
- utg_base-1.17.0.dist-info/RECORD,,
71
+ utg_base-1.17.1.dist-info/METADATA,sha256=xlzmh4esJ1N8FJMMVonHv-qiPC5-5S2QBmKIHbqGGtM,960
72
+ utg_base-1.17.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
73
+ utg_base-1.17.1.dist-info/RECORD,,