§
    cŠtjX  ã                  óþ  — 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rpd dlmZmZmZ d dlmZmZ d d	l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<   d­d„Z0d®d„Z1d¯d„Z2d°d„Z3d±d„Z4d²d„Z5ddd œd³d'„Z6nd d(l
m6Z6 d d)l7m5Z5m1Z1m4Z4m3Z3m2Z2m0Z0 ej8         9                    ¦   «         Z:	 d*d+d,d-d.d/d0d1d2d3d4œ
Z;d5e/d6<   e	j<        Z=	 d´d8„Z>dµd;„Z?d¶dA„Z@d·dE„ZA	 d¸d¹dJ„ZBdºdN„ZC	 d¸d»dP„ZDd¼dR„ZEd½dW„ZF edX¬Y¦  «        d½dZ„¦   «         ZGejH        jI        ZIi eIjJ         e	jK        ¦   «         “eIjL         e	jM        ¦   «         “eIjN         e	jO        ¦   «         “eIjP         e	jQ        ¦   «         “eIjR         e	jS        ¦   «         “eIjT         e	jU        ¦   «         “eIjV         e	jW         e	jX        ¦   «          e	jS        ¦   «         ¦  «        “eIjY         e	jZ        ¦   «         “eIj[         e	j\        d[¦  «        “eIj]         e	j^        ¦   «         “eIj_         e	j`        ¦   «         “eIja         e	jb        ¦   «         “eIjc         e	jd        ¦   «         “eIje         e	jf        ¦   «         “eIjg         e	jh        ¦   «         “eIji         e	jX        ¦   «         “eIjj         e	jk        ¦   «         “Zld\e/d]<   eIjm        eIjn        fZod¾d_„Zpd¿dd„ZqdÀdh„ZrdÁdn„ZsdoZtdpZudqZvdrZwdsZxdtZyduZzet› eu› dvev› dvez› dw�Z{dxZ|dyZ}dzZ~d{Zed|fe|d}fe}d~fe~dffZ€ewd€fexd�feyd‚ffZ�ddd œdÂd„„Z‚dÃd…„ZƒdÄd‡„Z„dÄdˆ„Z…dÅd�„Z†dÆd’„Z‡e:d“k    rd”d•id”d–id”d—id˜œZˆd™e/dš<   nd›dœid›dœid›d�id˜œZˆ	 dÇdÈd¢„Z‰ G d£„ d¤ed¥         ¦  «        ZŠdÉd©„Z‹dÊd¬„ZŒdS )Ëé    )Ú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   ÚChunkedArrayStructArrayÚtr   Úreturnú"TypeIs[pa.TimestampType[Any, Any]]c                ó   — d S ©N© ©r"   s    úS/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/narwhals/_arrow/utils.pyÚis_timestampr*   &   ó   € € € ó    úTypeIs[pa.DurationType[Any]]c                ó   — d S r&   r'   r(   s    r)   Úis_durationr/   '   r+   r,   úTypeIs[pa.ListType[Any]]c                ó   — d S r&   r'   r(   s    r)   Úis_listr2   (   r+   r,   úTypeIs[pa.LargeListType[Any]]c                ó   — d S r&   r'   r(   s    r)   Úis_large_listr5   )   r+   r,   ú&TypeIs[pa.FixedSizeListType[Any, Any]]c                ó   — d S r&   r'   r(   s    r)   Úis_fixed_size_listr8   *   r+   r,   ú(TypeIs[pa.DictionaryType[Any, Any, Any]]c                ó   — d S r&   r'   r(   s    r)   Úis_dictionaryr;   +   r+   r,   ©ÚoptionsÚmemory_poolÚpatternÚstrÚstringsr   r=   r>   c              ó   — d S r&   r'   )rA   r?   r=   r>   s       r)   Úextract_regexrC   ,   s	   € ð #& #r,   )rC   )r;   r/   r8   r5   r2   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_DICTÚvaluec               ó(   — ddl m}  || d¬¦  «        S )Nr   )Úmaybe_extract_py_scalarT)Úreturn_py_scalar)Únarwhals._arrow.seriesr[   )rY   r[   s     r)   Úextract_py_scalarr^   T   s*   € Ø>Ð>Ð>Ð>Ð>Ð>à"Ð" 5¸4Ð@Ñ@Ô@Ð@r,   ÚobjúTypeIs[ArrayOrScalar]c                ód   — t          | t          j        t          j        t          j        f¦  «        S )z-Return True for any base `pyarrow` container.)Ú
isinstanceÚpaÚChunkedArrayÚArrayÚScalar)r_   s    r)   Úis_array_or_scalarrg   Z   s   € å�c�BœO­R¬Xµr´yÐAÑBÔBÐBr,   ÚstartÚintÚendÚstepr   c                óž   — t           dk     r-dd l}t          j        |                     | ||¦  «        ¦  «        S t          j        | ||¦  «        S )N)é   r   )ÚBACKEND_VERSIONÚnumpyrc   ÚarrayÚarange)rh   rj   rk   Únps       r)   rq   rq   _   sM   € Ý˜ÒÐØÐÐÐåŒx˜Ÿ	š	 %¨¨dÑ3Ô3Ñ4Ô4Ð4åŒ9�U˜C Ñ&Ô&Ð&r,   Úarraysúlist[pa.Array[Any]]úpa.ChunkedArray[Any]c                ót  — t          | d         ¦  «        }t          | ¦  «        }t          d|d¦  «        }t          d|d¦  «        }t          d||z  d¦  «        }t          dt          j        |t          |¦  «        ¦  «        ¦  «        }t          dt          j        |t          j        |t          |¦  «        ¦  «        ¦  «        ¦  «        }t          j        ||¦  «        }t          j        ||¦  «        }	t          dt          j	        t          j        |	t          |¦  «        ¦  «        |¦  «        ¦  «        }
t          j        t          j        | ¦  «        |
¦  «        }t          dt          d||z  dz   |¦  «        ¦  «        }t          j        t          j                             ||¦  «        g¦  «        S )Nr   é   úpa.Int64Array)Úlenrq   r   ÚpcÚdivideÚlitÚsubtractÚmultiplyÚtakeÚaddrc   Úconcat_arraysÚchunked_arrayÚ	ListArrayÚfrom_arrays)rs   ÚnÚnum_colsÚiÚjÚkÚrow_idxÚcol_idxÚi_repÚj_tileÚindicesÚinterleavedÚoffsetss                r)   Úbuild_list_arrayr‘   h   sV  € õ 	ˆF�1ŒI‰Œ€AÝ�6‰{Œ{€HÝˆq�!�Q‰Œ€AÝˆq�(˜AÑÔ€AÝˆq�!�h‘, Ñ"Ô"€AÝ�?¥B¤I¨aµ°X±´Ñ$?Ô$?Ñ@Ô@€GÝ�?¥B¤K°µ2´;¸wÍÈHÉÌÑ3VÔ3VÑ$WÔ$WÑXÔX€GÝŒG�A�wÑÔ€EÝŒW�Q˜Ñ Ô €FÝ�?¥B¤F­2¬;°v½sÀ1¹v¼vÑ+FÔ+FÈÑ$NÔ$NÑOÔO€GÝ”'�"Ô*¨6Ñ2Ô2°GÑ<Ô<€KÝ�?¥F¨1¨a°(©l¸QÑ.>ÀÑ$IÔ$IÑJÔJ€GåÔ�Rœ\×5Ò5°g¸{ÑKÔKÐLÑMÔMÐMr,   Úarrú#ArrayOrScalar | list[Iterable[Any]]Údtypeúpa.DataType | Nonec               óº   — t          | t          j        ¦  «        r| S t          | t          ¦  «        rt          j        | |¦  «        S t          j        | g|¦  «        S r&   )rb   rc   rd   Úlistr‚   )r’   r”   s     r)   r‚   r‚   |   sW   € õ �#•r”Ñ'Ô'ð Øˆ
Ý�#•tÑÔð ,ÝÔ  UÑ+Ô+Ð+ÝÔ˜S˜E 5Ñ)Ô)Ð)r,   r…   Úseriesr   c                ó@   — t          j        | |j        j        ¦  «        S )z|Create a strongly-typed Array instance with all elements null.

    Uses the type of `series`, without upseting `mypy`.
    )rc   ÚnullsÚnativeÚtype)r…   r˜   s     r)   Ú
nulls_liker�   †   s   € õ
 Œ8�A�v”}Ô)Ñ*Ô*Ð*r,   úPythonLiteral | ScalarAnyc               óP   — t           }t          j         || |¬¦  «        |¦  «        S )z…Create an Array instance whose slots are the given scalar.

    *Optionally*, casting to `dtype` **before** repeating `n` times.
    ©rœ   )r|   rc   Úrepeat)rY   r…   r”   Úlit_s       r)   r¡   r¡   Ž   s*   € õ €DÝŒ9�T�T˜% eÐ,Ñ,Ô,¨aÑ0Ô0Ð0r,   rx   c               ó,   — t          j        d| ¦  «        S )Nr   )rc   r¡   )r…   s    r)   Úzerosr¤   ™   s   € ÝŒ9�Q˜‰?Œ?Ðr,   úpa.DataTypeÚversionr
   r   c                óˆ   — t          | t          j        ¦  «        r|j                             ¦   «         S t          | |¦  «        S r&   )rb   rc   ÚExtensionTypeÚdtypesÚUnknownÚ&native_non_extension_to_narwhals_dtype)r”   r¦   s     r)   Únative_to_narwhals_dtyper¬   �   s;   € Ý�%�Ô)Ñ*Ô*ð (ØŒ~×%Ò%Ñ'Ô'Ð'Ý1°%¸ÑAÔAÐAr,   é   )Úmaxsizec                ó¬
  ‡ ‡‡— ‰j         Št          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j         	                    ‰ ¦  «        r‰ 
                    ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        sDt          j                             ‰ ¦  «        s% t;          t          j        dd„ ¦  «        ‰ ¦  «        r‰                     ¦   «         S t          j                             ‰ ¦  «        r‰                      ¦   «         S tC          ‰ ¦  «        r!‰ "                    ‰ j#        ‰ j$        ¬¦  «        S tK          ‰ ¦  «        r‰ &                    ‰ j#        ¬¦  «        S t          j         '                    ‰ ¦  «        r‰ (                    ¦   «         S t          j         )                    ‰ ¦  «        r5‰ *                    ˆ ˆˆfd„tW          ‰ j,        ¦  «        D ¦   «         ¦  «        S t[          ‰ ¦  «        st]          ‰ ¦  «        r(‰ /                    ta          ‰ j1        ‰¦  «        ¦  «        S te          ‰ ¦  «        r.‰ 3                    ta          ‰ j1        ‰¦  «        ‰ j4        ¦  «        S t          j         5                    ‰ ¦  «        r!‰ 6                    ‰ j7        ‰ j8        ¬¦  «        S t          j         9                    ‰ ¦  «        st          j         :                    ‰ ¦  «        r‰ ;                    ¦   «         S t          j         <                    ‰ ¦  «        r‰ =                    ¦   «         S ‰ >                    ¦   «         S )NÚis_string_viewc                ó   — dS )NFr'   )Ú_s    r)   ú<lambda>z8native_non_extension_to_narwhals_dtype.<locals>.<lambda>Ã   s   € ¸€ r,   )Ú	time_unitÚ	time_zone)r´   c           
     ó¸   •— g | ]V}‰                      ‰                     |¦  «        j        t          ‰                     |¦  «        j        ‰¦  «        ¦  «        ‘ŒWS r'   )ÚFieldÚfieldÚnamer¬   rœ   )Ú.0r‡   r”   r©   r¦   s     €€€r)   ú
<listcomp>z:native_non_extension_to_narwhals_dtype.<locals>.<listcomp>Ð   sc   ø€ ð ð ð ð
 ð	 —’Ø—K’K ‘N”NÔ'Ý,¨U¯[ª[¸©^¬^Ô-@À'ÑJÔJñô ðð ð r,   ©Ú	precisionÚscale)?r©   rc   Ú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_float16ÚFloat16Ú	is_stringÚis_large_stringÚgetattrÚStringÚ	is_date32ÚDater*   ÚDatetimeÚunitÚtzr/   ÚDurationr;   ÚCategoricalÚ	is_structÚStructÚrangeÚ
num_fieldsr2   r5   ÚListr¬   Ú
value_typer8   re   Ú	list_sizeÚis_decimal128ÚDecimalr½   r¾   Ú	is_time32Ú	is_time64ÚTimeÚ	is_binaryÚBinaryrª   )r”   r¦   r©   s   ``@r)   r«   r«   £   ss  øøø€ àŒ^€FÝ	„x×Ò˜ÑÔð Ø�|Š|‰~Œ~ÐÝ	„x×Ò˜ÑÔð Ø�|Š|‰~Œ~ÐÝ	„x×Ò˜ÑÔð Ø�|Š|‰~Œ~ÐÝ	„x×Ò˜ÑÔð Ø�{Š{‰}Œ}ÐÝ	„x×Ò˜%Ñ Ô ð Ø�}Š}‰ŒÐÝ	„x×Ò˜%Ñ Ô ð Ø�}Š}‰ŒÐÝ	„x×Ò˜%Ñ Ô ð Ø�}Š}‰ŒÐÝ	„x×Ò˜ÑÔð Ø�|Š|‰~Œ~ÐÝ	„x×Ò˜5Ñ!Ô!ð  Ø�~Š~ÑÔÐÝ	„x×Ò˜5Ñ!Ô!ð  Ø�~Š~ÑÔÐÝ	„x×Ò˜5Ñ!Ô!ð  Ø�~Š~ÑÔÐÝ	„x×Ò˜5Ñ!Ô!ð  Ø�~Š~ÑÔÐõ 	Œ×Ò˜5Ñ!Ô!ðåŒ8×#Ò# EÑ*Ô*ðð @�7•2”8Ð-¨¨Ñ?Ô?ÀÑFÔFðð
 �}Š}‰ŒÐÝ	„x×Ò˜%Ñ Ô ð Ø�{Š{‰}Œ}ÐÝ�EÑÔð IØ�Š¨¬¸u¼xˆÑHÔHÐHÝ�5ÑÔð 5Ø�Š¨¬ˆÑ4Ô4Ð4Ý	„x×Ò˜eÑ$Ô$ð $Ø×!Ò!Ñ#Ô#Ð#Ý	„x×Ò˜%Ñ Ô ð 	
Ø�}Š}ðð ð ð ð ð õ
 ˜uÔ/Ñ0Ô0ðñ ô ñ
ô 
ð 	
õ ˆu�~„~ð P� uÑ-Ô-ð PØ�{Š{Õ3°EÔ4DÀgÑNÔNÑOÔOÐOÝ˜%Ñ Ô ð 
Ø�|Š|Ý$ UÔ%5°wÑ?Ô?ÀÄñ
ô 
ð 	
õ 
„x×Ò˜eÑ$Ô$ð LØ�~Š~¨¬¸u¼{ˆ~ÑKÔKÐKÝ	„x×Ò˜%Ñ Ô ð ¥B¤H×$6Ò$6°uÑ$=Ô$=ð Ø�{Š{‰}Œ}ÐÝ	„x×Ò˜%Ñ Ô ð Ø�}Š}‰ŒÐØ�>Š>ÑÔÐr,   rW   z!Mapping[type[DType], pa.DataType]ÚNW_TO_PA_DTYPESr   c                óÞ  ‡— ‰j         }|                      ¦   «         }t                               |¦  «        x}r|S t	          | |j        ¦  «        r9| j        }| j        x}rt          j	        ||¦  «        nt          j	        |¦  «        S t	          | |j
        ¦  «        rt          j        | j        ¦  «        S t	          | |j        ¦  «        r)t          j        t          | j        ‰¬¦  «        ¬¦  «        S t	          | |j        ¦  «        r%t          j        ˆfd„| j        D ¦   «         ¦  «        S t	          | |j        ¦  «        r3t          | j        ‰¬¦  «        }| j        }t          j        ||¬¦  «        S t	          | |j        ¦  «        r t          j        | j        | j        ¬¦  «        S t3          |t4          ¦  «        rd|j        › d�}	t9          |	¦  «        ‚d| › �}	t;          |	¦  «        ‚)	N©r¦   )rè   c                óJ   •— g | ]}|j         t          |j        ‰¬ ¦  «        f‘Œ S )ró   )r¹   Únarwhals_to_native_dtyper”   )rº   r¸   r¦   s     €r)   r»   z,narwhals_to_native_dtype.<locals>.<listcomp>  s@   ø€ ð ð ð àð ”Õ5°e´kÈ7ÐSÑSÔSÐTðð ð r,   )ré   r¼   zConverting to z$ dtype is not supported for PyArrow.zUnknown dtype: )r©   Ú	base_typerñ   Úgetr   rÞ   r´   rµ   rc   Ú	timestamprá   Údurationrç   Úlist_rõ   Úinnerrä   ÚstructÚfieldsre   Úsizerë   Ú
decimal128r½   r¾   Ú
issubclassÚUNSUPPORTED_DTYPESÚ__name__ÚNotImplementedErrorÚAssertionError)
r”   r¦   r©   rö   Úpa_typerß   rà   rû   ré   Úmsgs
    `        r)   rõ   rõ   þ   sõ  ø€ ØŒ^€FØ—’Ñ!Ô!€IÝ!×%Ò% iÑ0Ô0Ð0€wð ØˆÝ  v¤Ñ7Ô7ð YØŒˆØ05´Ð*?¨"ÐX�rŒ|˜D "Ñ%Ô%Ð%ÅbÄlÐSWÑFXÔFXÐXÝ  v¤Ñ7Ô7ð ,ÝŒ{˜5œ?Ñ+Ô+Ð+Ý  v¤{Ñ3Ô3ð [ÝŒxÕ#;¸E¼KÐQXÐ#YÑ#YÔ#YÐZÑZÔZÐZÝ  v¤}Ñ5Ô5ð 
ÝŒyðð ð ð à"œ\ðñ ô ñ
ô 
ð 	
õ    v¤|Ñ4Ô4ð 4Ý(¨¬¸gÐFÑFÔFˆØ”Jˆ	ÝŒx˜¨Ð3Ñ3Ô3Ð3Ý  v¤~Ñ6Ô6ð KÝŒ} u¤¸e¼kÐJÑJÔJÐJÝ�)Õ/Ñ0Ô0ð 'ØW˜yÔ1ÐWÐWÐWˆÝ! #Ñ&Ô&Ð&Ø
#˜EÐ
#Ð
#€CÝ
˜Ñ
Ô
Ðr,   ÚlhsÚrhsú'ArrowSeries | PythonLiteral | ScalarAnyú3tuple[ChunkedArrayAny, ChunkedArrayAny | ScalarAny]c                ó²  — ddl m} |€| j        t          d| j        ¬¦  «        fS t          ||¦  «        rK| 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|n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   Nr    z$Expected Series or scalar, got list.)r]   r   r›   r|   Ú_typerb   Ú
_broadcastr—   Ú	TypeErrorrc   rf   )r  r  r   r  s       r)   Úextract_nativer    sæ   € ð 3Ð2Ð2Ð2Ð2Ð2à
€{ØŒz�3˜t¨#¬)Ð4Ñ4Ô4Ð4Ð4å�#�{Ñ#Ô#ð &ØŒ>ð 	- #¤.ð 	-Ø”:˜a”= #¤*Ð,Ð,ØŒ>ð 	-Ø”:˜sœz¨!œ}Ð,Ð,ØŒz˜3œ:Ð%Ð%å�#•tÑÔð Ø4ˆÝ˜‰nŒnÐàŒ:�j¨­b¬iÑ8Ô8ÐF�s�s½cÀ#¹h¼hÐFÐFr,   Úleftr   Úrightc          
     ó6  — t          j        |t          d|j        ¬¦  «        ¦  «        }t          j        ||t          d|j        ¬¦  «        ¦  «        }t          d | j        ¬¦  «        }t
          j                             | j        ¦  «        �rMt
          j                             |j        ¦  «        �r(t          j        |t          j        | |¦  «        |¦  «        }t
          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        ¦  «        }	n=t          j        |t          j        | |¦  «        |¦  «        }t          j        |¦  «        }	|	S )Nr   r    rw   zpa._lib.Int64Type)rz   Ú	not_equalr|   rœ   Úif_elserc   r¿   Ú
is_integerÚdivide_checkedÚis_signed_integerr   r~   ÚlessÚbit_wise_xorÚand_r}   r{   Úfloor)
r  r  Ú	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Ñ.EÔ.EÑFÔF€JÝ˜$ T¤YÐ/Ñ/Ô/€Oå	„x×Ò˜4œ9Ñ%Ô%ñ #­"¬(×*=Ò*=¸e¼jÑ*IÔ*Iñ #Ý”*Ø•rÔ(¨¨zÑ:Ô:¸Oñ
ô 
ˆõ Œ8×%Ò% g¤lÑ3Ô3ð 	ÝÐ/°´Ñ>Ô>ˆHÝœL­¬°W¸eÑ)DÔ)DÀdÑKÔKˆMÝ')¤wÝ”  eÑ,Ô,­c°!°XÑ.>Ô.>ñ(ô (Ð$õ ”ZÝ”˜Ð'?Ñ@Ô@Ý”˜G¥S¨¨HÑ%5Ô%5Ñ6Ô6Øñô ˆFˆFð ˆFØ—’˜TœYÑ'Ô'ˆˆå”*˜Y­¬	°$¸
Ñ(CÔ(CÀ_ÑUÔUˆÝ”˜'Ñ"Ô"ˆØ€Mr,   Úarrow_arrayr   Ú	pa_objectr   ú'tuple[ArrayOrScalarT1, ArrayOrScalarT2]c                ó:  — t           j                             | j        ¦  «        rtt           j                             |j        ¦  «        rP|                      t          j        ¦   «         d¬¦  «        |                     t          j        ¦   «         d¬¦  «        fS | |fS )NF)Úsafe)rc   r¿   r  rœ   r   Úfloat64)r%  r&  s     r)   Úcast_for_truedivr+  _  sŽ   € õ 
„x×Ò˜;Ô+Ñ,Ô,ð 
µ´×1DÒ1DÀYÄ^Ñ1TÔ1Tð 
ð ×Ò¥¤
¡¤°5ÐÑ9Ô9¸9¿>º>ÝŒJ‰LŒ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%Súpa.StructArrayc              óv   — t          j        t          | |||¬¦  «        j        ¦  «        }t	          d|¦  «        S )Nr<   r.  )rc   r�   rC   Úchunksr   )rA   r?   r=   r>   Úrs        r)   Ú_extract_regex_concat_arraysr2  ‰  s@   € õ 	ÔÝ�g˜w°À[ÐQÑQÔQÔXñ	ô 	€Aõ Ð  !Ñ$Ô$Ð$r,   c                óØ  — t          |                      ¦   «                              dd¦  «        t          ¬¦  «        }t	          j        |                     ¦   «         ¦  «                             ¦   «         sd}t          |¦  «        ‚| 	                    d¦  «        }| 	                    d¦  «        }t	          j
        t	          j        |¦  «        ¦  «                             ¦   «         dk    rd}t          |¦  «        ‚t	          j
        t	          j        |¦  «        ¦  «                             ¦   «         dk    rd	}t          |¦  «        ‚t          t          d
| 	                    d¦  «        ¦  «        ¦  «        }t          t          d
| 	                    d¦  «        ¦  «        ¦  «        }|d                              ¦   «         }|d                              ¦   «         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à   rw   z@Found multiple separator values while inferring datetime format.z?Found multiple timezone values while inferring datetime format.úpc.StringArrayÚdateÚtimez%zÚ )r2  Ú	drop_nullÚsliceÚFULL_RErz   ÚallÚis_validÚas_pyr  r¸   ÚcountÚuniqueÚ
ValueErrorÚ_parse_date_formatr   Úparse_time_format)	r’   Úmatchesr  Ú
separatorsrà   Ú
date_valueÚ
time_valueÚ	sep_valueÚtz_values	            r)   Úparse_datetime_formatrL  —  sž  € å*¨3¯=ª=©?¬?×+@Ò+@ÀÀBÑ+GÔ+GÕQXÐYÑYÔY€GÝŒ6�'×"Ò"Ñ$Ô$Ñ%Ô%×+Ò+Ñ-Ô-ð 'ðUð 	õ " #Ñ&Ô&Ð&à—’˜uÑ%Ô%€JØ	�Š�tÑ	Ô	€Bõ 
„x•”	˜*Ñ%Ô%Ñ&Ô&×,Ò,Ñ.Ô.°Ò2Ð2ØPˆÝ˜‰oŒoÐå	„x•”	˜"‘”ÑÔ×$Ò$Ñ&Ô&¨Ò*Ð*ØOˆÝ˜‰oŒoÐå#¥DÐ)9¸7¿=º=ÈÑ;PÔ;PÑ$QÔ$QÑRÔR€JÝ"¥4Ð(8¸'¿-º-ÈÑ:OÔ:OÑ#PÔ#PÑQÔQ€Jà˜1”×#Ò#Ñ%Ô%€IØ˜!”u—{’{‘}”}Ð,ˆtˆt¨"€HàÐ;˜)Ð; ZÐ;°Ð;Ð;Ð;r,   r7  c                óF  — t           D �]ˆ\  }}t          j        | |¬¦  «        }|dk    r<t          j        |                     ¦   «         ¦  «                             ¦   «         r|c S t          j        |                     ¦   «         ¦  «                             ¦   «         ròt          j        t          j        |                     d¦  «        x}¦  «        ¦  «                             ¦   «         dk    r¡t          j        t          j        |                     d¦  «        x}¦  «        ¦  «                             ¦   «         dk    rP|d                              ¦   «         x}|d                              ¦   «         k    r| 	                    d|¦  «        c S �ŒŠd}t          |¦  «        ‚)	Nr5  r-  Úsep1rw   Úsep2r   ú-zgUnable to infer datetime format. Please report a bug to https://github.com/narwhals-dev/narwhals/issues)ÚDATE_FORMATSrz   rC   r>  r?  r@  rA  rB  r¸   ÚreplacerC  )r’   Údate_rgxÚdate_fmtrF  rN  rO  Údate_sep_valuer  s           r)   rD  rD  ¶  sf  € Ý*ð 
9ñ 
9Ñˆ�(ÝÔ" 3°Ð9Ñ9Ô9ˆØ�xÒÐ¥B¤F¨7×+;Ò+;Ñ+=Ô+=Ñ$>Ô$>×$DÒ$DÑ$FÔ$FÐØˆOˆOˆOåŒF�7×#Ò#Ñ%Ô%Ñ&Ô&×,Ò,Ñ.Ô.ð	9å”�œ¨7¯=ª=¸Ñ+@Ô+@Ð#@ 4ÑAÔAÑBÔB×HÒHÑJÔJÈaÒOÐOÝ”�œ¨7¯=ª=¸Ñ+@Ô+@Ð#@ 4ÑAÔAÑBÔB×HÒHÑJÔJÈaÒOÐOØ#'¨¤7§=¢=¡?¤?Ð2�°t¸A´w·}²}±´ÒFÐFà×#Ò# C¨Ñ8Ô8Ð8Ð8Ð8ùð	Qð õ �S‰/Œ/Ðr,   c                óÄ   — t           D ]W\  }}t          j        | |¬¦  «        }t          j        |                     ¦   «         ¦  «                             ¦   «         r|c S ŒXdS )Nr5  r:  )ÚTIME_FORMATSrz   rC   r>  r?  r@  )r’   Útime_rgxÚtime_fmtrF  s       r)   rE  rE  Ê  sh   € Ý*ð ð Ñˆ�(ÝÔ" 3°Ð9Ñ9Ô9ˆÝŒ6�'×"Ò"Ñ$Ô$Ñ%Ô%×+Ò+Ñ-Ô-ð 	ØˆOˆOˆOð	àˆ2r,   Úwindow_sizeÚcenterÚboolútuple[ArrowSeries, int]c               óè   — |s| dfS |dz  }||dz  dk    z
  }| j         j        }t          || ¦  «        g|¢t          || ¦  «        ‘R }|                      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   é   )r›   r0  r�   Ú_with_nativerc   r�   )r˜   rZ  r[  Úoffset_leftÚoffset_rightr0  rs   s          r)   Ú
pad_seriesrc  Ò  s�   € ð ð Ø�qˆyÐØ Ñ"€Kà +°¡/°QÒ"6Ñ7€LØŒ]Ô!€FÝ˜ VÑ,Ô,ÐW¨vÐWµzÀ,ÐPVÑ7WÔ7WÐWÐW€FØ×Ò�rÔ/°Ñ7Ô7Ñ8Ô8¸+ÈÑ:TÐTÐTr,   Úchunked_arraysúChunkedArrayAny | ScalarAnyÚ	separatorú7tuple[Iterator[ChunkedArrayAny | ScalarAny], ScalarAny]c                ó¾   ‡— t          d„ |D ¦   «         ¦  «        st          j        ¦   «         nt          j        ¦   «         Šˆfd„|D ¦   «         t	          | ‰¦  «        fS )Nc              3  ó^   K  — | ](}t           j                             |j        ¦  «        V — Œ)d S r&   )rc   r¿   rÙ   rœ   )rº   Úcas     r)   ú	<genexpr>z2cast_to_comparable_string_types.<locals>.<genexpr>ï  s4   è è € ÐNÐN¸•2”8×+Ò+¨B¬GÑ4Ô4ÐNÐNÐNÐNÐNÐNr,   c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S r&   )r   )rº   rj  r”   s     €r)   rk  z2cast_to_comparable_string_types.<locals>.<genexpr>ò  s-   øè è € Ð4Ð4˜rˆB�GŠG�E‰NŒNÐ4Ð4Ð4Ð4Ð4Ð4r,   )Úanyrc   ÚstringÚlarge_stringr|   )rf  rd  r”   s     @r)   Úcast_to_comparable_string_typesrp  é  si   ø€ õ ÐNÐN¸~ÐNÑNÔNÑNÔNð	�Œ	‰ŒˆåŒ_ÑÔð 
ð
 5Ð4Ð4Ð4 ^Ð4Ñ4Ô4µc¸)ÀUÑ6KÔ6KÐKÐKr,   )é   Úpromote_optionsÚdefaultÚ
permissiveÚnone)rs  rt  ru  z*Mapping[PromoteOptions, Mapping[str, Any]]Ú_PROMOTEÚpromoteTFÚtablesúIterable[pa.Table]r   úpa.Tablec                ó<   — t          j        | fi t          |         ¤ŽS r&   )rc   Úconcat_tablesrv  )rx  rr  s     r)   r|  r|    s"   € õ Ô˜FÐ@Ð@¥h¨Ô&?Ð@Ð@Ð@r,   c                  ó   — e Zd ZdS )ÚArrowSeriesNamespaceN)r  Ú
__module__Ú__qualname__r'   r,   r)   r~  r~    s   € € € € € € € r,   r~  )r   r   rp   Úfuncú:Literal['min', 'max', 'mean', 'approximate_median', 'sum']c                óp  — t           }|dk    rd|t          j        d¬¦  «        fnd|f}t          j        t          j                             t          j        | ¦  «        t          j        | ¦  «        gddg¬¦  «         	                    d¦  «         
                    |g¦  «                             d¦  «                             d|› �¦  «        ¦  «        }t          j        t          j        t          j        | ¦  «        t          d¦  «        ¦  «        ¦  «        }|dk    r)t          j        |                     ¦   «         d d¦  «        }n2t          j         |d |j        ¬¦  «        t'          | ¦  «        ¦  «        }t          j        t          j        ||                     d	¦  «        |¦  «        g¦  «        S )
NÚsumÚvaluesr   )Ú	min_countr�   ©ÚnamesÚvalues_r    F)r|   rz   ÚScalarAggregateOptionsrc   rp   ÚTabler„   Úlist_flattenÚlist_parent_indicesÚgroup_byÚ	aggregateÚsort_byÚcolumnr  Úlist_value_lengthr  Úis_nullr¡   rœ   ry   r‚   Úreplace_with_maskÚ	fill_null)rp   r�  r¢   ÚaggregationÚaggÚnon_empty_maskÚ
base_arrays          r)   Úlist_aggrš    s’  € õ €Dð �5Š=ˆ=ð 
�4�Ô2¸QÐ?Ñ?Ô?Ð@Ð@à˜Ðð õ
 Œ(Ý
Œ×ÒÝŒ_˜UÑ#Ô#¥RÔ%;¸EÑ%BÔ%BÐCØ˜YÐ'ð 	ñ 	
ô 	
÷ 
Š�)Ñ	Ô	ß	Š�K�=Ñ	!Ô	!ß	Š�Ñ	Ô	ß	ŠÐ ˜$Ð Ð Ñ	!Ô	!ñ	ô 	€Cõ ”X�bœl­2Ô+?ÀÑ+FÔ+FÍÈAÉÌÑOÔOÑPÔP€NØˆu‚}€}å”Z × 6Ò 6Ñ 8Ô 8¸$ÀÑBÔBˆ
ˆ
å”Y˜t˜t D¨s¬xÐ8Ñ8Ô8½#¸e¹*¼*ÑEÔEˆ
ÝÔåÔ ØØ×(Ò(¨Ñ/Ô/Øñô ð	
ñô ð r,   Ú
descendingÚ
nulls_lastc               óÜ  — |rdnd}|rdnd}d\  }}t          j        t          j        | ¦  «        t          d¦  «        ¦  «        }t          j                             t          dt          | ¦  «        d¬¦  «        | g||g¬	¦  «        }| 	                    |¦  «        }	| 	                    t          j
        t          j        |¦  «        t          d
¦  «        ¦  «        ¦  «        }
t          j                             t          j        | ¦  «        t          j        | ¦  «        g||g¬	¦  «        }t          dk     rt          j        ||df||fg|¬¦  «        }n |d|f|||fg}t          j        ||¬¦  «        }|	                     |¦  «                             ¦   «         j        }t          j                             |t	          j        |                     |¦  «                             |¦  «        ¦  «        ¦  «        }t          j                             |	                     |¦  «        |g||g¬	¦  «        }t	          j        ||
g¦  «                             |¦  «                             |¦  «        S )Nr›  Ú	ascendingÚat_endÚat_start)Úidxr…  r   rw   )rh   rj   rk   r‡  T)é   )Ú	sort_keysÚnull_placement)r£  )rz   Úgreaterr’  r|   rc   r‹  r„   rq   ry   Úfilterr•  ÚinvertrŒ  r�  rn   Úsort_indicesr‘  Úcombine_chunksr�   rƒ   rp   r   r|  r�  )rp   r›  rœ  Úsort_directionÚnulls_positionr¡  ÚvÚis_not_sortedÚindexedÚnot_sorted_partÚpass_throughÚexplodedÚsorted_indicesÚkeyedr�   Úsorted_implodedÚimploded_by_idxs                    r)   Ú	list_sortr¶  3  sM  € ð #Ð3ˆˆ¨ð ð AKÐ4Z°H°HÐPZ€NØ�F€CˆÝ”J�rÔ3°EÑ:Ô:½CÀ¹F¼FÑCÔC€MÝŒh×"Ò"Ý	�a�S ™ZœZ¨aÐ	0Ñ	0Ô	0°%Ð8ÀÀaÀð #ñ ô €Gð —n’n ]Ñ3Ô3€OØ—>’>¥"¤,­r¬y¸Ñ/GÔ/GÍÈTÉÌÑ"SÔ"SÑTÔT€LÝŒx×#Ò#Ý	Œ˜Ñ	Ô	¥Ô!7¸Ñ!>Ô!>Ð?ÈÈ3Àxð $ñ ô €Hõ ˜ÒÐÝœØØ˜[Ð)¨A¨~Ð+>Ð?Ø)ð
ñ 
ô 
ˆˆð �{ NÐ3°a¸ÈÐ5XÐYˆÝœ¨¸UÐCÑCÔCˆà×$Ò$ QÑ'Ô'×6Ò6Ñ8Ô8Ô@€GÝ”l×.Ò.Ø•”˜(Ÿ-š-¨Ñ7Ô7×>Ò>¸qÑAÔAÑBÔBñô €Oõ ”h×*Ò*Ø	×	Ò	 Ñ	$Ô	$ oÐ6¸sÀA¸hð +ñ ô €Oõ Ô˜_¨lÐ;Ñ<Ô<×DÒDÀSÑIÔI×PÒPÐQRÑSÔSÐSr,   )r"   r   r#   r$   )r"   r   r#   r-   )r"   r   r#   r0   )r"   r   r#   r3   )r"   r   r#   r6   )r"   r   r#   r9   )
r?   r@   rA   r   r=   r   r>   r   r#   r!   )rY   r   r#   r   )r_   r   r#   r`   )rh   ri   rj   ri   rk   ri   r#   r   )rs   rt   r#   ru   r&   )r’   r“   r”   r•   r#   r   )r…   ri   r˜   r   r#   r   )r”   r•   rY   rž   r…   ri   r#   r   )r…   ri   r#   rx   )r”   r¥   r¦   r
   r#   r   )r”   r   r¦   r
   r#   r¥   )r  r   r  r	  r#   r
  )r  r   r  r   r#   r   )r%  r   r&  r   r#   r'  )
r?   r@   rA   r   r=   r   r>   r   r#   r.  )r’   r   r#   r@   )r’   r7  r#   r@   )r˜   r   rZ  ri   r[  r\  r#   r]  )rd  re  rf  r@   r#   rg  )ru  )rx  ry  rr  r   r#   rz  )rp   r   r�  r‚  r#   r   )rp   r   r›  r\  rœ  r\  r#   r   )�Ú
__future__r   Ú	functoolsr   Útypingr   r   r   Úpyarrowrc   Úpyarrow.computeÚcomputerz   Únarwhals._compliantr   Únarwhals._utilsr	   r
   r   Úcollections.abcr   r   r   r   r   Útyping_extensionsr   r]   r   Únarwhals._arrow.typingr   r   r   r   r   r   r   r   r   Únarwhals._durationr   Únarwhals.dtypesr   Únarwhals.typingr   r    r!   Ú__annotations__r*   r/   r2   r5   r8   r;   rC   Úpyarrow.typesÚPYARROWÚ_backend_versionrn   rX   Úscalarr|   r^   rg   rq   r‘   r‚   r�   r¡   r¤   r¬   r«   ÚMAINr©   rÓ   r*  rÕ   Úfloat32r×   Úfloat16rð   ÚbinaryrÛ   rn  rÑ   Úbool_râ   Ú
dictionaryÚuint32rÝ   Údate32rî   Útime64rÇ   Úint8rÅ   Úint16rÃ   Úint32rÁ   Úint64rÏ   Úuint8rÍ   Úuint16rË   rÉ   Úuint64rñ   ÚObjectÚEnumr  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_SEPrQ  rW  r2  rL  rD  rE  rc  rp  rv  r|  r~  rš  r¶  r'   r,   r)   ú<module>rç     sO  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à Ð Ð Ð Ø Ð Ð Ð Ð Ð à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Màð 2Ø;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ø)Ð)Ð)Ð)Ð)Ð)Ð)Ð)à(Ð(Ð(Ð(Ð(Ð(à2Ð2Ð2Ð2Ð2Ð2ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 0Ð/Ð/Ð/Ð/Ð/Ø%Ð%Ð%Ð%Ð%Ð%Ø8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ð *9ÐÐ8Ð8Ð8Ñ8àGÐGÐGÐGØ@Ð@Ð@Ð@Ø8Ð8Ð8Ð8ØCÐCÐCÐCØQÐQÐQÐQØNÐNÐNÐNð Øð&ð &ð &ð &ð &ð &ð &ð .Ð-Ð-Ð-Ð-Ð-ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð !Ô(×9Ò9Ñ;Ô;€Ø +ð 
Ø	Ø
Ø	Ø	Ø	Ø	Ø
Ø
Ø
ð9ð 9€
ð ð ð ñ ð 	„i€Ø !ðAð Að Að AðCð Cð Cð Cð
'ð 'ð 'ð 'ðNð Nð Nð Nð* KOð*ð *ð *ð *ð *ð+ð +ð +ð +ð NRð1ð 1ð 1ð 1ð 1ðð ð ð ðBð Bð Bð Bð €�2ÐÑÔð@ð @ð @ñ Ôð@ðF 
ŒÔ	€ð6Ø
„N�J�B”J‘L”Lð6à
„N�J�B”J‘L”Lð6ð „N�J�B”J‘L”Lð6ð „M�9�2”9‘;”;ð	6ð
 „M�9�2”9‘;”;ð6ð „N�H�B”H‘J”Jð6ð Ô˜˜œ i b¤i¡k¤k°9°2´9±;´;Ñ?Ô?ð6ð „K��”‘”ð6ð „K��”˜4‘”ð6ð „K��”‘”ð6ð „L�(�"”(‘*”*ð6ð „L�(�"”(‘*”*ð6ð „L�(�"”(‘*”*ð6ð „L�(�"”(‘*”*ð6ð „M�9�2”9‘;”;ð6ð  „M�9�2”9‘;”;ð!6ð" „M�9�2”9‘;”;ð#6€ð ð ð ñ ð& ”m V¤[Ð1Ð ðð ð ð ð@Gð Gð Gð Gð< ð  ð  ð  ðF"ð "ð "ð "ð$ =€Ø	€Ø
4€Ø	(€Ø €Ø*€Ø%€ØÐ
3�vÐ
3Ð
3 Ð
3Ð
3¨%Ð
3Ð
3Ð
3€ð 
D€ð 
D€ð 
D€Øl€ð �HÐØˆZÐØˆZÐØˆZÐð	€ð ˜Ð$ u¨gÐ&6¸ÈÐ8QÐR€ð Øð%ð %ð %ð %ð %ð %ð<ð <ð <ð <ð>ð ð ð ð(ð ð ð ðUð Uð Uð Uð.	Lð 	Lð 	Lð 	Lð �eÒÐð & yÐ1Ø(¨,Ð7Ø" FÐ+ð<ð <€Hð ð ð ñ ð ð ˜tÐ$Ø  $Ð'Ø˜EÐ"ðð €Hð CIðAð Að Að Að Að XÐ WÐ WÐ WÐ WÐ/Ð0PÔQÑ WÔ WÐ Wð"ð "ð "ð "ðJ$Tð $Tð $Tð $Tð $Tð $Tr,   