§
    ˜Štj…  ã                   ó–  — U d dl Z d dlZd dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ  G d„ de¦  «        Z G d„ de¦  «        Zdae
ej                 e d<    ed¦  «        a!ee d<   de
e"         de
e"         de
e	e"e"f                  deddf
d„Z# ede¬¦  «        Z$	 d de"dede
e	e"ee"e%e&e'ee"         ee%         ee&         ee'         f         f                  dee$ge$f         fd„Z(de	e"ee"e%e&e'ee"         ee%         ee&         ee'         df	         f         ddfd„Z)dS )!é    N)Úwraps)ÚEnum)ÚAnyÚCallableÚDictÚOptionalÚSequenceÚUnionÚTypeVar)Útrace)ÚSERVICE_NAMEÚResource)ÚTracerProvider)ÚBatchSpanProcessor)ÚOTLPSpanExporter)Ú	Component)ÚSystemc                   ó:   — e Zd ZdZdZ	 dZ	 dZ	 dZ	 dede	fd„Z
d	S )
ÚOpenTelemetryGranularityz+The granularity of the OpenTelemetry spans.ÚnoneÚ	operationÚoperation_and_segmentÚallÚotherÚreturnc                 ó¶   — t           j        t           j        t           j        t           j        g}|                     | ¦  «        |                     |¦  «        k     S )zCompare two granularities.)r   ÚALLÚOPERATION_AND_SEGMENTÚ	OPERATIONÚNONEÚindex)Úselfr   Úorders      úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/chromadb/telemetry/opentelemetry/__init__.pyÚ__lt__zOpenTelemetryGranularity.__lt__$   sH   € õ %Ô(Ý$Ô:Ý$Ô.Ý$Ô)ð	
ˆð �{Š{˜4Ñ Ô  5§;¢;¨uÑ#5Ô#5Ò5Ð5ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r   r   r   r   Úboolr%   © r&   r$   r   r      s]   € € € € € Ø5Ð5à€DØà€IØ/à3ÐØ;à
€CØ9ð6˜Cð 6 Dð 6ð 6ð 6ð 6ð 6ð 6r&   r   c                   ó$   ‡ — e Zd Zdefˆ fd„Zˆ xZS )ÚOpenTelemetryClientÚsystemc                 óô   •— t          ¦   «                              |¦  «         t          |j        j        |j        j        |j        j        t          |j        j        r|j        j        nd¦  «        ¦  «         d S )Nr   )	ÚsuperÚ__init__Ú	otel_initÚsettingsÚchroma_otel_service_nameÚchroma_otel_collection_endpointÚchroma_otel_collection_headersr   Úchroma_otel_granularity)r"   r/   Ú	__class__s     €r$   r2   zOpenTelemetryClient.__init__0   sv   ø€ Ý‰Œ×Ò˜Ñ Ô Ð ÝØŒOÔ4ØŒOÔ;ØŒOÔ:Ý$à”?Ô:ð�”Ô7Ð7àñô ñ			
ô 		
ð 		
ð 		
ð 		
r&   )r'   r(   r)   r   r2   Ú__classcell__)r9   s   @r$   r.   r.   /   sD   ø€ € € € € ð
˜vð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r&   r.   Útracerr   ÚgranularityÚotel_service_nameÚotel_collection_endpointÚotel_collection_headersÚotel_granularityr   c           	      ól  — |t           j        k    rdS t          t          t	          | ¦  «        i¬¦  «        }t          |¬¦  «        }|                     t          t          t	          |¦  «        |¬¦  «        ¦  «        ¦  «         t          j
        |¦  «         t          j        t          ¦  «        a|adS )a4  Initializes module-level state for OpenTelemetry.

    Parameters match the environment variables which configure OTel as documented
    at https://docs.trychroma.com/deployment/observability.
    - otel_service_name: The name of the service for OTel tagging and aggregation.
    - otel_collection_endpoint: The endpoint to which OTel spans are sent
        (e.g. api.honeycomb.com).
    - otel_collection_headers: The headers to send with OTel spans
        (e.g. {"x-honeycomb-team": "abc123"}).
    - otel_granularity: The granularity of the spans to emit.
    N©Ú
attributes)Úresource)ÚendpointÚheaders)r   r    r   r   Ústrr   Úadd_span_processorr   r   r   Úset_tracer_providerÚ
get_tracerr'   r;   r<   )r=   r>   r?   r@   rD   Úproviders         r$   r3   r3   B   sº   € ð" Õ3Ô8Ò8Ð8ØˆÝ¥Lµ#Ð6GÑ2HÔ2HÐ#IÐJÑJÔJ€HÝ xÐ0Ñ0Ô0€HØ×ÒÝåÝÐ5Ñ6Ô6Ø/ðñ ô ñ	
ô 	
ñô ð õ 
Ô˜hÑ'Ô'Ð'õ Ô�hÑ'Ô'€FØ"€K€K€Kr&   ÚT)ÚboundÚ
trace_nameÚtrace_granularityrC   c                 ó8   ‡ ‡‡— dt           dt           fˆˆˆ fd„}|S )z!A decorator that traces a method.Úfr   c                 óª   •‡ — t          j        ‰ ¦  «        rt          ‰ ¦  «        ˆˆ ˆˆfd„¦   «         }|S t          ‰ ¦  «        ˆˆ ˆˆfd„¦   «         }|S )Nc               Ÿ   óH  •K  — ‰t           k     r ‰| i |¤Žƒ d {V —†S t          s ‰| i |¤Žƒ d {V —†S t                               ‰‰¬¦  «        5  t          dt          j                             d¦  «        i¦  «          ‰| i |¤Žƒ d {V —†cd d d ¦  «         S # 1 swxY w Y   d S ©NrB   Úpod_nameÚHOSTNAME©r<   r;   Ústart_as_current_spanÚadd_attributes_to_current_spanÚosÚenvironÚget©ÚargsÚkwargsrC   rQ   rO   rN   s     €€€€r$   Úasync_wrapperz6trace_method.<locals>.decorator.<locals>.async_wrapper‚   s5  øè è € ð %¥{Ò2Ð2Ø!"  DÐ!3¨FÐ!3Ð!3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ýð 4Ø!"  DÐ!3¨FÐ!3Ð!3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ý×1Ò1°*ÈÐ1ÑTÔTð 4ð 4Ý2Ø#¥R¤Z§^¢^°JÑ%?Ô%?Ð@ñô ð ð "#  DÐ!3¨FÐ!3Ð!3Ð3Ð3Ð3Ð3Ð3Ð3ð	4ð 4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s   Á<BÂBÂBc                  ó   •— ‰t           k     r ‰| i |¤ŽS t          s ‰| i |¤ŽS t                               ‰‰¬¦  «        5  t          dt          j                             d¦  «        i¦  «          ‰| i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S rT   rW   r]   s     €€€€r$   Úwrapperz0trace_method.<locals>.decorator.<locals>.wrapper’   sû   ø€ ð %¥{Ò2Ð2Ø˜1˜dÐ- fÐ-Ð-Ð-Ýð .Ø˜1˜dÐ- fÐ-Ð-Ð-Ý×1Ò1°*ÈÐ1ÑTÔTð .ð .Ý2Ø#¥R¤Z§^¢^°JÑ%?Ô%?Ð@ñô ð ð ˜1˜dÐ- fÐ-Ð-ð	.ð .ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s   Á 6BÂBÂ
B)ÚasyncioÚiscoroutinefunctionr   )rQ   r`   rb   rC   rO   rN   s   `  €€€r$   Ú	decoratorztrace_method.<locals>.decorator   s˜   øø€ ÝÔ& qÑ)Ô)ð 	å�1‰XŒXð
4ð 
4ð 
4ð 
4ð 
4ð 
4ð 
4ñ ŒXð
4ð !Ð õ �1‰XŒXð
.ð 
.ð 
.ð 
.ð 
.ð 
.ð 
.ñ ŒXð
.ð ˆNr&   )rL   )rN   rO   rC   re   s   ``` r$   Útrace_methodrf   j   sD   øøø€ ð* •Qð  �1ð  ð  ð  ð  ð  ð  ð  ð  ðD Ðr&   c                 óÎ   — t           t          j        k    rdS t          sdS t	          j        ¦   «         }|                     d„ |                      ¦   «         D ¦   «         ¦  «         dS )z#Add attributes to the current span.Nc                 ó   — i | ]
\  }}|®||“ŒS ©Nr,   )Ú.0ÚkÚvs      r$   ú
<dictcomp>z2add_attributes_to_current_span.<locals>.<dictcomp>»   s   € ÐNÐNÐN¡$ ! QÀÀ˜˜AÀÀÀr&   )r<   r   r    r;   r   Úget_current_spanÚset_attributesÚitems)rC   Úspans     r$   rY   rY   ¤   sh   € õ$ Õ.Ô3Ò3Ð3ØˆÝð ØˆÝÔ!Ñ#Ô#€DØ×ÒÐNÐN¨*×*:Ò*:Ñ*<Ô*<ÐNÑNÔNÑOÔOÐOÐOÐOr&   ri   )*rc   rZ   Ú	functoolsr   Úenumr   Útypingr   r   r   r   r	   r
   r   Úopentelemetryr   Úopentelemetry.sdk.resourcesr   r   Úopentelemetry.sdk.tracer   Úopentelemetry.sdk.trace.exportr   Ú5opentelemetry.exporter.otlp.proto.grpc.trace_exporterr   Úchromadb.configr   r   r   r.   r;   ÚTracerÚ__annotations__r<   rG   r3   rL   r+   ÚfloatÚintrf   rY   r,   r&   r$   ú<module>r      s  ðØ €€€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jà Ð Ð Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð ð ð ð SÐ RÐ RÐ RÐ RÐ Rà %Ð %Ð %Ð %Ð %Ð %Ø "Ð "Ð "Ð "Ð "Ð "ð6ð 6ð 6ð 6ð 6˜tñ 6ô 6ð 6ð8
ð 
ð 
ð 
ð 
˜)ñ 
ô 
ð 
ð "&€ˆ�”ÔÐ %Ð %Ñ %Ø(@Ð(@ÀÑ(HÔ(H€Ð%Ð HÐ HÑ Hð"#Ø ”}ð"#à& sœmð"#ð & d¨3°¨8¤nÔ5ð"#ð /ð	"#ð
 
ð"#ð "#ð "#ð "#ðJ €GˆC�xÐ Ñ Ô €ð( 	ð#7ð 7Øð7à/ð7ð ØØØØØØØØ˜”Ø˜”Ø˜”Ø˜”ðô	ð
ô	
ôð7ð$ ˆqˆc�1ˆfÔð%7ð 7ð 7ð 7ðtPØØØØØØØØ�SŒMØ�TŒNØ�UŒOØ�SŒMØðô
	
ð	ôðPð 
ðPð Pð Pð Pð Pð Pr&   