Ë
    z�h[O  ã                  ó:  — U d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z  d dlm!Z! d dlm"Z" erhd dl#m$Z$ d dl%Z&d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d d l-m/Z/ d d!l-m0Z0 d d"l1m2Z2 d d#l3m4Z4 d d$l5m6Z6 d d%l7m8Z8 d d&lm9Z9 d d'lm:Z: d d(lm;Z; d d)lm<Z< e*e	e	e	e	e	f   Z=e	Z>d*e?d+<   	  G d,„ d-ed.   «      Z@y)/é    )ÚannotationsN)Úreduce)Úand_)ÚTYPE_CHECKING)ÚAny)ÚIterator)ÚMapping)ÚSequence©Úis_native_spark_like)Úevaluate_exprs)Úimport_functions)Úimport_native_dtypes)Úimport_window)Únative_to_narwhals_dtype)ÚInvalidOperationError)ÚCompliantDataFrame)ÚCompliantLazyFrame)ÚImplementation)Úcheck_column_exists)Úfind_stacklevel)Úgenerate_temporary_column_name)Únot_implemented)Úparse_columns_to_drop)Úparse_version)Úvalidate_backend_version)Ú
ModuleType)ÚColumn)ÚBaseDataFrame©ÚWindow)ÚSelf)Ú	TypeAlias)ÚTypeIs)ÚSparkLikeExpr©ÚSparkLikeLazyGroupBy©ÚSparkLikeNamespace)ÚDType)ÚJoinStrategy)ÚLazyUniqueKeepStrategy)ÚVersion)Ú_FullContextr#   Ú
Incompletec                  ó>  — e Zd Z	 	 	 	 	 	 	 	 	 	 d%d„Zed„ «       Zed„ «       Zed&d„«       Zed'd„«       Z	e
d(d„«       Zd)d„Zd*d„Zd+d	„Zd,d
„Zd-d„Zd.d„Zd/d„Zd0d„Zed1d„«       Z	 	 	 	 	 	 d2d„Zd3d„Z	 	 	 	 d4d„Z	 	 	 	 d4d„Zd4d„Zd5d„Zed6d„«       Zd6d„Zd7d„Zd8d„Z	 	 	 	 	 	 d9d„Z	 	 	 	 	 	 	 	 d:d„Z d;d„Z!d<d„Z"	 	 	 	 	 	 d=d„Z#	 	 	 	 	 	 	 	 	 	 	 	 d>d„Z$d?d „Z%	 	 	 	 	 	 	 	 	 	 d@d!„Z& e'jP                  d"«      Z) e'«       Z* e'jP                  d#«      Z+ e'«       Z,y$)AÚSparkLikeLazyFramec               ó˜   — || _         || _        || _        || _        d | _        d | _        t        | j                  | j                  «       y ©N)Ú_native_frameÚ_backend_versionÚ_implementationÚ_versionÚ_cached_schemaÚ_cached_columnsr   )ÚselfÚnative_dataframeÚbackend_versionÚversionÚimplementations        ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/narwhals/_spark_like/dataframe.pyÚ__init__zSparkLikeLazyFrame.__init__9   sJ   € ð 1AˆÔØ /ˆÔØ-ˆÔØˆŒØ7;ˆÔØ15ˆÔÜ  ×!5Ñ!5°t×7LÑ7LÕMó    c                óH   — t         rddlm} |S t        | j                  «      S )Nr   )Ú	functions)r   Úsqlframe.baserC   r   r6   )r:   rC   s     r?   Ú_FzSparkLikeLazyFrame._FI   s   € åÝ/àÐä# D×$8Ñ$8Ó9Ð9rA   c                óH   — t         rddlm} |S t        | j                  «      S )Nr   )Útypes)r   rD   rG   r   r6   )r:   rG   s     r?   Ú_native_dtypesz!SparkLikeLazyFrame._native_dtypesR   s   € åÝ+àˆLä'¨×(<Ñ(<Ó=Ð=rA   c                óH   — t         rddlm} |S t        | j                  «      S )Nr   r    )r   Úsqlframe.base.windowr!   r   r6   )r:   r!   s     r?   Ú_WindowzSparkLikeLazyFrame._Window[   s   € åÝ3àˆMä  ×!5Ñ!5Ó6Ð6rA   c                ó   — t        | «      S r3   r   )Úobjs    r?   Ú
_is_nativezSparkLikeLazyFrame._is_natived   s   € ä# CÓ(Ð(rA   c              óV   —  | ||j                   |j                  |j                  ¬«      S ©N©r<   r=   r>   )r5   r7   r6   )ÚclsÚdataÚcontexts      r?   Úfrom_nativezSparkLikeLazyFrame.from_nativeh   s-   € áØØ#×4Ñ4Ø×$Ñ$Ø"×2Ñ2ô	
ð 	
rA   c                ó6   — | j                   j                  «       S r3   )r6   Úto_native_namespace©r:   s    r?   Ú__native_namespace__z'SparkLikeLazyFrame.__native_namespace__q   s   € Ø×#Ñ#×7Ñ7Ó9Ð9rA   c                ó`   — ddl m}  || j                  | j                  | j                  ¬«      S )Nr   r(   rQ   )Únarwhals._spark_like.namespacer)   r5   r7   r6   )r:   r)   s     r?   Ú__narwhals_namespace__z)SparkLikeLazyFrame.__narwhals_namespace__t   s+   € ÝEá!Ø ×1Ñ1Ø—M‘MØ×/Ñ/ô
ð 	
rA   c                ó   — | S r3   © rX   s    r?   Ú__narwhals_lazyframe__z)SparkLikeLazyFrame.__narwhals_lazyframe__}   s   € ØˆrA   c                óh   — | j                  | j                  | j                  || j                  ¬«      S rP   )Ú	__class__Únativer5   r6   )r:   r=   s     r?   Ú_with_versionz SparkLikeLazyFrame._with_version€   s4   € Ø�~‰~Ø�K‰KØ ×1Ñ1ØØ×/Ñ/ð	 ó 
ð 	
rA   c                óh   — | j                  || j                  | j                  | j                  ¬«      S rP   )ra   r5   r7   r6   )r:   Údfs     r?   Ú_with_nativezSparkLikeLazyFrame._with_nativeˆ   s4   € Ø�~‰~ØØ ×1Ñ1Ø—M‘MØ×/Ñ/ð	 ó 
ð 	
rA   c                ó$  — dd l }ddlm} g }| j                  «       }| j                  j
                  }|j                  «       D ],  \  }}	  ||| j                  «      }|j                  ||f«       Œ.  |j
                  |«      S # t        $ r‚}	||   j                  }
| j                  j                  }t        |
|«      s%t        j                  d|
› d|	›�t!        «       ¬«       |j                  | |j"                  «       f«       Y d }	~	ŒÇd }	~	ww xY w)Nr   )Únarwhals_to_native_dtypezCould not convert dtype z to PyArrow dtype, )Ú
stacklevel)ÚpyarrowÚnarwhals._arrow.utilsrh   Úcollect_schemarb   ÚschemaÚitemsr7   ÚappendÚ	ExceptionÚdataTyperH   ÚNullTypeÚ
isinstanceÚwarningsÚwarnr   Únull)r:   Úparh   rm   Ú	nw_schemaÚnative_schemaÚkeyÚvalueÚnative_dtypeÚexcÚnative_spark_dtypeÚ	null_types               r?   Ú_to_arrow_schemaz#SparkLikeLazyFrame._to_arrow_schema�   s  € ÛåBà02ˆØ×'Ñ'Ó)ˆ	ØŸ™×*Ñ*ˆØ#Ÿ/™/Ó+ò 	3‰JˆC�ð3Ù7¸¸t¿}¹}ÓM�ð —‘˜s LÐ1Õ2ð!	3ð" ˆr�y‰y˜Ó Ð øô ò 0Ø%2°3Ñ%7×%@Ñ%@Ð"ð !×/Ñ/×8Ñ8�	Ü!Ð"4°iÔ@Ü—M‘MØ2Ð3EÐ2FÐFYÐZ]ÐY`ÐaÜ#2Ó#4õð —‘˜s G B§G¡G£IÐ.×/Ñ/ûð0ús   Á
BÂ	DÂA8D
Ä
Dc                ó¾  — | j                   j                  «       rG| j                  dk  r8dd l}	 |j                  j                  | j                  j                  «       «      S | j                   j                  «       rX| j                  dk  rIdd l}| j                  «       }|j                  j                  | j                  j                  «       |¬«      S | j                  j!                  «       S # t        $ re}dt        |«      v rR| j                  D �ci c]  }|g “Œ nc c}w }}| j                  «       }|j                  j                  ||¬«      cY d }~S ‚ d }~ww xY w)N)é   r   zat least one RecordBatch©rm   )r6   Ú
is_pysparkr5   rj   ÚTableÚfrom_batchesrb   Ú_collect_as_arrowÚ
ValueErrorÚstrÚcolumnsr€   Úfrom_pydictÚis_pyspark_connectÚfrom_pandasÚtoPandasÚtoArrow)r:   rw   r}   ÚkrS   Ú	pa_schemas         r?   Ú_collect_to_arrowz$SparkLikeLazyFrame._collect_to_arrow«   s#  € Ø×Ñ×*Ñ*Ô,°×1FÑ1FÈÒ1MÛ ð
Ø—x‘x×,Ñ,¨T¯[©[×-JÑ-JÓ-LÓMÐMð ×!Ñ!×4Ñ4Ô6¸4×;PÑ;PÐSWÒ;WÛ à×-Ñ-Ó/ˆIØ—8‘8×'Ñ'¨¯©×(<Ñ(<Ó(>ÀyÐ'ÓQÐQà—;‘;×&Ñ&Ó(Ð(øô ò Ø-´°S³Ñ9ð BFÇÁÖ1N¸A°!°R±%Ñ1NùÒ1N�DÐ1NØ $× 5Ñ 5Ó 7�IØŸ8™8×/Ñ/°¸YÐ/ÓGÕGàûðús/   ¯2C. Ã.	EÃ7EÄ
DÄ4EÅEÅEÅEc              #  óh   K  — | j                   D ]  }| j                  j                  |«      –— Œ! y ­wr3   )rŠ   rE   Úcol)r:   r”   s     r?   Ú_iter_columnsz SparkLikeLazyFrame._iter_columnsÂ   s,   è ø€ Ø—<‘<ò 	#ˆCØ—'‘'—+‘+˜cÓ"Ó"ñ	#ùs   ‚02c                óª   — | j                   €<| j                  �t        | j                  «      n| j                  j
                  | _         | j                   S r3   )r9   r8   Úlistrm   rb   rŠ   rX   s    r?   rŠ   zSparkLikeLazyFrame.columnsÆ   sM   € à×ÑÐ'ð ×&Ñ&Ð2ô �T—[‘[Ô!à—[‘[×(Ñ(ð Ô ð
 ×#Ñ#Ð#rA   c                ó2  — |t         j                  u rPdd l}ddlm}  || j
                  j                  «       t         j                  t        |«      | j                  d¬«      S |�|t         j                  u r7dd l
}ddlm}  || j                  «       t        |«      | j                  d¬«      S |t         j                  u rIdd l}dd l
}ddlm}  ||j%                  | j                  «       «      t        |«      | j                  ¬«      S d	|› �}	t'        |	«      ‚)
Nr   )ÚPandasLikeDataFrameT)r>   r<   r=   Úvalidate_column_names)ÚArrowDataFrame)r<   r=   rš   )ÚPolarsDataFrame)r<   r=   zUnsupported `backend` value: )r   ÚPANDASÚpandasÚnarwhals._pandas_like.dataframer™   rb   rŽ   r   r7   ÚPYARROWrj   Únarwhals._arrow.dataframer›   r’   ÚPOLARSÚpolarsÚnarwhals._polars.dataframerœ   Ú
from_arrowrˆ   )
r:   ÚbackendÚkwargsÚpdr™   rw   r›   Úplrœ   Úmsgs
             r?   ÚcollectzSparkLikeLazyFrame.collectÐ   s÷   € ð
 ”n×+Ñ+Ñ+ÛåKá&Ø—‘×$Ñ$Ó&Ü-×4Ñ4Ü -¨bÓ 1ØŸ™Ø&*ôð ð ˆ_ ¬>×+AÑ+AÑ AÛ å@á!Ø×&Ñ&Ó(Ü -¨bÓ 1ØŸ™Ø&*ô	ð ð œ×-Ñ-Ñ-ÛÛ åBá"Ø—‘˜d×4Ñ4Ó6Ó7Ü -¨bÓ 1ØŸ™ôð ð .¨g¨YÐ7ˆÜ˜‹oÐrA   c                óR   — | j                   | j                  j                  |Ž «      S r3   )rf   rb   Úselect)r:   Úcolumn_namess     r?   Úsimple_selectz SparkLikeLazyFrame.simple_selectý   s%   € Ø× Ñ Ð!3 §¡×!3Ñ!3°\Ð!BÓCÐCrA   c                ó¼   — t        | g|¢­Ž }|D ��cg c]  \  }}|j                  |«      ‘Œ }}}| j                   | j                  j                  |Ž «      S c c}}w r3   )r   Úaliasrf   rb   Úagg©r:   ÚexprsÚnew_columnsÚcol_namer”   Únew_columns_lists         r?   Ú	aggregatezSparkLikeLazyFrame.aggregate   s[   € ô % TÐ2¨EÒ2ˆàEP×Q±M°H¸c˜CŸI™I hÕ/ÐQÐÑQØ× Ñ   §¡§¡Ð2BÐ!CÓDÐDùó Ró   ’Ac                ó¼   — t        | g|¢­Ž }|D ��cg c]  \  }}|j                  |«      ‘Œ }}}| j                   | j                  j                  |Ž «      S c c}}w r3   )r   r±   rf   rb   r­   r³   s         r?   r­   zSparkLikeLazyFrame.select	  s^   € ô % TÐ2¨EÒ2ˆØGR×S±O°X¸s˜CŸI™I hÕ/ÐSÐÑSØ× Ñ Ð!3 §¡×!3Ñ!3Ð5EÐ!FÓGÐGùó Tr¹   c                ó€   — t        | g|¢­Ž }| j                  | j                  j                  t	        |«      «      «      S r3   )r   rf   rb   ÚwithColumnsÚdict)r:   r´   rµ   s      r?   Úwith_columnszSparkLikeLazyFrame.with_columns  s6   € Ü$ TÐ2¨EÒ2ˆØ× Ñ  §¡×!8Ñ!8¼¸kÓ9JÓ!KÓLÐLrA   c                ó‚   — |j                  | «      d   }| j                  j                  |«      }| j                  |«      S ©Nr   )Ú_callrb   Úwhererf   )r:   Ú	predicateÚ	conditionÚspark_dfs       r?   ÚfilterzSparkLikeLazyFrame.filter  s:   € à—O‘O DÓ)¨!Ñ,ˆ	Ø—;‘;×$Ñ$ YÓ/ˆØ× Ñ  Ó*Ð*rA   c           	     óø   — | j                   €^| j                  j                  D �ci c]9  }|j                  t	        |j
                  | j                  | j                  ¬«      “Œ; c}| _         | j                   S c c}w )N)Údtyper=   Úspark_types)r8   rb   rm   Únamer   rq   r7   rH   )r:   Úfields     r?   rm   zSparkLikeLazyFrame.schema  sr   € à×ÑÐ&ð "Ÿ[™[×/Ñ/ö#ð ð —
‘
Ô4ØŸ.™.Ø ŸM™MØ $× 3Ñ 3ôñ ò#ˆDÔð ×"Ñ"Ð"ùò#s   ¥>A7c                ó   — | j                   S r3   rƒ   rX   s    r?   rl   z!SparkLikeLazyFrame.collect_schema(  s   € Ø�{‰{ÐrA   c               ón   — t        | ||¬«      }| j                   | j                  j                  |Ž «      S )N)Úcompliant_framerŠ   Ústrict)r   rf   rb   Údrop)r:   rŠ   rÏ   Úcolumns_to_drops       r?   rÐ   zSparkLikeLazyFrame.drop+  s8   € Ü/Ø ¨'¸&ô
ˆð × Ñ Ð!1 §¡×!1Ñ!1°?Ð!CÓDÐDrA   c                óV   — | j                  | j                  j                  |«      «      S r3   )rf   rb   Úlimit)r:   Úns     r?   ÚheadzSparkLikeLazyFrame.head1  s"   € Ø× Ñ  §¡×!2Ñ!2°1Ó!5Ó6Ð6rA   c               ó$   — ddl m}  || ||¬«      S )Nr   r&   )Údrop_null_keys)Únarwhals._spark_like.group_byr'   )r:   Úkeysr×   r'   s       r?   Úgroup_byzSparkLikeLazyFrame.group_by4  s   € õ 	Gá# D¨$¸~ÔNÐNrA   c               ó  ‡ — t        |t        «      r|gt        |«      z  }|rˆ fd„|D «       }nˆ fd„|D «       }t        ||«      D ��cg c]  \  }} ||«      ‘Œ }}}‰ j	                   ‰ j
                  j                  |Ž «      S c c}}w )Nc              3  óz   •K  — | ]2  }|r‰j                   j                  n‰j                   j                  –— Œ4 y ­wr3   )rE   Údesc_nulls_lastÚasc_nulls_last©Ú.0Údr:   s     €r?   ú	<genexpr>z*SparkLikeLazyFrame.sort.<locals>.<genexpr>E  s4   øè ø€ ò àñ ,-�—‘×'Ò'°$·'±'×2HÑ2HÓHñùó   ƒ8;c              3  óz   •K  — | ]2  }|r‰j                   j                  n‰j                   j                  –— Œ4 y ­wr3   )rE   Údesc_nulls_firstÚasc_nulls_firstrß   s     €r?   râ   z*SparkLikeLazyFrame.sort.<locals>.<genexpr>J  s4   øè ø€ ò àñ -.�—‘×(Ò(°4·7±7×3JÑ3JÓJñùrã   )rs   ÚboolÚlenÚziprf   rb   Úsort)r:   Ú
descendingÚ
nulls_lastÚbyÚ
sort_funcsr”   Úsort_fÚ	sort_colss   `       r?   rê   zSparkLikeLazyFrame.sort;  s�   ø€ ô �j¤$Ô'Ø$˜¬¨B«Ñ/ˆJáóà#ô‰Jó
à#ôˆJô
 58¸¸JÓ4G×H¡[ S¨&‘V˜C•[ÐHˆ	ÑHØ× Ñ Ð!1 §¡×!1Ñ!1°9Ð!=Ó>Ð>ùó Is   Á	Bc                óv   — |rt        |«      nd }| j                  | j                  j                  |¬«      «      S )N©Úsubset)r—   rf   rb   Údropna)r:   ró   s     r?   Ú
drop_nullszSparkLikeLazyFrame.drop_nullsR  s2   € Ù!'”�f”¨TˆØ× Ñ  §¡×!3Ñ!3¸6Ð!3Ó!BÓCÐCrA   c                óR  — | j                   D �ci c]  }||j                  ||«      “Œ }}| j                  | j                  j	                  |j                  «       D ��cg c]/  \  }}| j                  j                  |«      j                  |«      ‘Œ1 c}}«      «      S c c}w c c}}w r3   )	rŠ   Úgetrf   rb   r­   rn   rE   r”   r±   )r:   ÚmappingÚcolnameÚrename_mappingÚoldÚnews         r?   ÚrenamezSparkLikeLazyFrame.renameV  s•   € àBFÇ,Á,ö
Ø7>ˆG�W—[‘[ ¨'Ó2Ñ2ð
ˆð 
ð × Ñ Ø�K‰K×ÑØ=K×=QÑ=QÓ=S×T±°°c�—‘—‘˜SÓ!×'Ñ'¨Õ,ÓTóó
ð 	
ùò
ùó
 Us   �BÁ4B#c               óP  — t        | j                  |«       |rt        |«      nd }|dk(  rÒt        d| j                  «      }| j	                  «       j                  |xs | j                  «      }| j                  j                  || j                  j                  d«      j                  |«      «      j                  | j                  j                  |«      dk(  «      j                  |«      }| j                  |«      S | j                  | j                  j                  |¬«      «      S )NÚnoneé   Ú*é   rò   )r   rŠ   r—   r   rK   ÚpartitionByrb   Ú
withColumnrE   ÚcountÚoverrÆ   r”   rÐ   rf   ÚdropDuplicates)r:   ró   ÚkeepÚtmpÚwindowre   s         r?   ÚuniquezSparkLikeLazyFrame.unique`  sá   € ô 	˜DŸL™L¨&Ô1Ù!'”�f”¨TˆØ�6Š>Ü0°°D·L±LÓAˆCØ—\‘\“^×/Ñ/°Ò0F¸$¿,¹,ÓGˆFà—‘×&Ñ& s¨D¯G©G¯M©M¸#Ó,>×,CÑ,CÀFÓ,KÓLß‘˜Ÿ™Ÿ™ CÓ(¨AÑ-Ó.ß‘�c“ð ð
 ×$Ñ$ RÓ(Ð(Ø× Ñ  §¡×!;Ñ!;À6Ð!;Ó!JÓKÐKrA   c           	     ó¾  ‡ ‡‡‡— ‰ j                   }|j                   }|�t        |«      ng Š|�t        |«      ng }|dk7  r|D �	cg c]	  }	|	‰vsŒ|	‘Œ c}	n|}
i t        t        ‰|«      «      ¥|
D �ci c]  }|||v r|› |› �n|“Œ c}¥Š|j                  j                  ‰j                  «       D ��cg c]/  \  }}‰ j                  j                  |«      j                  |«      ‘Œ1 c}}«      Š|j                  «       }|dv r|j                  ˆˆfd„|D «       «       n$|dk(  r|j                  ‰j                  «       «       ‰D �	cg c]  }	‰|	   ‘Œ	 }}	|dk(  r$t        t        ˆˆ fd„t        ||«      D «       «      n|dk(  rd n|}|dk(  rdn|}‰ j                  ‰ j                  j!                  ‰||¬«      j                  |«      «      S c c}	w c c}w c c}}w c c}	w )NÚfull>   ÚleftÚcrossÚinnerc              3  ó0   •K  — | ]  }|‰vr‰|   –— Œ y ­wr3   r^   )rà   rù   rú   Ú	right_on_s     €€r?   râ   z*SparkLikeLazyFrame.join.<locals>.<genexpr>˜  s&   øè ø€ ò àØ )Ñ+ð ˜wÕ'ñùs   ƒc              3  ój   •K  — | ]*  \  }}t        ‰j                  |«      t        ‰|«      k(  –— Œ, y ­wr3   )Úgetattrrb   )rà   Úleft_keyÚ	right_keyÚother_nativer:   s      €€r?   râ   z*SparkLikeLazyFrame.join.<locals>.<genexpr>¤  s4   øè ø€ ò á+˜ )ô ˜DŸK™K¨Ó2´g¸lÈIÓ6VÕVñùs   ƒ03r  Ú
full_outer)ÚonÚhow)rŠ   r—   r½   ré   rb   r­   rn   rE   r”   r±   ÚcopyÚextendÚvaluesr   r   rf   Újoin)r:   Úotherr  Úleft_onÚright_onÚsuffixÚleft_columnsÚright_columnsÚleft_on_ÚcÚright_cols_to_renamerù   rû   rü   Ú	col_orderÚright_on_remappedÚon_Ú
how_nativer  rú   r  s   `                 @@@r?   r  zSparkLikeLazyFrame.joinp  s  û€ ð —|‘|ˆØŸ™ˆà19Ð1Eœt Hœ~È2ˆ	Ø/6Ð/Bœd 7œmÈˆð �fŠ}ð &Ö<�1¨°)Ò);ŠQÓ<àð 	ð
Ü”3�y (Ó+Ó,ð
ð  4öàð °¸LÑ1H˜G˜9 V HÑ-ÈgÑUòð
ˆð —|‘|×*Ñ*Ø9G×9MÑ9MÓ9O×P©X¨S°#ˆT�W‰W�[‰[˜Ó×#Ñ# CÕ(ÓPó
ˆð !×%Ñ%Ó'ˆ	àÐ,Ñ,Ø×Ñô à,ôõ ð
 �FŠ]Ø×Ñ˜^×2Ñ2Ó4Ô5à8AÖB°1˜^¨AÓ.ÐBÐÐBð �fŠ}ô Üôä/2°8Ð=NÓ/Oôôð �gŠ~ñ àð 	ð &)¨F¢]‘\¸ˆ
Ø× Ñ Ø�K‰K×Ñ˜\¨c°zÐÓB×IÑIÈ)ÓTó
ð 	
ùò[ =ùòùó Qùò" Cs   Á	G
ÁG
Á1GÂ14G
ÅGc                ód  ‡ — ‰ j                   j                  }‰ j                  «       }|D ]'  }||   }||j                  k7  sŒd|› d�}t	        |«      ‚ ‰ j
                  }t        |«      dk7  rd}t        |«      ‚‰ j                  j                  «       s‰ j                  j                  «       r�‰ j                   ‰ j                  j                  |D �cg c]^  }||d   k7  r*‰ j                  j                  |«      j!                  |«      n)‰ j                  j#                  |«      j!                  |«      ‘Œ` c}Ž «      S ‰ j                  j%                  «       �r<dˆ fd„}	‰ j                   ‰ j                  j                  |D �cg c]^  }||d   k7  r*‰ j                  j                  |«      j!                  |«      n)‰ j                  j'                  |«      j!                  |«      ‘Œ` c}Ž j)                   ‰ j                  j+                   |	|d   «      «      j                  |D �cg c]^  }||d   k7  r*‰ j                  j                  |«      j!                  |«      n)‰ j                  j-                  d «      j!                  |«      ‘Œ` c}Ž «      «      S d}t/        |«      ‚c c}w c c}w c c}w )	Nz-`explode` operation not supported for dtype `z`, expected List typer  z—Exploding on multiple columns is not supported with SparkLike backend since we cannot guarantee that the exploded columns have matching element counts.r   c                óx   •— ‰j                   j                  | «      ‰j                   j                  | «      dk(  z  S rÀ   )rE   ÚisnullÚ
array_size)r¶   r:   s    €r?   Únull_conditionz2SparkLikeLazyFrame.explode.<locals>.null_conditionÜ  s0   ø€ Ø—w‘w—~‘~ hÓ/°4·7±7×3EÑ3EÀhÓ3OÐSTÑ3TÑUÐUrA   z[Unreachable code, please report an issue at https://github.com/narwhals-dev/narwhals/issues)r¶   r‰   Úreturnr   )r7   Údtypesrl   ÚListr   rŠ   rè   ÚNotImplementedErrorr6   r„   rŒ   rf   rb   r­   rE   r”   r±   Úexplode_outerÚis_sqlframeÚexplodeÚunionrÆ   ÚlitÚAssertionError)
r:   rŠ   r2  rm   Úcol_to_exploderÈ   rª   r®   r¶   r0  s
   `         r?   r7  zSparkLikeLazyFrame.explode³  s¡  ø€ Ø—‘×%Ñ%ˆà×$Ñ$Ó&ˆØ%ò 	1ˆNØ˜>Ñ*ˆEà˜Ÿ™Ó#àCÀEÀ7ð K)ð )ð ô ,¨CÓ0Ð0ð	1ð —|‘|ˆäˆw‹<˜1Òð^ð ô & cÓ*Ð*à×Ñ×*Ñ*Ô,°×0DÑ0D×0WÑ0WÔ0YØ×$Ñ$Ø"�—‘×"Ñ"ð
 )5ö	ð %ð $ w¨q¡zÒ1ð Ÿ™Ÿ™ HÓ-×3Ñ3°HÔ=à!ŸW™W×2Ñ2°8Ó<×BÑBÀ8ÓLñMòðó	ð 	ð ×!Ñ!×-Ñ-Õ/õVð ×$Ñ$Ø"�—‘×"Ñ"ð
 )5ö	ð %ð $ w¨q¡zÒ1ð Ÿ™Ÿ™ HÓ-×3Ñ3°HÔ=à!ŸW™WŸ_™_¨XÓ6×<Ñ<¸XÓFñGòð÷ ‘%ØI�D—K‘K×&Ñ&¡~°g¸a±jÓ'AÓB×IÑIð
 -9ö	ð !)ð  (¨7°1©:Ò5ð !ŸG™GŸK™K¨Ó1×7Ñ7¸ÔAà!%§¡§¡¨TÓ!2×!8Ñ!8¸Ó!BñCòðó	óð ð( pˆCÜ  Ó%Ð%ùòOùò(ùòs   ÃA#J#ÆA#J(È'A#J-c                ó¦  — | j                   j                  «       r$|dk(  rd}t        |«      ‚|dk(  rd}t        |«      ‚	 |rt        |«      nd}|€6t        t	        | j
                  «      j                  t	        |«      «      «      n
t        |«      }| j                  j                  ||||¬«      }|€ |j                  |Ž }| j                  |«      S )NÚ z<`variable_name` cannot be empty string for sqlframe backend.z9`value_name` cannot be empty string for sqlframe backend.r^   )Úidsr  ÚvariableColumnNameÚvalueColumnName)r6   r6  r4  ÚtupleÚsetrŠ   Ú
differencerb   ÚunpivotrÐ   rf   )	r:   r  ÚindexÚvariable_nameÚ
value_namerª   r>  r  Úunpivoted_native_frames	            r?   rD  zSparkLikeLazyFrame.unpivotö  sÛ   € ð ×Ñ×+Ñ+Ô-Ø Ò"ØT�Ü)¨#Ó.Ð.à˜RÒØQ�Ü)¨#Ó.Ð.àá#Œe�EŒl¨ˆà=?¸ZŒE”#�d—l‘lÓ#×.Ñ.¬s°3«xÓ8Ô9ÌUÐSUËYð 	ð "&§¡×!4Ñ!4ØØØ,Ø&ð	 "5ó "
Ðð ˆ=Ø%@Ð%;×%@Ñ%@À#Ð%FÐ"Ø× Ñ Ð!7Ó8Ð8rA   zO`LazyFrame.gather_every` is deprecated and will be removed in a future version.zG`LazyFrame.tail` is deprecated and will be removed in a future version.N)
r;   ÚSQLFrameDataFramer<   ztuple[int, ...]r=   r-   r>   r   r1  ÚNone)r1  ztype[Window])rM   zSQLFrameDataFrame | Anyr1  zTypeIs[SQLFrameDataFrame])rS   rI  rT   r.   r1  r"   )r1  r   )r1  r)   )r1  r"   )r=   r-   r1  r"   )re   rI  r1  r"   )r1  z	pa.Schema)r1  zpa.Table)r1  zIterator[Column])r1  z	list[str])r¦   z(ModuleType | Implementation | str | Noner§   r   r1  z!CompliantDataFrame[Any, Any, Any])r®   r‰   r1  r"   )r´   r%   r1  r"   )rÃ   r%   r1  r"   )r1  zdict[str, DType])rŠ   úSequence[str]rÏ   rç   r1  r"   )rÔ   Úintr1  r"   )rÙ   z'Sequence[str] | Sequence[SparkLikeExpr]r×   rç   r1  r'   )rí   r‰   rë   zbool | Sequence[bool]rì   rç   r1  r"   )ró   úSequence[str] | Noner1  r"   )rø   zMapping[str, str]r1  r"   )ró   rM  r  r,   r1  r"   )r  r"   r  r+   r   rM  r!  rM  r"  r‰   r1  r"   )rŠ   rK  r1  r"   )
r  rM  rE  rM  rF  r‰   rG  r‰   r1  r"   )-Ú__name__Ú
__module__Ú__qualname__r@   ÚpropertyrE   rH   rK   ÚstaticmethodrN   ÚclassmethodrU   rY   r\   r_   rc   rf   r€   r’   r•   rŠ   r«   r¯   r¸   r­   r¾   rÆ   rm   rl   rÐ   rÕ   rÚ   rê   rõ   rý   r  r  r7  rD  r   Ú
deprecatedÚgather_everyÚ	join_asofÚtailÚwith_row_indexr^   rA   r?   r1   r1   8   s¤  „ ðNà+ðNð )ð	Nð
 ðNð 'ðNð 
óNð  ñ:ó ð:ð ñ>ó ð>ð ò7ó ð7ð ò)ó ð)ð ò
ó ð
ó:ó
óó
ó
ó!ó6)ó.#ð ò$ó ð$ð+à9ð+ð ð+ð 
+ó	+óZDðEàðEð 
óEðHàðHð 
óHóMó+ð ò
#ó ð
#óóEó7ðOØ;ðOØPTðOà	óOð?àð?ð *ð?ð ð	?ð
 
ó?ó.Dó
ðLØ*ðLØ5KðLà	óLð A
àðA
ð ðA
ð &ð	A
ð
 'ðA
ð ðA
ð 
óA
óFA&ðF9à ð9ð $ð9ð ð	9ð
 ð9ð 
ó9ð@ .�?×-Ñ-ØYó€Lñ  Ó!€IØ%ˆ?×%Ñ%ØQó€Dñ %Ó&�NrA   r1   )r%   rI  )AÚ
__future__r   rt   Ú	functoolsr   Úoperatorr   Útypingr   r   r   r	   r
   Únarwhals._namespacer   Únarwhals._spark_like.utilsr   r   r   r   r   Únarwhals.exceptionsr   Únarwhals.typingr   r   Únarwhals.utilsr   r   r   r   r   r   r   r   rG   r   rj   rw   Úsqlframe.base.columnr   Úsqlframe.base.dataframer   rJ   r!   Útyping_extensionsr"   r#   r$   Únarwhals._spark_like.exprr%   rØ   r'   r[   r)   Únarwhals.dtypesr*   r+   r,   r-   r.   rI  r/   Ú__annotations__r1   r^   rA   r?   ú<module>rh     s¾   ðÞ "ã Ý Ý Ý  Ý Ý Ý Ý å 4Ý 5Ý 7Ý ;Ý 4Ý ?Ý 5Ý .Ý .Ý )Ý .Ý *Ý 9Ý *Ý 0Ý (Ý 3áÝ ãÝ+Ý5Ý+Ý&Ý+Ý(å7ÝBÝAÝ%Ý,Ý6Ý&Ý+à% c¨3°°S¸#Ð&=Ñ>Ðà€
ˆIÓ Ø 7ôe'Ð+Ð,PÑQõ e'rA   