
    g-                    F   d dl mZ d dl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mZmZmZmZmZmZmZmZ d dlmZ d d	lmZ 	 d d
lmZ eZ ejD                   G d de             Z# G d de      Z$ ede      Z% G d dee
e%         Z& G d de&e%   e      Z' G d de&e   e      Z( G d de&e   e      Z) G d de'e   e      Z* G d de'e   e      Z+ G d de'e   e      Z, G d d e&e   e      Z-e  G d! d"e&e    e       Z.ydZ.y# e!$ r dZ Y w xY w)#    )annotationsN)ABCabstractmethod)Lock)AnyGenericSequenceTypeVar)WeakSet)	CallbackTCounter	Histogram
InstrumentMeterMeterProviderNoOpMeterProviderObservableCounterObservableGaugeObservableUpDownCounterUpDownCounter)r   )
Attributes)_Gaugec                      e Zd ZU ded<    ej
                  e      Zded<    ej
                  e      Z	ded<    ej
                  e
      Zded	<   	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZddZddZdddZdddZy
)ProxyMeterProviderr   provider)default_factoryzWeakSet[_ProxyMeter]metersr   lockzset[str]suppressed_scopesNc           	        | j                   5  || j                  v rt               }n| j                  }t	         |j
                  |g|||d||||      }| j                  j                  |       |cd d d        S # 1 sw Y   y xY wN)version
schema_url)r   r   r   r   _ProxyMeter	get_meterr   add)selfnamer"   r#   argskwargsr   meters           N/var/www/openai/venv/lib/python3.12/site-packages/logfire/_internal/metrics.pyr%   zProxyMeterProvider.get_meter*   s     YYt---,.=="""4aRVaZaZ`a	E KKOOE" YYs   A'A>>Bc                    | j                   5  | j                  j                  |       | j                  D ]*  }|j                  |v s|j                  t                      , 	 d d d        y # 1 sw Y   y xY wN)r   r   updater   r(   	set_meterr   )r'   scopesr+   s      r,   suppress_scopesz"ProxyMeterProvider.suppress_scopes@   sQ    YY""))&1::'OO$5$78 % YYs   9A,A,,A5c                    | j                   5  || _        | j                  D ]  }|j                  |        	 d d d        y # 1 sw Y   y xY wr.   )r   r   r   r0   )r'   meter_providerr+   s      r,   set_meter_providerz%ProxyMeterProvider.set_meter_providerG   s4    YY*DM/ % YYs   *AA
c                    | j                   5  t        | j                  t              r| j                  j	                  |       d d d        y # 1 sw Y   y xY wr.   )r   
isinstancer   SDKMeterProvidershutdownr'   timeout_milliss     r,   r9   zProxyMeterProvider.shutdownM   s4    YY$--)9:&&~6 YY   6AAc                    | j                   5  t        | j                  t              r| j                  j	                  |       d d d        y # 1 sw Y   y xY wr.   )r   r7   r   r8   force_flushr:   s     r,   r>   zProxyMeterProvider.force_flushR   s4    YY$--)9:)).9 YYr<   )NN)r(   strr"   
str | Noner#   r@   r)   r   r*   r   returnr   )r1   r?   rA   Noner4   r   rA   rB   )i0u  )r;   floatrA   rB   )__name__
__module____qualname____annotations__dataclassesfieldr   r   r   r   setr   r%   r2   r5   r9   r>        r,   r   r   #   s    #4;#4#4W#MF M"""48D$8"3+"3"3C"HxH
 #!%	  	
   
,907
:rM   r   c                      e Zd Z	 	 	 	 	 	 	 	 	 	 d
 fdZddZ	 	 d	 	 	 	 	 	 	 ddZ	 	 d	 	 	 	 	 	 	 ddZ	 	 	 d	 	 	 	 	 	 	 	 	 ddZ	 	 d	 	 	 	 	 	 	 ddZ	 	 d	 	 	 	 	 	 	 ddZ		 	 	 d	 	 	 	 	 	 	 	 	 ddZ
	 	 	 d	 	 	 	 	 	 	 	 	 dd	Z xZS )r$   c                t    t         |   |||       t               | _        || _        t               | _        y r!   )super__init__r   _lock_meterr   _instruments)r'   r+   r(   r"   r#   	__class__s        r,   rQ   z_ProxyMeter.__init__Y   s3     	w:FV
<CIrM   c                    |j                  | j                  | j                  | j                        }| j                  5  || _        | j                  D ]  }|j                  |        	 ddd       y# 1 sw Y   yxY w)zCalled when a real meter provider is set on the creating _ProxyMeterProvider.

        Creates a real backing meter for this instance and notifies all created
        instruments so they can create real backing instruments.
        N)r%   _name_version_schema_urlrR   rS   rT   on_meter_set)r'   r4   
real_meter
instruments       r,   r0   z_ProxyMeter.set_metere   s^     $--djj$--IYIYZ
ZZ$DK #//
''
3 0	 ZZs   *A22A;c                    | j                   5  t        | j                  j                  |||      |||      }| j                  j                  |       |cd d d        S # 1 sw Y   y xY wr.   )rR   _ProxyCounterrS   create_counterrT   r&   r'   r(   unitdescriptionproxys        r,   r_   z_ProxyMeter.create_countert   sR     ZZ!$++"<"<T4"UW[]acnoE!!%( ZZ   AAA&c                    | j                   5  t        | j                  j                  |||      |||      }| j                  j                  |       |cd d d        S # 1 sw Y   y xY wr.   )rR   _ProxyUpDownCounterrS   create_up_down_counterrT   r&   r`   s        r,   rg   z"_ProxyMeter.create_up_down_counter   sV     ZZ'224{KTSWYdE !!%( ZZrd   c           	         | j                   5  t        | j                  j                  ||||      ||||      }| j                  j                  |       |cd d d        S # 1 sw Y   y xY wr.   )rR   _ProxyObservableCounterrS   create_observable_counterrT   r&   r'   r(   	callbacksra   rb   rc   s         r,   rj   z%_ProxyMeter.create_observable_counter   s\     ZZ+55dIt[YE !!%( ZZ   AAA(c                    | j                   5  t        | j                  j                  |||      |||      }| j                  j                  |       |cd d d        S # 1 sw Y   y xY wr.   )rR   _ProxyHistogramrS   create_histogramrT   r&   r`   s        r,   rp   z_ProxyMeter.create_histogram   sR     ZZ#DKK$@$@t[$Y[_aegrsE!!%( ZZrd   c                    t         t        d      | j                  5  t        | j                  j                  |||      |||      }| j                  j                  |       |cd d d        S # 1 sw Y   y xY w)NzGauge is not available in this version of OpenTelemetry SDK.
You should upgrade to 1.23.0 or newer:
   pip install opentelemetry-sdk>=1.23.0)GaugeRuntimeErrorrR   _ProxyGaugerS   create_gaugerT   r&   r`   s        r,   ru   z_ProxyMeter.create_gauge   sk     =; 
 ZZ 8 8t[ QSWY]_jkE!!%( ZZs   AA..A7c           	         | j                   5  t        | j                  j                  ||||      ||||      }| j                  j                  |       |cd d d        S # 1 sw Y   y xY wr.   )rR   _ProxyObservableGaugerS   create_observable_gaugerT   r&   rk   s         r,   rx   z#_ProxyMeter.create_observable_gauge   s\     ZZ)33D)T;WE !!%( ZZrm   c           	         | j                   5  t        | j                  j                  ||||      ||||      }| j                  j                  |       |cd d d        S # 1 sw Y   y xY wr.   )rR   _ProxyObservableUpDownCounterrS   !create_observable_up_down_counterrT   r&   rk   s         r,   r{   z-_ProxyMeter.create_observable_up_down_counter   s]     ZZ1==dItU`aE !!%( ZZrm   )
r+   r   r(   r?   r"   r@   r#   r@   rA   rB   rC   ) r|   )r(   r?   ra   r?   rb   r?   rA   r   )r(   r?   ra   r?   rb   r?   rA   r   )Nr|   r|   )
r(   r?   rl   Sequence[CallbackT] | Nonera   r?   rb   r?   rA   r   )r(   r?   ra   r?   rb   r?   rA   r   )r(   r?   ra   r?   rb   r?   rA   r   )
r(   r?   rl   r}   ra   r?   rb   r?   rA   r   )
r(   r?   rl   r}   ra   r?   rb   r?   rA   r   )rE   rF   rG   rQ   r0   r_   rg   rj   rp   ru   rx   r{   __classcell__rU   s   @r,   r$   r$   X   s   
F
F 
F 	
F
 
F 

F4$ 			 	 		
 
	 	  	
 
  15 . 	
  
* 			 	 		
 
	 	  	
 
* 15 . 	
  
* 15 . 	
  
!rM   r$   InstrumentT)boundc                  B    e Zd Z	 	 	 	 	 	 	 	 	 	 ddZddZedd       Zy)_ProxyInstrumentc                <    || _         || _        || _        || _        y r.   )rW   _unit_description_instrument)r'   r\   r(   ra   rb   s        r,   rQ   z_ProxyInstrument.__init__   s"     

'%rM   c                0    | j                  |      | _        y)z<Called when a real meter is set on the creating _ProxyMeter.N)_create_real_instrumentr   r'   r+   s     r,   rZ   z_ProxyInstrument.on_meter_set   s    
  77>rM   c                     y)z:Create an instance of the real instrument. Implement this.NrL   r   s     r,   r   z(_ProxyInstrument._create_real_instrument   s    rM   N)
r\   r   r(   r?   ra   r?   rb   r?   rA   rB   )r+   r   rA   rB   )r+   r   rA   r   )rE   rF   rG   rQ   rZ   r   r   rL   rM   r,   r   r      sR    
&
& 
& 	
&
 
& 

&? I IrM   r   c                  8     e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 d fdZ xZS )_ProxyAsynchronousInstrumentc                8    t         |   ||||       || _        y r.   )rP   rQ   
_callbacks)r'   r\   r(   rl   ra   rb   rU   s         r,   rQ   z%_ProxyAsynchronousInstrument.__init__   s     	T4=#rM   )r\   r   r(   r?   rl   r}   ra   r?   rb   r?   rA   rB   )rE   rF   rG   rQ   r~   r   s   @r,   r   r      sG    	$	$ 	$ .		$
 	$ 	$ 
	$ 	$rM   r   c                  2    e Zd Z	 d	 	 	 	 	 	 	 	 	 ddZddZy)r^   Nc                F     | j                   j                  ||g|i | y r.   r   r&   r'   amount
attributesr)   r*   s        r,   r&   z_ProxyCounter.add
  s&     	VZA$A&ArM   c                d    |j                  | j                  | j                  | j                        S r.   )r_   rW   r   r   r   s     r,   r   z%_ProxyCounter._create_real_instrument  s%    ##DJJ

D<M<MNNrM   r.   
r   zint | floatr   zAttributes | Noner)   r   r*   r   rA   rB   )r+   r   rA   r   rE   rF   rG   r&   r   rL   rM   r,   r^   r^   	  sH     )-	B	B &	B 	B 	B 
	BOrM   r^   c                  2    e Zd Z	 d	 	 	 	 	 	 	 	 	 ddZddZy)ro   Nc                F     | j                   j                  ||g|i | y r.   )r   recordr   s        r,   r   z_ProxyHistogram.record  s&     	 
DTDVDrM   c                d    |j                  | j                  | j                  | j                        S r.   )rp   rW   r   r   r   s     r,   r   z'_ProxyHistogram._create_real_instrument#  s%    %%djj$**d>O>OPPrM   r.   r   )r+   r   rA   r   )rE   rF   rG   r   r   rL   rM   r,   ro   ro     sH     )-EE &E 	E
 E 
EQrM   ro   c                      e Zd ZddZy)ri   c                z    |j                  | j                  | j                  | j                  | j                        S r.   )rj   rW   r   r   r   r   s     r,   r   z/_ProxyObservableCounter._create_real_instrument(  s,    ..tzz4??DJJX\XiXijjrM   N)r+   r   rA   r   rE   rF   rG   r   rL   rM   r,   ri   ri   '  s    krM   ri   c                      e Zd ZddZy)rw   c                z    |j                  | j                  | j                  | j                  | j                        S r.   )rx   rW   r   r   r   r   s     r,   r   z-_ProxyObservableGauge._create_real_instrument0  s,    ,,TZZ$**VZVgVghhrM   N)r+   r   rA   r   r   rL   rM   r,   rw   rw   ,  s    irM   rw   c                      e Zd ZddZy)rz   c                z    |j                  | j                  | j                  | j                  | j                        S r.   )r{   rW   r   r   r   r   s     r,   r   z5_ProxyObservableUpDownCounter._create_real_instrument8  s/    66tzz4??TXT^T^`d`q`qrrrM   N)r+   r   rA   r   r   rL   rM   r,   rz   rz   4  s    srM   rz   c                  2    e Zd Z	 d	 	 	 	 	 	 	 	 	 ddZddZy)rf   Nc                F     | j                   j                  ||g|i | y r.   r   r   s        r,   r&   z_ProxyUpDownCounter.add=  s&     	VZA$A&ArM   c                d    |j                  | j                  | j                  | j                        S r.   )rg   rW   r   r   r   s     r,   r   z+_ProxyUpDownCounter._create_real_instrumentF  s%    ++DJJ

DDUDUVVrM   r.   r   )r+   r   rA   r   r   rL   rM   r,   rf   rf   <  sH     )-BB &B 	B
 B 
BWrM   rf   c                  2    e Zd Z	 d	 	 	 	 	 	 	 	 	 ddZddZy)rt   Nc                F     | j                   j                  ||g|i | y r.   )r   rK   r   s        r,   rK   z_ProxyGauge.setM  s&     !D  EdEfErM   c                d    |j                  | j                  | j                  | j                        S r.   )ru   rW   r   r   r   s     r,   r   z#_ProxyGauge._create_real_instrumentV  s%    %%djj$**d>O>OPPrM   r.   r   )r+   r   )rE   rF   rG   rK   r   rL   rM   r,   rt   rt   L  sH     -1	F	F *	F 		F
 	F 	F	QrM   rt   )/
__future__r   rI   abcr   r   	threadingr   typingr   r   r	   r
   weakrefr   opentelemetry.metricsr   r   r   r   r   r   r   r   r   r   r   opentelemetry.sdk.metricsr8   opentelemetry.util.typesr   r   rr   ImportError	dataclassr   r$   r   r   r   r^   ro   ri   rw   rz   rf   rt   rL   rM   r,   <module>r      sq   "  #  2 2     H /,E 1: 1: 1:hE% EP m:6IsGK0 I2
$#3K#@# 
$O$W-w O Q&y19 Qk:;LMO` k
i 1is !89sW*=9= W 	Q&u-u Q Kw	  Es   D D D 