diff options
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | pyproject.toml | 6 | ||||
-rw-r--r-- | requirements/requirements.pip | 2 | ||||
-rw-r--r-- | snekbox/utils/logging.py | 11 |
4 files changed, 14 insertions, 8 deletions
@@ -13,7 +13,8 @@ setup: install-piptools .PHONY: upgrade upgrade: install-piptools - $(PIP_COMPILE_CMD) -o requirements/requirements.pip pyproject.toml + $(PIP_COMPILE_CMD) -o requirements/requirements.pip \ + --extra gunicorn --extra sentry pyproject.toml $(PIP_COMPILE_CMD) -o requirements/coverage.pip requirements/coverage.in $(PIP_COMPILE_CMD) -o requirements/coveralls.pip requirements/coveralls.in $(PIP_COMPILE_CMD) -o requirements/lint.pip requirements/lint.in diff --git a/pyproject.toml b/pyproject.toml index 09b69ac..abcf04f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,12 +27,14 @@ requires-python = ">=3.10" dependencies = [ # Sentry's Falcon integration relies on api_helpers (falconry/falcon#1902). "falcon>=3.0.1", - "gunicorn>=20", "jsonschema>=4.0", "protobuf>=3.19", - "sentry-sdk[falcon]>=1.5.4" ] +[project.optional-dependencies] +gunicorn = ["gunicorn>=20"] +sentry = ["sentry-sdk[falcon]>=1.5.4"] + [project.urls] source = "https://github.com/python-discord/snekbox" tracker = "https://github.com/python-discord/snekbox/issues" diff --git a/requirements/requirements.pip b/requirements/requirements.pip index d9587c1..034f104 100644 --- a/requirements/requirements.pip +++ b/requirements/requirements.pip @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with python 3.10 # To update, run: # -# pip-compile --output-file=requirements/requirements.pip pyproject.toml +# pip-compile --extra=gunicorn --extra=sentry --output-file=requirements/requirements.pip pyproject.toml # attrs==21.4.0 # via jsonschema diff --git a/snekbox/utils/logging.py b/snekbox/utils/logging.py index e5afd0c..9a713f8 100644 --- a/snekbox/utils/logging.py +++ b/snekbox/utils/logging.py @@ -2,9 +2,6 @@ import logging import os import sys -import sentry_sdk -from sentry_sdk.integrations.falcon import FalconIntegration - __all__ = ("FORMAT", "init_logger", "init_sentry") FORMAT = "%(asctime)s | %(process)5s | %(name)30s | %(levelname)8s | %(message)s" @@ -23,7 +20,13 @@ def init_logger(debug: bool) -> None: def init_sentry() -> None: - """Initialise the Sentry SDK.""" + """Initialise the Sentry SDK if it's installed.""" + try: + import sentry_sdk + from sentry_sdk.integrations.falcon import FalconIntegration + except ImportError: + return + git_sha = os.environ.get("GIT_SHA", "development") sentry_sdk.init( dsn=os.environ.get("SNEKBOX_SENTRY_DSN", ""), |