§
    6xÅ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    úKC:\Projects\Historical\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.
    Pass `telemetry={"auto_configure": False}` to `FastAPI()` when another component
    manages environment export.
    Ú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@   