
    Mh                    P   % S SK Jr  S SKJr  S SKrS SKJr  S SKJ	r	  S SK
JrJr   " S S\5      r " S	 S
\5      rSr\ " S S\5      5       r\ " S S\5      5       r\R$                  " \R&                  5      \" 5       \R$                  " \R(                  5      \" 5       0rS\S'   g)    )annotations)ClassVarN)register_extension_dtype)is_float_dtype)NumericArrayNumericDtypec                      \ rS rSrSr\R                  " \R                  5      r\	r
\SS j5       r\S	S j5       r\S
S j5       rSrg)FloatingDtype   a
  
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                    [         $ )zI
Return the array type associated with this dtype.

Returns
-------
type
)FloatingArrayclss    M/var/www/html/env/lib/python3.13/site-packages/pandas/core/arrays/floating.pyconstruct_array_type"FloatingDtype.construct_array_type   s
         c                    [         $ )N)NUMPY_FLOAT_TO_DTYPEr   s    r   _get_dtype_mapping FloatingDtype._get_dtype_mapping(   s    ##r   c                     UR                  X#S9$ )zc
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_castFloatingDtype._safe_cast,   s     }}U}..r    N)returnztype[FloatingArray])r    dict[np.dtype, FloatingDtype])r   
np.ndarrayr   znp.dtyper   boolr    r"   )__name__
__module____qualname____firstlineno____doc__npr   float64_default_np_dtyper   _checkerclassmethodr   r   r   __static_attributes__r   r   r   r
   r
      s[     ,H  $ $ / /r   r
   c                  <    \ rS rSrSr\r\R                  r	Sr
SrSrg)r   8   a  
Array of floating (optional missing) values.

.. 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        r   N)r$   r%   r&   r'   r(   r
   
_dtype_clsr)   nan_internal_fill_value_truthy_value_falsey_valuer.   r   r   r   r   r   8   s'    7r J 66 MMr   r   az  
An ExtensionDtype for {dtype} data.

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

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

Methods
-------
None

Examples
--------
For Float32Dtype:

>>> ser = pd.Series([2.25, pd.NA], dtype=pd.Float32Dtype())
>>> ser.dtype
Float32Dtype()

For Float64Dtype:

>>> ser = pd.Series([2.25, pd.NA], dtype=pd.Float64Dtype())
>>> ser.dtype
Float64Dtype()
c                  Z    \ rS rSr% \R
                  rSrS\S'   \	R                  SS9rSrg)	Float32Dtype   Float32ClassVar[str]namefloat32r   r   N)r$   r%   r&   r'   r)   r<   typer;   __annotations___dtype_docstringformatr(   r.   r   r   r   r7   r7      (    ::D#D-#%%I%6Gr   r7   c                  Z    \ rS rSr% \R
                  rSrS\S'   \	R                  SS9rSrg)	Float64Dtype   Float64r:   r;   r*   r=   r   N)r$   r%   r&   r'   r)   r*   r>   r;   r?   r@   rA   r(   r.   r   r   r   rD   rD      rB   r   rD   r!   r   )
__future__r   typingr   numpyr)   pandas.core.dtypes.baser   pandas.core.dtypes.commonr   pandas.core.arrays.numericr   r   r
   r   r@   r7   rD   r   r<   r*   r   r?   r   r   r   <module>rM      s    "   < 4%/L %/PBL BJ > 7= 7 7 7= 7 7 HHRZZ,.HHRZZ,.7 3 r   