utg-base 1.5.5__tar.gz → 1.5.7__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.
Files changed (53) hide show
  1. {utg_base-1.5.5 → utg_base-1.5.7}/PKG-INFO +1 -1
  2. {utg_base-1.5.5 → utg_base-1.5.7}/pyproject.toml +1 -1
  3. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/env.py +4 -0
  4. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/references_api/utils.py +3 -3
  5. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/services/base_api.py +73 -31
  6. {utg_base-1.5.5 → utg_base-1.5.7}/README.md +0 -0
  7. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/__init__.py +0 -0
  8. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/api/__init__.py +0 -0
  9. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/api/base.py +0 -0
  10. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/api/pagination.py +0 -0
  11. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/api/permissions.py +0 -0
  12. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/api/routers.py +0 -0
  13. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/api/serializers.py +0 -0
  14. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/api/views.py +0 -0
  15. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/authentications/__init__.py +0 -0
  16. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/authentications/microservice_authentication.py +0 -0
  17. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/authentications/models.py +0 -0
  18. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/__init__.py +0 -0
  19. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/apps.py +0 -0
  20. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/filters/__init__.py +0 -0
  21. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/filters/task_result.py +0 -0
  22. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/management/__init__.py +0 -0
  23. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/management/commands/__init__.py +0 -0
  24. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/management/commands/migrate_tasks.py +0 -0
  25. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/serializers/__init__.py +0 -0
  26. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/serializers/periodic_task.py +0 -0
  27. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/serializers/task_result.py +0 -0
  28. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/urls.py +0 -0
  29. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/views/__init__.py +0 -0
  30. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/views/periodic_task.py +0 -0
  31. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/celery/views/task_result.py +0 -0
  32. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/constants/__init__.py +0 -0
  33. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/constants/available_languages.py +0 -0
  34. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/logging.py +0 -0
  35. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/middleware/__init__.py +0 -0
  36. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/middleware/locale.py +0 -0
  37. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/models/__init__.py +0 -0
  38. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/models/jwt_user.py +0 -0
  39. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/models/timestamp.py +0 -0
  40. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/references_api/__init__.py +0 -0
  41. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/references_api/admin.py +0 -0
  42. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/references_api/apps.py +0 -0
  43. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/references_api/migrations/__init__.py +0 -0
  44. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/references_api/models.py +0 -0
  45. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/references_api/urls.py +0 -0
  46. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/services/__init__.py +0 -0
  47. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/utils/__init__.py +0 -0
  48. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/utils/data.py +0 -0
  49. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/utils/date.py +0 -0
  50. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/utils/dict_util.py +0 -0
  51. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/utils/response_processors.py +0 -0
  52. {utg_base-1.5.5 → utg_base-1.5.7}/src/utg_base/utils/sql.py +0 -0
  53. {utg_base-1.5.5 → utg_base-1.5.7}/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.5.5
3
+ Version: 1.5.7
4
4
  Summary: UTG Base Package
5
5
  Author: Rovshen
6
6
  Author-email: rovshenashirov1619@gmail.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "utg-base"
3
- version = "1.5.5"
3
+ version = "1.5.7"
4
4
  description = "UTG Base Package"
5
5
  authors = ["Rovshen <rovshenashirov1619@gmail.com>"]
6
6
  readme = "README.md"
@@ -6,6 +6,10 @@ from django.conf import settings
6
6
 
7
7
  dotenv.load_dotenv(settings.BASE_DIR / '.env')
8
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
+
9
13
  client = hvac.Client(
10
14
  url=os.environ.get("VAULT_URL"),
11
15
  token=os.environ.get("VAULT_TOKEN"),
@@ -102,7 +102,7 @@ def create_view_set(model: Model):
102
102
 
103
103
 
104
104
  def create_serializer_for_create(model: Model):
105
- @extend_schema_serializer(component_name='Admin' + get_serializer_name(model))
105
+ @extend_schema_serializer(component_name='Admin1' + get_serializer_name(model))
106
106
  class Serializer(serializers.ModelSerializer):
107
107
  class Meta:
108
108
  fields = '__all__'
@@ -114,7 +114,7 @@ def create_serializer_for_create(model: Model):
114
114
  def create_serializer_for_partial_update(model: Model):
115
115
  fields_list = get_model_fields_list(model)
116
116
 
117
- @extend_schema_serializer(component_name='Admin' + get_serializer_name(model))
117
+ @extend_schema_serializer(component_name='Admin2' + get_serializer_name(model))
118
118
  class Serializer(serializers.ModelSerializer):
119
119
  class Meta:
120
120
  fields = '__all__'
@@ -147,7 +147,7 @@ def create_serializer(model: Model, depth=0):
147
147
  parsed_url = urlparse(value.url)
148
148
  return f'{parsed_url.path}?{parsed_url.query}'
149
149
 
150
- @extend_schema_serializer(component_name='Admin' + get_serializer_name(model))
150
+ @extend_schema_serializer(component_name='Admin3' + get_serializer_name(model))
151
151
  class Serializer(serializers.ModelSerializer):
152
152
  def __init__(self, *args, **kwargs):
153
153
  super().__init__(*args, **kwargs)
@@ -14,10 +14,19 @@ class BaseServiceAPI:
14
14
  base_url: str = None
15
15
  default_response_processor: Callable[[Response], Any] = None
16
16
 
17
- def request(self, method, path, data=None, json=None, params=None, headers=None,
18
- authenticator: Callable[[dict], dict] | None = 'default',
19
- response_processor: Callable[[Response], Any] | None = 'default',
20
- **kwargs):
17
+ @classmethod
18
+ def request(
19
+ cls,
20
+ method,
21
+ path,
22
+ data=None,
23
+ json=None,
24
+ params=None,
25
+ headers=None,
26
+ authenticator: Callable[[dict], dict] | None = 'default',
27
+ response_processor: Callable[[Response], Any] | None = 'default',
28
+ **kwargs
29
+ ):
21
30
  """
22
31
  Make an HTTP request using the requests' library.
23
32
 
@@ -53,12 +62,12 @@ class BaseServiceAPI:
53
62
  if callable(authenticator):
54
63
  headers = authenticator(headers)
55
64
 
56
- if authenticator == 'default' and hasattr(self, 'authenticate') and callable(self.authenticate):
57
- headers = self.authenticate(headers)
65
+ if authenticator == 'default' and hasattr(cls, 'authenticate') and callable(cls.authenticate):
66
+ headers = cls.authenticate(headers)
58
67
 
59
68
  response = requests.request(
60
69
  method=method,
61
- url=self.base_url + path,
70
+ url=cls.base_url + path,
62
71
  data=data,
63
72
  json=json,
64
73
  params=params,
@@ -68,8 +77,8 @@ class BaseServiceAPI:
68
77
  )
69
78
 
70
79
  if response_processor == 'default':
71
- if hasattr(self, 'default_response_processor') and callable(self.default_response_processor):
72
- return self.default_response_processor(response)
80
+ if hasattr(cls, 'default_response_processor') and callable(cls.default_response_processor):
81
+ return cls.default_response_processor(response)
73
82
  return response
74
83
 
75
84
  if response_processor is not None:
@@ -77,8 +86,9 @@ class BaseServiceAPI:
77
86
 
78
87
  return response
79
88
 
80
- def call(self, method, path, data=None, json=None, params=None, headers=None):
81
- data = self.request(
89
+ @classmethod
90
+ def call(cls, method, path, data=None, json=None, params=None, headers=None):
91
+ data = cls.request(
82
92
  method=method,
83
93
  path=path,
84
94
  data=data,
@@ -88,7 +98,7 @@ class BaseServiceAPI:
88
98
  response_processor=call_processor
89
99
  )
90
100
  return {
91
- 'path': self.base_url + path,
101
+ 'path': cls.base_url + path,
92
102
  'method': method,
93
103
  'status': data['status'],
94
104
  'reason': data['reason'],
@@ -96,10 +106,11 @@ class BaseServiceAPI:
96
106
  'response': data['response'],
97
107
  }
98
108
 
99
- def authenticate(self, headers: dict) -> dict:
109
+ @classmethod
110
+ def authenticate(cls, headers: dict) -> dict:
100
111
  """
101
112
  Example authenticate method:
102
- authenticate(self, headers):
113
+ authenticate(cls, headers):
103
114
  headers['Authorization'] = 'Bearer YOUR_ACCESS_TOKEN'
104
115
  return headers
105
116
  :param headers:
@@ -107,22 +118,53 @@ class BaseServiceAPI:
107
118
  """
108
119
  return headers
109
120
 
110
- def get(self, path, data=None, json=None, params=None, headers=None,
121
+ @classmethod
122
+ def get(
123
+ cls,
124
+ path,
125
+ data=None,
126
+ json=None,
127
+ params=None,
128
+ headers=None,
111
129
  authenticator: Callable[[dict], dict] | None = 'default',
112
- response_processor: Callable[[Response], Any] | None = 'default'):
113
- return self.request('get', path, data, json, params, headers, authenticator, response_processor)
114
-
115
- def post(self, path, data=None, json=None, params=None, headers=None,
116
- authenticator: Callable[[dict], dict] | None = 'default',
117
- response_processor: Callable[[Response], Any] | None = 'default'):
118
- return self.request('post', path, data, json, params, headers, authenticator, response_processor)
119
-
120
- def put(self, path, data=None, json=None, params=None, headers=None,
130
+ response_processor: Callable[[Response], Any] | None = 'default'
131
+ ):
132
+ return cls.request('get', path, data, json, params, headers, authenticator, response_processor)
133
+
134
+ @classmethod
135
+ def post(
136
+ cls,
137
+ path,
138
+ data=None,
139
+ json=None,
140
+ params=None,
141
+ headers=None,
121
142
  authenticator: Callable[[dict], dict] | None = 'default',
122
- response_processor: Callable[[Response], Any] | None = 'default'):
123
- return self.request('put', path, data, json, params, headers, authenticator, response_processor)
124
-
125
- def patch(self, path, data=None, json=None, params=None, headers=None,
126
- authenticator: Callable[[dict], dict] | None = 'default',
127
- response_processor: Callable[[Response], Any] | None = 'default'):
128
- return self.request('patch', path, data, json, params, headers, authenticator, response_processor)
143
+ response_processor: Callable[[Response], Any] | None = 'default'
144
+ ):
145
+ return cls.request('post', path, data, json, params, headers, authenticator, response_processor)
146
+
147
+ @classmethod
148
+ def put(
149
+ cls,
150
+ path,
151
+ data=None,
152
+ json=None,
153
+ params=None,
154
+ headers=None,
155
+ authenticator: Callable[[dict], dict] | None = 'default',
156
+ response_processor: Callable[[Response], Any] | None = 'default'
157
+ ):
158
+ return cls.request('put', path, data, json, params, headers, authenticator, response_processor)
159
+
160
+ @classmethod
161
+ def patch(
162
+ cls,
163
+ path,
164
+ data=None,
165
+ json=None,
166
+ params=None, headers=None,
167
+ authenticator: Callable[[dict], dict] | None = 'default',
168
+ response_processor: Callable[[Response], Any] | None = 'default'
169
+ ):
170
+ return cls.request('patch', path, data, json, params, headers, authenticator, response_processor)
File without changes