Ë
    dQêj'  ã                   óˆ  — U d dl Z d dlZd dl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mZ d d	lmZmZmZ d d
lmZmZmZmZmZ  ej:                  «       Zg Ze e   e!d<   g Z"e e#e$ef      e!d<   dd„Z%dd„Z& e jN                  e&«       de$de$dz  fd„Z(dedefd„Z)deddfd„Z*dedededededdfd„Z+y)é    N)ÚCallable)ÚAnyÚcast)Úurlsplit)Úrun_sync)ÚFastAPIError)Úlogger)ÚTelemetryConfigÚ_unconfigured)Ú_logsÚmetricsÚtrace)ÚASGIAppÚMessageÚReceiveÚScopeÚSendÚ_ownedÚ_configuredÚreturnc                  ó–   — t        t        «      D ]  } 	 | j                  «        Œ y # t        $ r t	        j
                  d«       Y Œ7w xY w©Nz FastAPI telemetry cleanup failed)Útupler   Úforce_flushÚ	Exceptionr	   Ú	exception)Ú	components    ú_/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/fastapi/telemetry/_runtime.pyÚ_flushr      sK   € Üœ6“]ò Aˆ	ð	AØ×!Ñ!Õ#ñAøô ò 	AÜ×ÑÐ?Ö@ð	Aús   ”'§AÁAc                  óø   — t         5  t        t        «      } t        j                  «        d d d «        D ]  }	 |j	                  «        Œ y # 1 sw Y   Œ"xY w# t
        $ r t        j                  d«       Y ŒCw xY wr   )Ú_lockr   r   ÚclearÚshutdownr   r	   r   )Úownedr   s     r   Ú	_shutdownr%      sr   € Ü	ñ Ü”f“ˆÜ�‰Œ÷ð ò Aˆ	ð	AØ×ÑÕ ñA÷ð ûô ò 	AÜ×ÑÐ?Ö@ð	Aús   ‡$A¹AÁAÁA9Á8A9Úsignalc                 óh  — t        j                  d| › d�«      xs dj                  «       j                  «       }t        j                  d| › d�«      }|s;t        j                  d«      }|r$|j	                  d«      › d| j                  «       › �}|r|d	k(  ry |dk7  rt        d
| › d�«      ‚t        j                  d| › d�«      xs t        j                  d«      xs d}|dk7  rt        d«      ‚t        |«      }|j                  dvs|j                  st        d| j                  «       › d�«      ‚|S )NÚOTEL_Ú	_EXPORTERÚotlpÚOTEL_EXPORTER_OTLP_Ú	_ENDPOINTÚOTEL_EXPORTER_OTLP_ENDPOINTú/z/v1/Únonez*FastAPI automatic telemetry supports OTEL_zw_EXPORTER=otlp or none. Configure other exporters explicitly and pass telemetry={'auto_configure': False} to FastAPI().Ú	_PROTOCOLÚOTEL_EXPORTER_OTLP_PROTOCOLzhttp/protobufz¦FastAPI automatic telemetry requires the OTLP http/protobuf protocol. Configure other transports explicitly and pass telemetry={'auto_configure': False} to FastAPI().>   ÚhttpÚhttpszInvalid OTLP z- endpoint. Use an absolute HTTP or HTTPS URL.)	ÚosÚgetenvÚstripÚlowerÚremovesuffixr   r   ÚschemeÚhostname)r&   ÚexporterÚendpointÚprotocolÚparseds        r   Ú_export_endpointr?   *   sQ  € Ü—	‘	˜E & ¨Ð3Ó4Ò>¸×EÑEÓG×MÑMÓO€HÜ�y‰yÐ.¨v¨h°iÐ@ÓA€HÙÜ—9‘9Ð:Ó;ˆÙØ"×/Ñ/°Ó4Ð5°T¸&¿,¹,».Ð9IÐJˆHÙ�x 6Ò)ØØ�6ÒÜØ8¸¸ð Anð nó
ð 	
ô
 	�	‰	Ð'¨ x¨yÐ9Ó:ò 	Ü�9‰9Ð2Ó3ò	àð ð
 �?Ò"Üð uó
ð 	
ô �hÓ€FØ‡}�}Ð-Ñ-°V·_²_ÜØ˜FŸL™L›NÐ+Ð+XÐYó
ð 	
ð €Oó    Úproviderc                 ó–   — t        | «      j                  dk(  r0t        | «      j                  dk(  rt        | d«      s| j                  S | S )Nzlogfire._internal.metricsÚProxyMeterProviderÚadd_metric_reader)ÚtypeÚ
__module__Ú__name__ÚhasattrrA   )rA   s    r   Ú_registration_providerrI   I   sF   € ô 	ˆX‹×!Ñ!Ð%@Ò@Ü�‹N×#Ñ#Ð';Ò;Ü˜Ð"5Ô6à× Ñ Ð Ø€Or@   Úconfigc           	      óÊ  ‡‡‡‡‡‡‡‡— | d   r't        j                  dd«      j                  «       dk(  ryt        5  d| d   | d   fd	| d
   | d   fd| d   | d   fg}|D ���cg c]  \  }}}|rt	        |«      x}�|||f‘Œ }}}}|s
	 ddd«       y	 ddlmŠ ddlmŠ ddl	m
Š ddlm} ddlmŠ ddlm} ddlmŠ ddlm}	 ddlmŠ dt2        j4                  fdt6        j8                  fdt:        j<                  fdœ}dt>        dt>        d t@        fˆˆˆˆˆˆfd!„}|D �]Ú  \  Š}}|‰   \  }}tC        |�|n |«       «      ŠtE        ˆˆfd"„tF        D «       «      rŒ>|€ótI        ‰«      rè |‰|¬#«      }‰dk(  r0 |	d$¬%«      Š‰jK                  |«       t3        jL                  ‰«       nU‰d	k(  r! ||gd$¬&«      Št7        jN                  ‰«       n/ |d$¬%«      Š‰jQ                  |«       t;        jR                  ‰«        |«       }|‰u r.tF        jU                  ‰‰f«       tV        jU                  ‰«       �Œ‰jY                  «        tC        |«      Š	 ‰dk(  rt[        |	‰«      jJ                  }n2‰d	k(  rt[        |‰«      j\                  }nt[        |‰«      jP                  }ta        |«      st1        d'|› d(�«      ‚ |‰|¬#«      }	  ||«       tF        jU                  ‰‰f«       tV        jU                  |«       �ŒÝ 	 ddd«       yc c}}}w # t.        $ r}
t1        d«      |
‚d}
~
ww xY w# t^        $ r d}Y Œ—w xY w# tb        $ r |jY                  «        ‚ w xY w# 1 sw Y   yxY w))a°  Add OTLP exporters from the environment to the selected providers.

    Called automatically before ASGI lifespan startup. Existing providers and
    their exporters are preserved. FastAPI registers its own export components once
    per provider. It does not inspect or deduplicate other components' exporters.
    Enable with `FASTAPI_OTEL_AUTO_CONFIGURE=true` or pass
    `telemetry={"auto_configure": True}` to `FastAPI()`.
    Úauto_configureÚOTEL_SDK_DISABLEDÚ ÚtrueNÚTRACESÚtracingÚtracer_providerÚMETRICSr   Úmeter_providerÚLOGSÚlogsÚlogger_providerr   )ÚOTLPLogExporter)ÚOTLPMetricExporter)ÚOTLPSpanExporter)ÚLoggerProvider)ÚBatchLogRecordProcessor)ÚMeterProvider)ÚPeriodicExportingMetricReader)ÚTracerProvider)ÚBatchSpanProcessorz¿Automatic OpenTelemetry export requires fastapi[opentelemetry] or fastapi[standard]. Install the extra, configure providers yourself, or pass telemetry={'auto_configure': False} to FastAPI().ÚtracerÚmeterr	   )rP   rS   rU   r&   r<   r   c                 ór   •— | dk(  r ‰ ‰|¬«      «      S | dk(  r ‰ ‰|¬«      «      S  ‰ ‰|¬«      «      S )NrP   )r<   rS   © )r&   r<   r\   r`   rX   rY   rZ   r^   s     €€€€€€r   Úcreate_componentz5_configure_from_environment.<locals>.create_component�   sK   ø€ Ø˜Ò!Ù)Ñ*:ÀHÔ*MÓNÐNØ˜Ò"Ù4Ù&°Ô9óð ñ +©?ÀHÔ+MÓNÐNr@   c              3   ó:   •K  — | ]  \  }}|‰k(  xr |‰u –— Œ y ­w)Nrd   )Ú.0ÚsÚprA   r&   s      €€r   ú	<genexpr>z._configure_from_environment.<locals>.<genexpr>›   s%   øè ø€ ÒI±T°Q¸�1˜‘;Ò0 1¨ =Ó0ÑIùs   ƒ)r&   r<   F)Úshutdown_on_exit)Úmetric_readersrk   zThe configured OpenTelemetry z¡ provider does not support adding an OTLP exporter. Configure environment export through that provider and pass telemetry={'auto_configure': False} to FastAPI().)2r4   r5   r7   r!   r?   Ú4opentelemetry.exporter.otlp.proto.http._log_exporterrX   Ú6opentelemetry.exporter.otlp.proto.http.metric_exporterrY   Ú5opentelemetry.exporter.otlp.proto.http.trace_exporterrZ   Úopentelemetry.sdk._logsr[   Úopentelemetry.sdk._logs.exportr\   Úopentelemetry.sdk.metricsr]   Ú opentelemetry.sdk.metrics.exportr^   Úopentelemetry.sdk.tracer_   Úopentelemetry.sdk.trace.exportr`   ÚImportErrorr   r   Úget_tracer_providerr   Úget_meter_providerr   Úget_logger_providerÚstrr   rI   Úanyr   r   Úadd_span_processorÚset_tracer_providerÚset_meter_providerÚadd_log_record_processorÚset_logger_providerÚappendr   r#   r   rD   ÚAttributeErrorÚcallabler   )rJ   Úsignalsr&   ÚenabledrA   r<   Ú	requestedr[   r]   r_   ÚexcÚ	providersre   ÚexplicitÚnameÚget_providerr   ÚcurrentÚregisterr\   r`   rX   rY   rZ   r^   s     ` `              @@@@@@r   Ú_configure_from_environmentrŽ   U   s±  ÿ€ ð Ð#Ò$Ü�9‰9Ð(¨"Ó-×3Ñ3Ó5¸Ò?àÜ	ñ l%à�v˜iÑ(¨&Ð1BÑ*CÐDØ˜˜yÑ)¨6Ð2BÑ+CÐDØ�V˜F‘^ VÐ,=Ñ%>Ð?ð
ˆð .5÷
ð 
á)�˜ ÙÔ(8¸Ó(@Ð@˜HÐMð �X˜xÒ(ð
ˆ	ò 
ñ
 Ø÷l%ð l%ð	õõõõ ?ÝNÝ?ÝVÝ>ÝIð  ¤×!:Ñ!:Ð;Ø¤×!;Ñ!;Ð<Øœu×8Ñ8Ð9ñ
ˆ	ð	O¬ð 	O´sð 	O¼s÷ 	Oò 	Oð +4ó 9	%Ñ&ˆF�H˜hØ!*¨6Ñ!2ÑˆD�,Ü-Ø$Ð0‘±l³nóˆHô ÔI¼[ÔIÔIØØÐ¤M°(Ô$;Ù,°FÀXÔN�	Ø˜XÒ%Ù-¸uÔE�HØ×/Ñ/°	Ô:Ü×-Ñ-¨hÕ7Ø˜yÒ(Ù,Ø(1 {ÀUô �Hô ×.Ñ.¨xÕ8á-¸uÔE�HØ×5Ñ5°iÔ@Ü×-Ñ-¨hÔ7Ù&›.�Ø˜hÑ&Ü×&Ñ&¨°Ð'9Ô:Ü—M‘M (Ô+Ùð ×!Ñ!Ô#Ü1°'Ó:�ð
 Ø˜XÒ%Ü# N°HÓ=×PÑP‘HØ˜yÒ(Ü# M°8Ó<×NÑN‘Hä# N°HÓ=×VÑV�Hô ˜HÔ%Ü"Ø3°D°6ð :_ð _óð ñ
 )°ÀÔJˆIðÙ˜Ô#ô ×Ñ ¨Ð1Ô2Ü�M‰M˜)Ö$ñs9	%÷gl%ð l%ùô
øô. ò 	Üð Róàðûð	ûô@ "ò  Ø’ð ûô ò Ø×"Ñ"Ô$Øðú÷Ql%ð l%ús   ¼'MÁ#L
ÂMÂ6LÃ	FMÉAL*Ê $MËL;Ë/MÌMÌ	L'ÌL"Ì"L'Ì'MÌ*L8Ì5MÌ7L8Ì8MÌ;MÍMÍM"ÚappÚscopeÚreceiveÚsendc              ƒ   óp   ‡ ‡‡K  — dt         fˆ ˆfd„}dt         dd fˆfd„} ||||«      ƒ d {  –—†  y 7 Œ­w)Nr   c               “   ó¸   •K  —  ‰«       ƒ d {  –—† } | d   dk(  r	 t        ‰«       | S | S 7 Œ# t        $ r!}t        j                  d|«       Y d }~| S d }~ww xY w­w)NrE   zlifespan.startupz4FastAPI automatic telemetry configuration failed: %s)rŽ   r   r	   Úwarning)Úmessager‡   rJ   r‘   s     €€r   Úwrapped_receivez!lifespan.<locals>.wrapped_receiveÕ   sh   øè ø€ Ù›	—/ˆØ�6‰?Ð0Ò0ðÜ+¨FÔ3ð ˆˆwˆð "ùô ò ä—‘ØJÈC÷ð ð ˆûðüs3   ƒAŽ+�Aœ- §A­	A¶AÁAÁAÁAr–   c              “   ó~   •K  — | d   dv rt         rt        t        «      ƒ d {  –—†   ‰| «      ƒ d {  –—†  y 7 Œ7 Œ­w)NrE   >   úlifespan.startup.failedúlifespan.shutdown.failedúlifespan.shutdown.complete)r   r   r   )r–   r’   s    €r   Úwrapped_sendzlifespan.<locals>.wrapped_sendá   sA   øè ø€ à�F‰Oðñõ äœ6Ó"×"Ð"Ù�7‹m×Ñð #øØús   ƒ =£9¤=³;´=»=)r   )rJ   r�   r�   r‘   r’   r—   rœ   s   `  ``  r   Úlifespanr�   Ò   s:   úè ø€ ð
¤7ö 
ð¤Gð °õ ñ ˆe�_ lÓ
3×3Ò3ús   …)6®4¯6)r   N),Úatexitr4   Ú	threadingÚcollections.abcr   Útypingr   r   Úurllib.parser   Úanyio.to_threadr   Úfastapi.exceptionsr   Úfastapi.loggerr	   Úfastapi.telemetry._apir
   r   Úopentelemetryr   r   r   Ústarlette.typesr   r   r   r   r   ÚRLockr!   r   ÚlistÚ__annotations__r   r   rz   r   r%   r�   r?   rI   rŽ   r�   rd   r@   r   ú<module>r¬      sô   ðÜ Û 	Û Ý $ß Ý !å $Ý +Ý !ß Aß /Ñ /ß BÕ Bàˆ	�‰Ó€Ø€ˆˆS‰	Ó Ø%'€ˆT�%˜˜S˜‘/Ñ"Ó 'óAóAð €‡��	Ô ð˜Sð  S¨4¡Zó ð>	 Sð 	¨Só 	ðz%¨ð z%¸Dó z%ðz4Øð4Ø%,ð4Ø5:ð4ØELð4ØTXð4à	ô4r@   