
    -PhKf                    *   U 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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"m#Z#m$Z$ d dl%m&Z& d d	l'm(Z( er~d d
l)m*Z* d dlm+Z+m,Z, d dl-Z.d dl/Z0d dl1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z< d dl=m>Z> d dlm?Z?m@Z@ d dlAmBZBmCZC d dlDmEZE d dlFmGZG d dlHmIZImJZJmKZKmLZLmMZMmNZN  e,d          ZO e,d          ZPdZQdeRd<   	  eSg d          ZT G d d          ZU G d d          ZVdS )     )annotations)	TYPE_CHECKINGAnyIteratorLiteralMappingSequenceSizedcastoverloadN)PolarsNamespace)PolarsSeries)catch_polars_exceptionextract_args_kwargsnative_to_narwhals_dtype)Implementation_into_arrow_tablecheck_columns_existconvert_str_slice_to_int_sliceis_compliant_seriesis_index_selectoris_rangeis_sequence_likeis_slice_indexis_slice_noneparse_columns_to_dropparse_versionrequiresvalidate_backend_version)is_numpy_array_1d)ColumnNotFoundError)
ModuleType)CallableTypeVar)Self	TypeAliasTypeIs)CompliantDataFrameAnyCompliantLazyFrameAny)
PolarsExpr)PolarsGroupByPolarsLazyGroupBy)IntoArrowTable)Version_FullContext)	DataFrame	LazyFrame)DTypeSchema)JoinStrategyMultiColSelectorMultiIndexSelectorPivotAggSingleIndexSelector_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sorttailto_arrow	to_pandasuniquewith_columns	write_csvwrite_parquetc                     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<   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$<   dd-Zedd3            Zedd7            Zedd;            Z	edd<            Z
edd?            ZddAZeddB            ZddDZddEZddGZddIZddJZddKZeddN            ZeddO            ZeddQ            ZddTZddVZddXZddYZdd[Z	 dd\d]ddbZdd\d]ddcZddeZeddg            ZddiZddkZ ddmZ!ddoZ"ddqZ#edds            Z$eddt            Z%d\duddyZ&edd}            Z'edd            Z'ddZ'ddZ(ddZ)ddZ*ddZ+ e,j-        d          dd            Z.ddZ/ddZ0ddZ1d\S )PolarsDataFrameMethod[Self]r>   zMethod[CompliantDataFrameAny]collectr?   zMethod[int | float]r@   rA   rB   rC   zMethod[Any]rF   z?Method[Iterator[tuple[Any, ...]] | Iterator[Mapping[str, Any]]]rG   zMethod[PolarsSeries]rE   rH   rI   zMethod[tuple[Any, ...]]rJ   z?Method[Sequence[tuple[Any, ...]] | Sequence[Mapping[str, Any]]]rK   rL   rM   rN   zMethod[pa.Table]rP   zMethod[pd.DataFrame]rQ   rR   rS   rT   zMethod[None]rU   r   _evaluate_aliasesdfpl.DataFramebackend_versiontuple[int, ...]versionr.   returnNonec                   || _         || _        t          j        | _        || _        t          | j        | j                   d S N_native_frame_backend_versionr   POLARS_implementation_versionr   selfr[   r]   r_   s       Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/narwhals/_polars/dataframe.py__init__zPolarsDataFrame.__init__   B       /-4 !5t7LMMMMM    datar-   contextr/   r%   c         	         |j         dk    rt          j        |          }n0t          dt          j        t          ||                              }|                     ||          S )N)      r\   rq   )rf   plr0   r   
from_arrowr   from_native)clsrp   rq   natives       rl   rw   zPolarsDataFrame.from_arrow   s\    #v--\$''FF."-8I$PW8X8X*Y*YZZFvw777ro   Mapping[str, Any]schema#Mapping[str, DType] | Schema | Nonec                  ddl m} | ||                                          n|}|                     t	          j        ||          |          S Nr   r3   ru   )narwhals.schemar4   	to_polarsrx   rv   	from_dictry   rp   rq   r|   r4   	pl_schemas         rl   r   zPolarsDataFrame.from_dict   s[     	+*****282DFF6NN,,...&	r|D)<<gNNNro   objpl.DataFrame | AnyTypeIs[pl.DataFrame]c                6    t          | t          j                  S rc   )
isinstancerv   r0   r   s    rl   
_is_nativezPolarsDataFrame._is_native       #r|,,,ro   c              2     | ||j         |j                  S Nr]   r_   rf   ri   ry   rp   rq   s      rl   rx   zPolarsDataFrame.from_native   (    s'":GDT
 
 
 	
ro   r:   3Mapping[str, DType] | Schema | Sequence[str] | Nonec                  ddl m} t          |t          |f          r ||                                          n|}|                     t          j        ||          |          S r   )r   r4   r   r   r   rx   rv   
from_numpyr   s         rl   r   zPolarsDataFrame.from_numpy   st     	+***** &7F"344FF6NN$$&&& 	
 r}T9==wOOOro   DataFrame[pl.DataFrame]c                :    | j                             | d          S )Nfulllevel)ri   	dataframerk   s    rl   to_narwhalszPolarsDataFrame.to_narwhals       }&&t6&:::ro   c                    | j         S rc   re   r   s    rl   rz   zPolarsDataFrame.native       !!ro   strc                    dS )NrW    r   s    rl   __repr__zPolarsDataFrame.__repr__         ro   c                    | S rc   r   r   s    rl   __narwhals_dataframe__z&PolarsDataFrame.__narwhals_dataframe__       ro   r   c                8    t          | j        | j                  S r   r   rf   ri   r   s    rl   __narwhals_namespace__z&PolarsDataFrame.__narwhals_namespace__   #     14=
 
 
 	
ro   r"   c                    | j         t          j        u r| j                                         S dt	          | j                    }t          |          NzExpected polars, got: rh   r   rg   to_native_namespacetypeAssertionErrorrk   msgs     rl   __native_namespace__z$PolarsDataFrame.__native_namespace__   N    >#888';;===CtD,@'A'ACCS!!!ro   c                F    |                      | j        | j        |          S r   	__class__rz   rf   rk   r_   s     rl   _with_versionzPolarsDataFrame._with_version   )    ~~K)>  
 
 	
ro   c                F    |                      || j        | j                  S r   r   rf   ri   rk   r[   s     rl   _with_nativezPolarsDataFrame._with_native   )    ~~ 5t}  
 
 	
ro   	pl.Seriesr   c                    d S rc   r   rk   r   s     rl   _from_native_objectz#PolarsDataFrame._from_native_object   s    CF3ro   c                    d S rc   r   r   s     rl   r   z#PolarsDataFrame._from_native_object   s    >Acro   r;   c                    d S rc   r   r   s     rl   r   z#PolarsDataFrame._from_native_object   s    03ro   pl.Series | pl.DataFrame | TSelf | PolarsSeries | Tc                    t          |t          j                  rt          j        ||           S |                     |          r|                     |          S |S Nru   )r   rv   Seriesr   rx   r   r   r   s     rl   r   z#PolarsDataFrame._from_native_object   s[     c29%% 	?+C>>>>??3 	*$$S)))
ro   intc                *    t          | j                  S rc   )lenrz   r   s    rl   __len__zPolarsDataFrame.__len__   s    4;ro   nc                \    |                      | j                            |                    S rc   )r   rz   rD   rk   r   s     rl   rD   zPolarsDataFrame.head   &      !1!1!!4!4555ro   c                \    |                      | j                            |                    S rc   )r   rz   rO   r   s     rl   rO   zPolarsDataFrame.tail  r   ro   attrc                l     t           vr! j        j         d d}t          |          d fd}|S )	N has not attribute ''.argsr   kwargsr`   c                 @   t          | |          \  }}	                      t          j                  |i |          S # t          j        j        $ r"}|dj         d}t          |          |d }~wt          $ r}t          |j
                  d d }~ww xY w)Nz+

Hint: Did you mean one of these columns: ?)r   r   getattrrz   rv   
exceptionsr!   columns	Exceptionr   rf   )r   r   poskwdser   r   rk   s         rl   funcz)PolarsDataFrame.__getattr__.<locals>.func	  s    +D&99ICQ//0JT0J0JC0XSW0X0XYYY=4 6 6 6ZZ4<ZZZ)#..A5 Q Q Q,Q0EFFDPQs#   -A BA55BBBr   r   r   r   r`   r   INHERITED_METHODSr   __name__AttributeErrorrk   r   r   r   s   ``  rl   __getattr__zPolarsDataFrame.__getattr__  sj    (((^,JJ$JJJC %%%	Q 	Q 	Q 	Q 	Q 	Q 	Q ro   N)copydtype
Any | Noner   bool | Nonec                   | j         dk     r|d}t          |          | j         dk     r| j                            |          S | j                            |          S )N)r         z=`copy` in `__array__` is only supported for 'polars>=0.20.28')rf   NotImplementedErrorrz   	__array__)rk   r   r   r   s       rl   r   zPolarsDataFrame.__array__  sd      ;..43CQC%c*** ;..;((///{$$U+++ro   c               4    | j                                         S rc   )rz   to_numpy)rk   r   r   s      rl   r   zPolarsDataFrame.to_numpy  s    {##%%%ro   dict[str, DType]c                      j         dk     r* fd j        j                                        D             S  j                                        } fd|                                D             S )Nrs   c                N    i | ]!\  }}|t          |j        j                  "S r   r   ri   rf   .0namer   rk   s      rl   
<dictcomp>z2PolarsDataFrame.collect_schema.<locals>.<dictcomp>$  H         D% .4=$*?   ro   c                N    i | ]!\  }}|t          |j        j                  "S r   r   r   s      rl   r  z2PolarsDataFrame.collect_schema.<locals>.<dictcomp>,  r  ro   )rf   rz   r|   itemscollect_schema)rk   collected_schemas   ` rl   r  zPolarsDataFrame.collect_schema"  s     4''    $(;#5#;#;#=#=	     ${99;;    $4#9#9#;#;	   ro   tuple[int, int]c                    | j         j        S rc   )rz   shaper   s    rl   r	  zPolarsDataFrame.shape3  s    {  ro   ]tuple[SingleIndexSelector | MultiIndexSelector[PolarsSeries], MultiColSelector[PolarsSeries]]c           	        |\  }}| j         dk    rct          |          r|j        n|}t          |          r|j        n|}||f}| j                            |          }|                     |          S t          |t                    rt          |          n|}t          |t                    rt          |          n|}t          |          r|	                                }| j        }t          |          st          |t                    r't          |          dk    r|                                 S t          |          rt          |          st!          |          r@|                    | j        t%          |j        |j        |j                                     }nt          |          r$|d d |j                                        f         }n|d d |f         }nt          |t$                    r;|                    | j        t%          t/          || j                                      }nt          |          r-|                    |j                                                  }nFt1          |          r|                    |          }n!dt3          |           }	t5          |	          t          |          st          |t6                    r||gd d f         }nt          |t$          t8          f          r||d d f         }n^t          |          r||j        d d f         }n=t1          |          r||d d f         }n!dt3          |           }	t5          |	          |                     |          S )N)r   r      r   z'Unreachable code, got unexpected type: )rf   r   rz   __getitem__r   r   tuplelistr    tolistr   r
   r   rM   r   r   r   r   slicestartstopstepto_listr   r   r   r   r   ranger   )
rk   rF   rK   r   rows_nativecolumns_nativeselectorselectedrz   r   s
             rl   r  zPolarsDataFrame.__getitem__7  sh    g ;..)<T)B)BL$++K/B7/K/KXW^^QXN"N2H{..x88H++H555
 ",D%!8!8B4:::dD'1'5'A'ANd7mmmwG )) +!..**[F )) .gu-- )#g,,!2C2C;;==($W-- .%g.. 4(72C2C 4!' Lw}glGL)Y)YZ" " -W55 4!'7>+A+A+C+C(C!D!'7
!3// .#]]!#A'4<#X#XY FF
 )11 .#]]7>+A+A+C+CDDFF%g.. .#]]733FFSDMMSSC(--- && .dC(( 
.#TFAAAI.FFuen55 .#D!!!G_FF(.. .#DKN3FF%d++ .#D!!!G_FFPDJJPPC(---$$V,,,ro   column_namesc                F    |                       | j        j        |           S rc   r   rz   rM   rk   r  s     rl   simple_selectzPolarsDataFrame.simple_selectx  #      !3!3\!BCCCro   exprsc                     | j         | S rc   rM   rk   r!  s     rl   	aggregatezPolarsDataFrame.aggregate{      t{E""ro   r   c                ^    t          j        | j                            |          |           S r   )r   rx   rz   
get_columnrk   r   s     rl   r(  zPolarsDataFrame.get_column~  s(    '(>(>t(D(DdSSSSro   Iterator[PolarsSeries]c              #  r   K   | j                                         D ]}t          j        ||           V  d S r   )rz   iter_columnsr   rx   )rk   seriess     rl   r,  zPolarsDataFrame.iter_columns  sP      k..00 	A 	AF*64@@@@@@@	A 	Aro   	list[str]c                    | j         j        S rc   rz   r   r   s    rl   r   zPolarsDataFrame.columns      {""ro   c                X      fd j         j                                        D             S )Nc                N    i | ]!\  }}|t          |j        j                  "S r   r   r   s      rl   r  z*PolarsDataFrame.schema.<locals>.<dictcomp>  A     
 
 
e *5$-AVWW
 
 
ro   rz   r|   r  r   s   `rl   r|   zPolarsDataFrame.schema  s?    
 
 
 
#{17799
 
 
 	
ro   )backendr6  Implementation | Noner)   c               
   ||t           j        u r3t                              | j                                        |           S |t           j        u rDdd l}ddlm	} | j        } ||
                    d          t          |          | j                  S |t           j        u rZdd l}dd lm} ddlm}  ||                    | j                                                  t          |          | j                  S t*          )Nru   r   )DuckDBLazyFramer[   r   )DaskLazyFrame)r   rg   PolarsLazyFramerx   rz   lazyDUCKDBduckdbnarwhals._duckdb.dataframer9  tabler   ri   DASKdaskdask.dataframer   narwhals._dask.dataframer:  from_pandasrQ   r   )rk   r6  r>  r9  r[   rB  ddr:  s           rl   r<  zPolarsDataFrame.lazy  s0   ?g)>>>"..t{/?/?/A/A4.PPP---MMMBBBBBB B"?T"" -f 5 5   
 +++KKK''''''>>>>>> =t{446677 -d 3 3   
 ro   	as_seriesLiteral[True]dict[str, PolarsSeries]c                   d S rc   r   rk   rG  s     rl   to_dictzPolarsDataFrame.to_dict  s    ORsro   Literal[False]dict[str, list[Any]]c                   d S rc   r   rK  s     rl   rL  zPolarsDataFrame.to_dict  s    MPSro   bool.dict[str, PolarsSeries] | dict[str, list[Any]]c                    |r7 fd j                                                                         D             S  j                             d          S )Nc                D    i | ]\  }}|t          j        |           S )ru   )r   rx   )r   r   colrk   s      rl   r  z+PolarsDataFrame.to_dict.<locals>.<dictcomp>  s?       D# l.sDAAA  ro   F)rG  )rz   rL  r  rK  s   ` rl   rL  zPolarsDataFrame.to_dict  sm      	8   !%!4!4!6!6!<!<!>!>   
 ;&&&777ro   keys$Sequence[str] | Sequence[PolarsExpr]drop_null_keysr+   c               *    ddl m}  || ||          S )Nr   )r+   rW  )narwhals._polars.group_byr+   )rk   rU  rW  r+   s       rl   group_byzPolarsDataFrame.group_by  s-     	<;;;;;}T4GGGGro   c                    | j         dk     r-|                     | j                            |                    S |                     | j                            |                    S N)r   r      rf   r   rz   with_row_countwith_row_indexr)  s     rl   ra  zPolarsDataFrame.with_row_index  X     :--$$T[%?%?%E%EFFF  !;!;D!A!ABBBro   r   Sequence[str]strictc                   t          | ||          }|                     | j                            |                    S )Nrd  )r   r   rz   drop)rk   r   rd  to_drops       rl   rg  zPolarsDataFrame.drop  s:    'gfEEE  !1!1'!:!:;;;ro   onSequence[str] | Noneindexvariable_name
value_namec                    | j         dk     r1|                     | j                            ||||                    S |                     | j                            ||||                    S Nrs   r   r   )id_vars
value_varsrl  rm  )ri  rk  rl  rm  rf   r   rz   meltunpivotrk   ri  rk  rl  rm  s        rl   ru  zPolarsDataFrame.unpivot        9,,$$  !!"/)	 !       KU-J    
 
 	
ro   r   valuesaggregate_functionPivotAgg | Nonesort_columns	separatorc                   	 | j                             ||||||          }n(# t          $ r}t          || j                  d d }~ww xY w|                     |          S )N)rk  rx  ry  r{  r|  )rz   pivotr   r   rf   r   )	rk   ri  rk  rx  ry  r{  r|  resultr   s	            rl   r~  zPolarsDataFrame.pivot  s    
	M[&&#5)# '  FF  	M 	M 	M(D,ABBL	M''///s    # 
AAAc                    | j         S rc   )rz   r   s    rl   r   zPolarsDataFrame.to_polars  s
    {ro   otherhowr5   left_onright_onsuffixc          	         | j         dk     r|dk    rdn|}	 |                     | j                            |j        ||||                    S # t          $ r}t          || j                   d d }~ww xY wN)r   r      r   outer)r  r  r  r  r  )rf   r   rz   joinr   r   )rk   r  r  r  r  r  
how_nativer   s           rl   r  zPolarsDataFrame.join  s     -;;vGGTW 		M$$  ,"#%! !      	M 	M 	M(D,ABBL	Ms   6A 
A3A..A3subsetColumnNotFoundError | Nonec                .    t          || j                  S N)	availabler   r   rk   r  s     rl   _check_columns_existz$PolarsDataFrame._check_columns_exist  s    "6T\BBBBro   )r[   r\   r]   r^   r_   r.   r`   ra   )rp   r-   rq   r/   r`   r%   )rp   r{   rq   r/   r|   r}   r`   r%   )r   r   r`   r   )rp   r\   rq   r/   r`   r%   )rp   r:   rq   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`   r%   )r   r;   r`   r;   )r   r   r`   r   )r`   r   )r   r   r`   r%   r   r   r`   r   rc   )r   r   r   r   r`   r:   )r   r   r   r   r`   r:   r`   r   )r`   r  )rF   r
  r`   r   r  r   r`   r%   r!  r   r`   r%   )r   r   r`   r   r`   r*  r`   r.  )r6  r7  r`   r)   )rG  rH  r`   rI  )rG  rM  r`   rN  )rG  rP  r`   rQ  )rU  rV  rW  rP  r`   r+   r   r   r`   r%   r   rc  rd  rP  r`   r%   
ri  rj  rk  rj  rl  r   rm  r   r`   r%   )ri  rc  rk  rj  rx  rj  ry  rz  r{  rP  r|  r   r`   r%   r  r%   r  r5   r  rj  r  rj  r  r   r`   r%   r  rc  r`   r  )2r   
__module____qualname____annotations__rm   classmethodrw   r   staticmethodr   rx   r   r   propertyrz   r   r   r   r   r   r   r   r   r   rD   rO   r   r   r   r  r	  r  r  r%  r(  r,  r   r|   r<  rL  r[  ra  rg  ru  r   r]   r~  r   r  r  r   ro   rl   rW   rW   l   s        ****''''NNNN####    IIII####  N N N N 8 8 8 [8 O O O [O - - - \- 
 
 
 [

 P P P [P"; ; ; ; " " " X"! ! ! !   
 
 
 

" " " "
 
 
 


 
 
 

 FFF XFAAA XA333 X3          6 6 6 66 6 6 6   $ #',?C, , , , , ,& & & & & & &   " ! ! ! X!?- ?- ?- ?-BD D D D# # # #T T T TA A A A # # # X# 
 
 
 X
 8<      8 RRR XRPPP XP	8 	8 	8 	8H H H HC C C C
< < < <
 
 
 
, Xd##0 0 0 $#0.   M M M M2C C C C C Cro   rW   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<   ded<   d_dZed`d            Zedad#            Zdbd%Z	dcd'Z
ddd(Zded*Zdfd,Zdgd-Zdhd.Zdid0Zdjd2Zedkd3            Zedld5            Zedmd7            Zdmd8Zdnd=ZdodCZdpdEZdqdIZdrdOZdsdQZdtdSZdudZZdvd]Zd^S )wr;  rX   r?   rA   rB   rC   rD   rH   rI   rM   rN   rO   rR   rS   r   _evaluate_expr_evaluate_window_exprrZ   r[   pl.LazyFramer]   r^   r_   r.   r`   ra   c                   || _         || _        t          j        | _        || _        t          | j        | j                   d S rc   rd   rj   s       rl   rm   zPolarsLazyFrame.__init__.  rn   ro   r   pl.LazyFrame | AnyTypeIs[pl.LazyFrame]c                6    t          | t          j                  S rc   )r   rv   r1   r   s    rl   r   zPolarsLazyFrame._is_native7  r   ro   rp   rq   r/   r%   c              2     | ||j         |j                  S r   r   r   s      rl   rx   zPolarsLazyFrame.from_native;  r   ro   LazyFrame[pl.LazyFrame]c                :    | j                             | d          S )Nr<  r   )ri   	lazyframer   s    rl   r   zPolarsLazyFrame.to_narwhalsA  r   ro   r   c                    dS )Nr;  r   r   s    rl   r   zPolarsLazyFrame.__repr__D  r   ro   c                    | S rc   r   r   s    rl   __narwhals_lazyframe__z&PolarsLazyFrame.__narwhals_lazyframe__G  r   ro   r   c                8    t          | j        | j                  S r   r   r   s    rl   r   z&PolarsLazyFrame.__narwhals_namespace__J  r   ro   r"   c                    | j         t          j        u r| j                                         S dt	          | j                    }t          |          r   r   r   s     rl   r   z$PolarsLazyFrame.__native_namespace__O  r   ro   c                F    |                      || j        | j                  S r   r   r   s     rl   r   zPolarsLazyFrame._with_nativeV  r   ro   c                F    |                      | j        | j        |          S r   r   r   s     rl   r   zPolarsLazyFrame._with_version[  r   ro   r   c                l     t           vr! j        j         d d}t          |          d fd}|S )	Nr   r   r   r   r   r`   c                     t          | |          \  }}	                      t          j                  |i |          S # t          j        j        $ r"}t          t          |                    |d }~ww xY wrc   )r   r   r   rz   rv   r   r!   r   )r   r   r   r   r   r   rk   s        rl   r   z)PolarsLazyFrame.__getattr__.<locals>.funce  s    +D&99IC9(()Cd)C)CS)QD)Q)QRRR=4 9 9 9)#a&&11q89s   -A A:A55A:r   r   r   s   ``  rl   r   zPolarsLazyFrame.__getattr__`  sc    (((^,JJ$JJJC %%%	9 	9 	9 	9 	9 	9 	9 ro   r*  c              #  n   K   |                      | j                                                  E d {V  d S rc   )rY   rh   r,  r   s    rl   _iter_columnszPolarsLazyFrame._iter_columnsn  s?      << 455BBDDDDDDDDDDDro   c                    | j         S rc   r   r   s    rl   rz   zPolarsLazyFrame.nativeq  r   ro   r.  c                    | j         j        S rc   r0  r   s    rl   r   zPolarsLazyFrame.columnsu  r1  ro   r   c                \      j         j        } fd|                                D             S )Nc                N    i | ]!\  }}|t          |j        j                  "S r   r   r   s      rl   r  z*PolarsLazyFrame.schema.<locals>.<dictcomp>|  r4  ro   r5  )rk   r|   s   ` rl   r|   zPolarsLazyFrame.schemay  s@    #
 
 
 
%||~~
 
 
 	
ro   c                4     j         dk     r* fd j        j                                        D             S 	  j                                        }n(# t
          $ r}t          | j                   d d }~ww xY w fd|                                D             S )Nr   c                N    i | ]!\  }}|t          |j        j                  "S r   r   r   s      rl   r  z2PolarsLazyFrame.collect_schema.<locals>.<dictcomp>  r  ro   c                N    i | ]!\  }}|t          |j        j                  "S r   r   r   s      rl   r  z2PolarsLazyFrame.collect_schema.<locals>.<dictcomp>  r  ro   )rf   rz   r|   r  r  r   r   )rk   r  r   s   `  rl   r  zPolarsLazyFrame.collect_schema  s     4''    $(;#5#;#;#=#=	   Q#';#=#=#?#?   Q Q Q,Q0EFFDPQ    $4#9#9#;#;	   s   A 
A7A22A7r6  r7  r   r(   c                <   	  | j         j        d	i |}n(# t          $ r}t          || j                  d d }~ww xY w||t
          j        u rt                              ||           S |t
          j	        u rHdd l
}ddlm}  ||                                t
          j	        t          |          | j        d          S |t
          j        u r=dd l}ddlm}  ||                                t          |          | j        d          S d| }	t+          |	          )
Nru   r   )PandasLikeDataFrameF)implementationr]   r_   validate_column_names)ArrowDataFrame)r]   r_   r  zUnsupported `backend` value: r   )rz   rY   r   r   rf   r   rg   rW   rx   PANDASpandasnarwhals._pandas_like.dataframer  rQ   r   ri   PYARROWpyarrownarwhals._arrow.dataframer  rP   
ValueError)
rk   r6  r   r  r   pdr  par  r   s
             rl   rY   zPolarsLazyFrame.collect  sy   	M(T[(22622FF 	M 	M 	M(D,ABBL	M ?g)>>>"..vt.DDDn+++KKKKKK&&  ""-4 -b 1 1&+    n,,,    @@@@@@!>!! -b 1 1&+	    8g77oos    
:5:rU  rV  rW  rP  r,   c               *    ddl m}  || ||          S )Nr   )r,   rY  )rZ  r,   )rk   rU  rW  r,   s       rl   r[  zPolarsLazyFrame.group_by  s/     	@?????  tNKKKKro   r   c                    | j         dk     r-|                     | j                            |                    S |                     | j                            |                    S r]  r_  r)  s     rl   ra  zPolarsLazyFrame.with_row_index  rb  ro   r   rc  rd  c                   | j         dk     r-|                     | j                            |                    S |                     | j                            ||                    S )Nrp  rf  )rf   r   rz   rg  )rk   r   rd  s      rl   rg  zPolarsLazyFrame.drop  s]     9,,$$T[%5%5g%>%>???  !1!1'&!1!I!IJJJro   ri  rj  rk  rl  rm  c                    | j         dk     r1|                     | j                            ||||                    S |                     | j                            ||||                    S ro  rs  rv  s        rl   ru  zPolarsLazyFrame.unpivot  rw  ro   r  c                F    |                       | j        j        |           S rc   r  r  s     rl   r  zPolarsLazyFrame.simple_select  r   ro   r!  c                     | j         | S rc   r#  r$  s     rl   r%  zPolarsLazyFrame.aggregate  r&  ro   r  r  r5   r  r  r  c          	         | j         dk     r|dk    rdn|}|                     | j                            |j        ||||                    S r  )rf   r   rz   r  )rk   r  r  r  r  r  r  s          rl   r  zPolarsLazyFrame.join  sk     -;;vGGTW 	   Kl!   
 
 	
ro   r  r  c                .    t          || j                  S r  r  r  s     rl   r  z$PolarsLazyFrame._check_columns_exist  s     "dl
 
 
 	
ro   N)r[   r  r]   r^   r_   r.   r`   ra   )r   r  r`   r  )rp   r  rq   r/   r`   r%   )r`   r  r  r  r  r  )r[   r  r`   r%   r  r  r  )r`   r  r  r  )r6  r7  r   r   r`   r(   )rU  rV  rW  rP  r`   r,   r  r  r  r  r  r  r  ) r   r  r  r  rm   r  r   r  rx   r   r   r  r   r   r   r   r   r  r  rz   r   r|   r  rY   r[  ra  rg  ru  r  r%  r  r  r   ro   rl   r;  r;    s         N N N N - - - \- 
 
 
 [

; ; ; ;! ! ! !   
 
 
 

" " " "
 
 
 


 
 
 

   E E E E " " " X" # # # X# 
 
 
 X
   (% % % %NL L L LC C C C
K K K K

 
 
 
,D D D D# # # #
 
 
 
,
 
 
 
 
 
ro   r;  )W
__future__r   typingr   r   r   r   r   r	   r
   r   r   polarsrv   narwhals._polars.namespacer   narwhals._polars.seriesr   narwhals._polars.utilsr   r   r   narwhals._utilsr   r   r   r   r   r   r   r   r   r   r   r   r   r   narwhals.dependenciesr    narwhals.exceptionsr!   typesr"   r#   r$   r  r  r  r  typing_extensionsr%   r&   r'   narwhals._compliant.typingr(   r)   narwhals._polars.exprr*   rZ  r+   r,   narwhals._translater-   r.   r/   narwhals.dataframer0   r1   narwhals.dtypesr2   r   r4   narwhals.typingr5   r6   r7   r8   r9   r:   r;   r<   r=   r  	frozensetr   rW   r;  r   ro   rl   <module>r     s   " " " " " " "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     6 6 6 6 6 6 0 0 0 0 0 0         
                                 4 3 3 3 3 3 3 3 3 3 3 3       ((((((((9999999999WWWWWWWW000000JJJJJJJJ2222225555555577777777%%%%%%&&&&&&                	AA& & & & & I    <lC lC lC lC lC lC lC lC^g
 g
 g
 g
 g
 g
 g
 g
 g
 g
ro   