ó
    Ñ]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)ÚNumericDtypeé0   únp.dtypeÚ_default_np_dtypezCallable[[Any], bool]Ú_checkerc                ó    • U R                    S3$ )NzDtype())Úname©Úselfs    ÚW/home/mande/repo/quber/.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   ó   € à�y‰y˜CÑÐ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ˆà×/Ò/°·	±	Ó:ˆØ�z‰z× Ñ  ×.Ñ.°w·}±}×7LÑ7LØ�J‰J÷8
ñ 8
ô
 $ E§J¡J×$>Ñ$>Ó$@ÓAˆHØ�}‰} EÓ)ô  Ø(¨¨¨k¸%¿*¹*¸ÀXÐNóð ð —J‘J˜|Ó,ˆEä�e×1Ñ1×2Ñ2Ø×(Ñ(Ó*ˆEá4°U×BRÑBRÑS‰
ˆØ�:‰:�?‰?˜cÓ!¤i§k¡kØ#(ˆD”—’˜$“Ñ Ù˜4Ÿ9™9›;¨¨°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–   € ô
 �eœS×!Ñ! u×'7Ñ'7Ð8P×'QÑ'Qð —K‘K“MˆEä˜%¤×.Ñ.Ø×,Ñ,Ó.ˆGðNØ¤§¢¨£Ñ0�ð ˆˆuˆøô ó NÜ Ð#;¸E¸7Ð!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OÔU 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                  " X‘S
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—<‘<× Ñ Ø—L‘LˆEàÑØ×,Ñ,¨UÓ3ˆá
‹+×
*Ñ
*Ó
,€CÜ�&×ÑØ—|‘| V§\¡\�ØÑØ—]‘] 5×#4Ñ#4¸5�]ÐAˆFæØ—[‘[“]ˆFØ—9‘9“;ˆDØˆ|Ðà€HÞÜ—’˜FÓ#‰ä—’˜&Ñ,ˆØ€MØ‡|�|”vÓ¤°·±×!>Ñ!>ÜŸš¨°tÑ<ˆØ˜IÓ%¨%©-à×%Ñ%×+Ñ+¨CÓ0ˆDÜ˜vŸ|™|˜nÐ,DÀTÀFÐKÓLÐLøà	�‰×	Ñ	˜cÓ	!¡g¨e§n¡nä�xŠxœ˜F›¬2¯8©8Ñ4ˆÞÜ—Z’Z Ñ<‰Fä—X’X˜fÀÑE‰Fà	�‰×	Ñ	 %Ó	'Ø×!Ñ!×'Ñ'¨Ó,ˆÜ˜6Ÿ<™<˜.Ð(@ÀÀÐGÓHÐHà‡{�{�aÓÜÐ7Ó8Ð8à‚|Ø�<‰<×Ñ Ó$ä—8’8œC ›K¬r¯x©xÑ8ŠDØ�\‰\×Ñ #Ó%ô �{‰{Ü—x’x Ó'‘ä—x’x¤ F£´2·8±8Ñ<�Ø×%Ñ%×+Ñ+¨CÓ0×;Ñ;¸J×GÑGÜŸHšH VÓ,�EØ—y‘y—{‘{Ü(Ð)RÓSÐSøÜ�[‰[Ü×+Ò+¨FÓ3‰Dô ×$Ò$ VÔ,Ü×-Ò-¨fÓ5‰Dä�4‹yœC ›KÓ'Ð'Ð'à‡y�y�Aƒ~ÜÐ5Ó6Ð6ð �}Ø‰à×!Ñ!ˆä˜×Ñ 6§<¡<×#4Ñ#4¸Ó#;ÄÀFÃÈaÃØ�8‰8�:‰:Ü—W’W˜VŸ\™\°Ñ7‰Fä—,’,˜vÓ&ˆCÜ�6‘;Ó 8¡=Ó0ä #§¢°ÀÑ F�à!Ð)LÓLØ ŸH™HŸJ™JäŸZšZ¨Ñ>‘FäŸZšZ¨¸ÑA�Fð ‡x�x‡z�zØ—‘“ˆØ ×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¦   ø€ ð —/‘/×*Ñ*ˆÜ˜6¤2§:¡:×.Ñ.±7¸6¿<¹<×3HÑ3Hð —?‘?×'Ñ'¨3Ó.ñ àð ô
 Ø# E 7ð +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ˆØ—z‘z×'Ñ'Ñ(Ð(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#   € ð —N‘Nˆ	Ü/°¸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á˜W¨WÐDTÑ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Ø(=ð2ØEIð2à	÷2ð 2ð0 ó)ó ð)ð à5:ñØ&ðØ.2ðà	&ôó ðð à=BñCØ .ðCØ6:ðCà	ôCó ðCð —j‘j '§.¡.Ð1†Nr$   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$   