ó
    Ñ]j„  ã                   ó    • S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  \
" S5      rS\S	\\S
\4   /\S
\4   4   4S jrS/rS	\\   4S jrg)z
Internal helpers
é    )ÚCallable)Úwraps)Ú	signature)Ú
ModuleType)ÚTypeVarÚ_TÚxpÚreturn.c                 óT   ^ • S[         S[        4   S[         S[        4   4U 4S jjnU$ )a  
Decorator to automatically replace xp with the corresponding array module.

Use like

import numpy as np

@get_xp(np)
def func(x, /, xp, kwarg=None):
    return xp.func(x, kwarg=kwarg)

Note that xp must be a keyword argument and come after all non-keyword
arguments.

Úf.r
   c                óV  >^ • [        T 5      S[        S[        S[        4U U4S jj5       n[        T 5      nUR                  UR                  R                  5        VVs/ s H  u  p4US:w  d  M  UPM     snnS9nUR                  c  ST R                   S3Ul        XQl        U$ s  snnf )	NÚargsÚkwargsr
   c                  ó   >• T" U ST0UD6$ )Nr	   © )r   r   r   r	   s     €€Úi/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sklearn/externals/array_api_compat/_internal.pyÚ	wrapped_fÚ(get_xp.<locals>.inner.<locals>.wrapped_f    s   ø€ á�dÐ,˜rÐ, VÑ,Ð,ó    r	   )Ú
parametersz$Array API compatibility wrapper for zk.

See the corresponding documentation in NumPy/CuPy and/or the array API
specification for more details.

)	r   Úobjectr   Úreplacer   ÚitemsÚ__doc__Ú__name__Ú__signature__)r   r   ÚsigÚiÚparÚnew_sigr	   s   `     €r   ÚinnerÚget_xp.<locals>.inner   s´   ù€ Ü	ˆq‹ð	-œVð 	-¬vð 	-¼&÷ 	-ó 
ð	-ô ˜‹lˆØ—+‘+Ø*-¯.©.×*>Ñ*>Ô*@ÔNÒ*@¡ ÀAÈÁIŸÑ*@ÒNð ð 
ˆð ×ÑÑ$ð%%Ø%&§Z¡Z Lð 1ð!ˆIÔð #*ÔØÐùó Os   ÁB%
Á/B%
)r   r   )r	   r!   s   ` r   Úget_xpr#      s/   ø€ ð"”˜#œr˜'Ñ"ð ¬(°3¼°7Ñ*;÷ ð* €Lr   r#   c                  ó   • [         $ )N)Ú__all__r   r   r   Ú__dir__r&   :   s   € Ü€Nr   N)r   Úcollections.abcr   Ú	functoolsr   Úinspectr   Útypesr   Útypingr   r   r#   r%   ÚlistÚstrr&   r   r   r   Ú<module>r.      sp   ðñõ %Ý Ý Ý Ý áˆTƒ]€ð&ˆzð &˜h¨°°b°Ñ(9Ð':¸HÀSÈ"ÀWÑ<MÐ'MÑNô &ðR ˆ*€ð��c‘õ r   