ó
    Ñ]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	r
S SKJr  S SKJ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r\(       a  S S
KJrJrJr  S SKrS SKJ r J!r!  \" SSS9r"SS jr#SS jr$\RJ                  SSSS4             SS jjr&          SS jr'    SS jr(SS jr)SS jr*S S jr+S!S jr,g)"é    )ÚannotationsN)ÚTYPE_CHECKINGÚLiteralÚcast)Úusing_string_dtype)Úlib)Ú	timezones)Úpa_version_under18p0Úpa_version_under19p0)Úimport_optional_dependency)Úpandas_dtype)ÚCallableÚHashableÚSequence)ÚDtypeArgÚDtypeBackendÚpytzÚignore)Úerrorsc                 óð  • [        S5      n U R                  5       [        R                  " 5       U R	                  5       [        R
                  " 5       U R                  5       [        R                  " 5       U R                  5       [        R                  " 5       U R                  5       [        R                  " 5       U R                  5       [        R                  " 5       U R                  5       [        R                  " 5       U R!                  5       [        R"                  " 5       U R%                  5       [        R&                  " 5       U R)                  5       [        R*                  " 5       U R-                  5       [        R.                  " 5       U R1                  5       [        R2                  " 5       U R)                  5       [        R*                  " 5       U R5                  5       [        R*                  " 5       0$ )NÚpyarrow)r   Úint8ÚpdÚ	Int8DtypeÚint16Ú
Int16DtypeÚint32Ú
Int32DtypeÚint64Ú
Int64DtypeÚuint8Ú
UInt8DtypeÚuint16ÚUInt16DtypeÚuint32ÚUInt32DtypeÚuint64ÚUInt64DtypeÚbool_ÚBooleanDtypeÚstringÚStringDtypeÚfloat32ÚFloat32DtypeÚfloat64ÚFloat64DtypeÚlarge_string)Úpas    ÚL/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pandas/io/_util.pyÚ_arrow_dtype_mappingr4   -   s  € Ü	# IÓ	.€Bà
�‰‹	”2—<’<“>Ø
�‰‹
”B—M’M“OØ
�‰‹
”B—M’M“OØ
�‰‹
”B—M’M“OØ
�‰‹
”B—M’M“OØ
�	‰	‹”R—^’^Ó%Ø
�	‰	‹”R—^’^Ó%Ø
�	‰	‹”R—^’^Ó%Ø
�‰‹
”B—O’OÓ%Ø
�	‰	‹”R—^’^Ó%Ø
�
‰
‹”b—o’oÓ'Ø
�
‰
‹”b—o’oÓ'Ø
�	‰	‹”R—^’^Ó%Ø
�‰Óœ2Ÿ>š>Ó+ðð ó    c                 ón  • [        S5      n U R                  5       [        R                  " [        R
                  S9U R                  5       [        R                  " [        R
                  S90n[        (       d2  [        R                  " [        R
                  S9XR                  5       '   UR                  $ )Nr   )Úna_value)
r   r+   r   r,   ÚnpÚnanr1   r
   Ústring_viewÚget)r2   Úmappings     r3   Ú_arrow_string_types_mapperr=   A   st   € Ü	# IÓ	.€Bð 	�	‰	‹”R—^’^¬R¯V©VÑ4Ø
�‰Óœ2Ÿ>š>´2·6±6Ñ:ð€G÷  ÒÜ$&§N¢N¼B¿F¹FÑ$Cˆ—‘Ó Ñ!à�;‰;Ðr5   Fc           	     óJ  • [        S5      nUc  0 OUnUS:X  aD  [        5       nU(       a%  [        R                  " 5       XvR	                  5       '   UR
                  nGO›US:X  a  [        R                  nGOƒ[        5       (       a¶  [        (       a  [        5       nGO]Ub™  UR                  5       [        R                  " 5       UR                  5       [        R                  " 5       UR                  5       [        R                  " 5       UR!                  5       [        R                  " 5       0R
                  nOÁS nO¾U["        R$                  L d  US:X  aŸ  Ub™  UR                  5       [        R                  " 5       UR                  5       [        R                  " 5       UR                  5       [        R                  " 5       UR!                  5       [        R                  " 5       0R
                  nO	S nO[&        eU R(                  " SSU0UD6n	[+        X‘XE5      n	[-        U	5      n	U	$ )Nr   Únumpy_nullableÚnumpyÚtypes_mapper© )r   r4   r   r    Únullr;   Ú
ArrowDtyper   r   r=   r   r   r   r   r   r   r   r   Ú
no_defaultÚNotImplementedErrorÚ	to_pandasÚ_post_convert_dtypesÚ_normalize_timezone_dtypes)
ÚtableÚdtype_backendÚnull_to_int64Úto_pandas_kwargsÚdtypeÚnamesr2   r<   rA   Údfs
             r3   Úarrow_table_to_pandasrQ   N   sŒ  € ô 
$ IÓ	.€Bà-Ñ5‘rÐ;KÐð Ð(Ó(Ü&Ó(ˆÞô "$§¢£ˆG—G‘G“IÑØ—{‘{ŠØ	˜)Ó	#Ü—}‘}ŠÜ	×	Ñ	ßÒÜ5Ó7ŠLØÑð —‘“	œ2Ÿ<š<›>Ø—‘“
œBŸMšM›OØ—‘“
œBŸMšM›OØ—‘“
œBŸMšM›Oð	÷
 ‰cñ ð  ‰LØ	œ#Ÿ.™.Ò	(¨M¸WÓ,DØÑð —‘“	œ2Ÿ<š<›>Ø—‘“
œBŸMšM›OØ—‘“
œBŸMšM›OØ—‘“
œBŸMšM›Oð	÷
 ‰cñ ð  ‰Lä!Ð!à	�ŠÑ	G lÐ	GÐ6FÑ	G€BÜ	˜b°Ó	>€BÜ	# BÓ	'€BØ€Ir5   c                ó&  • UGb  U[         R                  L d  US:X  Ga  [        U[        5      (       aÓ  Ub  X0l        [
        R                  " 5       [
        R                  " 5       [
        R                  " 5       [
        R                  " 5       1nU R                   H8  nXR;  d  M
  X   R                  U;   d  M  X   R                  R                  X%'   M:     U Vs0 s H"  ofU R                  ;   d  M  U[        X&   5      _M$     nnO[        U5      n U R                  U5      n [#        5       (       d²  US:w  a¬  U[         R                  L d  US:X  a“  [%        ['        U R                  5      5       H5  n[)        U R*                  S S 2U4   5      n	U	c  M$  U R-                  X‰5        M7     [/        U R0                  5      n
U
b  X l        [/        U R                  5      nUb  X°l        U $ s  snf ! [         a  n[        [!        U5      5      UeS nAff = f)Nr@   Ústr)r   rE   Ú
isinstanceÚdictÚcolumnsr   r   r   r   r    rN   Únumpy_dtyper   ÚastypeÚ	TypeErrorÚ
ValueErrorrS   r   ÚrangeÚlenÚ_maybe_convert_string_to_objectÚilocÚisetitemÚ%_maybe_convert_string_index_to_objectÚindex)rP   rK   rN   rO   Ú
cmp_dtypesÚcolÚkeyÚerrÚiÚnew_colÚnew_idxÚnew_colss               r3   rH   rH   ‡   s»  € ð ÒØœŸ™Ò'¨=¸GÔ+Cô �eœT×"Ñ"ØÑ Ø"”
ô —’“Ü—’“Ü—’“Ü—’“ð	ˆJð —z”z�ØÕ#¨©¯©¸Õ(Cð "$¡§¡×!:Ñ!:�E“Jñ "ñ :?óÚ9>°#ÈÏÉÑBSÓ-�”\ %¡*Ó-Ò-¹ð ð ˆEô
 ! Ó'ˆEð	0Ø—‘˜5Ó!ˆBô × Ñ Ø�U‹NØœcŸn™nÒ,°ÀÓ0Hô ”s˜2Ÿ:™:“Ö'ˆAÜ5°b·g±gºaÀ¸d±mÓDˆGØÓ"Ø—‘˜AÖ'ñ (ô
 8¸¿¹ÓAˆØÑØŒHÜ8¸¿¹ÓDˆØÑØ!ŒJà€IùòAøô ó 	0äœS ›XÓ&¨CÐ/ûð	0ús$   ÃG'Ã2G'ÄG, Ç,
HÇ6HÈHc                ó¨  • [        U R                  [        R                  5      (       aG  U R                  R                  [
        R                  L a   U R                  S5      R                  S 5      $ [        U R                  [        R                  5      (       a¹  U R                  R                  R                  n[        U[        R                  5      (       az  UR                  [
        R                  L a]  [        R                  " U R                  R                  R                  S5      U R                  R                  S9nU R                  U5      $ g )NÚobject)Ú
categoriesÚordered)rT   rN   r   r,   r7   r8   r9   rX   ÚfillnaÚCategoricalDtyperl   rm   )ÚdataÚ	cat_dtypes     r3   r]   r]   È   sá   € ô �$—*‘*œbŸn™n×-Ñ-°$·*±*×2EÑ2EÌÏÉÒ2OØ�{‰{˜8Ó$×+Ñ+¨DÓ1Ð1Ü	�D—J‘J¤× 3Ñ 3×	4Ñ	4Ø—J‘J×)Ñ)×/Ñ/ˆ	Ü�i¤§¡×0Ñ0°Y×5GÑ5GÌ2Ï6É6Ò5QÜ×+Ò+ØŸ:™:×0Ñ0×7Ñ7¸ÓAØŸ
™
×*Ñ*ñˆIð —;‘;˜yÓ)Ð)ð r5   c                ó^  • [        U [        R                  5      (       az  [        S U R                   5       5      (       aX  / nU R                   H5  n[        U5      nUb  UR                  U5        M$  UR                  U5        M7     U R                  U5      $ g [        S[        U 5      5      $ )Nc              3  óÄ   #   • U  HV  n[        UR                  [        R                  5      =(       a&    UR                  R                  [
        R                  L v •  MX     g 7f©N)rT   rN   r   r,   r7   r8   r9   ©Ú.0Úlevels     r3   Ú	<genexpr>Ú8_maybe_convert_string_index_to_object.<locals>.<genexpr>Ü   sD   é € ð 
â%�ô �u—{‘{¤B§N¡NÓ3×V¸¿¹×8LÑ8LÔPR×PVÑPVÐ8VÔVÚ%ùs   ‚AA úpd.Index | None)	rT   r   Ú
MultiIndexÚanyÚlevelsr]   ÚappendÚ
set_levelsr   )ra   Ú
new_levelsrw   Ú	new_levels       r3   r`   r`   Ú   sž   € Ü�%œŸ™×'Ñ'Üñ 
àŸšó
÷ 
ñ 
ð ˆJØŸœ�Ü;¸EÓB�	ØÑ(Ø×%Ñ% iÖ0à×%Ñ% eÖ,ñ &ð ×#Ñ# JÓ/Ð/Øô Ð%Ô'FÀuÓ'MÓNÐNr5   c                óö  • [        U 5      R                  R                  S5      (       d  U $ [        R                  " U 5      (       a  [
        R                  R                  $ U R                  b!   [        R                  " U R                  5      $ [        R                  " U 5      (       a.   U R                  S5      nUb  [
        R                  " U5      $  U $ U $ ! [         a     NWf = f! [         a     U $ f = f)zw
If the input tz is a pytz timezone, attempt to convert it to "default"
tzinfo object (zoneinfo or datetime.timezone).
r   N)ÚtypeÚ
__module__Ú
startswithr	   Úis_utcÚdtÚtimezoneÚutcÚzoneÚzoneinfoÚZoneInfoÚ	ExceptionÚis_fixed_offsetÚ	utcoffset)ÚtzÚoffsets     r3   Ú_normalize_pytz_timezoner’   î   sà   € ô
 �‹8×Ñ×)Ñ)¨&×1Ñ1ð ˆ	ä×Ò˜×ÑÜ�{‰{�‰Ðà	‡w�wÑð	Ü×$Ò$ R§W¡WÓ-Ð-ô
 × Ò  ×$Ñ$ð	Ø—\‘\ $Ó'ˆFØÑ!Ü—{’{ 6Ó*Ð*ð "ð
 €Iˆ2€Iøô ó 	áð	ûô ó 	Øà€Ið	ús$   Á/C Â+)C* Ã
C'Ã&C'Ã*
C8Ã7C8c                óâ  • [        U [        R                  5      (       aY  [        S U R                   5       5      (       a6  U R                   Vs/ s H  n[        U5      PM     nnU R                  U5      $ U $ [        U R                  [        R                  5      (       aH  [        U R                  R                  5      nX0R                  R                  La  U R                  U5      $ U $ s  snf )Nc              3  ój   #   • U  H)  n[        UR                  [        R                  5      v •  M+     g 7frt   )rT   rN   r   ÚDatetimeTZDtyperu   s     r3   rx   Ú,_normalize_timezone_index.<locals>.<genexpr>  s$   é € ÐUÊ¸uŒz˜%Ÿ+™+¤r×'9Ñ'9×:Ð:Êùs   ‚13)rT   r   r{   r|   r}   Ú_normalize_timezone_indexr   rN   r•   r’   r�   Ú
tz_convert)ra   rw   r}   Únormalized_tzs       r3   r—   r—     s¯   € Ü�%œŸ™×'Ñ'ÜÑUÈÏÊÓU×UÑUØDIÇLÂLÓQÂL¸5Ô/°Ö6ÁLˆFÐQØ×#Ñ# FÓ+Ð+àˆä�%—+‘+œr×1Ñ1×2Ñ2Ü0°·±·±Ó@ˆØ§¡§¡Ò.Ø×#Ñ# MÓ2Ð2à€Lùò Rs   ÁC,c                ó  • [         Gb  [        S U R                  R                  5        5       5      (       až  U R	                  [
        R                  5      nU Hy  nU R                  SS2U4   n[        UR                  R                  5      nXCR                  R                  Ld  MO  U R                  X#R                  R                  U5      5        M{     [        U R                  5      U l        [        U R                   5      U l        U $ )a  
PyArrow uses pytz by default for timezones, but pandas uses
zoneinfo / datetime.timezone since pandas 3.0.

TODO: Starting with pyarrow 25, it will use zoneinfo by default, and then
this normalization can be skipped (https://github.com/apache/arrow/pull/49694).
Nc              3  óV   #   • U  H  n[        U[        R                  5      v •  M!     g 7frt   )rT   r   r•   )rv   rN   s     r3   rx   Ú-_normalize_timezone_dtypes.<locals>.<genexpr>(  s'   é € ð 
â4�ô �uœb×0Ñ0×1Ð1Ú4ùs   ‚'))r   r|   Ú_mgrÚget_unique_dtypesÚ_select_dtypes_indicesr   r•   r^   r’   rN   r�   r_   r‡   r˜   r—   ra   rV   )rP   Úcol_indicesrf   rc   r™   s        r3   rI   rI     sÆ   € ô Òäñ 
àŸ™×2Ñ2Ô4ó
÷ 
ñ 
ð ×3Ñ3´B×4FÑ4FÓGˆKÛ �Ø—g‘gša ˜d‘m�Ü 8¸¿¹¿¹Ó F�Ø ¯	©	¯©Ô4Ø—K‘K §6¡6×#4Ñ#4°]Ó#CÖDñ	 !ô -¨R¯X©XÓ6ˆŒÜ.¨r¯z©zÓ:ˆŒ
à€Ir5   )ÚreturnrU   )r¡   r   )rJ   zpyarrow.TablerK   ú/DtypeBackend | Literal['numpy'] | lib.NoDefaultrL   ÚboolrM   zdict | NonerN   úDtypeArg | NonerO   úSequence[Hashable] | Noner¡   úpd.DataFrame)
rP   r¦   rK   r¢   rN   r¤   rO   r¥   r¡   r¦   )rp   zpd.Series | pd.Indexr¡   zpd.Series | pd.Index | None)ra   úpd.Indexr¡   rz   )r�   ú	dt.tzinfor¡   r¨   )ra   r§   r¡   r§   )rP   r¦   r¡   r¦   )-Ú
__future__r   Údatetimer‡   Útypingr   r   r   r‹   r@   r8   Úpandas._configr   Úpandas._libsr   Úpandas._libs.tslibsr	   Úpandas.compatr
   r   Úpandas.compat._optionalr   Úpandas.core.dtypes.commonr   Úpandasr   Úcollections.abcr   r   r   r   Úpandas._typingr   r   r   r4   r=   rE   rQ   rH   r]   r`   r’   r—   rI   rB   r5   r3   Ú<module>rµ      s#  ðÝ "ã ÷ñ ó
 ã å -å Ý )÷õ ?å 2ã æ÷ñ ó ÷ñ " &°Ñ:€ôô(
ð FIÇ^Á^ØØ$(Ø!Ø'+ð6Øð6àBð6ð ð6ð "ð	6ð
 ð6ð %ð6ð õ6ðr>Øð>àBð>ð ð>ð %ð	>ð
 ô>ðBØ
ðà ôô$Oô(ô@õ r5   