§
    ÜŽ’j!  ã                  óv   — d dl mZ d dlZd dlZd dlmZmZ dd
„Z e¦   «         dœdd„Z	 e¦   «         dœdd„Z
dS )é    )ÚannotationsN)ÚAnyÚCallableÚfuncúCallable[..., Any]Úarg_nameÚstrÚreturnÚboolc                ó<   — t          j        | ¦  «        }||j        v S )zBReturns whether or not the given function has a specific parameter)ÚinspectÚ	signatureÚ
parameters)r   r   Úsigs      úJC:\Projects\DSCons\.venv\Lib\site-packages\anthropic\_utils\_reflection.pyÚfunction_has_argumentr      s   € å
Ô
˜DÑ
!Ô
!€CØ�s”~Ð%Ð%ó    )Úexclude_paramsÚsource_funcÚ
check_funcr   úset[str]ÚNonec               ó"  — t          j        |¦  «        }t          j        | ¦  «        }g }|j                             ¦   «         D ]“\  }}||v rŒ
|j                             |¦  «        }|s|                     d|› d�¦  «         Œ@|j        |j        k    rC|                     d|› dt          |j        ¦  «        › dt          |j        ¦  «        › �¦  «         Œ“Œ”|r5t          t          |¦  «        › d�d 
                    |¦  «        z   ¦  «        ‚dS )	zCEnsure that the signature of the second function matches the first.zthe `ú` param is missingztypes for the `z!` param are do not match; source=z
 checking=z0 errors encountered when comparing signatures:

ú

N)r   r   r   ÚitemsÚgetÚappendÚ
annotationÚreprÚAssertionErrorÚlenÚjoin)	r   r   r   Ú	check_sigÚ
source_sigÚerrorsÚnameÚsource_paramÚcustom_params	            r   Úassert_signatures_in_syncr*      sk  € õ Ô! *Ñ-Ô-€IÝÔ" ;Ñ/Ô/€Jà€Fà(Ô3×9Ò9Ñ;Ô;ð ð ÑˆˆlØ�>Ð!Ð!Øà Ô+×/Ò/°Ñ5Ô5ˆØð 	Ø�MŠMÐ: $Ð:Ð:Ð:Ñ;Ô;Ð;ØàÔ" lÔ&=Ò=Ð=Ø�MŠMð R $ð  Rð  RÍÈlÔNeÑIfÔIfð  Rð  RÕrvð  xDô  xOñ  sPô  sPð  Rð  Rñô ð ð ð	 >ð ð wÝ¥ F¡¤Ð_Ð_Ð_Ðbh×bmÒbmÐntÑbuÔbuÑuÑvÔvÐvðwð wr   Úoverloaded_funcc               ó¦  — t          j        | ¦  «        }t          j        |¦  «        }|st	          d|›�¦  «        ‚g }t          |¦  «        D ]Ë\  }}t          j        |¦  «        }|j                             ¦   «         D ]˜\  }	}
|	|v rŒ
|j                             |	¦  «        }|s| 	                    d|› d|	› d�¦  «         ŒC|j
        |
j
        k    rE| 	                    d|› d|	› dt          |
j
        ¦  «        › dt          |j
        ¦  «        › �¦  «         Œ™ŒÌ|r5t	          t          |¦  «        › d�d	                     |¦  «        z   ¦  «        ‚d
S )zTEnsure that every @overload of overloaded_func contains all params from source_func.z#No @overload definitions found for z	overload z: `r   z: types for `z` do not match; source=z
 overload=z9 errors encountered when comparing overload signatures:

r   N)r   r   Útyping_extensionsÚget_overloadsr!   Ú	enumerater   r   r   r   r   r    r"   r#   )r   r+   r   r%   Ú	overloadsr&   ÚiÚoverload_fnÚoverload_sigr'   r(   Úoverload_params               r   Úassert_overloads_in_syncr5   .   sÍ  € õ Ô" ;Ñ/Ô/€JÝ!Ô/°Ñ@Ô@€Iàð XÝÐVÀ?ÐVÐVÑWÔWÐWà€Få# IÑ.Ô.ð ð ‰ˆˆ;ÝÔ(¨Ñ5Ô5ˆØ",Ô"7×"=Ò"=Ñ"?Ô"?ð 	ð 	ÑˆD�,Ø�~Ð%Ð%Øà)Ô4×8Ò8¸Ñ>Ô>ˆNØ!ð Ø—’ÐH¨!ÐHÐH°ÐHÐHÐHÑIÔIÐIØàÔ(¨LÔ,CÒCÐCØ—’ð X ð  Xð  X°ð  Xð  XÍTÐR^ÔRiÑMjÔMjð  Xð  XÕvzð  |Jô  |Uñ  wVô  wVð  Xð  Xñô ð øð	ð ð 
ÝÝ�6‰{Œ{ÐWÐWÐWÐZ`×ZeÒZeÐflÑZmÔZmÑmñ
ô 
ð 	
ð
ð 
r   )r   r   r   r	   r
   r   )r   r   r   r   r   r   r
   r   )r   r   r+   r   r   r   r
   r   )Ú
__future__r   r   r-   Útypingr   r   r   Úsetr*   r5   © r   r   ú<module>r:      s»   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  ð&ð &ð &ð &ð  #˜s™uœuð	wð wð wð wð wð wðH  #˜s™uœuð	"
ð "
ð "
ð "
ð "
ð "
ð "
ð "
r   