§
    öŽ’jØ	  ã                   óœ   — d dl Z d dlmZ d dlmZmZmZ  ed¦  «        Z ed¦  «        Zdedef         de	e         d	eegef         fd
„Z
dS )é    N)ÚCallable)ÚAnyÚTypeVarÚget_type_hintsÚTÚRÚfunc.Úrequest_typeÚreturnc                 óü  ‡ — 	 t          j        ‰ ¦  «        }t          ‰ ¦  «        }n"# t          t          t
          f$ r ˆ fd„cY S w xY w|j                             ¦   «         D ]`\  }}|j        t           j	        j
        k    rA|                     |¦  «        }||k    r&|j        t           j	        j        urˆ fd„c S ˆ fd„c S Œa|j                             ¦   «         D ]œ\  }}|j        t           j	        j        t           j	        j        fv rn|                     |¦  «        }||k    rS|j        t           j	        j        urˆ fd„c S dt           dt"          t$          gt$          f         fˆ fd„} ||¦  «        c S Œ�ˆ fd„S )	aÍ  
    Create a wrapper function that knows how to call func with the request object.

    Returns a wrapper function that takes the request and calls func appropriately.

    The wrapper handles three calling patterns:
    1. Positional-only parameter typed as request_type (no default): func(req)
    2. Positional/keyword parameter typed as request_type (no default): func(**{param_name: req})
    3. No request parameter or parameter with default: func()
    c                 ó   •—  ‰¦   «         S ©N© ©Ú_r	   s    €úQC:\Projects\DSCons\.venv\Lib\site-packages\mcp\server\lowlevel\func_inspection.pyú<lambda>z%create_call_wrapper.<locals>.<lambda>   s   ø€ ˜˜™œ€ ó    c                 ó   •—  ‰¦   «         S r   r   r   s    €r   r   z%create_call_wrapper.<locals>.<lambda>!   ó   ø€  T T¡V¤V€ r   c                 ó   •—  ‰| ¦  «        S r   r   )Úreqr	   s    €r   r   z%create_call_wrapper.<locals>.<lambda>#   s   ø€  4 4¨¡9¤9€ r   c                 ó   •—  ‰¦   «         S r   r   r   s    €r   r   z%create_call_wrapper.<locals>.<lambda>,   r   r   Únamer   c                 ó   •‡ — ˆˆ fd„S )Nc                 ó   •—  ‰di ‰| i¤ŽS )Nr   r   )r   r	   r   s    €€r   r   zCcreate_call_wrapper.<locals>.make_keyword_wrapper.<locals>.<lambda>1   s   ø€  t tÐ':Ð':¨t°S¨kÐ':Ð':€ r   r   )r   r	   s   `€r   Úmake_keyword_wrapperz1create_call_wrapper.<locals>.make_keyword_wrapper0   s   øø€ Ø:Ð:Ð:Ð:Ð:Ð:r   c                 ó   •—  ‰¦   «         S r   r   r   s    €r   r   z%create_call_wrapper.<locals>.<lambda>6   s   ø€ �T�T‘V”V€ r   )ÚinspectÚ	signaturer   Ú
ValueErrorÚ	TypeErrorÚ	NameErrorÚ
parametersÚitemsÚkindÚ	ParameterÚPOSITIONAL_ONLYÚgetÚdefaultÚemptyÚPOSITIONAL_OR_KEYWORDÚKEYWORD_ONLYÚstrr   r   )r	   r
   ÚsigÚ
type_hintsÚ
param_nameÚparamÚ
param_typer   s   `       r   Úcreate_call_wrapperr4   	   s×  ø€ ð ÝÔ Ñ%Ô%ˆÝ# DÑ)Ô)ˆ
ˆ
øÝ�	¥9Ð-ð  ð  ð  ØÐÐÐÐÐÐð øøøð !œ^×1Ò1Ñ3Ô3ð -ð -Ñˆ
�EØŒ:�Ô*Ô:Ò:Ð:Ø#Ÿš¨
Ñ3Ô3ˆJØ˜\Ò)Ð)à”=­Ô(9Ô(?Ð?Ð?Ø+Ð+Ð+Ð+Ð+Ð+Ð+à,Ð,Ð,Ð,Ð,Ð,Ð,øð !œ^×1Ò1Ñ3Ô3ð 8ð 8Ñˆ
�EØŒ:�'Ô+ÔAÅ7ÔCTÔCaÐbÐbÐbØ#Ÿš¨
Ñ3Ô3ˆJØ˜\Ò)Ð)à”=­Ô(9Ô(?Ð?Ð?Ø+Ð+Ð+Ð+Ð+Ð+Ð+ð;­sð ;µxÅÀÅsÀ
Ô7Kð ;ð ;ð ;ð ;ð ;ð ;ð ,Ð+¨JÑ7Ô7Ð7Ð7Ð7øð ÐÐÐÐs   ƒ#' §AÁA)r   Úcollections.abcr   Útypingr   r   r   r   r   Útyper4   r   r   r   ú<module>r8      s§   ðØ €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à€GˆC�L„L€Ø€GˆC�L„L€ð-˜h s¨A vÔ.ð -¸dÀ1¼gð -È(ÐTUÐSVÐXYÐSYÔJZð -ð -ð -ð -ð -ð -r   