
    Mh#                        S SK Jr  S SKrS SKJrJrJr  S SKrS SK	J
r
Jr  S SKJr  S SKJr  S SKJrJrJr  S SKJrJr  \(       a  S S	KJr  S SKrS S
KJrJrJrJr   " S S\5      r       SS jr! " S S\5      r"g)    )annotationsN)TYPE_CHECKINGAnyCallable)libmissingAbstractMethodError)cache_readonly)is_integer_dtypeis_string_dtypepandas_dtype)BaseMaskedArrayBaseMaskedDtype)Mapping)DtypeDtypeObjSelfnptc                      \ rS rSr% S\S'   S\S'   SS jr\SS j5       r\SS j5       r\	SS	 j5       r
    SS
 jr\SS j5       r\SS j5       r\SS j5       rSrg)NumericDtype+   np.dtype_default_np_dtypezCallable[[Any], bool]_checkerc                     U R                    S3$ )NzDtype())nameselfs    L/var/www/html/env/lib/python3.13/site-packages/pandas/core/arrays/numeric.py__repr__NumericDtype.__repr__/   s    ))G$$    c                     U R                   S:H  $ )Nikindr   s    r    is_signed_integerNumericDtype.is_signed_integer2       yyCr#   c                     U R                   S:H  $ )Nur&   r   s    r    is_unsigned_integer NumericDtype.is_unsigned_integer6   r*   r#   c                    g)NT r   s    r    _is_numericNumericDtype._is_numeric:   s    r#   c                   SSK nSSKJn  U R                  5       nUR                  " U R
                  5      nUR
                  R                  U5      (       d  UR                  R                  UR
                  5      (       d`  [        UR
                  R                  5       5      nUR                  S;  a  [        SU  SUR
                   S35      eUR                  U5      n[        XR                  5      (       a<  UR                   S:X  a  UR"                  " / UR
                  S9nOUR%                  5       nU" XR&                  S	9u  pxU" UR)                  5       U) S
S9$ )zG
Construct IntegerArray/FloatingArray from pyarrow Array/ChunkedArray.
r   N)pyarrow_array_to_numpy_and_maskiufzExpected array of z type, got z instead)typedtypeFcopy)pyarrow%pandas.core.arrays.arrow._arrow_utilsr4   construct_array_typefrom_numpy_dtyper6   equalstypesis_nullr   to_pandas_dtyper'   	TypeErrorcast
isinstanceChunkedArray
num_chunksarraycombine_chunksnumpy_dtyper:   )	r   rH   r;   r4   array_classpyarrow_typert_dtypedatamasks	            r    __from_arrow__NumericDtype.__from_arrow__>   s(    		
 //1//		:zz  ..w}}7L7LJJ8
 8

 $EJJ$>$>$@AH}}E)  (k%**XN  JJ|,Ee1122 1$buzz:,,.4UBRBRS
499;E::r#   c                    [        U 5      eNr	   )clss    r    _get_dtype_mappingNumericDtype._get_dtype_mappingg   s    !#&&r#   c                @   [        U[        5      (       a&  UR                  S5      (       a  UR                  5       n[        U[        5      (       d,  U R                  5       n U[        R                  " U5         nU$ U$ ! [         a  n[        SU 35      UeSnAff = f)zC
Convert a string representation or a numpy dtype to NumericDtype.
)IntUIntFloatzinvalid dtype specified N)
rE   str
startswithlowerr   rU   npr8   KeyError
ValueError)rT   r8   mappingerrs       r    _standardize_dtypeNumericDtype._standardize_dtypek   s    
 eS!!u'7'78P'Q'Q KKME%..,,.GN0 u  N #;E7!CD#MNs   "A? ?
B	BBc                    [        U 5      e)zc
Safely cast the values to the given dtype.

"safe" in this context means the casting is lossless.
r	   )rT   valuesr8   r:   s       r    
_safe_castNumericDtype._safe_cast}   s     "#&&r#   r0   N)returnr[   )ri   bool)rH   z$pyarrow.Array | pyarrow.ChunkedArrayri   r   )ri   zMapping[np.dtype, NumericDtype])r8   zNumericDtype | str | np.dtyperi   r   )rf   
np.ndarrayr8   r   r:   rj   ri   rk   )__name__
__module____qualname____firstlineno____annotations__r!   r   r(   r-   propertyr1   rP   classmethodrU   rc   rg   __static_attributes__r0   r#   r    r   r   +   s    ##%          ';9';	';R ' '  " ' 'r#   r   c                   UR                   nS nS nUc4  [        U S5      (       a#  U" U R                  5      (       a  U R                  nUb  UR                  U5      nUR	                  5       n[        X5      (       a_  U R                  U R                  p`Ub  U R                  UR                  SS9n U(       a   U R                  5       n UR                  5       nXX4$ U n	U(       d  [        R                  " U 5      n O[        R                  " XS9n S nU R                  [        :X  d  [        U R                  5      (       aT  [         R"                  " U SS9nUS:X  a8  Uc5  UR$                  R'                  S5      n
[)        U R                   SU
 35      eOU R                  R*                  S	:X  a?  U" U5      (       a2  U(       d  [        R                  " XS
9n Oe[        R                  " XUS9n OOU R                  R*                  S;  a5  UR$                  R'                  S5      n
[)        U R                   SU
 35      eU R,                  S:w  a  [)        S5      eUc^  U R                  R*                  S;   a-  [        R.                  " [1        U 5      [        R2                  S
9nO1[4        R6                  " U 5      nO[1        U5      [1        U 5      :X  d   eUR,                  S:w  a  [)        S5      eUc  UnOUR                  n[9        U5      (       a  U R                  R*                  S:X  a  [1        U 5      S:  a  UR;                  5       (       a   [        R<                  " U R>                  US
9n O[        R@                  " U 5      n[C        X   5      X   :w  aZ  [         R"                  " U	SS9nUS;  a*  URE                  5       (       d  [        R                  " XS
9n O[        R                  " U	SS
9n URE                  5       (       a  U R                  5       n URF                  X'   US;   a  U R                  XS9n OURI                  XSS9n XX4$ )Nr8   Fr9   T)skipnaboolean_z cannot be converted to br7   r8   r:   r5      zvalues must be a 1D list-likeiuzmask must be a 1D list-likefr   )floatingzmixed-integer-floatobject)stringunicode)%r   hasattrr8   rc   r=   rE   _data_maskastyperJ   r:   r^   asarrayrH   r~   r   r   infer_dtyperl   striprC   r'   ndimzeroslenbool_
libmissingis_numeric_nar   allonesshape	nanargmaxintany_internal_fill_valuerg   )rf   r8   r:   	dtype_clsdefault_dtypecheckerrO   inferred_typerT   originalr   idxs               r    _coerce_to_data_and_maskr      sr      GDM}116<<  LLE,,U3

(
(
*C&||V\\]]5#4#45]AF[[]F99;DU11HF#&,M||v!>!>t<I%%-%%++C0Dv||n,DTFKLL			c	!gennZZ<FXXfEF			%	'!!'',6<<.(@GHH{{a788|<<$88CKrxx8D++F3D4yCK'''yyA~566 }!!6<<#4#4#;Fa88::WWV\\7F,,v&C6;8=0 # F!)LL HHJJZZ>FZZAF xxzz//-- u0%%f%%@--r#   c                     ^  \ rS rSr% SrS\S'    S       SU 4S jjjr\SS j5       r\	SS.     SS	 jj5       r
\	S
SS.     SS jj5       r\R                  \R                  4rSrU =r$ )NumericArray   z0
Base class for IntegerArray and FloatingArray.
type[NumericDtype]
_dtype_clsFc                f  > U R                   R                  n[        U[        R                  5      (       a  U" UR
                  5      (       d-  U R                   R                  S:X  a  SOSn[        SU S35      eUR
                  [        R                  :X  a  [        S5      e[        TU ])  XUS9  g )Nr|   r}   integerzvalues should be z1 numpy array. Use the 'pd.array' function insteadz0FloatingArray does not support np.float16 dtype.r9   )r   r   rE   r^   ndarrayr8   r'   rC   float16super__init__)r   rf   rO   r:   r   descr	__class__s         r    r   NumericArray.__init__   s     //**62::..76<<3H3H ??''3.  
 #E7 +2 2  <<2::%NOOD1r#   c                f    U R                   R                  5       nXR                  R                     $ rS   )r   rU   r   r8   )r   ra   s     r    r8   NumericArray.dtype  s'    //446zz''((r#   r9   c               Z    U R                   nUR                  n[        XX4U5      u  pg  nXg4$ rS   )r   r   r   )	rT   valuer8   r:   r   r   rf   rO   rw   s	            r    _coerce_to_arrayNumericArray._coerce_to_array
  s:     NN	!335$=
a |r#   Nry   c               >    SSK Jn  U" USSS9nU R                  XRUS9$ )Nr   )
to_numericraisenumpy_nullable)errorsdtype_backendry   )pandas.core.tools.numericr   _from_sequence)rT   stringsr8   r:   r   scalarss         r    _from_sequence_of_strings&NumericArray._from_sequence_of_strings  s,     	9WWDTU!!'T!BBr#   r0   )F)rf   rk   rO   znpt.NDArray[np.bool_]r:   rj   ri   None)ri   r   )r8   r   r:   rj   ri   ztuple[np.ndarray, np.ndarray])r8   zDtype | Noner:   rj   ri   r   )rl   rm   rn   ro   __doc__rp   r   r   r8   rr   r   r   r^   r   numbersNumber_HANDLED_TYPESrs   __classcell__)r   s   @r    r   r      s     #" MR2 2(=2EI2	2 2( ) ) 5:&.2	&  /3%C ,C;?C	C C jj'..1Nr#   r   )r:   rj   r   r   r   r   )#
__future__r   r   typingr   r   r   numpyr^   pandas._libsr   r   r   pandas.errorsr
   pandas.util._decoratorsr   pandas.core.dtypes.commonr   r   r   pandas.core.arrays.maskedr   r   collections.abcr   r;   pandas._typingr   r   r   r   r   r   r   r0   r#   r    <module>r      s    "    . 2 
 ' Y'? Y'x`.`.*<`.MU`.F42? 42r#   