graph LR
Client_Initializer["Client Initializer"]
Public_Capture_Interfaces["Public Capture Interfaces"]
Exception_Hook_Integrator["Exception Hook Integrator"]
Event_Capture_Orchestrator["Event Capture Orchestrator"]
Context_Manager["Context Manager"]
Event_Data_Builder["Event Data Builder"]
Event_Dispatcher["Event Dispatcher"]
Remote_Transmitter["Remote Transmitter"]
Client_Initializer -- "configures" --> Context_Manager
Public_Capture_Interfaces -- "routes events to" --> Event_Capture_Orchestrator
Exception_Hook_Integrator -- "routes exceptions to" --> Event_Capture_Orchestrator
Event_Capture_Orchestrator -- "directs to construct payload" --> Event_Data_Builder
Context_Manager -- "provides contextual data to" --> Event_Data_Builder
Event_Capture_Orchestrator -- "passes payload to" --> Event_Dispatcher
Event_Dispatcher -- "delegates transmission to" --> Remote_Transmitter
Remote_Transmitter -- "reports status to" --> Event_Dispatcher
The raven-python client's core functionality resides within the raven.base subsystem, primarily orchestrated by the Client class. This subsystem manages the entire lifecycle of event reporting, from initial configuration and context management to event capture, data processing, and remote transmission. The Client Initializer sets up the client and its DSN, while Public Capture Interfaces and the Exception Hook Integrator provide the entry points for event and exception capture. The Event Capture Orchestrator (the Client itself) coordinates the flow, leveraging the Context Manager for enriching event data and the Event Data Builder for structuring the payload. Finally, the Event Dispatcher prepares the data for sending, delegating the actual network communication to the Remote Transmitter component, which handles the interaction with the Sentry server.
Responsible for the initial setup of the Raven client, including DSN configuration, transport setup, and the establishment of system-wide hooks.
Related Classes/Methods:
These are the primary public entry points that allow applications to explicitly capture different types of events (e.g., messages, exceptions).
Related Classes/Methods:
Facilitates automatic capture of unhandled exceptions by integrating with Python's exception handling mechanisms.
Related Classes/Methods:
The central control point within the Client that manages the entire event capture workflow, from receiving capture requests to delegating tasks for data processing and transmission.
Related Classes/Methods:
Provides and manages contextual data (e.g., user information, HTTP request details, custom tags, breadcrumbs) that enriches the captured events.
Related Classes/Methods:
Assembles raw event data into a structured, Sentry-compatible message payload, applying necessary transformations and processors.
Related Classes/Methods:
Manages the encoding (serialization) of the event message and delegates the actual transmission to the remote sender. This involves RemoteConfig which holds transport details.
Related Classes/Methods:
Handles the actual network communication to send the encoded event payload to the Sentry server, including retry logic and error handling for network failures. This is abstracted by the TransportRegistry and concrete transport implementations.
Related Classes/Methods: