o
    zqf                     @  s  d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	 e	edG dd	 d	Z
G d
d de
ZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZddlmZ ddlmZmZmZmZmZmZmZmZmZmZm Z  ddl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJ ddlKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZU ddlVmWZWmXZX dd lYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZi dd!ljmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZ erddd"lmZmZmZmZmZ d#S eZeZeZeZeZd#S )$z(Private counterpart of ``numpy.typing``.    )annotations   )ufunc)
set_module)TYPE_CHECKINGfinalznumpy.typingc                      s"   e Zd ZdZd fddZ  ZS )NBitBasea  
    A type representing `numpy.number` precision during static type checking.

    Used exclusively for the purpose 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

    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 __future__ import annotations
        >>> from typing import TypeVar, TYPE_CHECKING
        >>> import numpy as np
        >>> import numpy.typing as npt

        >>> T1 = TypeVar("T1", bound=npt.NBitBase)
        >>> T2 = TypeVar("T2", bound=npt.NBitBase)

        >>> def add(a: np.floating[T1], b: np.integer[T2]) -> np.floating[T1 | T2]:
        ...     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*]

    returnNonec                   s(   h d}| j |vrtdt   d S )N>	   _8Bit_16Bit_32Bit_64Bit_80Bit_96Bit_128Bit_256Bitr   z*cannot inherit from final class "NBitBase")__name__	TypeErrorsuper__init_subclass__)clsallowed_names	__class__ U/root/parts/websockify/install/lib/python3.10/site-packages/numpy/_typing/__init__.pyr   8   s   
zNBitBase.__init_subclass__)r	   r
   )r   
__module____qualname____doc__r   __classcell__r   r   r   r   r   
   s    +r   c                   @     e Zd ZdS )r   Nr   r   r   r   r   r   r   r   C       r   c                   @  r!   )r   Nr"   r   r   r   r   r   F   r#   r   c                   @  r!   )r   Nr"   r   r   r   r   r   I   r#   r   c                   @  r!   )r   Nr"   r   r   r   r   r   L   r#   r   c                   @  r!   )r   Nr"   r   r   r   r   r   O   r#   r   c                   @  r!   )r   Nr"   r   r   r   r   r   R   r#   r   c                   @  r!   )r   Nr"   r   r   r   r   r   U   r#   r   c                   @  r!   )r   Nr"   r   r   r   r   r   X   r#   r      )_NestedSequence)	_NBitByte
_NBitShort	_NBitIntC	_NBitIntP_NBitInt	_NBitLong_NBitLongLong	_NBitHalf_NBitSingle_NBitDouble_NBitLongDouble))
_BoolCodes_UInt8Codes_UInt16Codes_UInt32Codes_UInt64Codes
_Int8Codes_Int16Codes_Int32Codes_Int64Codes_Float16Codes_Float32Codes_Float64Codes_Complex64Codes_Complex128Codes
_ByteCodes_ShortCodes
_IntCCodes
_IntPCodes	_IntCodes
_LongCodes_LongLongCodes_UByteCodes_UShortCodes_UIntCCodes_UIntPCodes
_UIntCodes_ULongCodes_ULongLongCodes
_HalfCodes_SingleCodes_DoubleCodes_LongDoubleCodes_CSingleCodes_CDoubleCodes_CLongDoubleCodes
_DT64Codes
_TD64Codes	_StrCodes_BytesCodes
_VoidCodes_ObjectCodes)
_CharLike_co_BoolLike_co_UIntLike_co_IntLike_co_FloatLike_co_ComplexLike_co_TD64Like_co_NumberLike_co_ScalarLike_co_VoidLike_co)_Shape
_ShapeLike)	DTypeLike
_DTypeLike_SupportsDType_VoidDTypeLike_DTypeLikeBool_DTypeLikeUInt_DTypeLikeInt_DTypeLikeFloat_DTypeLikeComplex_DTypeLikeTD64_DTypeLikeDT64_DTypeLikeObject_DTypeLikeVoid_DTypeLikeStr_DTypeLikeBytes_DTypeLikeComplex_co)NDArray	ArrayLike
_ArrayLike_FiniteNestedSequence_SupportsArray_SupportsArrayFunc_ArrayLikeInt_ArrayLikeBool_co_ArrayLikeUInt_co_ArrayLikeInt_co_ArrayLikeFloat_co_ArrayLikeComplex_co_ArrayLikeNumber_co_ArrayLikeTD64_co_ArrayLikeDT64_co_ArrayLikeObject_co_ArrayLikeVoid_co_ArrayLikeStr_co_ArrayLikeBytes_co_ArrayLikeUnknown_UnknownType)_UFunc_Nin1_Nout1_UFunc_Nin2_Nout1_UFunc_Nin1_Nout2_UFunc_Nin2_Nout2_GUFunc_Nin2_Nout1N)r   
__future__r    r   _utilsr   typingr   r   r   r   r   r   r   r   r   r   r   _nested_sequencer%   _nbitr&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   _char_codesr1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   _scalarsrZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   _shaperd   re   _dtype_likerf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   _array_likerv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   _ufuncr   r   r   r   r   r   r   r   r   <module>   s<    740+H\ 
