
    Wh^                       U d dl mZ d dlmZmZmZmZ d dlmZm	Z	m
Z
mZ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 d dlmZmZmZ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) erd dlm*Z* d dl+m,Z, d dlm-Z- d dl.Z/d dl0Z1d dl2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z? d dl@mAZA d dlBmCZCmDZD d dlmEZEmFZF d dlGmHZHmIZI d dlJmKZK d dlLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZT  ed      ZU ed      ZVdZWdeXd<   	  eYg d      ZZ edej                  ej                        Z[ G d  d!e
e[         Z\ G d" d#e\ej                           Z] G d$ d%e\ej                           Z^y)&    )annotations)IteratorMappingSequenceSized)TYPE_CHECKINGAnyGenericLiteralTypeVarcastoverloadN)PolarsNamespace)PolarsSeries)catch_polars_exceptionextract_args_kwargsnative_to_narwhals_dtype)Implementation_into_arrow_tableconvert_str_slice_to_int_slicegenerate_temporary_column_nameis_compliant_seriesis_index_selectoris_rangeis_sequence_likeis_slice_indexis_slice_noneparse_columns_to_droprequires)is_numpy_array_1d)ColumnNotFoundError)Iterable)
ModuleType)Callable)Self	TypeAliasTypeIs)CompliantDataFrameAnyCompliantLazyFrameAny)
PolarsExpr)PolarsGroupByPolarsLazyGroupBy)SparkSession)IntoArrowTable)_EagerAllowedImpl_LazyAllowedImpl)Version_LimitedContext)	DataFrame	LazyFrame)DType)
IntoSchemaJoinStrategyMultiColSelectorMultiIndexSelectorPivotAggSingleIndexSelectorUniqueKeepStrategy_2DArrayTRzCallable[..., R]r&   Method)clone
drop_nullsestimated_sizeexplodefiltergather_everyhead	is_uniqueitem	iter_rows	join_asofrenamerowrowssampleselectsink_parquetsorttailto_arrow	to_pandaswith_columns	write_csvwrite_parquetNativePolarsFramec                     e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ej
                  Zded<   dd	 	 	 	 	 	 	 d(dZd)dZe	d*d       Z
e	d+d       Ze	d,d       Zd-dZd.dZd/dZd0dZed1d       Zd2dZd3dZddd 	 	 	 	 	 	 	 	 	 d4d!Ze	d5d"       Z	 	 	 	 	 	 	 	 	 	 	 	 d6d#Z	 	 	 	 	 	 	 	 d7d$Z	 	 	 	 	 	 	 	 	 	 d8d%Zd5d&Zd9d'Zy):PolarsBaseFrameMethod[Self]rB   rD   rE   rF   rG   rK   rL   rP   rR   rS   rV   rY   _native_framer1   _versionF)validate_backend_versionc               F    || _         || _        |r| j                          y y N)r]   r^   _validate_backend_version)selfdfversionr_   s       T/var/www/html/jupyter_env/lib/python3.12/site-packages/narwhals/_polars/dataframe.py__init__zPolarsBaseFrame.__init__x   s'      #**, $    c                8    | j                   j                         }y)zRaise if installed version below `nw._utils.MIN_VERSIONS`.

        **Only use this when moving between backends.**
        Otherwise, the validation will have taken place already.
        N_implementation_backend_version)rc   _s     rf   rb   z)PolarsBaseFrame._validate_backend_version   s       113rh   c                6    | j                   j                         S ra   rj   rc   s    rf   rl   z PolarsBaseFrame._backend_version   s    ##4466rh   c                    | j                   S ra   )r]   ro   s    rf   nativezPolarsBaseFrame.native   s    !!!rh   c                .    | j                   j                  S ra   )rq   columnsro   s    rf   rs   zPolarsBaseFrame.columns   s    {{"""rh   c                .    t        | j                        S N)re   )r   r^   ro   s    rf   __narwhals_namespace__z&PolarsBaseFrame.__narwhals_namespace__   s    t}}55rh   c                    | j                   t        j                  u r| j                   j                         S dt	        | j                          }t        |      )NzExpected polars, got: )rk   r   POLARSto_native_namespacetypeAssertionError)rc   msgs     rf   __native_namespace__z$PolarsBaseFrame.__native_namespace__   sN    >#8#88'';;==&tD,@,@'A&BCS!!rh   c                <    | j                  || j                        S ru   )	__class__r^   )rc   rd   s     rf   _with_nativezPolarsBaseFrame._with_native   s    ~~b$--~88rh   c                <    | j                  | j                  |      S ru   )r   rq   )rc   re   s     rf   _with_versionzPolarsBaseFrame._with_version   s    ~~dkk7~;;rh   c              *     | ||j                         S ru   )r^   )clsdatacontexts      rf   from_nativezPolarsBaseFrame.from_native   s    4!1!122rh   c                R    | j                   | j                  j                  |       S ra   )r   rq   rP   )rc   column_namess     rf   simple_selectzPolarsBaseFrame.simple_select   s%      !3!3!3\!BCCrh   c                      | j                   | S ra   )rP   )rc   exprss     rf   	aggregatezPolarsBaseFrame.aggregate   s    t{{E""rh   N)maintain_orderorder_byc                  |r|rt        d| j                        }| j                  j                  |      j	                  |d      j                  |xs | j                  |      j	                  |      j                  |      }nQ|r-| j                  j	                  |      j                  ||      }n"| j                  j                  |||xs d      }| j                  |      S )N   F)
nulls_last)keep)r   r   )r   rs   rq   with_row_indexrR   uniquedropr   )rc   subsetr   r   r   tokenress          rf   r   zPolarsBaseFrame.unique   s     21dllCE**51h51.$,,T:ee  ++""8,33F3FC++$$T.2IE % C   %%rh   c                "    | j                         S ra   )collect_schemaro   s    rf   schemazPolarsBaseFrame.schema   s    ""$$rh   c          	         | j                   dk  r|dk(  rdn|}| j                  | j                  j                  |j                  ||||            S )N)r         fullouterotherhowleft_onright_onsuffix)rl   r   rq   join)rc   r   r   r   r   r   
how_natives          rf   r   zPolarsBaseFrame.join   sa     --;vGTW 	   KKll!  
 	
rh   c                   | j                   dk  r-| j                  | j                  j                  |||            S | j                  | j                  j                  |||            S )N   r   r   )kby
descendingr   r   reverse)rl   r   rq   top_k)rc   r   r   r   s       rf   r   zPolarsBaseFrame.top_k   sn       9,$$!!& "     !2!2Q2w!2!OPPrh   c                    | j                   dk  r.| j                  | j                  j                  ||||            S | j                  | j                  j	                  ||||            S )Nr   )id_vars
value_varsvariable_name
value_name)onindexr   r   )rl   r   rq   meltunpivot)rc   r   r   r   r   s        rf   r   zPolarsBaseFrame.unpivot   s}       9,$$  !!"/)	 !     KKU-J   
 	
rh   c           	         | j                   }| j                  dk  r|j                  n|j                         }|j	                         D ci c]  \  }}|t        || j                         c}}S c c}}w )Nr   )rq   rl   r   r   itemsr   r^   )rc   rd   r   namedtypes        rf   r   zPolarsBaseFrame.collect_schema  si    [["33d:@Q@Q@S  &||~
e *5$--@@
 	
 
s   !A0c                   | j                   }||j                  |      }n| j                  dk  rt        j                         nt        j
                         }|j                  t        j                  d|      j                  |      j                  |      t        j                               }| j                  |      S )N)r   r      r   )startend)rq   r   rl   plcountlenrP   	int_rangesort_byaliasallr   )rc   r   r   frameresultr   s         rf   r   zPolarsBaseFrame.with_row_index  s    ))$/F $ 5 5
 B"((*C\\1#.66x@FFtLbffhF   ((rh   )rd   rY   re   r1   r_   boolreturnNone)r   r   )r   ztuple[int, ...])r   rY   )r   z	list[str])r   r   )r   r#   )rd   rY   r   r%   )re   r1   r   r%   )r   rY   r   r2   r   r%   )r   strr   r%   )r   r	   r   r%   )
r   Sequence[str] | Noner   r<   r   bool | Noner   r   r   r%   r   zdict[str, DType])r   z"PolarsBaseFrame[NativePolarsFrame]r   r7   r   r   r   r   r   r   r   r%   r   intr   zstr | Iterable[str]r   zbool | Sequence[bool]r   r%   )
r   r   r   r   r   r   r   r   r   r%   )r   r   r   r   r   r%   )__name__
__module____qualname____annotations__r   rx   rk   rg   rb   propertyrl   rq   rs   rv   r}   r   r   classmethodr   r   r   r   r   r   r   r   r   r    rh   rf   r[   r[   g   s   


$$$++O */
-
- 	
-
 #'
- 

-4 7 7 " " # #6"9< 3 3D# '+)-&$& !	&
 $& '& 
&2 % %
1
 	

 &
 '
 
 

,QQ0Q;PQ	Q
 
 $
 	

 
 

,

)rh   r[   c                      e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ed;d       Ze	 	 	 	 	 	 	 	 d<d       Zed=d       Ze	 	 	 	 	 	 	 	 d>d       Z	d?dZ
d@dZdAd ZedBd!       ZedCd"       ZedDd#       Z	 	 	 	 dEd$ZdFd%ZdGd&Z	 dHd'd(	 	 	 	 	 dId)ZdHd'd(dJd*ZedKd+       Z	 	 	 	 dLd,ZdMd-ZdNd.Z	 dHd'd/	 	 	 	 	 dOd0ZedPd1       ZedQd2       Z	 	 	 	 dRd3Z	 	 	 	 	 	 dSd4ZdTd5Z ej:                  d6      	 	 	 	 	 	 	 	 	 	 	 	 	 	 dUd7       ZdVd8Z	 	 	 	 	 	 	 	 	 	 	 	 dW fd9Z 	 	 	 	 	 	 	 	 dX fd:Z! xZ"S )YPolarsDataFramer\   rA   zMethod[CompliantDataFrameAny]collectzMethod[int | float]rC   rF   zMethod[Any]rI   z?Method[Iterator[tuple[Any, ...]] | Iterator[Mapping[str, Any]]]rJ   zMethod[PolarsSeries]rH   zMethod[tuple[Any, ...]]rM   z?Method[Sequence[tuple[Any, ...]] | Sequence[Mapping[str, Any]]]rN   rO   zMethod[pa.Table]rT   zMethod[pd.DataFrame]rU   rW   Method[None]rX   c         	         |j                   j                         dk\  rt        j                  |      }n)t	        dt        j
                  t        ||                  }| j                  ||      S )N)r      pl.DataFramer   )rk   rl   r   r3   r   
from_arrowr   r   )r   r   r   rq   s       rf   r   zPolarsDataFrame.from_arrow/  sX    ""335?\\$'F."--8I$PW8X*YZFvw77rh   c                  ddl m} | ||      j                         n|}| j                  t	        j
                  ||      |      S Nr   )Schemar   )narwhals.schemar   	to_polarsr   r   	from_dictr   r   r   r   r   	pl_schemas         rf   r   zPolarsDataFrame.from_dict7  s>     	+282DF6N,,.&	r||D)<gNNrh   c                6    t        | t        j                        S ra   )
isinstancer   r3   objs    rf   
_is_nativezPolarsDataFrame._is_nativeE      #r||,,rh   c                  ddl m} t        |t        |f      r ||      j	                         n|}| j                  t        j                  ||      |      S r   )r   r   r   r   r   r   r   
from_numpyr   s         rf   r   zPolarsDataFrame.from_numpyI  sR     	+ &7F"34 6N$$& 	
 r}}T9=wOOrh   c                <    | j                   j                  | d      S )Nr   level)r^   	dataframero   s    rf   to_narwhalszPolarsDataFrame.to_narwhals[      }}&&t6&::rh   c                     y)Nr   r   ro   s    rf   __repr__zPolarsDataFrame.__repr__^       rh   c                    | S ra   r   ro   s    rf   __narwhals_dataframe__z&PolarsDataFrame.__narwhals_dataframe__a      rh   c                     y ra   r   rc   r   s     rf   _from_native_objectz#PolarsDataFrame._from_native_objectd  s    CFrh   c                     y ra   r   r  s     rf   r  z#PolarsDataFrame._from_native_objectg  s    >Arh   c                     y ra   r   r  s     rf   r  z#PolarsDataFrame._from_native_objectj  s    03rh   c                    t        |t        j                        rt        j                  ||       S | j                  |      r| j                  |      S |S Nr   )r   r   Seriesr   r   r   r   r  s     rf   r  z#PolarsDataFrame._from_native_objectm  sG     c299%++C>>??3$$S))
rh   c                ,    t        | j                        S ra   )r   rq   ro   s    rf   __len__zPolarsDataFrame.__len__w  s    4;;rh   c                v     t         vr' j                  j                   d d}t        |      d fd}|S )N has not attribute ''.c                 0   t        | |      \  }}	 j                   t        j                        |i |      S # t        j
                  j                  $ r#}|dj                   d}t        |      |d }~wt        $ r}t        |      d d }~ww xY w)Nz+

Hint: Did you mean one of these columns: ?)
r   r  getattrrq   r   
exceptionsr!   rs   	Exceptionr   )argskwargsposkwdser|   attrrc   s         rf   funcz)PolarsDataFrame.__getattr__.<locals>.func  s    +D&9IC://0JT0JC0XSW0XYY==44 6J4<<.XYZ)#.A5 :,Q/T9:s!   *= BA88BBBr  r	   r  r	   r   r	   INHERITED_METHODSr   r   AttributeErrorrc   r  r|   r  s   ``  rf   __getattr__zPolarsDataFrame.__getattr__z  sA    ((^^,,--A$rJC %%	: rh   N)copyc                   | j                   dk  r|d}t        |      | j                   dk  r| j                  j                  |      S | j                  j                  |      S )N)r   r      z=`copy` in `__array__` is only supported for 'polars>=0.20.28')rl   NotImplementedErrorrq   	__array__)rc   r   r"  r|   s       rf   r&  zPolarsDataFrame.__array__  s_       ;.43CQC%c**  ;.;;((//{{$$U++rh   c               6    | j                   j                         S ra   )rq   to_numpy)rc   r   r"  s      rf   r(  zPolarsDataFrame.to_numpy  s    {{##%%rh   c                .    | j                   j                  S ra   )rq   shapero   s    rf   r*  zPolarsDataFrame.shape  s    {{   rh   c           	        |\  }}| j                   dkD  rbt        |      r|j                  n|}t        |      r|j                  n|}||f}| j                  j                  |      }| j	                  |      S t        |t              rt        |      n|}t        |t              rt        |      n|}t        |      r|j                         }| j                  }t        |      st        |t              rt        |      dk(  r| j                         S t        |      rt        |      st!        |      rH|j                  | j"                  t%        |j&                  |j(                  |j*                                 }nt        |t,              r"|d d |j                  j/                         f   }n|d d |f   }nt        |t$              r9|j                  | j"                  t%        t1        || j"                                  }nkt        |      r*|j                  |j                  j/                               }n6t3        |      r|j                  |      }ndt5        |       }	t7        |	      t        |      st        |t8              r||gd d f   }nmt        |t$        t:        f      r
||d d f   }nMt        |      r||j                  d d f   }n.t3        |      r
||d d f   }ndt5        |       }	t7        |	      | j=                  |      S )N)r   r      r   z'Unreachable code, got unexpected type: )rl   r   rq   __getitem__r  r   tuplelistr    tolistr   r   r   rP   r   r   r   rs   slicer   stopstepr   to_listr   r   rz   r{   r   ranger   )
rc   rI   rN   rs   rows_nativecolumns_nativeselectorselectedrq   r|   s
             rf   r-  zPolarsDataFrame.__getitem__  s    g  ;.)<T)B$++K/B7/KW^^QXN"N2H{{..x8H++H55
 ",D%!84:dD'1'5'Ad7mwG )!..*[[F )gu-#g,!2C;;=($W-%g.(72C!' LLw}}gllGLL)YZ"
 $G\:!'7>>+A+A+C(C!D!'7
!3/#]]!#A'4<<#XYF
 )1#]]7>>+A+A+CDF%g.#]]73FCDM?SC(-- &dC(#TFAI.Fuen5#D!G_F(.#DKKN3F%d+#D!G_FCDJ<PC(--$$V,,rh   c                b    t        j                  | j                  j                  |      |       S r	  )r   r   rq   
get_column)rc   r   s     rf   r;  zPolarsDataFrame.get_column  s$    ''(>(>t(DdSSrh   c              #  |   K   | j                   j                         D ]  }t        j                  ||         y wr	  )rq   iter_columnsr   r   )rc   seriess     rf   r=  zPolarsDataFrame.iter_columns  s7     kk..0 	AF**64@@	As   :<)sessionc                  ||t         j                  u r/t        j                  | j                  j                         |       S |t         j                  u r:dd l}ddlm	} | j                  } ||j                  d      d| j                        S |t         j                  u rHdd lm} ddlm}  ||j#                  | j                  j%                               d| j                        S |t         j&                  u rDdd l}ddlm}	  |	|j/                  | j                  | j0                  	      d| j                        S |j3                         r4dd
lm}
 |d}t9        |      |
j;                  | ||| j                        S t<        )Nr   r   )DuckDBLazyFrame_dfT)r_   re   )DaskLazyFrame)IbisLazyFrame)rs   )SparkLikeLazyFramez5Spark like backends require `session` to be not None.)r?  implementationre   )r   rx   PolarsLazyFramer   rq   lazyDUCKDBduckdbnarwhals._duckdb.dataframerA  tabler^   DASKdask.dataframer   narwhals._dask.dataframerC  from_pandasrU   IBISibisnarwhals._ibis.dataframerD  memtablers   is_spark_likenarwhals._spark_like.dataframerE  
ValueError_from_compliant_dataframer{   )rc   backendr?  rJ  rA  rB  ddrC  rR  rD  rE  r|   s               rf   rH  zPolarsDataFrame.lazy  sX    ?g)>)>>"..t{{/?/?/A4.PPn+++B++C"U#dDMM  n)))'> t{{4467)- 
 n)))> dkk4<<@)-    "IM o%%??&	 @   rh   c                    y ra   r   rc   	as_seriess     rf   to_dictzPolarsDataFrame.to_dict  s    ORrh   c                    y ra   r   r\  s     rf   r^  zPolarsDataFrame.to_dict  s    MPrh   c          	         |rQ| j                   j                         j                         D ci c]  \  }}|t        j                  ||        c}}S | j                   j                  d      S c c}}w )Nr   F)r]  )rq   r^  r   r   r   )rc   r]  r   cols       rf   r^  zPolarsDataFrame.to_dict"  so      "&!4!4!6!<!<!>D# l..sDAA  {{""U"33	s   "A0c               $    ddl m}  || ||      S )Nr   )r+   drop_null_keys)narwhals._polars.group_byr+   )rc   keysrd  r+   s       rf   group_byzPolarsDataFrame.group_by,  s     	<T4GGrh   c               r    t        | ||      }| j                  | j                  j                  |            S )Nstrict)r   r   rq   r   )rc   rs   rj  to_drops       rf   r   zPolarsDataFrame.drop3  s0    'gfE  !1!1'!:;;rh   r   c                   	 | j                   j                  ||||||      }| j	                  |      S # t        $ r}t        |      d d }~ww xY w)N)r   valuesaggregate_functionsort_columns	separator)rq   pivotr  r   r  )	rc   r   r   rm  rn  ro  rp  r   r  s	            rf   rq  zPolarsDataFrame.pivot7  sd    
	6[[&&#5)# ' F ''//  	6(+5	6s   !4 	AA		Ac                    | j                   S ra   )rq   ro   s    rf   r   zPolarsDataFrame.to_polarsO  s    {{rh   c               h    	 t         |   |||||      S # t        $ r}t        |      d d }~ww xY w)Nr   )superr   r  r   )rc   r   r   r   r   r   r  r   s          rf   r   zPolarsDataFrame.joinR  sI    	67<gQW      	6(+5	6s    	1,1c               d    	 t         |   |||      S # t        $ r}t        |      d d }~ww xY w)Nr   )rt  r   r  r   )rc   r   r   r   r  r   s        rf   r   zPolarsDataFrame.top_kb  s:    	67=1W=== 	6(+5	6s    	/*/)r   r.   r   r2   r   r%   )r   zMapping[str, Any]r   r2   r   zIntoSchema | Noner   r%   )r   zpl.DataFrame | Anyr   zTypeIs[pl.DataFrame])r   r=   r   r2   r   z!IntoSchema | Sequence[str] | Noner   r%   )r   zDataFrame[pl.DataFrame]r   r   r   r%   )r   z	pl.Seriesr   r   )r   r   r   r%   )r   r>   r   r>   )r   zpl.Series | pl.DataFrame | Tr   zSelf | PolarsSeries | T)r   r   r  r   r   r	   ra   )r   z
Any | Noner"  r   r   r=   )r   r	   r"  r   r   r=   )r   ztuple[int, int])rI   z]tuple[SingleIndexSelector | MultiIndexSelector[PolarsSeries], MultiColSelector[PolarsSeries]]r   r	   )r   r   r   r   r   zIterator[PolarsSeries])rY  z_LazyAllowedImpl | Noner?  zSparkSession | Noner   r)   )r]  zLiteral[True]r   zdict[str, PolarsSeries])r]  zLiteral[False]r   zdict[str, list[Any]])r]  r   r   z.dict[str, PolarsSeries] | dict[str, list[Any]])rf  $Sequence[str] | Sequence[PolarsExpr]rd  r   r   r+   rs   Sequence[str]rj  r   r   r%   )r   r|  r   r   rm  r   rn  zPivotAgg | Nonero  r   rp  r   r   r%   )r   r   )r   zPolarsBaseFrame[pl.DataFrame]r   r7   r   r   r   r   r   r   r   r%   r   )#r   r   r   r   r   r   r   staticmethodr   r   r   r   r  r   r  r  r!  r&  r(  r   r*  r-  r;  r=  rH  r^  rg  r   r   backend_versionrq  r   r   r   __classcell__r   s   @rf   r   r     s)   **''
NN##	  
II## 8 8 OO
 !O "O 
O O - - PP
 !P 2P 
P P";! F FA A3 3/	  $ #',?C,,1<,	,& & ! !A-
A- 
A-FTA ,04 (,	4(4 %	4
 
4l R RP P4 4	74H8HMQH	H< Xd#00 $	0
 %0 ,0 0 0 
0 $0.6,6 	6
 &6 '6 6 
6 6606;P6	6 6rh   r   c                       e Zd ZU ded<   edd       ZddZddZddZddZ	ddZ
d fd	Z	 	 	 	 	 	 dd
Z	 	 	 	 	 	 ddZddZ xZS )rG  r   rQ   c                6    t        | t        j                        S ra   )r   r   r4   r   s    rf   r   zPolarsLazyFrame._is_nativen  r   rh   c                <    | j                   j                  | d      S )NrH  r   )r^   	lazyframero   s    rf   r   zPolarsLazyFrame.to_narwhalsr  r   rh   c                     y)NrG  r   ro   s    rf   r   zPolarsLazyFrame.__repr__u  r   rh   c                    | S ra   r   ro   s    rf   __narwhals_lazyframe__z&PolarsLazyFrame.__narwhals_lazyframe__x  r  rh   c                v     t         vr' j                  j                   d d}t        |      d fd}|S )Nr  r  c                     t        | |      \  }}	 j                   t        j                        |i |      S # t        j
                  j                  $ r}t        t        |            |d }~ww xY wra   )r   r   r  rq   r   r  r!   r   )r  r  r  r  r  r  rc   s        rf   r  z)PolarsLazyFrame.__getattr__.<locals>.func  sl    +D&9IC9(()Cd)CS)QD)QRR==44 9)#a&1q89s   *= A4A//A4r  r  r   s   ``  rf   r!  zPolarsLazyFrame.__getattr__{  sA    ((^^,,--A$rJC %%	9 rh   c              #  z   K   | j                  t        j                        j                         E d {    y 7 wra   )r   r   rx   r=  ro   s    rf   _iter_columnszPolarsLazyFrame._iter_columns  s'     << 5 56CCEEEs   1;9;c                \    	 t         |          S # t        $ r}t        |      d d }~ww xY wra   )rt  r   r  r   )rc   r  r   s     rf   r   zPolarsLazyFrame.collect_schema  s3    	67)++ 	6(+5	6s    	+&+c                   	  | j                   j                  d
i |}||t        j
                  u rt        j                  ||       S |t        j                  u r9ddl	m
}  ||j                         t        j                  d| j                  d      S |t        j                  u r*ddlm}  ||j!                         d| j                  d      S d	| }t#        |      # t        $ r}t        |      d d }~ww xY w)Nr   r   )PandasLikeDataFrameTF)rF  r_   re   validate_column_names)ArrowDataFrame)r_   re   r  zUnsupported `backend` value: r   )rq   r   r  r   r   rx   r   r   PANDASnarwhals._pandas_like.dataframer  rU   r^   PYARROWnarwhals._arrow.dataframer  rT   rW  )rc   rY  r  r   r  r  r  r|   s           rf   r   zPolarsLazyFrame.collect  s    	6(T[[((262F ?g)>)>>"..vt.DDn+++K&  "-44)-&+  n,,,@!!)-&+	  .gY7o9  	6(+5	6s   C   	C:)C55C:c               $    ddl m}  || ||      S )Nr   )r,   rc  )re  r,   )rc   rf  rd  r,   s       rf   rg  zPolarsLazyFrame.group_by  s     	@ tNKKrh   c                   | j                   dk  r*| j                  | j                  j                  |            S | j                  | j                  j                  ||            S )Nr   ri  )rl   r   rq   r   )rc   rs   rj  s      rf   r   zPolarsLazyFrame.drop  sU      9,$$T[[%5%5g%>??  !1!1'&!1!IJJrh   )r   zpl.LazyFrame | Anyr   zTypeIs[pl.LazyFrame])r   zLazyFrame[pl.LazyFrame]rv  rw  rx  ry  r   )rY  z_EagerAllowedImpl | Noner  r	   r   r(   )rf  rz  rd  r   r   r,   r{  )r   r   r   r   r}  r   r   r   r  r!  r  r   r   rg  r   r  r  s   @rf   rG  rG  k  s    - -;!F6!/!;>!	!FL8LMQL	LKrh   rG  )_
__future__r   collections.abcr   r   r   r   typingr   r	   r
   r   r   r   r   polarsr   narwhals._polars.namespacer   narwhals._polars.seriesr   narwhals._polars.utilsr   r   r   narwhals._utilsr   r   r   r   r   r   r   r   r   r   r   r   narwhals.dependenciesr    narwhals.exceptionsr!   r"   typesr#   r$   pandaspdpyarrowpatyping_extensionsr%   r&   r'   narwhals._compliant.typingr(   r)   narwhals._polars.exprr*   re  r+   r,   narwhals._spark_like.utilsr-   narwhals._translater.   narwhals._typingr/   r0   r1   r2   narwhals.dataframer3   r4   narwhals.dtypesr5   narwhals.typingr6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r   	frozensetr  rY   r[   r   rG  r   rh   rf   <module>r     s   " > > P P P  6 0 
    4 3( 99W0J72D87%	 	 	 	AA&	 &  : /r||L s)g/0 s)lK6obll3 K6\
TKobll3 TKrh   