From ed9e3e3b4e616016d5ea9acde8ef38060cdb836c Mon Sep 17 00:00:00 2001 From: Ritwick Dey Date: Thu, 21 Mar 2024 22:02:01 +0530 Subject: [PATCH 1/2] changes for flask v3 https://github.com/Workable/flask-log-request-id/issues/58 --- flask_log_request_id/request_id.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/flask_log_request_id/request_id.py b/flask_log_request_id/request_id.py index 9f38ea0..d98c2de 100644 --- a/flask_log_request_id/request_id.py +++ b/flask_log_request_id/request_id.py @@ -1,12 +1,11 @@ import uuid import logging as _logging - -from flask import request, g, current_app +import flask +from flask import request, g, current_app, has_app_context, has_request_context from .parser import auto_parser from .ctx_fetcher import MultiContextRequestIdFetcher, ExecutedOutsideContext - logger = _logging.getLogger(__name__) @@ -15,12 +14,19 @@ def flask_ctx_get_request_id(): Get request id from flask's G object :return: The id or None if not found. """ - from flask import _app_ctx_stack as stack # We do not support < Flask 0.9 + if not (has_request_context() or has_app_context()): + raise ExecutedOutsideContext() + + ctx = None + if hasattr(flask, 'globals') and hasattr(flask.globals, 'app_ctx'): + ctx = flask.globals.app_ctx._get_current_object() + elif hasattr(flask, '_app_ctx_stack'): + ctx = flask._app_ctx_stack.top - if stack.top is None: + if ctx is None: raise ExecutedOutsideContext() - g_object_attr = stack.top.app.config['LOG_REQUEST_ID_G_OBJECT_ATTRIBUTE'] + g_object_attr = ctx.app.config['LOG_REQUEST_ID_G_OBJECT_ATTRIBUTE'] return g.get(g_object_attr, None) From 53ca1ba1fa5e96b71eb8b30044645336af8a2fab Mon Sep 17 00:00:00 2001 From: Ritwick Dey Date: Thu, 21 Mar 2024 23:14:54 +0530 Subject: [PATCH 2/2] fixed lint --- flask_log_request_id/request_id.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flask_log_request_id/request_id.py b/flask_log_request_id/request_id.py index d98c2de..98e899b 100644 --- a/flask_log_request_id/request_id.py +++ b/flask_log_request_id/request_id.py @@ -18,7 +18,7 @@ def flask_ctx_get_request_id(): raise ExecutedOutsideContext() ctx = None - if hasattr(flask, 'globals') and hasattr(flask.globals, 'app_ctx'): + if hasattr(flask, 'globals') and hasattr(flask.globals, 'app_ctx'): ctx = flask.globals.app_ctx._get_current_object() elif hasattr(flask, '_app_ctx_stack'): ctx = flask._app_ctx_stack.top