From 028e7dd48e14f7b343a782ac2e08055f3f09dfe6 Mon Sep 17 00:00:00 2001 From: Kelvin Li Date: Tue, 3 Oct 2023 13:32:16 +0800 Subject: [PATCH 1/2] fixed error caused by 'TypeError': unsupported operand type(s) for +=: 'int' and 'NoneType' if src.content_length is None --- src/flask_track_usage/summarization/mongoenginestorage.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/flask_track_usage/summarization/mongoenginestorage.py b/src/flask_track_usage/summarization/mongoenginestorage.py index 516950e..c0f686d 100644 --- a/src/flask_track_usage/summarization/mongoenginestorage.py +++ b/src/flask_track_usage/summarization/mongoenginestorage.py @@ -42,8 +42,9 @@ def increment(class_dict, src, dest, target_list): if dest: doc[dest] = value doc.hits += 1 - doc.transfer += src.content_length - doc.save() + if src.content_length: + doc.transfer += src.content_length + doc.save() def generic_get_sum( From ad786a11bc9a3004744c85784dfc0bb5fda5712a Mon Sep 17 00:00:00 2001 From: Kelvin Li Date: Thu, 9 Nov 2023 20:24:18 +0800 Subject: [PATCH 2/2] import issue with flask-3.0.0 #69 --- src/flask_track_usage/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/flask_track_usage/__init__.py b/src/flask_track_usage/__init__.py index fc8d14f..d1e547e 100644 --- a/src/flask_track_usage/__init__.py +++ b/src/flask_track_usage/__init__.py @@ -40,7 +40,9 @@ import six -from flask import _request_ctx_stack, g +# from flask import _request_ctx_stack, g # _request_ctx_stack is removed since flask-3.0.0 +from flask import g +from flask.globals import request_ctx try: from flask_login import current_user except Exception: @@ -109,7 +111,8 @@ def before_request(self): """ Done before every request that is in scope. """ - ctx = _request_ctx_stack.top + # ctx = _request_ctx_stack.top + ctx = request_ctx view_func = self.app.view_functions.get(ctx.request.endpoint) if self._type == 'exclude': if view_func in self._exclude_views: @@ -132,7 +135,8 @@ def after_request(self, response): :Parameters: - `response`: The response on it's way to the client. """ - ctx = _request_ctx_stack.top + # ctx = _request_ctx_stack.top + ctx = request_ctx view_func = self.app.view_functions.get(ctx.request.endpoint) if self._type == 'exclude': if view_func in self._exclude_views: