o
    i                     @  s   d dl mZ d dlmZ d dlmZ zd dlmZmZm	Z	 d dl
mZ W n ey/   edw d dlmZ d dlmZ d d	lmZ d
d
dddddddZdS )    )annotations)Any)	Starlette)ClientRequestHookClientResponseHookServerRequestHook)StarletteInstrumentorz`logfire.instrument_starlette()` requires the `opentelemetry-instrumentation-starlette` package.
You can install this with:
    pip install 'logfire[starlette]')Logfire) tweak_asgi_spans_tracer_provider)maybe_capture_server_headersFN)record_send_receivecapture_headersserver_request_hookclient_request_hookclient_response_hooklogfire_instancer	   appr   r   boolr   r   ServerRequestHook | Noner   ClientRequestHook | Noner   ClientResponseHook | Nonekwargsr   c                K  s>   t | t j|f|||dt| || j d| dS )zInstrument `app` so that spans are automatically created for each request.

    See the `Logfire.instrument_starlette` method for details.
    )r   r   r   )tracer_providermeter_providerN)r   r   instrument_appr
   configget_meter_provider)r   r   r   r   r   r   r   r    r   n/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/logfire/_internal/integrations/starlette.pyinstrument_starlette   s   
r   )r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )
__future__r   typingr   starlette.applicationsr   (opentelemetry.instrumentation.asgi.typesr   r   r   'opentelemetry.instrumentation.starletter   ImportErrorRuntimeErrorlogfirer	   #logfire._internal.integrations.asgir
   logfire._internal.utilsr   r   r   r   r   r   <module>   s(    