From 5246a0e8613830a88b2b0428d4d7770c5637a927 Mon Sep 17 00:00:00 2001 From: Alex Ioannidis Date: Mon, 2 Dec 2024 12:35:58 +0100 Subject: [PATCH] global: make sentry-sdk optional * Import-detects `sentry_sdk` so that we can remove the hard dependency. --- invenio_rest/views.py | 8 ++++++-- setup.cfg | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/invenio_rest/views.py b/invenio_rest/views.py index e2bc9f0..bef388c 100644 --- a/invenio_rest/views.py +++ b/invenio_rest/views.py @@ -13,13 +13,17 @@ from datetime import timezone -import sentry_sdk from flask import Response, abort, current_app, g, jsonify, make_response, request from flask.views import MethodView from werkzeug.exceptions import HTTPException from .errors import RESTException, SameContentException +try: + import sentry_sdk +except ImportError: + sentry_sdk = None + def create_api_errorhandler(**kwargs): r"""Create an API error handler. @@ -40,7 +44,7 @@ def api_errorhandler(e): return e.get_response() elif isinstance(e, HTTPException) and e.description: kwargs["message"] = e.description - if kwargs.get("status", 400) >= 500: + if kwargs.get("status", 400) >= 500 and sentry_sdk is not None: sentry_event_id = sentry_sdk.last_event_id() if sentry_event_id: kwargs["error_id"] = str(sentry_event_id) diff --git a/setup.cfg b/setup.cfg index efe111d..fcbfdbb 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,7 +29,7 @@ zip_safe = False install_requires = Flask-CORS>=2.1.0 invenio-base>=1.2.5,<2.0.0 - invenio-logging[sentry_sdk]>=2.1.0,<3.0.0 + invenio-logging>=2.1.0,<3.0.0 itsdangerous>=1.1.0 marshmallow>=2.15.2 webargs>=5.5.0,<6.0.0