nlbone 0.7.29__tar.gz → 0.7.30__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 (121) hide show
  1. {nlbone-0.7.29 → nlbone-0.7.30}/PKG-INFO +1 -1
  2. {nlbone-0.7.29 → nlbone-0.7.30}/pyproject.toml +1 -1
  3. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/exception_handlers.py +8 -4
  4. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/exceptions.py +7 -0
  5. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/middleware/add_request_context.py +1 -0
  6. {nlbone-0.7.29 → nlbone-0.7.30}/.gitignore +0 -0
  7. {nlbone-0.7.29 → nlbone-0.7.30}/LICENSE +0 -0
  8. {nlbone-0.7.29 → nlbone-0.7.30}/README.md +0 -0
  9. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/__init__.py +0 -0
  10. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/__init__.py +0 -0
  11. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/auth/__init__.py +0 -0
  12. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/auth/auth_service.py +0 -0
  13. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/auth/keycloak.py +0 -0
  14. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/auth/token_provider.py +0 -0
  15. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/__init__.py +0 -0
  16. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/async_redis.py +0 -0
  17. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/memory.py +0 -0
  18. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/pubsub_listener.py +0 -0
  19. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/redis.py +0 -0
  20. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/__init__.py +0 -0
  21. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/__init__.py +0 -0
  22. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/audit.py +0 -0
  23. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/base.py +0 -0
  24. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/engine.py +0 -0
  25. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/query_builder.py +0 -0
  26. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/repository.py +0 -0
  27. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/schema.py +0 -0
  28. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/types.py +0 -0
  29. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/uow.py +0 -0
  30. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/redis/__init__.py +0 -0
  31. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/redis/client.py +0 -0
  32. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/__init__.py +0 -0
  33. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/pricing/__init__.py +0 -0
  34. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/pricing/pricing_service.py +0 -0
  35. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/uploadchi/__init__.py +0 -0
  36. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/uploadchi/uploadchi.py +0 -0
  37. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/uploadchi/uploadchi_async.py +0 -0
  38. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/i18n/__init__.py +0 -0
  39. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/i18n/engine.py +0 -0
  40. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/i18n/loaders.py +0 -0
  41. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/i18n/locales/fa-IR.json +0 -0
  42. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/messaging/__init__.py +0 -0
  43. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/messaging/event_bus.py +0 -0
  44. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/messaging/rabbitmq.py +0 -0
  45. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/outbox/__init__.py +0 -0
  46. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/outbox/outbox_consumer.py +0 -0
  47. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/outbox/outbox_repo.py +0 -0
  48. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/percolation/__init__.py +0 -0
  49. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/percolation/connection.py +0 -0
  50. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/repositories/__init__.py +0 -0
  51. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/snowflake.py +0 -0
  52. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/ticketing/__init__.py +0 -0
  53. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/ticketing/client.py +0 -0
  54. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/config/__init__.py +0 -0
  55. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/config/logging.py +0 -0
  56. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/config/settings.py +0 -0
  57. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/container.py +0 -0
  58. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/__init__.py +0 -0
  59. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/__init__.py +0 -0
  60. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/base_worker.py +0 -0
  61. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/bus.py +0 -0
  62. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/di.py +0 -0
  63. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/registry.py +0 -0
  64. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/services/__init__.py +0 -0
  65. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/use_case.py +0 -0
  66. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/domain/__init__.py +0 -0
  67. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/domain/base.py +0 -0
  68. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/domain/models.py +0 -0
  69. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/__init__.py +0 -0
  70. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/auth.py +0 -0
  71. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/cache.py +0 -0
  72. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/event_bus.py +0 -0
  73. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/files.py +0 -0
  74. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/outbox.py +0 -0
  75. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/repository.py +0 -0
  76. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/translation.py +0 -0
  77. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/uow.py +0 -0
  78. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/__init__.py +0 -0
  79. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/__init__.py +0 -0
  80. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/__init__.py +0 -0
  81. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/assembler.py +0 -0
  82. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/default_field_rules/__init__.py +0 -0
  83. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/default_field_rules/image_field_rules.py +0 -0
  84. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/field_registry.py +0 -0
  85. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/resolver.py +0 -0
  86. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/__init__.py +0 -0
  87. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/async_auth.py +0 -0
  88. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/auth.py +0 -0
  89. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/client_credential.py +0 -0
  90. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/db.py +0 -0
  91. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/uow.py +0 -0
  92. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/middleware/__init__.py +0 -0
  93. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/middleware/access_log.py +0 -0
  94. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/middleware/authentication.py +0 -0
  95. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/pagination/__init__.py +0 -0
  96. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/pagination/offset_base.py +0 -0
  97. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/routers.py +0 -0
  98. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/schema/__init__.py +0 -0
  99. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/schema/adaptive_schema.py +0 -0
  100. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/schema/base_response_model.py +0 -0
  101. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/schemas.py +0 -0
  102. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/__init__.py +0 -0
  103. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/crypto.py +0 -0
  104. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/init_db.py +0 -0
  105. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/main.py +0 -0
  106. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/ticket.py +0 -0
  107. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/jobs/__init__.py +0 -0
  108. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/jobs/dispatch_outbox.py +0 -0
  109. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/jobs/sync_tokens.py +0 -0
  110. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/types.py +0 -0
  111. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/__init__.py +0 -0
  112. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/cache.py +0 -0
  113. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/cache_keys.py +0 -0
  114. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/cache_registry.py +0 -0
  115. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/context.py +0 -0
  116. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/crypto.py +0 -0
  117. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/flatten_sqlalchemy_result.py +0 -0
  118. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/http.py +0 -0
  119. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/normalize_mobile.py +0 -0
  120. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/redactor.py +0 -0
  121. {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/time.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nlbone
3
- Version: 0.7.29
3
+ Version: 0.7.30
4
4
  Summary: Backbone package for interfaces and infrastructure in Python projects
5
5
  Author-email: Amir Hosein Kahkbazzadeh <a.khakbazzadeh@gmail.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "nlbone"
7
- version = "0.7.29"
7
+ version = "0.7.30"
8
8
  description = "Backbone package for interfaces and infrastructure in Python projects"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -60,7 +60,8 @@ def install_exception_handlers(
60
60
  "http_error",
61
61
  extra={"status": exc.status_code, "detail": exc.detail, "path": request.url.path},
62
62
  )
63
- return _json_response(request, exc.status_code, detail=_(exc.detail))
63
+ locale = locale = getattr(request.state, "locale", None)
64
+ return _json_response(request, exc.status_code, detail=_(exc.detail, locale=locale))
64
65
 
65
66
  @app.exception_handler(FastAPIHTTPException)
66
67
  async def _handle_fastapi_http_exception(request: Request, exc: FastAPIHTTPException):
@@ -69,7 +70,8 @@ def install_exception_handlers(
69
70
  "fastapi_http_error",
70
71
  extra={"status": exc.status_code, "detail": exc.detail, "path": request.url.path},
71
72
  )
72
- return _json_response(request, exc.status_code, detail=exc.detail)
73
+ locale = locale = getattr(request.state, "locale", None)
74
+ return _json_response(request, exc.status_code, detail=_(exc.detail, locale=locale))
73
75
 
74
76
  @app.exception_handler(StarletteHTTPException)
75
77
  async def _handle_starlette_http_exception(request: Request, exc: StarletteHTTPException):
@@ -78,7 +80,8 @@ def install_exception_handlers(
78
80
  "starlette_http_error",
79
81
  extra={"status": exc.status_code, "detail": exc.detail, "path": request.url.path},
80
82
  )
81
- return _json_response(request, exc.status_code, detail=exc.detail)
83
+ locale = locale = getattr(request.state, "locale", None)
84
+ return _json_response(request, exc.status_code, detail=_(exc.detail, locale=locale))
82
85
 
83
86
  # 3) خطاهای اعتبارسنجی FastAPI (request body/query/path)
84
87
  @app.exception_handler(RequestValidationError)
@@ -107,4 +110,5 @@ def install_exception_handlers(
107
110
  if logger:
108
111
  logger.exception("unhandled_exception", extra={"trace_id": tid, "path": request.url.path})
109
112
  detail = str(exc) if expose_server_errors else "internal server error"
110
- return _json_response(request, 500, detail=detail, trace_id=tid)
113
+ locale = locale = getattr(request.state, "locale", None)
114
+ return _json_response(request, 500, detail=_(detail, locale=locale), trace_id=tid)
@@ -99,3 +99,10 @@ class GoneException(BaseHttpException):
99
99
  status_code=status.HTTP_410_GONE,
100
100
  detail=detail,
101
101
  )
102
+
103
+ class TooManyRequestsException(BaseHttpException):
104
+ def __init__(self, detail: str = "TooManyRequests"):
105
+ super().__init__(
106
+ status_code=status.HTTP_429_TOO_MANY_REQUESTS,
107
+ detail=detail,
108
+ )
@@ -46,6 +46,7 @@ class AddRequestContextMiddleware(BaseHTTPMiddleware):
46
46
  ip = request.client.host if request.client else None
47
47
  ua = request.headers.get("user-agent")
48
48
  locale = request.headers.get("Accept-Language", 'fa-IR')
49
+ request.state.locale = locale
49
50
 
50
51
  tokens = bind_context(request=request, request_id=req_id, user_id=user_id, ip=ip, user_agent=ua, locale=locale)
51
52
  try:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes