
    k7i	                        % S SK r S SKJrJr  S SKJr  S SKrS SKrS SKJ	r	  S SK
Jr  S SKJrJr  \\   \\R"                  R$                     -  \\\R"                  R$                  -     -  r\\S'   \\\	\4   /\4   \\\	\4   /\\   4   -  r\\S'   S	\S
\\R"                  R$                     4S jrS\\-  S
\4S jrS	\S
\4S jrS\\\	\4   /\4   \\\	\4   /\\   4   -  S
\4S jrg)    N)	AwaitableCallable)	TypeAlias)ClientSession)ListRootsFnT)LifespanContextTRequestContext	RootsListRootsHandlerrootsreturnc                    / nU  H  n[        U[        R                  R                  5      (       a  UR	                  U5        M?  [        U[
        R                  5      (       a.  UR	                  [        R                  R                  US95        M  [        U[        5      (       aB  UR	                  [        R                  R                  [
        R                  " U5      S95        M  [        SU 35      e   U$ )N)urizInvalid root: )	
isinstancemcptypesRootappendpydanticFileUrlstr
ValueError)r   
roots_listrs      N/home/james-whalen/.local/lib/python3.13/site-packages/fastmcp/client/roots.pyconvert_roots_listr      s    Ja((a 8++,,ciinnn343ciinn1A1A!1DnEF~aS122      handlerc                     [        U [        5      (       a  [        U 5      $ [        R                  " U 5      (       a  [        U 5      $ [        SU  35      e)NzInvalid roots handler: )r   list!_create_roots_callback_from_rootsinspect
isfunction_create_roots_callback_from_fnr   )r   s    r   create_roots_callbackr%   !   sK     '4  099			G	$	$-g6627)<==r   c                    ^  [        T 5      m S[        [        [        4   S[        R
                  R                  4U 4S jjnU$ )Ncontextr   c                 F   >#    [         R                  R                  TS9$ 7f)Nr   )r   r   ListRootsResult)r'   r   s    r   _roots_callback:_create_roots_callback_from_roots.<locals>._roots_callback1   s       yy((u(55s   !)r   r	   r   r   r   r   r*   )r   r+   s   ` r   r!   r!   ,   sA     u%E6/? ?@6		"	"6
 r   fnc                    ^  S[         [        [        4   S[        R                  R
                  [        R                  R                  -  4U 4S jjnU$ )Nr'   r   c                 d  >#     T" U 5      n[         R                  " U5      (       a
  UI S h  vN n[        R                  R	                  [        U5      S9$  N*! [         aI  n[        R                  R                  [        R                  R                  [        U5      S9s S nA$ S nAff = f7f)Nr)   )codemessage)
r"   isawaitabler   r   r*   r   	Exception	ErrorDataINTERNAL_ERRORr   )r'   r   er-   s      r   r+   7_create_roots_callback_from_fn.<locals>._roots_callback=   s     		wKE""5))#99,,3Ee3L,MM $ 	99&&YY--A '  	sD   B0(A A)A B0A 
B-$>B("B-#B0(B--B0)r	   r   r   r   r   r*   r4   )r-   r+   s   ` r   r$   r$   9   sD    /? ?@		"	"SYY%8%8	8 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   <module>r?      sG    /     + ?Cy4		#77$sSYY^^?S:TT	9 T n],<<=>	IJ}.>>?@)IBVVWX i i D,@ >%>>


.0@!@ABIMN}.>>?@)IBVVW	X r   