
    g                        d dl mZ d dlmZ d dlmZ 	 d dlmZ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
dddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZy# e$ r	  ed      w xY w)    )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_hookc                   t        |        t               j                  |f|||dt        | |      | j                  j                         d| y)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)logfire_instanceappr   r   r   r   r   kwargss           ]/var/www/openai/venv/lib/python3.12/site-packages/logfire/_internal/integrations/starlette.pyinstrument_starletter      sf     !1***
//1	
  @@PRef.55HHJ
 

    )r   r
   r   r   r   boolr   r   r   zServerRequestHook | Noner   zClientRequestHook | Noner   zClientResponseHook | Noner   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   <module>r*      s    "  ,qqM  P @ !&!48486:	 	
  2 2 4   
	/ s   A A