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