Ë
    &�£j#  ã                   ó˜  — d Z ddlmZ ddlmZ e ed«       G d„ d«      «       «       Ze ed«       G d„ d	e«      «       «       Ze ed«       G d
„ de«      «       «       Ze ed«       G d„ de«      «       «       Ze ed«       G d„ de«      «       «       Z	e ed«       G d„ de	«      «       «       Z
e ed«       G d„ de
«      «       «       Zy)z>A module with the precisions of generic `~numpy.number` types.é    )Úfinal)Ú
set_moduleznumpy.typingc                   ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚNBitBaseaü  
    A type representing `numpy.number` precision during static type checking.

    Used exclusively for the purpose of static type checking, `NBitBase`
    represents the base of a hierarchical set of subclasses.
    Each subsequent subclass is herein used for representing a lower level
    of precision, *e.g.* ``64Bit > 32Bit > 16Bit``.

    .. versionadded:: 1.20

    .. deprecated:: 2.3
        Use ``@typing.overload`` or a ``TypeVar`` with a scalar-type as upper
        bound, instead.

    Examples
    --------
    Below is a typical usage example: `NBitBase` is herein used for annotating
    a function that takes a float and integer of arbitrary precision
    as arguments and returns a new float of whichever precision is largest
    (*e.g.* ``np.float16 + np.int64 -> np.float64``).

    .. code-block:: python

        >>> from typing import TYPE_CHECKING
        >>> import numpy as np
        >>> import numpy.typing as npt

        >>> def add[S: npt.NBitBase, T: npt.NBitBase](
        ...     a: np.floating[S], b: np.integer[T]
        ... ) -> np.floating[S | T]:
        ...     return a + b

        >>> a = np.float16()
        >>> b = np.int64()
        >>> out = add(a, b)

        >>> if TYPE_CHECKING:
        ...     reveal_locals()
        ...     # note: Revealed local types are:
        ...     # note:     a: numpy.floating[numpy.typing._16Bit*]
        ...     # note:     b: numpy.signedinteger[numpy.typing._64Bit*]
        ...     # note:     out: numpy.floating[numpy.typing._64Bit*]

    c                 ó\   •— h d£}| j                   |vrt        d«      ‚t        ‰| �  «        y )N>   Ú_8BitÚ_16BitÚ_32BitÚ_64BitÚ_96BitÚ_128Bitr   z*cannot inherit from final class "NBitBase")Ú__name__Ú	TypeErrorÚsuperÚ__init_subclass__)ÚclsÚallowed_namesÚ	__class__s     €ú:C:\FundamentalWorkbench\vendor\numpy\_typing\_nbit_base.pyr   zNBitBase.__init_subclass__8   s/   ø€ ò
ˆð �<‰<˜}Ñ,ÜÐHÓIÐIÜ‰Ñ!Õ#ó    )ÚreturnN)r   Ú
__module__Ú__qualname__Ú__doc__r   Ú__classcell__)r   s   @r   r   r      s   ø„ ñ+÷\$ñ $r   r   znumpy._typingc                   ó   — e Zd Zy)r   N©r   r   r   © r   r   r   r   @   s   „ ð 	r   r   c                   ó   — e Zd Zy)r   Nr   r   r   r   r   r   F   ó   „ ð 	r   r   c                   ó   — e Zd Zy)r   Nr   r   r   r   r   r   K   r    r   r   c                   ó   — e Zd Zy)r
   Nr   r   r   r   r
   r
   P   r    r   r
   c                   ó   — e Zd Zy)r	   Nr   r   r   r   r	   r	   U   r    r   r	   c                   ó   — e Zd Zy)r   Nr   r   r   r   r   r   Z   r    r   r   N)r   Útypingr   Únumpy._utilsr   r   r   r   r   r
   r	   r   r   r   r   Ú<module>r'      s%  ðÙ DÝ å #ð ÙˆNÓ÷5$ð 5$ó ó ð5$ðn ÙˆOÓô	ˆhó 	ó ó ð	ð ÙˆOÓô	ˆWó 	ó ó ð	ð ÙˆOÓô	ˆVó 	ó ó ð	ð ÙˆOÓô	ˆVó 	ó ó ð	ð ÙˆOÓô	ˆVó 	ó ó ð	ð ÙˆOÓô	ˆFó 	ó ó ñ	r   