
    `Vg                        d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	m
Z
  G d de
      Z G d d	e	      Zd
Ze G d de             Ze G d de             Z e        e       dZy)    )annotationsN)is_float_dtype)register_extension_dtype)NumericArrayNumericDtypec                      e Zd ZdZ ej
                  ej                        ZeZ	e
dd       Ze
d        Ze
dd       Zy)FloatingDtypea  
    An ExtensionDtype to hold a single size of floating dtype.

    These specific implementations are subclasses of the non-public
    FloatingDtype. For example we have Float32Dtype to represent float32.

    The attributes name & type are set when these subclasses are created.
    c                    t         S )zq
        Return the array type associated with this dtype.

        Returns
        -------
        type
        )FloatingArrayclss    \/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/pandas/core/arrays/floating.pyconstruct_array_typez"FloatingDtype.construct_array_type   s
         c                    t         S )N)FLOAT_STR_TO_DTYPEr   s    r   _str_to_dtype_mappingz#FloatingDtype._str_to_dtype_mapping&   s    !!r   c                (    |j                  ||      S )z{
        Safely cast the values to the given dtype.

        "safe" in this context means the casting is lossless.
        )copy)astype)r   valuesdtyper   s       r   
_safe_castzFloatingDtype._safe_cast*   s     }}U}..r   N)returnztype[FloatingArray])r   
np.ndarrayr   znp.dtyper   boolr   r   )__name__
__module____qualname____doc__npr   float64_default_np_dtyper   _checkerclassmethodr   r   r    r   r   r	   r	      s]     !,H  " " / /r   r	   c                  4    e Zd ZdZeZej                  ZdZ	dZ
y)r   a  
    Array of floating (optional missing) values.

    .. versionadded:: 1.2.0

    .. warning::

       FloatingArray is currently experimental, and its API or internal
       implementation may change without warning. Especially the behaviour
       regarding NaN (distinct from NA missing values) is subject to change.

    We represent a FloatingArray with 2 numpy arrays:

    - data: contains a numpy float array of the appropriate dtype
    - mask: a boolean array holding a mask on the data, True is missing

    To construct an FloatingArray from generic array-like input, use
    :func:`pandas.array` with one of the float dtypes (see examples).

    See :ref:`integer_na` for more.

    Parameters
    ----------
    values : numpy.ndarray
        A 1-d float-dtype array.
    mask : numpy.ndarray
        A 1-d boolean-dtype array indicating missing values.
    copy : bool, default False
        Whether to copy the `values` and `mask`.

    Attributes
    ----------
    None

    Methods
    -------
    None

    Returns
    -------
    FloatingArray

    Examples
    --------
    Create an FloatingArray with :func:`pandas.array`:

    >>> pd.array([0.1, None, 0.3], dtype=pd.Float32Dtype())
    <FloatingArray>
    [0.1, <NA>, 0.3]
    Length: 3, dtype: Float32

    String aliases for the dtypes are also available. They are capitalized.

    >>> pd.array([0.1, None, 0.3], dtype="Float32")
    <FloatingArray>
    [0.1, <NA>, 0.3]
    Length: 3, dtype: Float32
    g      ?g        N)r   r   r   r    r	   
_dtype_clsr!   nan_internal_fill_value_truthy_value_falsey_valuer&   r   r   r   r   6   s%    9v J 66MMr   r   z
An ExtensionDtype for {dtype} data.

This dtype uses ``pd.NA`` as missing value indicator.

Attributes
----------
None

Methods
-------
None
c                  L    e Zd Zej                  ZdZej                  d      Z	y)Float32DtypeFloat32float32r   N)
r   r   r   r!   r0   typename_dtype_docstringformatr    r&   r   r   r.   r.      #    ::DD%%I%6Gr   r.   c                  L    e Zd Zej                  ZdZej                  d      Z	y)Float64DtypeFloat64r"   r1   N)
r   r   r   r!   r"   r2   r3   r4   r5   r    r&   r   r   r8   r8      r6   r   r8   )r0   r"   )
__future__r   numpyr!   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandas.core.arrays.numericr   r   r	   r   r4   r.   r8   r   r&   r   r   <module>r?      s    "  4 >%/L %/PBL BJ " 7= 7 7 7= 7 7 ~~ r   