§
    ­	Ê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 j'        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+dS )é    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 ];} 	 |                      ¦   «          Œ# t          $ r t	          j        d¦  «         Y Œ8w xY wd S ©Nz FastAPI telemetry cleanup failed)Útupler   Úforce_flushÚ	Exceptionr	   Ú	exception)Ú	components    úJC:\Projects\Muse2API\.venv\Lib\site-packages\fastapi/telemetry/_runtime.pyÚ_flushr      sw   € Ý�6‘]”]ð Að Aˆ	ð	AØ×!Ò!Ñ#Ô#Ð#Ð#øÝð 	Að 	Að 	AÝÔÐ?Ñ@Ô@Ð@Ð@Ð@ð	AøøøðAð As   ˜-­AÁAc                  ó  — t           5  t          t          ¦  «        } t                               ¦   «          d d d ¦  «         n# 1 swxY w Y   | D ];}	 |                     ¦   «          Œ# t
          $ r t          j        d¦  «         Y Œ8w xY wd S r   )Ú_lockr   r   ÚclearÚshutdownr   r	   r   )Úownedr   s     r   Ú	_shutdownr%      sæ   € Ý	ð ð Ý•f‘”ˆÝ�Š‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð Að Aˆ	ð	AØ×ÒÑ Ô Ð Ð øÝð 	Að 	Að 	AÝÔÐ?Ñ@Ô@Ð@Ð@Ð@ð	AøøøðAð As#   ˆ.AÁAÁ	AÁA'Á'BÂBÚsignalc                 óŽ  — t          j        d| › d�¦  «        pd                     ¦   «                              ¦   «         }t          j        d| › d�¦  «        }|sBt          j        d¦  «        }|r,|                     d¦  «        › d|                      ¦   «         › �}|r|d	k    rd S |dk    rt          d
| › d�¦  «        ‚t          j        d| › d�¦  «        pt          j        d¦  «        pd}|dk    rt          d¦  «        ‚t          |¦  «        }|j        dvs|j        s%t          d|                      ¦   «         › 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?   *   s¡  € Ý”	Ð3 &Ð3Ð3Ð3Ñ4Ô4Ð>¸×EÒEÑGÔG×MÒMÑOÔO€HÝŒyÐ@¨vÐ@Ð@Ð@ÑAÔA€HØð KÝ”9Ð:Ñ;Ô;ˆØð 	KØ"×/Ò/°Ñ4Ô4ÐJÐJ¸&¿,º,¹.¼.ÐJÐJˆHØð �x 6Ò)Ð)ØˆtØ�6ÒÐÝðn¸ð nð nð nñ
ô 
ð 	
õ
 	Œ	Ð9¨Ð9Ð9Ð9Ñ:Ô:ð 	ÝŒ9Ð2Ñ3Ô3ð	àð ð
 �?Ò"Ð"Ýð uñ
ô 
ð 	
õ �hÑÔ€FØ„}Ð-Ð-Ð-°V´_Ð-ÝØY˜FŸLšL™NœNÐYÐYÐYñ
ô 
ð 	
ð €Oó    Úproviderc                 ó”   — t          | ¦  «        j        dk    r/t          | ¦  «        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   sQ   € õ 	ˆX‰ŒÔ!Ð%@Ò@Ð@Ý�‰NŒNÔ#Ð';Ò;Ð;Ý˜Ð"5Ñ6Ô6ð <ð Ô Ð Ø€Or@   Úconfigc                 ó„  ‡‡‡‡‡‡‡‡‡— | d         r+t          j        dd¦  «                             ¦   «         dk    rdS t          5  d| d         | d         fd	| d
         | d         fd| d         | d         fg}ˆfd„|D ¦   «         }|s	 ddd¦  «         dS 	 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Š n"# t,          $ r}t/          d¦  «        |‚d}~ww xY wdt0          j        fdt4          j        fdt8          j        fdœ}dt<          d t<          d!t>          fˆˆˆˆˆˆfd"„}|D �]h\  Š}	Š|‰         \  }
}tA          |	�|	n	 |¦   «         ¦  «        ŠtC          ˆˆfd#„tD          D ¦   «         ¦  «        rŒO|	�€ tG          ‰¦  «        �r |‰‰¬$¦  «        }‰dk    r6 |d%¬&¦  «        Š‰ $                    |¦  «         t1          j%        ‰¦  «         n^‰d	k    r# ||gd%¬'¦  «        Št5          j&        ‰¦  «         n5 |d%¬&¦  «        Š‰ '                    |¦  «         t9          j(        ‰¦  «          |¦   «         }|‰u r8tD           )                    ‰‰f¦  «         tT           )                    ‰¦  «         �ŒO‰ +                    ¦   «          tA          |¦  «        Š	 ‰dk    rtY          |‰¦  «        j$        }n1‰d	k    rtY          |‰¦  «        j-        }ntY          |‰¦  «        j'        }n# t\          $ r d}Y nw xY wt_          |¦  «        st/          d(|
› d)�¦  «        ‚ |‰‰¬$¦  «        }	  ||¦  «         n## t`          $ r | +                    ¦   «          ‚ w xY wtD           )                    ‰‰f¦  «         tT           )                    |¦  «         �Œj	 ddd¦  «         dS # 1 swxY w Y   dS )*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_providerc                 óH   •— g | ]\  }}}|rt          |¦  «        xŠ®||‰f‘ŒS ©N)r?   )Ú.0r&   ÚenabledrA   r<   s       €r   ú
<listcomp>z/_configure_from_environment.<locals>.<listcomp>i   sM   ø€ ð 
ð 
ð 
á)�˜ Øð
õ )9¸Ñ(@Ô(@Ð@˜HÐMð �X˜xÐ(àMÐMÐMr@   r   )Ú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                 óš   •— | dk    r ‰ ‰|¬¦  «        ¦  «        S | dk    r ‰ ‰|¬¦  «        ¦  «        S  ‰ ‰|¬¦  «        ¦  «        S )NrP   )r<   rS   © )r&   r<   ra   re   r]   r^   r_   rc   s     €€€€€€r   Úcreate_componentz5_configure_from_environment.<locals>.create_component�   s   ø€ Ø˜Ò!Ð!Ø)Ð)Ð*:Ð*:ÀHÐ*MÑ*MÔ*MÑNÔNÐNØ˜Ò"Ð"Ø4Ð4Ø&Ð&°Ð9Ñ9Ô9ñô ð ð +Ð*¨?¨?ÀHÐ+MÑ+MÔ+MÑNÔNÐNr@   c              3   ó2   •K  — | ]\  }}|‰k    o|‰u V — Œd S rY   ri   )rZ   ÚsÚprA   r&   s      €€r   ú	<genexpr>z._configure_from_environment.<locals>.<genexpr>›   s4   øè è € ÐIÐI±T°Q¸�1˜’;Ð0 1¨ =ÐIÐIÐIÐIÐIÐIr@   )r&   r<   F)Úshutdown_on_exit)Úmetric_readersro   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().)1r4   r5   r7   r!   Ú4opentelemetry.exporter.otlp.proto.http._log_exporterr]   Ú6opentelemetry.exporter.otlp.proto.http.metric_exporterr^   Ú5opentelemetry.exporter.otlp.proto.http.trace_exporterr_   Úopentelemetry.sdk._logsr`   Úopentelemetry.sdk._logs.exportra   Úopentelemetry.sdk.metricsrb   Ú opentelemetry.sdk.metrics.exportrc   Úopentelemetry.sdk.tracerd   Úopentelemetry.sdk.trace.exportre   Ú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   ÚsignalsÚ	requestedr`   rb   rd   ÚexcÚ	providersrj   ÚexplicitÚnameÚget_providerr   ÚcurrentÚregisterra   re   r]   r^   r_   rc   r<   rA   r&   s                  @@@@@@@@@r   Ú_configure_from_environmentr‘   U   s  øøøøøøøøø€ ð Ð#Ô$ðåŒ9Ð(¨"Ñ-Ô-×3Ò3Ñ5Ô5¸Ò?Ð?àˆÝ	ð l%ð l%à�v˜iÔ(¨&Ð1BÔ*CÐDØ˜˜yÔ)¨6Ð2BÔ+CÐDØ�V˜F”^ VÐ,=Ô%>Ð?ð
ˆð

ð 
ð 
ð 
à-4ð
ñ 
ô 
ˆ	ð
 ð 	Øðl%ð l%ð l%ñ l%ô l%ð l%ð l%ð l%ð	ðð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ð ?Ð>Ð>Ð>Ð>Ð>ØNÐNÐNÐNÐNÐNØ?Ð?Ð?Ð?Ð?Ð?ØVÐVÐVÐVÐVÐVØ>Ð>Ð>Ð>Ð>Ð>ØIÐIÐIÐIÐIÐIÐIøÝð 	ð 	ð 	Ýð Rñô àðøøøøð	øøøð  ¥Ô!:Ð;Ø¥Ô!;Ð<Ø�uÔ8Ð9ð
ð 
ˆ	ð	O­ð 	Oµsð 	O½sð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð 	Oð +4ð 9	%ñ 9	%Ñ&ˆF�H˜hØ!*¨6Ô!2ÑˆD�,Ý-Ø$Ð0��°l°l±n´nñô ˆHõ ÐIÐIÐIÐIÐI½[ÐIÑIÔIÑIÔIð ØØÑ¥M°(Ñ$;Ô$;ÑØ,Ð,°FÀXÐNÑNÔN�	Ø˜XÒ%Ð%Ø-˜~¸uÐEÑEÔE�HØ×/Ò/°	Ñ:Ô:Ð:ÝÔ-¨hÑ7Ô7Ð7Ð7Ø˜yÒ(Ð(Ø,˜}Ø(1 {ÀUð ñ  ô  �Hõ Ô.¨xÑ8Ô8Ð8Ð8à-˜~¸uÐEÑEÔE�HØ×5Ò5°iÑ@Ô@Ð@ÝÔ-¨hÑ7Ô7Ð7Ø&˜,™.œ.�Ø˜hÐ&Ð&Ý×&Ò&¨°Ð'9Ñ:Ô:Ð:Ý—M’M (Ñ+Ô+Ð+Ùð ×!Ò!Ñ#Ô#Ð#Ý1°'Ñ:Ô:�ð
 Ø˜XÒ%Ð%Ý# N°HÑ=Ô=ÔP�H�HØ˜yÒ(Ð(Ý# M°8Ñ<Ô<ÔN�H�Hå# N°HÑ=Ô=ÔV�HøøÝ!ð  ð  ð  Ø���ð øøøå˜HÑ%Ô%ð Ý"ð_°Dð _ð _ð _ñô ð ð
 )Ð(°ÀÐJÑJÔJˆIðØ�˜Ñ#Ô#Ð#Ð#øÝð ð ð Ø×"Ò"Ñ$Ô$Ð$Øðøøøõ ×Ò ¨Ð1Ñ2Ô2Ð2Ý�MŠM˜)Ñ$Ô$Ð$Ñ$ðs9	%ðgl%ð l%ð l%ñ l%ô l%ð l%ð l%ð l%ð l%ð l%ð l%ð l%øøøð l%ð l%ð l%ð l%ð l%ð l%su   ÁAN5Â6CÃN5Ã
C.ÃC)Ã)C.Ã.GN5Ê0AK>Ë=N5Ë>LÌ
N5ÌLÌ2N5Í MÍN5Í M,Í,;N5Î5N9Î<N9ÚappÚscopeÚreceiveÚsendc              ƒ   óp   ‡ ‡‡K  — dt           fˆ ˆfd„}dt           dd fˆfd„} ||||¦  «        ƒ d {V —† d S )Nr   c               “   ó¾   •K  —  ‰¦   «         ƒ d {V —†} | d         dk    r=	 t          ‰¦  «         n,# t          $ r}t          j        d|¦  «         Y d }~nd }~ww xY w| S )NrE   zlifespan.startupz4FastAPI automatic telemetry configuration failed: %s)r‘   r   r	   Úwarning)ÚmessagerŠ   rJ   r”   s     €€r   Úwrapped_receivez!lifespan.<locals>.wrapped_receiveÕ   sœ   øè è € Ø˜™	œ	�/�/�/�/�/�/ˆØ�6Œ?Ð0Ò0Ð0ðÝ+¨FÑ3Ô3Ð3Ð3øÝð ð ð å”ØJÈCñô ð ð ð ð ð ð øøøøðøøøð
 ˆs   ¡1 ±
A»AÁAr™   c              “   ó„   •K  — | d         dv r!t           rt          t          ¦  «        ƒ d {V —†  ‰| ¦  «        ƒ d {V —† d S )NrE   >   úlifespan.startup.failedúlifespan.shutdown.failedúlifespan.shutdown.complete)r   r   r   )r™   r•   s    €r   Úwrapped_sendzlifespan.<locals>.wrapped_sendá   so   øè è € à�FŒOððð õ ðõ �6Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Øˆd�7‰mŒmÐÐÐÐÐÐÐÐÐr@   )r   )rJ   r’   r“   r”   r•   rš   rŸ   s   `  ``  r   Úlifespanr    Ò   s�   øøøè è € ð
¥7ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð¥Gð °ð ð ð ð ð ð ð ˆ#ˆe�_ lÑ
3Ô
3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3r@   )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   r~   r   r%   r�   r?   rI   r‘   r    ri   r@   r   ú<module>r¯      s:  ðØ €€€€Ø 	€	€	€	Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !à $Ð $Ð $Ð $Ð $Ð $Ø +Ð +Ð +Ð +Ð +Ð +Ø !Ð !Ð !Ð !Ð !Ð !Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bàˆ	ŒÑÔ€Ø€ˆˆSŒ	Ð Ð Ñ Ø%'€ˆT�%˜˜S˜”/Ô"Ð 'Ð 'Ñ 'ðAð Að Að AðAð Að Að Að €„�	Ñ Ô Ð ð˜Sð  S¨4¡Zð ð ð ð ð>	 Sð 	¨Sð 	ð 	ð 	ð 	ðz%¨ð z%¸Dð z%ð z%ð z%ð z%ðz4Øð4Ø%,ð4Ø5:ð4ØELð4ØTXð4à	ð4ð 4ð 4ð 4ð 4ð 4r@   