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.
- {nlbone-0.7.29 → nlbone-0.7.30}/PKG-INFO +1 -1
- {nlbone-0.7.29 → nlbone-0.7.30}/pyproject.toml +1 -1
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/exception_handlers.py +8 -4
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/exceptions.py +7 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/middleware/add_request_context.py +1 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/.gitignore +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/LICENSE +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/README.md +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/auth/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/auth/auth_service.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/auth/keycloak.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/auth/token_provider.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/async_redis.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/memory.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/pubsub_listener.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/cache/redis.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/audit.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/base.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/engine.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/query_builder.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/repository.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/schema.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/types.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/postgres/uow.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/redis/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/db/redis/client.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/pricing/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/pricing/pricing_service.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/uploadchi/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/uploadchi/uploadchi.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/uploadchi/uploadchi_async.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/i18n/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/i18n/engine.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/i18n/loaders.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/i18n/locales/fa-IR.json +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/messaging/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/messaging/event_bus.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/messaging/rabbitmq.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/outbox/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/outbox/outbox_consumer.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/outbox/outbox_repo.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/percolation/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/percolation/connection.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/repositories/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/snowflake.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/ticketing/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/ticketing/client.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/config/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/config/logging.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/config/settings.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/container.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/base_worker.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/bus.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/di.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/registry.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/services/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/application/use_case.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/domain/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/domain/base.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/domain/models.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/auth.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/cache.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/event_bus.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/files.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/outbox.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/repository.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/translation.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/core/ports/uow.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/assembler.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/default_field_rules/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/default_field_rules/image_field_rules.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/field_registry.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/resolver.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/async_auth.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/auth.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/client_credential.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/db.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/dependencies/uow.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/middleware/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/middleware/access_log.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/middleware/authentication.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/pagination/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/pagination/offset_base.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/routers.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/schema/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/schema/adaptive_schema.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/schema/base_response_model.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/schemas.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/crypto.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/init_db.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/main.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/cli/ticket.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/jobs/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/jobs/dispatch_outbox.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/jobs/sync_tokens.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/types.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/__init__.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/cache.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/cache_keys.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/cache_registry.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/context.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/crypto.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/flatten_sqlalchemy_result.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/http.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/normalize_mobile.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/redactor.py +0 -0
- {nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/utils/time.py +0 -0
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
{nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/adapters/http_clients/uploadchi/uploadchi_async.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
|
|
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
|
{nlbone-0.7.29 → nlbone-0.7.30}/src/nlbone/interfaces/api/additional_filed/field_registry.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|