
    I j&                       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
  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Jr  S SKrS SKJrJ r   S SK!J"r"   " S S\5      r#SS jr$ " S S\5      r%g)    )annotationsN)TYPE_CHECKINGAnySelf)	is_nan_na)libmissingAbstractMethodError)cache_readonly)is_integer_dtypeis_string_dtypepandas_dtype)BaseMaskedArrayBaseMaskedDtype)CallableMapping)DtypeObjnpt)ExtensionDtypec                      \ 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)NumericDtype0   np.dtype_default_np_dtypezCallable[[Any], bool]_checkerc                     U R                    S3$ )NzDtype())nameselfs    k/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/core/arrays/numeric.py__repr__NumericDtype.__repr__4   s    ))G$$    c                     U R                   S:H  $ )Nikindr   s    r!   is_signed_integerNumericDtype.is_signed_integer7       yyCr$   c                     U R                   S:H  $ )Nur'   r   s    r!   is_unsigned_integer NumericDtype.is_unsigned_integer;   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!                  5       nU" XR"                  S9u  pxUR$                  R                  S	:X  a(  ['        5       (       a  S
U[(        R*                  " U5      '   U" 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dtypefFcopy)pyarrow%pandas.core.arrays.arrow._arrow_utilsr5   construct_array_typefrom_numpy_dtypetypeequalstypesis_nullr   to_pandas_dtyper(   	TypeErrorcast
isinstanceChunkedArraycombine_chunksnumpy_dtyper8   r   npisnanr;   )	r    arrayr<   r5   array_classpyarrow_typert_dtypedatamasks	            r!   __from_arrow__NumericDtype.__from_arrow__C   s,    		
 //1//		:zz  ..w}}7L7LJJ8
 8

 $EJJ$>$>$@AH}}E)  (k%**XN  JJ|,Ee1122((*E4UBRBRS
::??c!ikk#(D$ 499;E::r$   c                    [        U 5      eNr
   )clss    r!   _get_dtype_mappingNumericDtype._get_dtype_mappingi   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)
rG   str
startswithlowerr   rX   rK   r8   KeyError
ValueError)rW   r8   mappingerrs       r!   _standardize_dtypeNumericDtype._standardize_dtypem   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
   )rW   valuesr8   r;   s       r!   
_safe_castNumericDtype._safe_cast   s     "#&&r$   r1   N)returnr^   )rk   bool)rM   z$pyarrow.Array | pyarrow.ChunkedArrayrk   r   )rk   zMapping[np.dtype, NumericDtype])r8   zNumericDtype | str | np.dtyperk   r   )rh   
np.ndarrayr8   r   r;   rl   rk   rm   )__name__
__module____qualname____firstlineno____annotations__r"   r   r)   r.   propertyr2   rS   classmethodrX   re   ri   __static_attributes__r1   r$   r!   r   r   0   s    ##%          $;9$;	$;L ' '  " ' 'r$   r   c                2   UR                   n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" 5       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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  ak  U" U5      (       a^  [        R.                  " [1        U 5      [        R2                  S
9n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 R4                  S:w  a  [+        S5      eUGcm  U R                  R,                  S;   a.  [        R.                  " [1        U 5      [        R2                  S
9nGO?U R                  R,                  S:X  a  [7        5       (       a  [        R8                  " U 5      nO[        R.                  " [1        U 5      [        R2                  S
9nUR&                  R)                  S5      R;                  S5      (       a6  [        R8                  " U 5      nUR=                  5       (       a  [?        S5      eOm[7        5       (       a  [@        RB                  " U 5      nOG[@        RB                  " U 5        [@        RD                  " U 5      nO[1        U5      [1        U 5      :X  d   eUR4                  S:w  a  [+        S5      eUc  UnOUR                  n[G        U5      (       a  U R                  R,                  S:X  a  [1        U 5      S:  a  URI                  5       (       a   [        RJ                  " U RL                  US
9n O[        RN                  " U 5      n[Q        X   5      X   :w  aZ  ["        R$                  " U	SS9nUS;  a*  UR=                  5       (       d  [        R                  " XS
9n O[        R                  " U	SS
9n UR=                  5       (       a  U R                  5       n URR                  X'   US;   a  U R                  XS9n X4$ URU                  XSS9n X4$ )Nr8   Fr:   T)skipnaboolean_z cannot be converted to br7   r8   r;   r6      zvalues must be a 1D list-likeiur9   )IUz'Cannot cast NaN value to Integer dtype.zmask must be a 1D list-liker   )floatingzmixed-integer-floatobject)stringunicode)+r   r   hasattrr8   re   r>   rG   _data_maskastyperJ   r;   rK   asarrayrM   r   r   r   infer_dtypern   striprE   r(   zeroslenbool_ndimr   rL   r_   anyrb   
libmissingis_numeric_nais_pdna_or_noner   allonesshape	nanargmaxint_internal_fill_valueri   )rh   r8   r;   	dtype_clscheckerdefault_dtyperR   inferred_typerW   originalr   wrongidxs                r!   _coerce_to_data_and_maskr      sK     G//MDM}116<<  LLE,,U3
+
*
*
,C&||V\\]]5#4#45]AF[[]F99;D|HF#&,M||v!>!>t<I%%-%%++C0Dv||n,DTFKLL			c	!gennxxF2884ZZ<FXXfEF			%	'!!'',6<<.(@GHH{{a788|<<$88CKrxx8D\\#% {{xx'xxF288<%%++C0;;JGGHHV,Eyy{{()RSS[[++F3D $$V,--f5D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 55-- 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
 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 )Nr9   r   integerzvalues should be z1 numpy array. Use the 'pd.array' function insteadz0FloatingArray does not support np.float16 dtype.r:   )r   r   rG   rK   ndarrayr8   r(   rE   float16super__init__)r    rh   rR   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                     $ rV   )r   rX   r   r8   )r    rc   s     r!   r8   NumericArray.dtype  s'    //446zz''((r$   r:   c               <    U R                   n[        XX45      u  pVXV4$ rV   )r   r   )rW   valuer8   r;   r   rh   rR   s          r!   _coerce_to_arrayNumericArray._coerce_to_array   s#     NN	/dN|r$   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_backendr{   )pandas.core.tools.numericr   _from_sequence)rW   stringsr8   r;   r   scalarss         r!   _from_sequence_of_strings&NumericArray._from_sequence_of_strings(  s,     	9WWDTU!!'T!BBr$   r1   )F)rh   rm   rR   znpt.NDArray[np.bool_]r;   rl   rk   None)rk   r   )r8   r   r;   rl   rk   ztuple[np.ndarray, np.ndarray])r8   r   r;   rl   rk   r   )rn   ro   rp   rq   __doc__rr   r   r   r8   rt   r   r   rK   r   numbersNumber_HANDLED_TYPESru   __classcell__)r   s   @r!   r   r      s     #" MR2 2(=2EI2	2 20 ) ) 5:&.2	&  =BC .C6:C	C C jj'..1Nr$   r   )r;   rl   r   r   )&
__future__r   r   typingr   r   r   numpyrK   pandas._configr   pandas._libsr   r	   r   pandas.errorsr   pandas.util._decoratorsr   pandas.core.dtypes.commonr   r   r   pandas.core.arrays.maskedr   r   collections.abcr   r   r<   pandas._typingr   r   pandas.core.dtypes.dtypesr   r   r   r   r1   r$   r!   <module>r      st    "    $ . 2 
 
 
 9V'? V'rpf52? 52r$   