
    hh.\                       U d dl mZ d dlmZ d dl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 d dlmZ d d	lmZmZmZmZmZmZmZmZ d d
l m!Z! erd dl"m#Z#m$Z$m%Z%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl-Z.d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7m8Z8 d dl9m:Z: d dl;m<Z< d dl=m>Z> d dl?m@Z@ d dlmAZA d dlBmCZC d dlmDZDmEZE d dlFmGZG d dlHmIZI d dlJmKZKmLZL e2eeeeef         ZMeZNdeOd<   	  G d  d!ed"         e          ZPdS )#    )annotations)reduce)and_)TYPE_CHECKINGAny)issue_warningis_native_spark_like)catch_pyspark_connect_exceptioncatch_pyspark_sql_exceptionevaluate_exprsimport_functionsimport_native_dtypesimport_windownative_to_narwhals_dtype)SQLLazyFrame)ImplementationValidateBackendVersionextend_boolgenerate_temporary_column_namenot_implementedparse_columns_to_dropto_pyarrow_table
zip_strict)InvalidOperationError)IterableIteratorMappingSequence)BytesIO)Path)
ModuleTypeN)Column)BaseDataFrameWindow)Self	TypeAliasTypeIs)CompliantDataFrameAny)SparkLikeExprSparkLikeLazyGroupBySparkLikeNamespace)SparkSession)_EagerAllowedImpl)Version_LimitedContext)	LazyFrame)DType)JoinStrategyUniqueKeepStrategyr(   
Incompletec                  4   e Zd Zddd{dZed|d            Zed             Zed             Zed}d            Ze	d~d            Z
edd            ZddZdd Zdd"Zdd#Zdd$Zdd&Zdd(Zdd*Zdd,Zedd.            Zdd4Zdd5Zdd8Zdd;Zdd<Zdd=Zdd?ZeddA            ZddBZddFZ ddIZ!ddNZ"ddSZ#ddWZ$ddZZ%dd]Z&ddaZ'ddhZ(ddiZ)ddnZ*ddpZ+ddsZ,eddw            Z- e.j/        dx          Z0 e.            Z1 e.j/        dy          Z2dzS )SparkLikeLazyFrameF)validate_backend_versionnative_dataframeSQLFrameDataFrameversionr2   implementationr   r;   boolreturnNonec               |    || _         || _        || _        d | _        d | _        |r|                                  d S d S N)_native_frame_implementation_version_cached_schema_cached_columns_validate_backend_version)selfr<   r>   r?   r;   s        U/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_spark_like/dataframe.py__init__zSparkLikeLazyFrame.__init__@   sV     1A-7;15# 	-**,,,,,	- 	-    tuple[int, ...]c                4    | j                                         S rD   )rF   _backend_versionrK   s    rL   rQ   z#SparkLikeLazyFrame._backend_versionP   s    #44666rN   c                H    t           rddlm} |S t          | j                  S )Nr   )	functions)r   sqlframe.baserT   r   rF   )rK   rT   s     rL   _FzSparkLikeLazyFrame._FT   s3     	////// 4555rN   c                H    t           rddlm} |S t          | j                  S )Nr   )types)r   rU   rX   r   rF   )rK   rX   s     rL   _native_dtypesz!SparkLikeLazyFrame._native_dtypes\   s2     	++++++L#D$8999rN   type[Window]c                H    t           rddlm} |S t          | j                  S )Nr   r%   )r   sqlframe.base.windowr&   r   rF   )rK   r&   s     rL   _WindowzSparkLikeLazyFrame._Windowd   s2     	333333MT1222rN   objSQLFrameDataFrame | AnyTypeIs[SQLFrameDataFrame]c                     t          |           S rD   r	   )r^   s    rL   
_is_nativezSparkLikeLazyFrame._is_nativel   s    #C(((rN   datacontextr3   r'   c              2     | ||j         |j                  S Nr>   r?   )rG   rF   )clsrc   rd   s      rL   from_nativezSparkLikeLazyFrame.from_nativep   s    s4!1'BYZZZZrN   LazyFrame[SQLFrameDataFrame]c                :    | j                             | d          S )Nlazy)level)rG   	lazyframerR   s    rL   to_narwhalszSparkLikeLazyFrame.to_narwhalst   s    }&&t6&:::rN   r"   c                4    | j                                         S rD   )rF   to_native_namespacerR   s    rL   __native_namespace__z'SparkLikeLazyFrame.__native_namespace__w   s    #77999rN   r/   c                <    ddl m}  || j        | j                  S )Nr   r.   rg   )narwhals._spark_like.namespacer/   rG   rF   )rK   r/   s     rL   __narwhals_namespace__z)SparkLikeLazyFrame.__narwhals_namespace__z   s8    EEEEEE!!M$2F
 
 
 	
rN   c                    | S rD    rR   s    rL   __narwhals_lazyframe__z)SparkLikeLazyFrame.__narwhals_lazyframe__   s    rN   c                F    |                      | j        || j                  S rf   )	__class__nativerF   )rK   r>   s     rL   _with_versionz SparkLikeLazyFrame._with_version   s)    ~~K9M  
 
 	
rN   dfc                F    |                      || j        | j                  S rf   )rz   rG   rF   )rK   r}   s     rL   _with_nativezSparkLikeLazyFrame._with_native   s)    ~~d6J  
 
 	
rN   	pa.Schemac                   dd l }ddlm} g }|                                 }| j        j        }|                                D ]\  }}	  ||| j                  }|                    ||f           /# t          $ rr}	||         j
        }
| j        j        }t          |
|          st          d|
 d|	t                     |                    | |j                    f           Y d }	~	d }	~	ww xY w |j        |          S )Nr   )narwhals_to_native_dtypezCould not convert dtype z to PyArrow dtype, )pyarrownarwhals._arrow.utilsr   collect_schemar{   schemaitemsrG   append	ExceptiondataTyperY   NullType
isinstancer   UserWarningnull)rK   par   r   	nw_schemanative_schemakeyvaluenative_dtypeexcnative_spark_dtype	null_types               rL   _to_arrow_schemaz#SparkLikeLazyFrame._to_arrow_schema   sO   BBBBBB02''))	*#//++ 	3 	3JC377t}MM sL12222  0 0 0%23%7%@" !/8	!"4i@@ !a3EaaZ]aa#   sGBGII.////////0 ry   s   A00
C,:A(C''C,pa.Tablec                   | j                                         r| j        dk     rdd l}	 |j                            | j                                                  S # t          $ r]}dt          |          v rFd | j
        D             }|                                 }|j                            ||          cY d }~S  d }~ww xY w| j                                         rV| j        dk     rKdd l}|                                 }|j                            | j                                        |          S t!          | j                                                  S )N)   r   zat least one RecordBatchc                    i | ]}|g S rw   rw   ).0ks     rL   
<dictcomp>z8SparkLikeLazyFrame._collect_to_arrow.<locals>.<dictcomp>   s    1N1N1NA!R1N1N1NrN   r   )rF   
is_pysparkrQ   r   Tablefrom_batchesr{   _collect_as_arrow
ValueErrorstrcolumnsr   from_pydictis_pyspark_connectfrom_pandastoPandasr   toArrow)rK   r   r   rc   	pa_schemas        rL   _collect_to_arrowz$SparkLikeLazyFrame._collect_to_arrow   sj   **,, 	;1F1M1M    	x,,T[-J-J-L-LMMM   -S99 2O1N1N1N1ND $ 5 5 7 7I8//Y/GGGGGGGG !4466 	;4;PSW;W;W    --//I8''(<(<(>(>y'QQQ#DK$7$7$9$9:::s$   0A 
C%AB=6C<B==CIterator[Column]c              #  V   K   | j         D ]}| j                            |          V  d S rD   )r   rV   col)rK   r   s     rL   _iter_columnsz SparkLikeLazyFrame._iter_columns   s>      < 	# 	#C'++c""""""	# 	#rN   	list[str]c                v    | j         ,| j        t          | j                  n| j        j        | _         | j         S rD   )rI   rH   listr   r{   r   rR   s    rL   r   zSparkLikeLazyFrame.columns   sC    ' &2 T[!!![(  
 ##rN   backend_EagerAllowedImpl | Nonekwargsr   r*   c                   |t           j        u r<ddlm}  || j                                        t           j        d| j        d          S ||t           j        u r,ddlm	}  || 
                                d| j        d          S |t           j        u rBdd l}ddlm}  ||                    | 
                                          d| 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narwhals._pandas_like.dataframer   r{   r   rG   PYARROWnarwhals._arrow.dataframer   r   POLARSpolarsnarwhals._polars.dataframer   
from_arrowr   )rK   r   r   r   r   plr   msgs           rL   _collectzSparkLikeLazyFrame._collect   s>    n+++KKKKKK&&$$&&-4)-&*    ?g)???@@@@@@!>&&(()-&*	    n+++BBBBBB"?d446677)-    8g77oorN   c                    | j                                         r1	  | j        |fi |S # t          $ r}t	          |          d d }~ww xY w | j        |fi |S rD   )rF   r   r   r   r   )rK   r   r   es       rL   collectzSparkLikeLazyFrame.collect   s     2244 	CC$t}W77777 C C C5a88dBCt}W/////s   ) 
AAAcolumn_namesr   c                F    |                       | j        j        |           S rD   )r   r{   select)rK   r   s     rL   simple_selectz SparkLikeLazyFrame.simple_select   s#      !3!3\!BCCCrN   exprsr+   c                6   t          | g|R  }d |D             }| j                                        rF	 |                      | j        j        |           S # t          $ r}t          ||           d d }~ww xY w|                      | j        j        |           S )Nc                >    g | ]\  }}|                     |          S rw   aliasr   col_namer   s      rL   
<listcomp>z0SparkLikeLazyFrame.aggregate.<locals>.<listcomp>  s(    QQQMHcCIIh//QQQrN   )r   rF   r   r   r{   aggr   r   rK   r   new_columnsnew_columns_listr   s        rL   	aggregatezSparkLikeLazyFrame.aggregate   s    $T2E222QQ[QQQ**,, 	EE((:J)KLLL E E E1!T::DE  2B!CDDD   !A 
A6 A11A6c                6   t          | g|R  }d |D             }| j                                        rF	 |                      | j        j        |           S # t          $ r}t          ||           d d }~ww xY w|                      | j        j        |           S )Nc                >    g | ]\  }}|                     |          S rw   r   r   s      rL   r   z-SparkLikeLazyFrame.select.<locals>.<listcomp>  s(    SSSOXsCIIh//SSSrN   )r   rF   r   r   r{   r   r   r   r   s        rL   r   zSparkLikeLazyFrame.select  s    $T2E222SS{SSS**,, 	EE((););=M)NOOO E E E1!T::DE  !3!35E!FGGGr   c                ~   t          | g|R  }| j                                        r^	 |                     | j                            t          |                              S # t          $ r}t          ||           d d }~ww xY w|                     | j                            t          |                              S rD   )	r   rF   r   r   r{   withColumnsdictr   r   )rK   r   r   r   s       rL   with_columnszSparkLikeLazyFrame.with_columns  s    $T2E222**,, 	EE(()@)@kARAR)S)STTT E E E1!T::DE   !8!8k9J9J!K!KLLLs   9A" "
B,A==B	predicatec                f   |                     |           d         }| j                                        rQ	 |                     | j                            |                    S # t          $ r}t          ||           d d }~ww xY w|                     | j                            |                    S Nr   )_callrF   r   r   r{   wherer   r   )rK   r   	conditionr   s       rL   filterzSparkLikeLazyFrame.filter  s    OOD))!,	**,, 	EE(():):9)E)EFFF E E E1!T::DE  !2!29!=!=>>>s   ,A# #
B-A>>Bdict[str, DType]c                Z      j          fd j        j        D              _          j         S )Nc           	     r    i | ]3}|j         t          |j        j        j        j        j                  4S rw   )namer   r   rG   rY   r{   sparkSession)r   fieldrK   s     rL   r   z-SparkLikeLazyFrame.schema.<locals>.<dictcomp>,  sR     # # #  
4NM'K,	 # # #rN   )rH   r{   r   rR   s   `rL   r   zSparkLikeLazyFrame.schema)  sI    &# # # # "[/# # #D ""rN   c                    | j         S rD   r   rR   s    rL   r   z!SparkLikeLazyFrame.collect_schema7  s
    {rN   r   Sequence[str]strictc               j    t          | ||          }|                      | j        j        |           S )N)r   )r   r   r{   drop)rK   r   r   columns_to_drops       rL   r   zSparkLikeLazyFrame.drop:  s7    /gfMMM  !1!1?!CDDDrN   nintc                \    |                      | j                            |                    S rD   )r   r{   limit)rK   r   s     rL   headzSparkLikeLazyFrame.head>  s&      !2!21!5!5666rN   keys'Sequence[str] | Sequence[SparkLikeExpr]drop_null_keysr-   c               *    ddl m}  || ||          S )Nr   r,   )r   )narwhals._spark_like.group_byr-   )rK   r   r   r-   s       rL   group_byzSparkLikeLazyFrame.group_byA  s/     	GFFFFF##D$~NNNNrN   by
descendingbool | Sequence[bool]
nulls_lastc                    t          |t          |                    }|r fd|D             }n fd|D             }d t          ||          D             }                       j        j        |           S )Nc              3  L   K   | ]}|rj         j        nj         j        V  d S rD   rV   desc_nulls_lastasc_nulls_lastr   drK   s     rL   	<genexpr>z*SparkLikeLazyFrame.sort.<locals>.<genexpr>K  sK         ,-H''$'2H     rN   c              3  L   K   | ]}|rj         j        nj         j        V  d S rD   )rV   desc_nulls_firstasc_nulls_firstr  s     rL   r  z*SparkLikeLazyFrame.sort.<locals>.<genexpr>P  sK         -.J((473J     rN   c                *    g | ]\  }} ||          S rw   rw   r   r   sort_fs      rL   r   z+SparkLikeLazyFrame.sort.<locals>.<listcomp>U  $    OOO[S&VVC[[OOOrN   )r   lenr   r   r{   sort)rK   r  r  r  
sort_funcs	sort_colss   `     rL   r  zSparkLikeLazyFrame.sortH  s     SWW55
 		   #  JJ
   #  J
 POJr:4N4NOOO	  !1!19!=>>>rN   r   Iterable[str]reversec                   t          |          }t          |t          |                    } fd|D             }d t          ||          D             }                       j        j        |                     |                    S )Nc              3  L   K   | ]}|sj         j        nj         j        V  d S rD   r  r  s     rL   r  z+SparkLikeLazyFrame.top_k.<locals>.<genexpr>[  sH       
 
MN1HDG##$'2H
 
 
 
 
 
rN   c                *    g | ]\  }} ||          S rw   rw   r  s      rL   r   z,SparkLikeLazyFrame.top_k.<locals>.<listcomp>^  r  rN   )tupler   r  r   r   r{   r  r   )rK   r   r  r  r  r  s   `     rL   top_kzSparkLikeLazyFrame.top_kX  s    2YYgs2ww//
 
 
 
RY
 
 

 POJr:4N4NOOO	  !1!19!=!C!CA!F!FGGGrN   subsetSequence[str] | Nonec                    |rt          |          nd }|                     | j                            |                    S )N)r   )r   r   r{   dropna)rK   r   s     rL   
drop_nullszSparkLikeLazyFrame.drop_nullsa  s=    !'1fT  !3!36!3!B!BCCCrN   mappingMapping[str, str]c                     fd j         D             }                      j                             fd|                                D                                 S )Nc                >    i | ]}|                     ||          S rw   )get)r   colnamer%  s     rL   r   z-SparkLikeLazyFrame.rename.<locals>.<dictcomp>f  s6     
 
 
7>GW[['22
 
 
rN   c                p    g | ]2\  }}j                             |                              |          3S rw   rV   r   r   r   oldnewrK   s      rL   r   z-SparkLikeLazyFrame.rename.<locals>.<listcomp>k  s9    TTTcS!!'',,TTTrN   )r   r   r{   r   r   )rK   r%  rename_mappings   `` rL   renamezSparkLikeLazyFrame.renamee  s    
 
 
 
BF,
 
 
   KTTTT^=Q=Q=S=STTT 
 
 	
rN   keepr7   order_byc               H    |p j         }                     |          x}r|t          d j         d          } j                            |          }|r|dk    r |j         fd|D              }nF|r |j         fd|D              }n-|                     j                            d                    }|dk    r. j                            d	          	                    |          }n, j        
                                	                    |          } j                            ||                               j                            |           j                            d          k                                  |          }	                     |	          S )
N   
row_index_)prefixlastc                D    g | ]}j                             |          S rw   )rV   r	  r   xrK   s     rL   r   z-SparkLikeLazyFrame.unique.<locals>.<listcomp>|  )    %S%S%SQdg&=&=a&@&@%S%S%SrN   c                D    g | ]}j                             |          S rw   )rV   r  r:  s     rL   r   z-SparkLikeLazyFrame.unique.<locals>.<listcomp>~  r<  rN      none*)r   _check_columns_existr   r]   partitionByorderByrV   litcountover
row_numberr{   
withColumnr   r   r   r   )
rK   r   r2  r3  subset_errortmp_namewindowexprr}   s
   `         rL   uniquezSparkLikeLazyFrame.uniqueo  s    (DL--g6665 	K1!T\,WWW))'22 	4#V^%S%S%S%S(%S%S%STFF 	4#V^%S%S%S%S(%S%S%STFF^^DGKKNN33F6>>7==%%**622DD7%%'',,V44DK""8T22VDGKK))TW[[^^;<<T(^^ 	
   $$$rN   otherhowr6   left_onright_onsuffixc               t     j         |j         }|t          |          ng |t          |          ng }|dk    rfd|D             n|}i t          t          |                    fd|D             |j                             fd                                D                                                       }	|dv r#|	                    fd|D                        n-|dk    r'|	                    	                                           fdD             }
|dk    r0t          t           fdt          ||
          D                       n	|d	k    rd n|}|dk    rd
n|}                      j                            ||                              |	                    S )Nfullc                    g | ]}|v|	S rw   rw   )r   c	right_on_s     rL   r   z+SparkLikeLazyFrame.join.<locals>.<listcomp>  s#    <<<1)););Q);););rN   c                *    i | ]}||v r|  n|S rw   rw   )r   r*  left_columnsrS  s     rL   r   z+SparkLikeLazyFrame.join.<locals>.<dictcomp>  sE        L1H1HG-V---g  rN   c                p    g | ]2\  }}j                             |                              |          3S rw   r,  r-  s      rL   r   z+SparkLikeLazyFrame.join.<locals>.<listcomp>  s9    PPPXS#TW[[##C((PPPrN   >   leftcrossinnerc              3  0   K   | ]}|v|         V  d S rD   rw   )r   r*  r0  rX  s     rL   r  z*SparkLikeLazyFrame.join.<locals>.<genexpr>  s?        )++ w'++++ rN   c                     g | ]
}|         S rw   rw   )r   rW  r0  s     rL   r   z+SparkLikeLazyFrame.join.<locals>.<listcomp>  s    BBB1^A.BBBrN   c              3  l   K   | ].\  }}t          j        |          t          |          k    V  /d S rD   )getattrr{   )r   left_key	right_keyother_nativerK   s      rL   r  z*SparkLikeLazyFrame.join.<locals>.<genexpr>  sV        +) DK22glI6V6VV     rN   r]  
full_outer)onrP  )r   r   r   zipr{   r   r   copyextendvaluesr   r   r   r   join)rK   rO  rP  rQ  rR  rS  right_columnsleft_on_right_cols_to_rename	col_orderright_on_remappedon_
how_nativerZ  re  r0  rX  s   `    `       @@@@rL   rl  zSparkLikeLazyFrame.join  sm    |191EtH~~~2	/6/Bd7mmm f}} =<<<<<<< 	
3y(++,,
    3  
 |**PPPP9M9M9O9OPPP
 
 !%%''	,,,     ,      
 F]]^2244555BBBB	BBB f}}     /9(DU/V/V     g~~  	 &)F]]\\
  K\czBBII)TT
 
 	
rN   c                     j         j        }                                 }D ]*}||         }||j        k    rd| d}t	          |          + j        }t                    dk    rd}t          |           j        	                                s j        
                                r/                       j        j         fd|D                        S  j                                        rd fd
}                       j        j         fd|D                                    j                             |d                             j         fd|D                                  S d}t#          |          )Nz-`explode` operation not supported for dtype `z`, expected List typer>  zExploding on multiple columns is not supported with SparkLike backend since we cannot guarantee that the exploded columns have matching element counts.c                    g | ]h}|d          k    r-j                             |                              |          n,j                             |                              |          iS r   )rV   r   r   explode_outerr   r   r   rK   s     rL   r   z.SparkLikeLazyFrame.explode.<locals>.<listcomp>  s|        % $wqz11 H--33H===!W228<<BB8LL  rN   r   r   rA   r#   c                v    j                             |           j                             |           dk    z  S r   )rV   isnull
array_size)r   rK   s    rL   null_conditionz2SparkLikeLazyFrame.explode.<locals>.null_condition  s2    w~~h//473E3Eh3O3OST3TUUrN   c                    g | ]h}|d          k    r-j                             |                              |          n,j                             |                              |          iS rv  )rV   r   r   exploderx  s     rL   r   z.SparkLikeLazyFrame.explode.<locals>.<listcomp>  sz        % $wqz11 H--33H===!W__X66<<XFF  rN   r   c                    g | ]h}|d          k    r-j                             |                              |          n,j                             d                              |          iS )r   N)rV   r   r   rD  rx  s     rL   r   z.SparkLikeLazyFrame.explode.<locals>.<listcomp>  sz        !)  (71:55 !GKK1177AAA!%T!2!2!8!8!B!B  rN   z[Unreachable code, please report an issue at https://github.com/narwhals-dev/narwhals/issues)r   r   rA   r#   )rG   dtypesr   Listr   r   r  NotImplementedErrorrF   r   r   r   r{   r   is_sqlframeunionr   AssertionError)	rK   r   r  r   col_to_explodedtyper   r   r|  s	   ``       rL   r~  zSparkLikeLazyFrame.explode  s=   %$$&&% 	1 	1N>*E##)E ) ) )  ,C000 $ |w<<1^  &c*****,, 
	0D0W0W0Y0Y 
	$$""     )5	  	 	 	 ++-- 	V V V V V V $$""     )5	   %IDK&&~~gaj'A'ABBI     -9	  	 	  & lS!!!rN   rg  indexvariable_name
value_namec                   | j                                         r/|dk    rd}t          |          |dk    rd}t          |          n	 |rt          |          nd}|At          t	          | j                                      t	          |                              nt          |          }| j                            ||||          }|
 |j	        | }| 
                    |          S )N z<`variable_name` cannot be empty string for sqlframe backend.z9`value_name` cannot be empty string for sqlframe backend.rw   )idsrk  variableColumnNamevalueColumnName)rF   r  r  r  setr   
differencer{   unpivotr   r   )	rK   rg  r  r  r  r   r  rk  unpivoted_native_frames	            rL   r  zSparkLikeLazyFrame.unpivot  s    ++-- 		""T)#...RQ)#...   #+eElll=?ZE#dl##..s3xx88999USUYY 	 "&!4!4,&	 "5 "
 "
 =%@%;%@#%F"  !7888rN   r   c                r   |d}t          |          | j                                                             | j                            | j                            d                    j        |           dz
                      |          }| 	                     | j
        j        |g| j        R            S )Nz;Cannot pass `order_by` to `with_row_index` for PySpark-liker>  )	TypeErrorrV   rG  rF  r]   rB  rD  rC  r   r   r{   r   r   )rK   r   r3  r   row_index_exprs        rL   with_row_indexz!SparkLikeLazyFrame.with_row_index2  s    OCC.. G  %%@((Q88@(K   %++ 	   !3!3N!RT\!R!R!RSSSrN   filestr | Path | BytesIOc                D    | j         j                            |           d S rD   )r{   writeparquet)rK   r  s     rL   sink_parquetzSparkLikeLazyFrame.sink_parquet>  s!    !!$'''''rN   framesessionr0   c              f   ddl m} |}|                                 o|                                dk    }|r|                                }nD |d          r|                                }n$t          |                    dd                    } | |                    |          ||d          S )	Nr   )	find_spec)r   r   r   pandasTi   )namedbuffer_size)r>   r?   r;   )	importlib.utilr  r  rQ   to_arrow	to_pandasr  	iter_rowscreateDataFrame)	rh   r  r  r?   r>   r  implis_spark_v4rc   s	            rL   _from_compliant_dataframez,SparkLikeLazyFrame._from_compliant_dataframeA  s     	-,,,,,++---W43H3H3J3Ji3W 	G ((DDYx   	G??$$DDtEEFFDs##D)))%)	
 
 
 	
rN   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<   r=   r>   r2   r?   r   r;   r@   rA   rB   )rA   rO   )rA   rZ   )r^   r_   rA   r`   )rc   r=   rd   r3   rA   r'   )rA   rj   )rA   r"   )rA   r/   )rA   r'   )r>   r2   rA   r'   )r}   r=   rA   r'   )rA   r   )rA   r   )rA   r   )rA   r   )r   r   r   r   rA   r*   )r   r   rA   r'   )r   r+   rA   r'   )r   r+   rA   r'   )rA   r   )r   r   r   r@   rA   r'   )r   r   rA   r'   )r   r   r   r@   rA   r-   )r  r   r  r  r  r@   rA   r'   )r   r   r  r  r  r  rA   r'   )r   r!  rA   r'   )r%  r&  rA   r'   )r   r!  r2  r7   r3  r!  rA   r'   )rO  r'   rP  r6   rQ  r!  rR  r!  rS  r   rA   r'   )r   r   rA   r'   )
rg  r!  r  r!  r  r   r  r   rA   r'   )r   r   r3  r   rA   r'   )r  r  rA   rB   )
r  r*   r  r0   r?   r   r>   r2   rA   r:   )3__name__
__module____qualname__rM   propertyrQ   rV   rY   r]   staticmethodrb   classmethodri   ro   rr   ru   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r$  r1  rN  rl  r~  r  r  r  r  r   
deprecatedgather_every	join_asoftailrw   rN   rL   r:   r:   <   s        */- - - - - -  7 7 7 X7 6 6 X6 : : X: 3 3 3 X3 ) ) ) \) [ [ [ [[; ; ; ;: : : :
 
 
 
   
 
 
 


 
 
 

! ! ! !6; ; ; ;,# # # # $ $ $ X$$ $ $ $L0 0 0 0D D D D	E 	E 	E 	EH H H HM M M M? ? ? ? # # # X#   E E E E7 7 7 7O O O O? ? ? ? H H H HD D D D
 
 
 
% % % %:B
 B
 B
 B
H@" @" @" @"D9 9 9 9@
T 
T 
T 
T( ( ( ( 
 
 
 [
: .?-Y L  !!I%?%Q DDDrN   r:   )r+   r=   rj   )Q
__future__r   	functoolsr   operatorr   typingr   r   narwhals._exceptionsr   narwhals._nativer
   narwhals._spark_like.utilsr   r   r   r   r   r   r   narwhals._sql.dataframer   narwhals._utilsr   r   r   r   r   r   r   r   narwhals.exceptionsr   collections.abcr   r   r   r   ior    pathlibr!   rX   r"   r   r   sqlframe.base.columnr#   sqlframe.base.dataframer$   r\   r&   typing_extensionsr'   r(   r)   narwhals._compliant.typingr*   narwhals._spark_like.exprr+   r   r-   rt   r/   r0   narwhals._typingr1   r2   r3   narwhals.dataframer4   narwhals.dtypesr5   narwhals.typingr6   r7   r=   r8   __annotations__r:   rw   rN   rL   <module>r     sT   " " " " " " "             % % % % % % % % . . . . . . 1 1 1 1 1 1                  1 0 0 0 0 0	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 6 5 5 5 5 5 ?EEEEEEEEEEEE      ++++++555555++++++9999999999@@@@@@777777BBBBBBAAAAAA77777722222288888888,,,,,,%%%%%%@@@@@@@@%c3S#&=>
     7i i i i iUVi i i i irN   