utg-base 1.5.7__tar.gz → 1.6.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.
Files changed (55) hide show
  1. {utg_base-1.5.7 → utg_base-1.6.1}/PKG-INFO +1 -1
  2. {utg_base-1.5.7 → utg_base-1.6.1}/pyproject.toml +1 -1
  3. utg_base-1.6.1/src/utg_base/api/spectacular.py +33 -0
  4. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/logging.py +13 -11
  5. utg_base-1.6.1/src/utg_base/middleware/debug.py +10 -0
  6. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/utils/translation.py +2 -3
  7. {utg_base-1.5.7 → utg_base-1.6.1}/README.md +0 -0
  8. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/__init__.py +0 -0
  9. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/api/__init__.py +0 -0
  10. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/api/base.py +0 -0
  11. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/api/pagination.py +0 -0
  12. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/api/permissions.py +0 -0
  13. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/api/routers.py +0 -0
  14. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/api/serializers.py +0 -0
  15. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/api/views.py +0 -0
  16. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/authentications/__init__.py +0 -0
  17. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/authentications/microservice_authentication.py +0 -0
  18. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/authentications/models.py +0 -0
  19. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/__init__.py +0 -0
  20. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/apps.py +0 -0
  21. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/filters/__init__.py +0 -0
  22. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/filters/task_result.py +0 -0
  23. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/management/__init__.py +0 -0
  24. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/management/commands/__init__.py +0 -0
  25. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/management/commands/migrate_tasks.py +0 -0
  26. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/serializers/__init__.py +0 -0
  27. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/serializers/periodic_task.py +0 -0
  28. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/serializers/task_result.py +0 -0
  29. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/urls.py +0 -0
  30. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/views/__init__.py +0 -0
  31. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/views/periodic_task.py +0 -0
  32. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/celery/views/task_result.py +0 -0
  33. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/constants/__init__.py +0 -0
  34. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/constants/available_languages.py +0 -0
  35. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/env.py +0 -0
  36. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/middleware/__init__.py +0 -0
  37. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/middleware/locale.py +0 -0
  38. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/models/__init__.py +0 -0
  39. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/models/jwt_user.py +0 -0
  40. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/models/timestamp.py +0 -0
  41. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/references_api/__init__.py +0 -0
  42. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/references_api/admin.py +0 -0
  43. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/references_api/apps.py +0 -0
  44. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/references_api/migrations/__init__.py +0 -0
  45. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/references_api/models.py +0 -0
  46. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/references_api/urls.py +0 -0
  47. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/references_api/utils.py +0 -0
  48. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/services/__init__.py +0 -0
  49. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/services/base_api.py +0 -0
  50. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/utils/__init__.py +0 -0
  51. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/utils/data.py +0 -0
  52. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/utils/date.py +0 -0
  53. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/utils/dict_util.py +0 -0
  54. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/utils/response_processors.py +0 -0
  55. {utg_base-1.5.7 → utg_base-1.6.1}/src/utg_base/utils/sql.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: utg-base
3
- Version: 1.5.7
3
+ Version: 1.6.1
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.7"
3
+ version = "1.6.1"
4
4
  description = "UTG Base Package"
5
5
  authors = ["Rovshen <rovshenashirov1619@gmail.com>"]
6
6
  readme = "README.md"
@@ -0,0 +1,33 @@
1
+ from django.conf import settings
2
+ from django.http import HttpResponseForbidden
3
+ from django.urls import path
4
+ from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
5
+ from rest_framework.views import APIView
6
+
7
+ from utg_base.env import env
8
+
9
+
10
+ class DebugTokenRequiredMixin(APIView):
11
+ """
12
+ If Request header X-Debug-Token not found then 403
13
+ """
14
+
15
+ def dispatch(self, request, *args, **kwargs):
16
+ token = request.headers.get("X-Debug-Token")
17
+ if not settings.DEBUG and token != env("DJANGO_SECRET_KEY"):
18
+ return HttpResponseForbidden("Forbidden")
19
+ return super().dispatch(request, *args, **kwargs)
20
+
21
+
22
+ class ProtectedSpectacularAPIView(DebugTokenRequiredMixin, SpectacularAPIView):
23
+ pass
24
+
25
+
26
+ class ProtectedSpectacularSwaggerView(DebugTokenRequiredMixin, SpectacularSwaggerView):
27
+ pass
28
+
29
+
30
+ urlpatterns = [
31
+ path('api/swagger/schema/', ProtectedSpectacularAPIView.as_view(), name='schema'),
32
+ path('api/docs/', ProtectedSpectacularSwaggerView.as_view(url_name='schema'), name='docs'),
33
+ ]
@@ -1,6 +1,8 @@
1
1
  import logging
2
2
  import os
3
3
 
4
+ from utg_base.env import env
5
+
4
6
 
5
7
  class UtgBaseFilter(logging.Filter):
6
8
  BASE_DIR = os.getcwd()
@@ -21,10 +23,10 @@ class UtgBaseFilter(logging.Filter):
21
23
 
22
24
 
23
25
  class UtgBaseLogging:
24
- enable_console_info = int(os.environ.get('LOGGING_CONSOLE_INFO', True))
25
- enable_db_debug = int(os.environ.get('LOGGING_DB_DEBUG', False))
26
- enable_loki = int(os.environ.get('LOGGING_LOKI', True))
27
- enable_loki_debug = int(os.environ.get('LOGGING_LOKI_DEBUG', False))
26
+ enable_console_info = int(env('LOGGING_CONSOLE_INFO', True))
27
+ enable_db_debug = int(env('LOGGING_DB_DEBUG', False))
28
+ enable_loki = int(env('LOGGING_LOKI', True))
29
+ enable_loki_debug = int(env('LOGGING_LOKI_DEBUG', False))
28
30
 
29
31
  logger = logging.getLogger('main')
30
32
 
@@ -63,19 +65,19 @@ class UtgBaseLogging:
63
65
  'filters': ['trim_path'],
64
66
  },
65
67
  'loki': {
66
- 'level': os.environ.get('LOKI_LEVEL', 'ERROR'), # required
68
+ 'level': env('LOKI_LEVEL', 'ERROR'), # required
67
69
  'class': 'django_loki.LokiHttpHandler', # required
68
- 'host': os.environ.get('LOKI_HOST', os.environ.get('DB_HOST')),
70
+ 'host': env('LOKI_HOST', env('DB_HOST')),
69
71
  # required, your grafana/Loki server host, e.g:192.168.25.30
70
72
  'formatter': 'loki', # required, loki formatter,
71
- 'port': int(os.environ.get('LOKI_PORT', 3100)),
73
+ 'port': int(env('LOKI_PORT', 3100)),
72
74
  # optional, your grafana/Loki server port, default is 3100
73
- 'timeout': float(os.environ.get('LOKI_TIMEOUT', 0.5)),
75
+ 'timeout': float(env('LOKI_TIMEOUT', 0.5)),
74
76
  # optional, request Loki-server by http or https time out, default is 0.5
75
- 'protocol': os.environ.get('LOKI_PROTOCOL', 'http'),
77
+ 'protocol': env('LOKI_PROTOCOL', 'http'),
76
78
  # optional, Loki-server protocol, default is http
77
- 'source': os.environ.get('LOKI_SOURCE', 'Loki'), # optional, label name for Loki, default is Loki
78
- 'src_host': os.environ.get('LOKI_SRC_HOST', 'localhost'),
79
+ 'source': env('LOKI_SOURCE', 'Loki'), # optional, label name for Loki, default is Loki
80
+ 'src_host': env('LOKI_SRC_HOST', 'localhost'),
79
81
  # optional, label name for Loki, default is localhost
80
82
  'tz': 'Asia/Tashkent',
81
83
  # optional, timezone for formatting timestamp, default is UTC, e.g:Asia/Shanghai
@@ -0,0 +1,10 @@
1
+ from django.utils.deprecation import MiddlewareMixin
2
+
3
+ from utg_base.env import env
4
+
5
+
6
+ class DebugOverrideMiddleware(MiddlewareMixin):
7
+ def process_exception(self, request, exception):
8
+ if request.headers.get("X-Debug-Token") == env("DJANGO_SECRET_KEY"):
9
+ from django.views import debug
10
+ return debug.technical_500_response(request, type(exception), exception, exception.__traceback__)
@@ -1,13 +1,12 @@
1
- import os
2
-
3
1
  import requests
4
2
  from django.utils.translation import get_language
5
3
 
6
4
  from utg_base.constants import AVAILABLE_LANGUAGES
5
+ from utg_base.env import env
7
6
 
8
7
 
9
8
  def translate(key: str) -> str:
10
- base_url = os.environ.get('TRANSLATION_SERVICE_URL')
9
+ base_url = env('TRANSLATION_SERVICE_URL')
11
10
  lang = get_language()
12
11
  if lang == 'uz-cyr':
13
12
  lang = 'crl'
File without changes
File without changes