Ë
    ðmxiƒQ  ã                  ób  — U d dl mZ d dlmZ d dlmZmZmZ d dlZ	d dl
mZ d dlmZ d dlmZmZmZ eryd dlmZmZmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z,m-Z- e"Z.de/d<   ded„Z0dfd„Z1dgd„Z2dhd„Z3did„Z4djd„Z5dddœ	 	 	 	 	 	 	 	 	 dkd„Z6nd dl
m6Z6 d dl7m5Z5m1Z1m4Z4m3Z3m2Z2m0Z0 ejp                  js                  «       Z:	 dddddd d!d"d#d$d%œ
Z;d&e/d'<   e	jx                  Z=	 dld(„Z>dmd)„Z?	 dn	 	 	 	 	 dod*„Z@dpd+„ZA	 dn	 	 	 	 	 	 	 dqd,„ZBdrd-„ZCdsd.„ZD ed/¬0«      dsd1„«       ZEejŒ                  jŽ                  ZGi eGj�                   e	j’                  «       “eGj”                   e	j–                  «       “eGj˜                   e	jš                  «       “eGjœ                   e	jž                  «       “eGj                    e	j¢                  «       “eGj¤                   e	j¦                   e	j¨                  «        e	jž                  «       «      “eGjª                   e	j¬                  «       “eGj®                   e	j°                  d2«      “eGj²                   e	j´                  «       “eGj¶                   e	j¸                  «       “eGjº                   e	j¼                  «       “eGj¾                   e	jÀ                  «       “eGjÂ                   e	jÄ                  «       “eGjÆ                   e	jÈ                  «       “eGjÊ                   e	j¨                  «       “eGjÌ                   e	jÎ                  «       “Zhd3e/d4<   eGjÒ                  eGjÔ                  fZkdtd5„Zl	 	 	 	 	 	 dud6„Zmdvd7„Zn	 	 	 	 	 	 dwd8„Zod9Zpd:Zqd;Zrd<Zsd=Ztd>Zud?Zvep› eq› d@er› d@ev› dA�ZwdBZxdCZydDZzdEZ{e{dFfexdGfeydHfezdIffZ|esdJfetdKfeudLffZ}dddœ	 	 	 	 	 	 	 	 	 dxdM„Z~dydN„ZdzdO„Z€dzdP„Z�	 	 	 	 	 	 	 	 d{dQ„Z‚	 	 	 	 	 	 d|dR„Zƒe:dSk\  rdTdUidTdVidTdWidXœZ„dYe/dZ<   nd[d\id[d\id[d]idXœZ„	 d}	 	 	 	 	 d~d^„Z… G d_„ d`eda   «      Z†ddb„Z‡	 	 	 	 	 	 d€dc„Zˆ	 	 	 	 	 	 	 	 d�dd„Z‰y)‚é    )Úannotations)Ú	lru_cache)ÚTYPE_CHECKINGÚAnyÚcastN)ÚEagerSeriesNamespace)ÚImplementationÚVersionÚisinstance_or_issubclass)ÚIterableÚIteratorÚMapping)ÚLiteral)Ú	TypeAliasÚTypeIs©ÚArrowSeries)	ÚArrayAnyÚArrayOrScalarÚArrayOrScalarT1ÚArrayOrScalarT2ÚChunkedArrayAnyÚ
IncompleteÚNativeIntervalUnitÚPromoteOptionsÚ	ScalarAny)ÚIntervalUnit)ÚDType)Ú	IntoDTypeÚPythonLiteralr   ÚChunkedArrayStructArrayc                 ó   — y ©N© ©Úts    úL/home/htdocs/ttos/venv/lib/python3.12/site-packages/narwhals/_arrow/utils.pyÚis_timestampr(   &   ó   � ó    c                 ó   — y r#   r$   r%   s    r'   Úis_durationr,   '   r)   r*   c                 ó   — y r#   r$   r%   s    r'   Úis_listr.   (   r)   r*   c                 ó   — y r#   r$   r%   s    r'   Úis_large_listr0   )   r)   r*   c                 ó   — y r#   r$   r%   s    r'   Úis_fixed_size_listr2   *   r)   r*   c                 ó   — y r#   r$   r%   s    r'   Úis_dictionaryr4   +   r)   r*   ©ÚoptionsÚmemory_poolc               ó   — y r#   r$   )ÚstringsÚpatternr6   r7   s       r'   Úextract_regexr;   ,   s   € ð #&r*   )r;   )r4   r,   r2   r0   r.   r(   ÚyearÚquarterÚmonthÚdayÚhourÚminuteÚsecondÚmillisecondÚmicrosecondÚ
nanosecond)
ÚyÚqÚmoÚdÚhÚmÚsÚmsÚusÚnsz)Mapping[IntervalUnit, NativeIntervalUnit]Ú
UNITS_DICTc               ó"   — ddl m}  || d¬«      S )Nr   )Úmaybe_extract_py_scalarT)Úreturn_py_scalar)Únarwhals._arrow.seriesrR   )ÚvaluerR   s     r'   Úextract_py_scalarrV   S   s   € Ý>á" 5¸4Ô@Ð@r*   c                ót   — t        | t        j                  t        j                  t        j                  f«      S )z-Return True for any base `pyarrow` container.)Ú
isinstanceÚpaÚChunkedArrayÚArrayÚScalar)Úobjs    r'   Úis_array_or_scalarr^   Y   s"   € ä�cœBŸO™O¬R¯X©X´r·y±yÐAÓBÐBr*   c               ó´   — t        | t        j                  «      r| S t        | t        «      rt        j                  | |«      S t        j                  | g|«      S r#   )rX   rY   rZ   ÚlistÚchunked_array)ÚarrÚdtypes     r'   ra   ra   ^   sI   € ô �#”r—‘Ô'Øˆ
Ü�#”tÔÜ×Ñ  UÓ+Ð+Ü×Ñ˜S˜E 5Ó)Ð)r*   c                óV   — t        j                  | |j                  j                  «      S )z|Create a strongly-typed Array instance with all elements null.

    Uses the type of `series`, without upseting `mypy`.
    )rY   ÚnullsÚnativeÚtype)ÚnÚseriess     r'   Ú
nulls_likerj   h   s   € ô
 �8‰8�A�v—}‘}×)Ñ)Ó*Ð*r*   c               óJ   — t         }t        j                   || |¬«      |«      S )z…Create an Array instance whose slots are the given scalar.

    *Optionally*, casting to `dtype` **before** repeating `n` times.
    ©rg   )ÚlitrY   Úrepeat)rU   rh   rc   Úlit_s       r'   rn   rn   p   s!   € ô €DÜ�9‰9‘T˜% eÔ,¨aÓ0Ð0r*   c               ó.   — t        j                  d| «      S )Nr   )rY   rn   )rh   s    r'   Úzerosrq   {   s   € Ü�9‰9�Q˜‹?Ðr*   c                ó‚   — t        | t        j                  «      r|j                  j	                  «       S t        | |«      S r#   )rX   rY   ÚExtensionTypeÚdtypesÚUnknownÚ&native_non_extension_to_narwhals_dtype)rc   Úversions     r'   Únative_to_narwhals_dtyperx      s2   € Ü�%œ×)Ñ)Ô*Ø�~‰~×%Ñ%Ó'Ð'Ü1°%¸ÓAÐAr*   é   )Úmaxsizec                ó
  — |j                   }t        j                  j                  | «      r|j	                  «       S t        j                  j                  | «      r|j                  «       S t        j                  j                  | «      r|j                  «       S t        j                  j                  | «      r|j                  «       S t        j                  j                  | «      r|j                  «       S t        j                  j                  | «      r|j                  «       S t        j                  j                  | «      r|j!                  «       S t        j                  j#                  | «      r|j%                  «       S t        j                  j'                  | «      r|j)                  «       S t        j                  j+                  | «      r|j-                  «       S t        j                  j/                  | «      r|j1                  «       S t        j                  j3                  | «      sAt        j                  j5                  | «      s" t7        t        j                  dd„ «      | «      r|j9                  «       S t        j                  j;                  | «      r|j=                  «       S t?        | «      r'|jA                  | jB                  | jD                  ¬«      S tG        | «      r|jI                  | jB                  ¬«      S t        j                  jK                  | «      r|jM                  «       S t        j                  jO                  | «      r~|jQ                  tS        | jT                  «      D �cg c]P  }|jW                  | jY                  |«      jZ                  t]        | jY                  |«      j^                  |«      «      ‘ŒR c}«      S ta        | «      stc        | «      r%|je                  t]        | jf                  |«      «      S ti        | «      r0|jk                  t]        | jf                  |«      | jl                  «      S t        j                  jo                  | «      r|jq                  «       S t        j                  js                  | «      st        j                  ju                  | «      r|jw                  «       S t        j                  jy                  | «      r|j{                  «       S |j}                  «       S c c}w )NÚis_string_viewc                 ó   — y)NFr$   )Ú_s    r'   ú<lambda>z8native_non_extension_to_narwhals_dtype.<locals>.<lambda>£   r)   r*   )Ú	time_unitÚ	time_zone)r€   )?rt   rY   ÚtypesÚis_int64ÚInt64Úis_int32ÚInt32Úis_int16ÚInt16Úis_int8ÚInt8Ú	is_uint64ÚUInt64Ú	is_uint32ÚUInt32Ú	is_uint16ÚUInt16Úis_uint8ÚUInt8Ú
is_booleanÚBooleanÚ
is_float64ÚFloat64Ú
is_float32ÚFloat32Ú	is_stringÚis_large_stringÚgetattrÚStringÚ	is_date32ÚDater(   ÚDatetimeÚunitÚtzr,   ÚDurationr4   ÚCategoricalÚ	is_structÚStructÚrangeÚ
num_fieldsÚFieldÚfieldÚnamerx   rg   r.   r0   ÚListÚ
value_typer2   r[   Ú	list_sizeÚ
is_decimalÚDecimalÚ	is_time32Ú	is_time64ÚTimeÚ	is_binaryÚBinaryru   )rc   rw   rt   Úis       r'   rv   rv   …   sw  € à�^‰^€FÜ	‡x�x×Ñ˜ÔØ�|‰|‹~ÐÜ	‡x�x×Ñ˜ÔØ�|‰|‹~ÐÜ	‡x�x×Ñ˜ÔØ�|‰|‹~ÐÜ	‡x�x×Ñ˜ÔØ�{‰{‹}ÐÜ	‡x�x×Ñ˜%Ô Ø�}‰}‹ÐÜ	‡x�x×Ñ˜%Ô Ø�}‰}‹ÐÜ	‡x�x×Ñ˜%Ô Ø�}‰}‹ÐÜ	‡x�x×Ñ˜ÔØ�|‰|‹~ÐÜ	‡x�x×Ñ˜5Ô!Ø�~‰~ÓÐÜ	‡x�x×Ñ˜5Ô!Ø�~‰~ÓÐÜ	‡x�x×Ñ˜5Ô!Ø�~‰~ÓÐô 	�‰×Ñ˜5Ô!Ü�8‰8×#Ñ# EÔ*Ø?Œ7”2—8‘8Ð-©Ó?ÀÔFà�}‰}‹ÐÜ	‡x�x×Ñ˜%Ô Ø�{‰{‹}ÐÜ�EÔØ�‰¨¯©¸u¿x¹xˆÓHÐHÜ�5ÔØ�‰¨¯©ˆÓ4Ð4Ü	‡x�x×Ñ˜eÔ$Ø×!Ñ!Ó#Ð#Ü	‡x�x×Ñ˜%Ô Ø�}‰}ô ˜u×/Ñ/Ó0öð
 ð	 —‘Ø—K‘K “N×'Ñ'Ü,¨U¯[©[¸«^×-@Ñ-@À'ÓJõòó
ð 	
ô ˆu„~œ uÔ-Ø�{‰{Ô3°E×4DÑ4DÀgÓNÓOÐOÜ˜%Ô Ø�|‰|Ü$ U×%5Ñ%5°wÓ?ÀÇÁó
ð 	
ô 
‡x�x×Ñ˜5Ô!Ø�~‰~ÓÐÜ	‡x�x×Ñ˜%Ô ¤B§H¡H×$6Ñ$6°uÔ$=Ø�{‰{‹}ÐÜ	‡x�x×Ñ˜%Ô Ø�}‰}‹ÐØ�>‰>ÓÐùò)s   Í:ATrO   z!Mapping[type[DType], pa.DataType]ÚNW_TO_PA_DTYPESc           
     óö  — |j                   }| j                  «       }t        j                  |«      x}r|S t	        | |j
                  «      rE| j                  }| j                  x}rt        j                  ||«      S t        j                  |«      S t	        | |j                  «      rt        j                  | j                  «      S t	        | |j                  «      r+t        j                  t        | j                  |¬«      ¬«      S t	        | |j                   «      rNt        j"                  | j$                  D �cg c]%  }|j&                  t        |j(                  |¬«      f‘Œ' c}«      S t	        | |j*                  «      r:t        | j                  |¬«      }| j,                  }	t        j                  ||	¬«      S t/        |t0        «      rd|j2                  › d�}
t5        |
«      ‚d| › �}
t7        |
«      ‚c c}w )N)rw   )r¬   )r­   zConverting to z$ dtype is not supported for PyArrow.zUnknown dtype: )rt   Ú	base_typer¶   Úgetr   rŸ   r€   r�   rY   Ú	timestampr¢   Údurationr«   Úlist_Únarwhals_to_native_dtypeÚinnerr¥   ÚstructÚfieldsrª   rc   r[   ÚsizeÚ
issubclassÚUNSUPPORTED_DTYPESÚ__name__ÚNotImplementedErrorÚAssertionError)rc   rw   rt   r¸   Úpa_typer    r¡   r©   r¾   r­   Úmsgs              r'   r½   r½   Ý   s”  € Ø�^‰^€FØ—‘Ó!€IÜ!×%Ñ% iÓ0Ð0€wÐ0ØˆÜ  v§¡Ô7Ø�‰ˆØ05·±Ð*?¨"Ð*?Œr�|‰|˜D "Ó%ÐXÄbÇlÁlÐSWÓFXÐXÜ  v§¡Ô7Ü�{‰{˜5Ÿ?™?Ó+Ð+Ü  v§{¡{Ô3Ü�x‰xÔ#;¸E¿K¹KÐQXÔ#YÔZÐZÜ  v§}¡}Ô5Ü�y‰yð #Ÿ\™\öàð —‘Ô5°e·k±kÈ7ÔSÒTòó
ð 	
ô    v§|¡|Ô4Ü(¨¯©¸gÔFˆØ—J‘Jˆ	Ü�x‰x˜¨Ô3Ð3Ü�)Ô/Ô0Ø˜y×1Ñ1Ð2Ð2VÐWˆÜ! #Ó&Ð&Ø˜E˜7Ð
#€CÜ
˜Ó
Ðùòs   Ä:*G6c                óö  — ddl m} |€#| j                  t        d| j                  ¬«      fS t        ||«      rr| j                  r'|j                  s| j                  d   |j                  fS |j                  r| j                  |j                  d   fS | j                  |j                  fS t        |t        «      rd}t        |«      ‚| j                  t        |t        j                  «      r|fS t        |«      fS )aJ  Extract native objects in binary  operation.

    If the comparison isn't supported, return `NotImplemented` so that the
    "right-hand-side" operation (e.g. `__radd__`) can be tried.

    If one of the two sides has a `_broadcast` flag, then extract the scalar
    underneath it so that PyArrow can do its own broadcasting.
    r   r   Nrl   z$Expected Series or scalar, got list.)rT   r   rf   rm   Ú_typerX   Ú
_broadcastr`   Ú	TypeErrorrY   r\   )ÚlhsÚrhsr   rÈ   s       r'   Úextract_nativerÏ   û   sÆ   € õ 3à
€{Ø�z‰zœ3˜t¨#¯)©)Ô4Ð4Ð4ä�#�{Ô#Ø�>Š> #§.¢.Ø—:‘:˜a‘= #§*¡*Ð,Ð,Ø�>Š>Ø—:‘:˜sŸz™z¨!™}Ð,Ð,Ø�z‰z˜3Ÿ:™:Ð%Ð%ä�#”tÔØ4ˆÜ˜‹nÐà�:‰:œj¨¬b¯i©iÔ8�sÐFÐF¼cÀ#»hÐFÐFr*   c          
     ól  — t        j                  |t        d|j                  ¬«      «      }t        j                  ||t        d|j                  ¬«      «      }t        d | j                  ¬«      }t
        j                  j                  | j                  «      �r[t
        j                  j                  |j                  «      �r1t        j                  |t        j                  | |«      |«      }t
        j                  j                  |j                  «      r¾t        d|j                  «      }t        j                  t        j                  ||«      | «      }t        j                  t        j                  | |«      t        d|«      «      }t        j                  t        j                  ||«      t        j                  |t        d|«      «      |«      }	n|}	|	j                  | j                  «      }	|	S t        j                  |t        j                   | |«      |«      }t        j"                  |«      }	|	S )Nr   rl   é   zpa._lib.Int64Type)ÚpcÚ	not_equalrm   rg   Úif_elserY   r‚   Ú
is_integerÚdivide_checkedÚis_signed_integerr   ÚmultiplyÚlessÚbit_wise_xorÚand_ÚsubtractÚdivideÚfloor)
ÚleftÚrightÚ	safe_maskÚ
safe_rightÚnon_safe_resultÚdividedÚdiv_typeÚhas_remainderÚhas_one_negative_operandÚresults
             r'   Úfloordiv_compatré     sŒ  € ô —‘˜U¤C¨°·
±
Ô$;Ó<€IÜ—‘˜I u¬c°!¸%¿*¹*Ô.EÓF€JÜ˜$ T§Y¡YÔ/€Oä	‡x�x×Ñ˜4Ÿ9™9Õ%¬"¯(©(×*=Ñ*=¸e¿j¹jÕ*IÜ—*‘*Ø”r×(Ñ(¨¨zÓ:¸Oó
ˆô �8‰8×%Ñ% g§l¡lÔ3ÜÐ/°·±Ó>ˆHÜŸL™L¬¯©°W¸eÓ)DÀdÓKˆMÜ')§w¡wÜ—‘  eÓ,¬c°!°XÓ.>ó(Ð$ô —Z‘ZÜ—‘˜Ð'?Ó@Ü—‘˜G¤S¨¨HÓ%5Ó6Øó‰Fð ˆFØ—‘˜TŸY™YÓ'ˆð €Mô —*‘*˜Y¬¯	©	°$¸
Ó(CÀ_ÓUˆÜ—‘˜'Ó"ˆØ€Mr*   c                óB  — t         j                  j                  | j                  «      rst         j                  j                  |j                  «      rJ| j	                  t        j
                  «       d¬«      |j	                  t        j
                  «       d¬«      fS | |fS )NF)Úsafe)rY   r‚   rÕ   rg   r   Úfloat64)Úarrow_arrayÚ	pa_objects     r'   Úcast_for_truedivrï   <  s   € ô 
‡x�x×Ñ˜;×+Ñ+Ô,´·±×1DÑ1DÀYÇ^Á^Ô1Tð ×Ñ¤§
¡
£°5ÐÓ9¸9¿>¹>Ü�J‰J‹L˜uð <Jó <
ð 
ð 	
ð ˜	Ð!Ð!r*   z/(?P<date>\d{1,4}[-/.]\d{1,2}[-/.]\d{1,4}|\d{8})z(?P<sep>\s|T)z'(?P<time>\d{2}:\d{2}(?::\d{2})?|\d{6}?)z^(?P<hms>\d{2}:\d{2}:\d{2})$z^(?P<hm>\d{2}:\d{2})$z^(?P<hms_no_sep>\d{6})$z(?P<tz>Z|[+-]\d{2}:?\d{2})ú?z?$zw^(?P<year>(?:[12][0-9])?[0-9]{2})(?P<sep1>[-/.])(?P<month>0[1-9]|1[0-2])(?P<sep2>[-/.])(?P<day>0[1-9]|[12][0-9]|3[01])$zw^(?P<day>0[1-9]|[12][0-9]|3[01])(?P<sep1>[-/.])(?P<month>0[1-9]|1[0-2])(?P<sep2>[-/.])(?P<year>(?:[12][0-9])?[0-9]{2})$zw^(?P<month>0[1-9]|1[0-2])(?P<sep1>[-/.])(?P<day>0[1-9]|[12][0-9]|3[01])(?P<sep2>[-/.])(?P<year>(?:[12][0-9])?[0-9]{2})$zY^(?P<year>(?:[12][0-9])?[0-9]{2})(?P<month>0[1-9]|1[0-2])(?P<day>0[1-9]|[12][0-9]|3[01])$ú%Y%m%dz%Y-%m-%dz%d-%m-%Yz%m-%d-%Yz%H:%M:%Sz%H:%Mz%H%M%Sc              ór   — t        j                  t        | |||¬«      j                  «      }t	        d|«      S )Nr5   úpa.StructArray)rY   Úconcat_arraysr;   Úchunksr   )r9   r:   r6   r7   Úrs        r'   Ú_extract_regex_concat_arraysr÷   f  s8   € ô 	×ÑÜ�g˜w°À[ÔQ×XÑXó	€Aô Ð  !Ó$Ð$r*   c                ó0  — t        | j                  «       j                  dd«      t        ¬«      }t	        j
                  |j                  «       «      j                  «       sd}t        |«      ‚|j                  d«      }|j                  d«      }t	        j                  t	        j                  |«      «      j                  «       dkD  rd}t        |«      ‚t	        j                  t	        j                  |«      «      j                  «       dkD  rd	}t        |«      ‚t        t        d
|j                  d«      «      «      }t        t        d
|j                  d«      «      «      }|d   j                  «       }|d   j                  «       rdnd}|› |› |› |› �S )z.Try to infer datetime format from StringArray.r   é
   ©r:   z‰Unable to infer datetime format, provided format is not supported. Please report a bug to https://github.com/narwhals-dev/narwhals/issuesÚsepr¡   rÑ   z@Found multiple separator values while inferring datetime format.z?Found multiple timezone values while inferring datetime format.úpc.StringArrayÚdateÚtimez%zÚ )r÷   Ú	drop_nullÚsliceÚFULL_RErÒ   ÚallÚis_validÚas_pyrÅ   r©   ÚcountÚuniqueÚ
ValueErrorÚ_parse_date_formatr   Ú_parse_time_format)	rb   ÚmatchesrÈ   Ú
separatorsr¡   Ú
date_valueÚ
time_valueÚ	sep_valueÚtz_values	            r'   Úparse_datetime_formatr  t  sK  € ä*¨3¯=©=«?×+@Ñ+@ÀÀBÓ+GÔQXÔY€GÜ�6‰6�'×"Ñ"Ó$Ó%×+Ñ+Ô-ðUð 	ô " #Ó&Ð&à—‘˜uÓ%€JØ	�‰�tÓ	€Bô 
‡x�x”—	‘	˜*Ó%Ó&×,Ñ,Ó.°Ò2ØPˆÜ˜‹oÐä	‡x�x”—	‘	˜"“Ó×$Ñ$Ó&¨Ò*ØOˆÜ˜‹oÐä#¤DÐ)9¸7¿=¹=ÈÓ;PÓ$QÓR€JÜ#¤DÐ)9¸7¿=¹=ÈÓ;PÓ$QÓR€Jà˜1‘×#Ñ#Ó%€IØ˜!‘u—{‘{”}‰t¨"€Hàˆ\˜)˜ Z L°°
Ð;Ð;r*   c                óê  — t         D �]]  \  }}t        j                  | |¬«      }|dk(  r5t        j                  |j	                  «       «      j                  «       r|c S t        j                  |j	                  «       «      j                  «       sŒŠt        j                  t        j                  |j                  d«      x}«      «      j                  «       dk(  sŒÕt        j                  t        j                  |j                  d«      x}«      «      j                  «       dk(  s�Œ!|d   j                  «       x}|d   j                  «       k(  s�ŒL|j                  d|«      c S  d}t        |«      ‚)	Nrú   rñ   Úsep1rÑ   Úsep2r   ú-zgUnable to infer datetime format. Please report a bug to https://github.com/narwhals-dev/narwhals/issues)ÚDATE_FORMATSrÒ   r;   r  r  r  r  r  r©   Úreplacer  )rb   Údate_rgxÚdate_fmtr  r  r  Údate_sep_valuerÈ   s           r'   r	  r	  “  s  € Ü*ó 
9Ñˆ�(Ü×"Ñ" 3°Ô9ˆØ�xÒ¤B§F¡F¨7×+;Ñ+;Ó+=Ó$>×$DÑ$DÔ$FØŠOä�F‰F�7×#Ñ#Ó%Ó&×,Ñ,Õ.Ü—‘œŸ™¨7¯=©=¸Ó+@Ð#@ 4ÓAÓB×HÑHÓJÈaÓOÜ—‘œŸ™¨7¯=©=¸Ó+@Ð#@ 4ÓAÓB×HÑHÓJÈaÔOØ#'¨¡7§=¡=£?Ð2�°t¸A±w·}±}³ÔFà×#Ñ# C¨Ó8Ò8ð
9ð	Qð ô �S‹/Ðr*   c                ó¸   — t         D ]Q  \  }}t        j                  | |¬«      }t        j                  |j	                  «       «      j                  «       sŒO|c S  y)Nrú   rÿ   )ÚTIME_FORMATSrÒ   r;   r  r  r  )rb   Útime_rgxÚtime_fmtr  s       r'   r
  r
  §  sP   € Ü*ò Ñˆ�(Ü×"Ñ" 3°Ô9ˆÜ�6‰6�'×"Ñ"Ó$Ó%×+Ñ+Õ-ØŠOðð r*   c               óä   — |s| dfS |dz  }||dz  dk(  z
  }| j                   j                  }t        || «      g|¢t        || «      ‘­}| j                  t	        j
                  |«      «      ||z   fS )au  Pad series with None values on the left and/or right side, depending on the specified parameters.

    Arguments:
        series: The input ArrowSeries to be padded.
        window_size: The desired size of the window.
        center: Specifies whether to center the padding or not.

    Returns:
        A tuple containing the padded ArrowSeries and the offset value.
    r   é   )rf   rõ   rj   Ú_with_nativerY   rô   )ri   Úwindow_sizeÚcenterÚoffset_leftÚoffset_rightrõ   Úarrayss          r'   Ú
pad_seriesr'  ¯  s„   € ñ Ø�qˆyÐØ Ñ"€Kà +°¡/°QÑ"6Ñ7€LØ�]‰]×!Ñ!€FÜ˜ VÓ,ÐW¨vÐW´zÀ,ÐPVÓ7WÑW€FØ×Ñœr×/Ñ/°Ó7Ó8¸+ÈÑ:TÐTÐTr*   c                ó¦   ‡— t        d„ |D «       «      st        j                  «       nt        j                  «       Šˆfd„|D «       t	        | ‰«      fS )Nc              3  ón   K  — | ]-  }t         j                  j                  |j                  «      –— Œ/ y ­wr#   )rY   r‚   rš   rg   )Ú.0Úcas     r'   ú	<genexpr>z2cast_to_comparable_string_types.<locals>.<genexpr>Ì  s#   è ø€ ÒN¸”2—8‘8×+Ñ+¨B¯G©G×4ÑNùs   ‚35c              3  ó@   •K  — | ]  }|j                  ‰«      –— Œ y ­wr#   )r   )r*  r+  rc   s     €r'   r,  z2cast_to_comparable_string_types.<locals>.<genexpr>Ï  s   øè ø€ Ò4˜rˆB�G‰G�E�NÑ4ùs   ƒ)ÚanyrY   ÚstringÚlarge_stringrm   )Ú	separatorÚchunked_arraysrc   s     @r'   Úcast_to_comparable_string_typesr3  Æ  sF   ø€ ô ÑN¸~ÔNÔNô 	�	‰	Œä�_‰_Óð 
ó
 5 ^Ô4´c¸)ÀUÓ6KÐKÐKr*   )é   Úpromote_optionsÚdefaultÚ
permissiveÚnone)r6  r7  r8  z*Mapping[PromoteOptions, Mapping[str, Any]]Ú_PROMOTEÚpromoteTFc                ó<   — t        j                  | fi t        |   ¤ŽS r#   )rY   Úconcat_tablesr9  )Útablesr5  s     r'   r<  r<  â  s   € ô ×Ñ˜FÑ@¤h¨Ñ&?Ñ@Ð@r*   c                  ó   — e Zd Zy)ÚArrowSeriesNamespaceN)rÄ   Ú
__module__Ú__qualname__r$   r*   r'   r?  r?  è  s   … r*   r?  )r   r   c                ó–   — t         dk  r*dd l}t        j                  |j	                  | ||«      «      S t        j                  | ||«      S )N)é   r   )ÚBACKEND_VERSIONÚnumpyrY   ÚarrayÚarange)ÚstartÚendÚstepÚnps       r'   rG  rG  ë  s<   € Ü˜ÒÛä�x‰x˜Ÿ	™	 %¨¨dÓ3Ó4Ð4ä�9‰9�U˜C Ó&Ð&r*   c                óD  — t         }|dk(  rd|t        j                  d¬«      fnd|f}t        j                  t        j
                  j                  t        j                  | «      t        j                  | «      gddg¬«      j                  d«      j                  |g«      j                  d«      j                  d|› �«      «      }t        j                  t        j                  t        j                  | «      t        d«      «      «      }|dk(  r&t        j                  |j!                  «       d d«      }n1t        j"                   |d |j$                  ¬«      t'        | «      «      }t        j(                  t        j*                  ||j-                  d	«      |«      g«      S )
NÚsumÚvaluesr   )Ú	min_countÚoffsets©ÚnamesÚvalues_rl   F)rm   rÒ   ÚScalarAggregateOptionsrY   rF  ÚTableÚfrom_arraysÚlist_flattenÚlist_parent_indicesÚgroup_byÚ	aggregateÚsort_byÚcolumnrÓ   Úlist_value_lengthrÔ   Úis_nullrn   rg   Úlenra   Úreplace_with_maskÚ	fill_null)rF  Úfuncro   ÚaggregationÚaggÚnon_empty_maskÚ
base_arrays          r'   Úlist_aggrg  ô  sY  € ô €Dð �5Š=ð 
�4œ×2Ñ2¸QÔ?Ñ@à˜Ðð ô
 �(‰(Ü
�‰×ÑÜ�_‰_˜UÓ#¤R×%;Ñ%;¸EÓ%BÐCØ˜YÐ'ð 	ó 	
÷ 
‰�)Ó	ß	‰�K�=Ó	!ß	‰�Ó	ß	‰�'˜$˜Ð Ó	!ó	€Cô —X‘XœbŸl™l¬2×+?Ñ+?ÀÓ+FÌÈAËÓOÓP€NØˆu‚}ä—Z‘Z × 6Ñ 6Ó 8¸$ÀÓB‰
ä—Y‘Y™t D¨s¯x©xÔ8¼#¸e»*ÓEˆ
Ü×Ñä× Ñ ØØ×(Ñ(¨Ó/Øóð	
óð r*   c               ó8  — |rdnd}|rdnd}d\  }}t        j                  t        j                  | «      t        d«      «      }t        j
                  j                  t        dt        | «      d¬«      | g||g¬	«      }|j                  |«      }	|j                  t        j                  t        j                  |«      t        d
«      «      «      }
t        j
                  j                  t        j                  | «      t        j                  | «      g||g¬	«      }t        j                  ||df||fg|¬«      }|	j                  |«      j!                  «       j"                  }t        j$                  j                  |t	        j&                  |j)                  |«      j                  |«      «      «      }t        j
                  j                  |	j                  |«      |g||g¬	«      }t	        j*                  ||
g«      j-                  |«      j                  |«      S )NÚ
descendingÚ	ascendingÚat_endÚat_start)ÚidxrN  r   rÑ   )rH  rI  rJ  rQ  T)Ú	sort_keysÚnull_placement)rÒ   Úgreaterr]  rm   rY   rU  rV  rG  r_  Úfilterra  ÚinvertrW  rX  Úsort_indicesr\  Úcombine_chunksrP  Ú	ListArrayrF  Útaker<  r[  )rF  ri  Ú
nulls_lastÚsort_directionÚnulls_positionrm  ÚvÚis_not_sortedÚindexedÚnot_sorted_partÚpass_throughÚexplodedÚsorted_indicesrP  Úsorted_implodedÚimploded_by_idxs                   r'   Ú	list_sortrƒ    sÍ  € ñ #‰¨ð ñ AK±HÐPZ€NØ�F€CˆÜ—J‘Jœr×3Ñ3°EÓ:¼CÀ»FÓC€MÜ�h‰h×"Ñ"Ü	�aœS ›Z¨aÔ	0°%Ð8ÀÀaÀð #ó €Gð —n‘n ]Ó3€OØ—>‘>¤"§,¡,¬r¯y©y¸Ó/GÌÈTËÓ"SÓT€LÜ�x‰x×#Ñ#Ü	�‰˜Ó	¤×!7Ñ!7¸Ó!>Ð?ÈÈ3Àxð $ó €Hô —_‘_ØØ˜Ð%¨¨>Ð':Ð;Ø%ô€Nð
 ×$Ñ$ QÓ'×6Ñ6Ó8×@Ñ@€GÜ—l‘l×.Ñ.Ø”—‘˜(Ÿ-™-¨Ó7×>Ñ>¸qÓAÓBó€Oô —h‘h×*Ñ*Ø	×	Ñ	 Ó	$ oÐ6¸sÀA¸hð +ó €Oô ×Ñ˜_¨lÐ;Ó<×DÑDÀSÓI×PÑPÐQRÓSÐSr*   )r&   r   Úreturnz"TypeIs[pa.TimestampType[Any, Any]])r&   r   r„  zTypeIs[pa.DurationType[Any]])r&   r   r„  zTypeIs[pa.ListType[Any]])r&   r   r„  zTypeIs[pa.LargeListType[Any]])r&   r   r„  z&TypeIs[pa.FixedSizeListType[Any, Any]])r&   r   r„  z(TypeIs[pa.DictionaryType[Any, Any, Any]])
r:   Ústrr9   r   r6   r   r7   r   r„  r!   )rU   r   r„  r   )r]   r   r„  zTypeIs[ArrayOrScalar]r#   )rb   z#ArrayOrScalar | list[Iterable[Any]]rc   úpa.DataType | Noner„  r   )rh   Úintri   r   r„  r   )rc   r†  rU   zPythonLiteral | ScalarAnyrh   r‡  r„  r   )rh   r‡  r„  zpa.Int64Array)rc   úpa.DataTyperw   r
   r„  r   )rc   r   rw   r
   r„  rˆ  )rÍ   r   rÎ   z'ArrowSeries | PythonLiteral | ScalarAnyr„  z3tuple[ChunkedArrayAny, ChunkedArrayAny | ScalarAny])rß   r   rà   r   r„  r   )rí   r   rî   r   r„  z'tuple[ArrayOrScalarT1, ArrayOrScalarT2])
r:   r…  r9   r   r6   r   r7   r   r„  ró   )rb   r   r„  r…  )rb   rü   r„  r…  )ri   r   r"  r‡  r#  Úboolr„  ztuple[ArrowSeries, int])r2  zChunkedArrayAny | ScalarAnyr1  r…  r„  z7tuple[Iterator[ChunkedArrayAny | ScalarAny], ScalarAny])r8  )r=  zIterable[pa.Table]r5  r   r„  zpa.Table)rH  r‡  rI  r‡  rJ  r‡  r„  r   )rF  r   rb  z:Literal['min', 'max', 'mean', 'approximate_median', 'sum']r„  r   )rF  r   ri  r‰  rw  r‰  r„  r   )ŠÚ
__future__r   Ú	functoolsr   Útypingr   r   r   ÚpyarrowrY   Úpyarrow.computeÚcomputerÒ   Únarwhals._compliantr   Únarwhals._utilsr	   r
   r   Úcollections.abcr   r   r   r   Útyping_extensionsr   r   rT   r   Únarwhals._arrow.typingr   r   r   r   r   r   r   r   r   Únarwhals._durationr   Únarwhals.dtypesr   Únarwhals.typingr   r    r!   Ú__annotations__r(   r,   r.   r0   r2   r4   r;   Úpyarrow.typesÚPYARROWÚ_backend_versionrD  rP   Úscalarrm   rV   r^   ra   rj   rn   rq   rx   rv   ÚMAINrt   r–   rì   r˜   Úfloat32r´   Úbinaryrœ   r/  r”   Úbool_r£   Ú
dictionaryÚuint32rž   Údate32r²   Útime64rŠ   Úint8rˆ   Úint16r†   Úint32r„   Úint64r’   Úuint8r�   Úuint16rŽ   rŒ   Úuint64r¶   r¯   ÚObjectrÃ   r½   rÏ   ré   rï   ÚDATE_REÚSEP_REÚTIME_REÚHMS_REÚHM_REÚHMS_RE_NO_SEPÚTZ_REr  ÚYMD_REÚDMY_REÚMDY_REÚYMD_RE_NO_SEPr  r  r÷   r  r	  r
  r'  r3  r9  r<  r?  rG  rg  rƒ  r$   r*   r'   ú<module>r¸     s¾  ðÞ "å ß +Ñ +ã Ý å 4ß MÑ Máß;Ñ;Ýç3å2÷
÷ 
õ 
õ 0Ý%ß8ð *9Ð˜YÓ8ãGÛ@Û8ÛCÛQÛNð Øñ&ð ð&Ø ð&ð
 ð&ð ð&ð 
!ô&õ .÷÷ ð !×(Ñ(×9Ñ9Ó;€Ø +ð 
Ø	Ø
Ø	Ø	Ø	Ø	Ø
Ø
Ø
ñ9€
Ð5ó ð 	‡i�i€Ø !óAóCð KOð*Ø	,ð*Ø5Gð*àó*ó+ð NRð1Ø8Jð1Ø$ð1Ø),ð1àó1óóBñ �2Ôò>ó ð>ðB 
�‰×	Ñ	€ð6Ø
‡N�N�J�B—J‘J“Lð6à
‡N�N�J�B—J‘J“Lð6ð ‡M�M�9�2—9‘9“;ð6ð ‡M�M�9�2—9‘9“;ð	6ð
 ‡N�N�H�B—H‘H“Jð6ð ×Ñ˜˜Ÿ™ i b§i¡i£k°9°2·9±9³;Ó?ð6ð ‡K�K��—‘“ð6ð ‡K�K��—‘˜4“ð6ð ‡K�K��—‘“ð6ð ‡L�L�(�"—(‘(“*ð6ð ‡L�L�(�"—(‘(“*ð6ð ‡L�L�(�"—(‘(“*ð6ð ‡L�L�(�"—(‘(“*ð6ð ‡M�M�9�2—9‘9“;ð6ð ‡M�M�9�2—9‘9“;ð6ð  ‡M�M�9�2—9‘9“;ð!6€Ð2ó ð$ —n‘n f§m¡mÐ4Ð óð<GØ	ðGØBðGà8óGó< ðF"Ø ð"Ø-<ð"à,ó"ð$ =€Ø	€Ø
4€Ø	(€Ø €Ø*€Ø%€ØˆY�v�h˜a ˜y¨¨%¨°Ð
3€ð 
D€ð 
D€ð 
D€Øl€ð �HÐØˆZÐØˆZÐØˆZÐð	€ð ˜Ð$ u¨gÐ&6¸ÈÐ8QÐR€ð Øñ%ð ð%Øð%ð
 ð%ð ð%ð ó%ó<ó>ó(ðUØðUØ),ðUØ6:ðUàóUð.	LØ0ð	LØ=@ð	Là<ó	Lð �eÒð & yÐ1Ø(¨,Ð7Ø" FÐ+ñ<€HÐ8ô ð ˜tÐ$Ø  $Ð'Ø˜EÐ"ñ€Hð CIðAØðAØ1?ðAàóAô XÐ/Ð0PÑQÔ Wó'ð"Øð"à
Dð"ð ó"ðJTØðTØ+/ðTØ=AðTàôTr*   