graph LR
raven_contrib_flask_Sentry["raven.contrib.flask.Sentry"]
raven_contrib_django_models_Sentry["raven.contrib.django.models.Sentry"]
raven_contrib_django_client_DjangoClient["raven.contrib.django.client.DjangoClient"]
raven_contrib_celery_CeleryClient["raven.contrib.celery.CeleryClient"]
raven_contrib_sanic_SanicClient["raven.contrib.sanic.SanicClient"]
raven_contrib_awslambda_LambdaClient["raven.contrib.awslambda.LambdaClient"]
raven_contrib_tornado_TornadoClient["raven.contrib.tornado.TornadoClient"]
raven_base_Client["raven.base.Client"]
raven_contrib_flask_Sentry -- "interacts with" --> raven_base_Client
raven_contrib_django_models_Sentry -- "initializes and uses" --> raven_contrib_django_client_DjangoClient
raven_contrib_django_models_Sentry -- "interacts with" --> raven_base_Client
raven_contrib_django_client_DjangoClient -- "interacts with" --> raven_base_Client
raven_contrib_celery_CeleryClient -- "interacts with" --> raven_base_Client
raven_contrib_sanic_SanicClient -- "interacts with" --> raven_base_Client
raven_contrib_awslambda_LambdaClient -- "interacts with" --> raven_base_Client
raven_contrib_tornado_TornadoClient -- "interacts with" --> raven_base_Client
The raven-python project provides a robust error reporting framework, primarily centered around the raven.base.Client. This core client is extended and specialized by various raven.contrib components to integrate with different web frameworks and asynchronous task queues. Each contrib component, such as raven.contrib.flask.Sentry, raven.contrib.django.models.Sentry (via SentryDjangoHandler), raven.contrib.celery.CeleryClient (via SentryCeleryHandler), raven.contrib.sanic.SanicClient (via Sentry), raven.contrib.awslambda.LambdaClient, and raven.contrib.tornado.TornadoClient (via AsyncSentryClient), is responsible for capturing framework-specific context and exceptions. These specialized clients then delegate the actual error processing and transmission to the raven.base.Client, ensuring a consistent reporting mechanism across diverse application environments. The raven.contrib.django.models.Sentry component further initializes and utilizes raven.contrib.django.client.DjangoClient for more granular Django-specific context extraction before interacting with the base client. This modular design allows for flexible integration while maintaining a centralized error handling core.
Integrates Sentry with Flask applications, typically via a Flask extension, to capture exceptions and messages within the Flask request/response cycle.
Related Classes/Methods:
Provides comprehensive Sentry integration for Django, handling signals, middleware, and potentially database query logging.
Related Classes/Methods:
A specialized client for Django that extends the base Sentry client to extract Django-specific context, such as request data, user information, and potentially SQL queries.
Related Classes/Methods:
Integrates Sentry with Celery, monitoring task execution and capturing exceptions that occur during asynchronous task processing.
Related Classes/Methods:
Provides Sentry integration for Sanic web applications, focusing on capturing exceptions and collecting request context specific to Sanic's asynchronous nature.
Related Classes/Methods:
Integrates Sentry with AWS Lambda functions, wrapping the Lambda handler to capture exceptions and extract relevant event data from the Lambda execution environment.
Related Classes/Methods:
Integrates Sentry with Tornado web applications, capturing exceptions and collecting request context within Tornado's event-driven framework.
Related Classes/Methods:
The core Sentry client responsible for processing, enriching, and transmitting error data. While not strictly an "integration" component, it is fundamental as all integration components rely on it to perform the actual error reporting.
Related Classes/Methods: