o
    i	                     @   sF  U d dl Z d dlmZmZ d dlmZ d dlZd dlZd dlm	Z	 d dl
mZ d dlmZmZ ee eejj B eeejjB  B Zeed< eee	ef gef eee	ef gee f B Zeed< d	ed
eejj fddZdeeB d
efddZd	ed
efddZdeee	ef gef eee	ef gee f B d
efddZdS )    N)	AwaitableCallable)	TypeAlias)ClientSession)ListRootsFnT)LifespanContextTRequestContext	RootsListRootsHandlerrootsreturnc                 C   s   g }| D ]9}t |tjjr|| qt |tjr$|tjj|d qt |tr7|tjjt|d qtd| |S )N)urizInvalid root: )	
isinstancemcptypesRootappendpydanticFileUrlstr
ValueError)r   
roots_listr r   Z/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/fastmcp/client/roots.pyconvert_roots_list   s   
r   handlerc                 C   s2   t | tr	t| S t| rt| S td|  )NzInvalid roots handler: )r   list!_create_roots_callback_from_rootsinspect
isfunction_create_roots_callback_from_fnr   )r   r   r   r   create_roots_callback!   s
   

r"   c                    s.   t   dtttf dtjjf fdd}|S )Ncontextr   c                    s   t jj dS )Nr   )r   r   ListRootsResult)r#   r$   r   r   _roots_callback1   s   z:_create_roots_callback_from_roots.<locals>._roots_callback)r   r   r   r   r   r   r%   )r   r&   r   r$   r   r   ,   s   
r   fnc                    s.   dt ttf dtjjtjjB f fdd}|S )Nr#   r   c              
      sp   z | }t |r|I d H }tjjt|dW S  ty7 } ztjjtjjt	|dW  Y d }~S d }~ww )Nr$   )codemessage)
r   isawaitabler   r   r%   r   	Exception	ErrorDataINTERNAL_ERRORr   )r#   r   er'   r   r   r&   =   s   

z7_create_roots_callback_from_fn.<locals>._roots_callback)r   r   r   r   r   r%   r,   )r'   r&   r   r/   r   r!   9   s   
r!   )r   collections.abcr   r   typingr   	mcp.typesr   r   r   mcp.client.sessionr   mcp.shared.contextr   r   r   r   r   r   r	   __annotations__r
   r   r"   r   r!   r   r   r   r   <module>   s>   
 ,


