Ë
    ¡ehU  ã                   óJ   — d Z ddlmZ ddlmZ ddlmc m	Z
 d„ Zd„ Zd„ Zd„ Zy)	zNTools for testing implementations of __array_function__ and ufunc overrides


é    )ÚARRAY_FUNCTIONS)ÚufuncNc                  ó†   — t         j                  j                  «       D � ch c]  } t        | t        «      r| ’Œ }} |S c c} w )zÎList all numpy ufuncs overridable via `__array_ufunc__`

    Parameters
    ----------
    None

    Returns
    -------
    set
        A set containing all overridable ufuncs in the public numpy API.
    )Ú_umathÚ__dict__ÚvaluesÚ
isinstanceÚ_ufunc)ÚobjÚufuncss     úU/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/numpy/testing/overrides.pyÚget_overridable_numpy_ufuncsr   
   sA   € ô $Ÿ_™_×3Ñ3Ó5ö *�cÜ˜C¤Ô(ò ð *€Fð *à€Mùò*s   ¡>c                 ó"   — t        | t        «      S )aÎ  Determine if a function can be overridden via `__array_ufunc__`

    Parameters
    ----------
    func : callable
        Function that may be overridable via `__array_ufunc__`

    Returns
    -------
    bool
        `True` if `func` is overridable via `__array_ufunc__` and
        `False` otherwise.

    Notes
    -----
    This function is equivalent to ``isinstance(func, np.ufunc)`` and
    will work correctly for ufuncs defined outside of Numpy.

    )r	   r
   ©Úfuncs    r   Úallows_array_ufunc_overrider      s   € ô( �dœFÓ#Ð#ó    c                  ó6   — ddl m}  t        j                  «       S )a  List all numpy functions overridable via `__array_function__`

    Parameters
    ----------
    None

    Returns
    -------
    set
        A set containing all functions in the public numpy API that are
        overridable via `__array_function__`.

    r   ©Úrecfunctions)Ú	numpy.libr   Ú_array_functionsÚcopyr   s    r   Ú%get_overridable_numpy_array_functionsr   2   s   € õ  'Ü× Ñ Ó"Ð"r   c                 ó   — | t         v S )ah  Determine if a Numpy function can be overridden via `__array_function__`

    Parameters
    ----------
    func : callable
        Function that may be overridable via `__array_function__`

    Returns
    -------
    bool
        `True` if `func` is a function in the Numpy API that is
        overridable via `__array_function__` and `False` otherwise.
    )r   r   s    r   Úallows_array_function_overrider   E   s   € ð Ô#Ð#Ð#r   )Ú__doc__Únumpy._core.overridesr   r   Únumpyr   r
   Únumpy._core.umathÚ_coreÚumathr   r   r   r   r   © r   r   ú<module>r$      s-   ðñõ
 FÝ !ß "Ð "òò"$ò.#ó&$r   