From b234b490d60a1b8e555bfc7b97eac0720a86c947 Mon Sep 17 00:00:00 2001 From: saggit Date: Wed, 29 Nov 2023 15:14:16 +0800 Subject: [PATCH 1/2] fix: add support for flask > 2.2 --- flask_log_request_id/request_id.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/flask_log_request_id/request_id.py b/flask_log_request_id/request_id.py index 9f38ea0..0a53e64 100644 --- a/flask_log_request_id/request_id.py +++ b/flask_log_request_id/request_id.py @@ -15,12 +15,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 stack.top is None: + # from flask import _app_ctx_stack as stack # We do not support < Flask 0.9 + if hasattr(flask, 'globals') and \ + hasattr(flask.globals, 'request_ctx'): + # update session for Flask >= 2.2 + ctx = flask.globals.request_ctx._get_current_object() + else: # pragma: no cover + # update session for Flask < 2.2 + ctx = flask._request_ctx_stack.top + + 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 9b9b098f218e6d99dd804754fd8a752e0a20be1d Mon Sep 17 00:00:00 2001 From: saggit Date: Fri, 8 Dec 2023 16:30:47 +0800 Subject: [PATCH 2/2] fix: add missing import --- flask_log_request_id/request_id.py | 1 + 1 file changed, 1 insertion(+) diff --git a/flask_log_request_id/request_id.py b/flask_log_request_id/request_id.py index 0a53e64..9cf0a6a 100644 --- a/flask_log_request_id/request_id.py +++ b/flask_log_request_id/request_id.py @@ -1,6 +1,7 @@ import uuid import logging as _logging +import flask from flask import request, g, current_app from .parser import auto_parser