o
    i	                     @  sn   d dl mZ d dl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 dddZdS )    )annotationsN)AnyLiteral)Agent)InstrumentationSettings)Model)InstrumentedModel)Logfirelogfire_instancer	   objAgent | Model | Noneinclude_binary_contentbool | Noneinclude_contentversionLiteral[1, 2, 3] | None
event_mode$Literal['attributes', 'logs'] | Nonekwargsr   returnNone | InstrumentedModelc           	   	     s   t tjj  fddt| j | j | j	 d
 D }|dd t||||d
 D  || tdi |}t|trH||_d S t|trRt||S |d u r]t| d S tdt| )Nc                   s   i | ]\}}| v r||qS  r   .0kvexpected_kwarg_namesr   p/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/logfire/_internal/integrations/pydantic_ai.py
<dictcomp>   s
    z*instrument_pydantic_ai.<locals>.<dictcomp>)tracer_providermeter_providerevent_logger_providerc                 S  s   i | ]\}}|d ur||qS )Nr   r   r   r   r   r   )   s
    )r   r   r   r   z!Cannot instrument object of type r   )inspect	signaturer   __init__
parametersdictconfigget_tracer_providerget_meter_providerget_event_logger_provideritemsupdate
isinstancer   
instrumentr   r   instrument_all	TypeErrortype)	r
   r   r   r   r   r   r   final_kwargssettingsr   r   r   instrument_pydantic_ai   s:   





r5   )r
   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )
__future__r   r#   typingr   r   pydantic_air   pydantic_ai.agentr   pydantic_ai.modelsr   pydantic_ai.models.instrumentedr   logfirer	   r5   r   r   r   r   <module>   s    