
    g
                        d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
mZmZmZ d dlmZ d dlmZmZmZ d dlmZmZ d d	lZ G d
 de      Z G d de      Ze G d de             Zy	)    )annotations)	dataclass)AnySequence)context)AggregationTemporalityMetricExporterMetricExportResultMetricsData)Aggregation)ReadableSpanSpanSpanProcessor)SpanExporterSpanExportResultNc                  2    e Zd ZdZddZddZd	d
dZddZy)WrapperSpanExporterz:A base class for SpanExporters that wrap another exporter.c                    || _         y N)wrapped_exporter)selfexporters     X/var/www/openai/venv/lib/python3.12/site-packages/logfire/_internal/exporters/wrapper.py__init__zWrapperSpanExporter.__init__   s
     (    c                8    | j                   j                  |      S r   r   export)r   spanss     r   r   zWrapperSpanExporter.export   s    $$++E22r   c                8    | j                   j                  |      S r   r   force_flushr   timeout_milliss     r   r"   zWrapperSpanExporter.force_flush       $$00@@r   c                8    | j                   j                          y r   r   shutdownr   s    r   r(   zWrapperSpanExporter.shutdown   s    &&(r   N)r   r   returnNone)r   zSequence[ReadableSpan]r*   r   i0u  r$   intr*   boolr*   r+   )__name__
__module____qualname____doc__r   r   r"   r(    r   r   r   r      s    D)3A)r   r   c                  V     e Zd ZdZ	 	 d	 	 	 	 	 	 	 d fdZdd	dZdd
dZdddZ xZS )WrapperMetricExporterz<A base class for MetricExporters that wrap another exporter.c                6    t         |   ||       || _        y )N)preferred_temporalitypreferred_aggregation)superr   r   )r   r   r9   r:   	__class__s       r   r   zWrapperMetricExporter.__init__"   s!     	/D\qr (r   c                >     | j                   j                  ||fi |S r   r   )r   metrics_datar$   kwargss       r   r   zWrapperMetricExporter.export+   s"    +t$$++L.SFSSr   c                8    | j                   j                  |      S r   r!   r#   s     r   r"   z!WrapperMetricExporter.force_flush.   r%   r   c                >     | j                   j                  |fi | y r   r'   )r   r$   r?   s      r   r(   zWrapperMetricExporter.shutdown1   s    &&&~@@r   )NN)r   r	   r9   z)dict[type, AggregationTemporality] | Noner:   zdict[type, Aggregation] | Noner*   r+   )i'  )r>   r   r$   floatr?   r   r*   r
   )r$   rB   r*   r/   r,   )r$   rB   r?   r   r*   r+   )	r1   r2   r3   r4   r   r   r"   r(   __classcell__)r<   s   @r   r7   r7      sT    F
 LP@D	) )  I)  >	)
 
)TAA Ar   r7   c                  @    e Zd ZU dZded<   d	d
dZddZddZdddZy)WrapperSpanProcessorz<A base class for SpanProcessors that wrap another processor.r   	processorNc                <    | j                   j                  ||       y r   )rF   on_start)r   spanparent_contexts      r   rH   zWrapperSpanProcessor.on_start;   s    n5r   c                :    | j                   j                  |       y r   )rF   on_end)r   rI   s     r   rL   zWrapperSpanProcessor.on_end>   s    d#r   c                    t        j                         5  | j                  j                          d d d        y # 1 sw Y   y xY wr   )logfiresuppress_instrumentationrF   r(   r)   s    r   r(   zWrapperSpanProcessor.shutdownA   s*    --/NN##% 0//s	   9Ac                    t        j                         5  | j                  j                  |      cd d d        S # 1 sw Y   y xY wr   )rN   rO   rF   r"   r#   s     r   r"   z WrapperSpanProcessor.force_flushE   s,    --/>>--n= 0//s	   :Ar   )rI   r   rJ   zcontext.Context | Noner*   r+   )rI   r   r*   r+   r0   r,   r-   )	r1   r2   r3   r4   __annotations__rH   rL   r(   r"   r5   r   r   rE   rE   5   s    F6$&>r   rE   )
__future__r   dataclassesr   typingr   r   opentelemetryr    opentelemetry.sdk.metrics.exportr   r	   r
   r   opentelemetry.sdk.metrics.viewr   opentelemetry.sdk.tracer   r   r   opentelemetry.sdk.trace.exportr   r   rN   r   r7   rE   r5   r   r   <module>rZ      s[    " !   ! t t 6 E E I ), ) AN A, >= > >r   