OwlCyberSecurity - MANAGER
Edit File: rust_tracing.cpython-312.pyc
� �0hv# � � � d Z ddlZddlmZmZ ddlmZmZmZm Z m Z ddlZddlm Z ddlmZ ddlmZ ddlmZ e e e e ef Z G d � d e� Z G d� de� Zd � Zdeeef deeef fd�Zdeeef ddfd�Zdeeef ddfd�Zdeeef ddfd�Zdeeef defd�Zdeeef defd�Z G d� d� Z! G d� de � Z"y)ae This integration ingests tracing data from native extensions written in Rust. Using it requires additional setup on the Rust side to accept a `RustTracingLayer` Python object and register it with the `tracing-subscriber` using an adapter from the `pyo3-python-tracing-subscriber` crate. For example: ```rust #[pyfunction] pub fn initialize_tracing(py_impl: Bound<'_, PyAny>) { tracing_subscriber::registry() .with(pyo3_python_tracing_subscriber::PythonCallbackLayerBridge::new(py_impl)) .init(); } ``` Usage in Python would then look like: ``` sentry_sdk.init( dsn=sentry_dsn, integrations=[ RustTracingIntegration( "demo_rust_extension", demo_rust_extension.initialize_tracing, event_type_mapping=event_type_mapping, ) ], ) ``` Each native extension requires its own integration. � N)�Enum�auto)�Any�Callable�Dict�Tuple�Optional)�Integration)�should_send_default_pii)�Span)�SENSITIVE_DATA_SUBSTITUTEc � � e Zd ZdZdZdZdZdZy)�RustTracingLevel�TRACE�DEBUG�INFO�WARN�ERRORN)�__name__� __module__�__qualname__�Trace�Debug�Info�Warn�Error� � �S/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/integrations/rust_tracing.pyr r . s � ��E��E��D��D��Er r c �D � e Zd Z e� Z e� Z e� Z e� Zy)�EventTypeMappingN)r r r r �Ignore�Exc� Breadcrumb�Eventr r r r! r! 6 s � � �V�F� �&�C���J��F�Er r! c �� � t | � } | t j t j fv ry| t j k( ry| t j k( ry| t j k( ryy)N�debug�info�warning�error)r r r r r r )�levels r �tracing_level_to_sentry_levelr, = se � ��U�#�E��!�'�'�)9�)?�)?�@�@�� �"�'�'� '�� �"�'�'� '�� �"�(�(� (�� r �event�returnc � � | j di � }i }i }dD ] }||v s�|| ||<