o
    i|                     @  s  d dl mZ 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 d dlmZ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 deZ G dd deZ!eG dd deZ"eG dd deZ#eG dd deZ$dS )    )annotations)Sequence)	dataclass)Anycast)context)LogDataLogRecordProcessor)LogExporterLogExportResult)AggregationTemporalityMetricExporterMetricExportResultMetricsData)Aggregation)ReadableSpanSpanSpanProcessor)SpanExporterSpanExportResultNc                   @  s:   e Zd ZdZdddZdddZddddZdddZdS )WrapperSpanExporterz:A base class for SpanExporters that wrap another exporter.exporterr   returnNonec                 C  s
   || _ d S N)wrapped_exporter)selfr    r   i/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/logfire/_internal/exporters/wrapper.py__init__      
zWrapperSpanExporter.__init__spansSequence[ReadableSpan]r   c                 C     | j |S r   r   export)r   r!   r   r   r   r%         zWrapperSpanExporter.export0u  timeout_millisintboolc                 C  r#   r   r   force_flushr   r(   r   r   r   r,      r&   zWrapperSpanExporter.force_flushc                 C  s   | j   d S r   r   shutdownr   r   r   r   r/      s   zWrapperSpanExporter.shutdownN)r   r   r   r   )r!   r"   r   r   r'   r(   r)   r   r*   r   r   )__name__
__module____qualname____doc__r   r%   r,   r/   r   r   r   r   r      s    

r   c                      sL   e Zd ZdZ		dd fddZdd ddZdd!ddZd"d#ddZ  ZS )$WrapperMetricExporterz<A base class for MetricExporters that wrap another exporter.Nr   r   preferred_temporality)dict[type, AggregationTemporality] | Nonepreferred_aggregationdict[type, Aggregation] | Noner   r   c                   s   t  j||d || _d S )N)r9   r;   )superr   r   )r   r   r9   r;   	__class__r   r   r   %   s   
zWrapperMetricExporter.__init__'  metrics_datar   r(   floatkwargsr   r   c                 K  s   | j j||fi |S r   r$   )r   rA   r(   rC   r   r   r   r%   .   s   zWrapperMetricExporter.exportr*   c                 C  r#   r   r+   r-   r   r   r   r,   1   r&   z!WrapperMetricExporter.force_flushr'   c                 K  s   | j j|fi | d S r   r.   )r   r(   rC   r   r   r   r/   4   s   zWrapperMetricExporter.shutdown)NN)r   r   r9   r:   r;   r<   r   r   )r@   )rA   r   r(   rB   rC   r   r   r   )r(   rB   r   r*   r1   )r(   rB   rC   r   r   r   )	r4   r5   r6   r7   r   r%   r,   r/   __classcell__r   r   r>   r   r8   "   s    	r8   c                   @  sF   e Zd ZU dZded< ddddZdddZdddZddddZdS )WrapperSpanProcessor<A base class for SpanProcessors that wrap another processor.r   	processorNspanr   parent_contextcontext.Context | Noner   r   c                 C  s   | j || d S r   )rG   on_start)r   rH   rI   r   r   r   rK   >      zWrapperSpanProcessor.on_startr   c                 C  s   | j | d S r   )rG   on_end)r   rH   r   r   r   rM   A   s   zWrapperSpanProcessor.on_endc                 C  s8   t   | j  W d    d S 1 sw   Y  d S r   )logfiresuppress_instrumentationrG   r/   r0   r   r   r   r/   D   s   
"zWrapperSpanProcessor.shutdownr'   r(   r)   r*   c                 C  s8   t   | j|W  d    S 1 sw   Y  d S r   )rN   rO   rG   r,   r-   r   r   r   r,   H   s   

$z WrapperSpanProcessor.force_flushr   )rH   r   rI   rJ   r   r   )rH   r   r   r   r3   r1   r2   )	r4   r5   r6   r7   __annotations__rK   rM   r/   r,   r   r   r   r   rE   8   s   
 

rE   c                   @  s,   e Zd ZU dZded< ddd	Zd
d ZdS )WrapperLogExporterz9A base class for LogExporters that wrap another exporter.r
   r   batchSequence[LogData]r   r   c                 C  s   t t| j|S r   )r   r   r   r%   )r   rR   r   r   r   r%   S   rL   zWrapperLogExporter.exportc                 C  
   | j  S r   )r   r/   r0   r   r   r   r/   V   r    zWrapperLogExporter.shutdownN)rR   rS   r   r   )r4   r5   r6   r7   rP   r%   r/   r   r   r   r   rQ   M   s
   
 
rQ   c                   @  s8   e Zd ZU dZded< ddd	Zd
d ZddddZdS )WrapperLogProcessorrF   r	   rG   log_datar   r   r   c                 C  r#   r   )rG   on_emit)r   rV   r   r   r   rW   `   r&   zWrapperLogProcessor.on_emitc                 C  rT   r   )rG   r/   r0   r   r   r   r/   c   r    zWrapperLogProcessor.shutdownr'   r(   r)   c                 C  r#   r   )rG   r,   r-   r   r   r   r,   f   r&   zWrapperLogProcessor.force_flushN)rV   r   r   r   r1   )r(   r)   )r4   r5   r6   r7   rP   rW   r/   r,   r   r   r   r   rU   Z   s   
 
rU   )%
__future__r   collections.abcr   dataclassesr   typingr   r   opentelemetryr   opentelemetry.sdk._logsr   r	   opentelemetry.sdk._logs.exportr
   r    opentelemetry.sdk.metrics.exportr   r   r   r   opentelemetry.sdk.metrics.viewr   opentelemetry.sdk.tracer   r   r   opentelemetry.sdk.trace.exportr   r   rN   r   r8   rE   rQ   rU   r   r   r   r   <module>   s(    