
    eif                       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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( d d	l)m*Z* d d
l+m,Z, erd dlm-Z- d dl.m/Z/ d dlm0Z0 d dl1Z2d dl3Z4d dl5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z; d dl<m=Z= d dl>m?Z?m@Z@ d dlAmBZB d dlCmDZD d dlEmFZFmGZG d dlmHZHmIZI d dlJmKZKmLZL d dlMmNZN d dlOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZW  ed      ZX ed      ZYdZZde[d<   	  e\g d      Z] 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                           Zay)&    )annotations)IteratorMappingSequenceSized)TYPE_CHECKINGAnyGenericLiteralTypeVarcastoverloadN)PolarsNamespace)PolarsSeries)FROM_DICTS_ACCEPTS_MAPPINGScatch_polars_exceptionextract_args_kwargsnarwhals_to_native_dtypenative_to_narwhals_dtype)Implementation_into_arrow_tableconvert_str_slice_to_int_slicegenerate_temporary_column_nameis_boolean_selector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]rE   rG   rH   rI   rJ   rN   rO   rS   rU   rV   rY   r\   _native_framer4   _versionF)validate_backend_versionc               F    || _         || _        |r| j                          y y N)r`   ra   _validate_backend_version)selfdfversionrb   s       \/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/narwhals/_polars/dataframe.py__init__zPolarsBaseFrame.__init__{   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)rf   _s     ri   re   z)PolarsBaseFrame._validate_backend_version   s       113rk   c                6    | j                   j                         S rd   rm   rf   s    ri   ro   z PolarsBaseFrame._backend_version   s    ##4466rk   c                    | j                   S rd   )r`   rr   s    ri   nativezPolarsBaseFrame.native   s    !!!rk   c                .    | j                   j                  S rd   )rt   columnsrr   s    ri   rv   zPolarsBaseFrame.columns   s    {{"""rk   c                .    t        | j                        S N)rh   )r   ra   rr   s    ri   __narwhals_namespace__z&PolarsBaseFrame.__narwhals_namespace__   s    t}}55rk   c                    | j                   t        j                  u r| j                   j                         S dt	        | j                          }t        |      )NzExpected polars, got: )rn   r   POLARSto_native_namespacetypeAssertionError)rf   msgs     ri   __native_namespace__z$PolarsBaseFrame.__native_namespace__   sN    >#8#88'';;==&tD,@,@'A&BCS!!rk   c                <    | j                  || j                        S rx   )	__class__ra   )rf   rg   s     ri   _with_nativezPolarsBaseFrame._with_native   s    ~~b$--~88rk   c                <    | j                  | j                  |      S rx   )r   rt   )rf   rh   s     ri   _with_versionzPolarsBaseFrame._with_version   s    ~~dkk7~;;rk   c              *     | ||j                         S rx   )ra   )clsdatacontexts      ri   from_nativezPolarsBaseFrame.from_native   s    4!1!122rk   c                R    | j                   | j                  j                  |       S rd   )r   rt   rS   )rf   column_namess     ri   simple_selectzPolarsBaseFrame.simple_select   s%      !3!3!3\!BCCrk   c                      | j                   | S rd   )rS   )rf   exprss     ri   	aggregatezPolarsBaseFrame.aggregate   s    t{{E""rk   N)maintain_orderorder_byc                  |r|rt        d| j                  d      }| j                  j                  |      j	                  |d      j                  |xs | j                  |      j	                  |      j                  |      }nQ|r-| j                  j	                  |      j                  ||      }n"| j                  j                  |||xs d      }| j                  |      S )N   
row_index_)prefixF)
nulls_last)keep)r   r   )r   rv   rt   with_row_indexrU   uniquedropr   )rf   subsetr   r   r   tokenress          ri   r   zPolarsBaseFrame.unique   s     21dll<XE**51h51.$,,T:ee  ++""8,33F3FC++$$T.2IE % C   %%rk   c                "    | j                         S rd   )collect_schemarr   s    ri   schemazPolarsBaseFrame.schema   s    ""$$rk   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)ro   r   rt   join)rf   r   r   r   r   r   
how_natives          ri   r   zPolarsBaseFrame.join   sa     --;vGTW 	   KKll!  
 	
rk   c                   | j                   dk  r-| j                  | j                  j                  |||            S | j                  | j                  j                  |||            S )N   r   r   )kby
descendingr   r   reverse)ro   r   rt   top_k)rf   r   r   r   s       ri   r   zPolarsBaseFrame.top_k   sn       9,$$!!& "     !2!2Q2w!2!OPPrk   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   )ro   r   rt   meltunpivot)rf   r   r   r   r   s        ri   r   zPolarsBaseFrame.unpivot   s}       9,$$  !!"/)	 !     KKU-J   
 	
rk   c           	         | j                   }| j                  dk  r|j                  n|j                         }|j	                         D ci c]  \  }}|t        || j                         c}}S c c}}w )Nr   )rt   ro   r   r   itemsr   ra   )rf   rg   r   namedtypes        ri   r   zPolarsBaseFrame.collect_schema  si    [["33d:@Q@Q@S  &||~
e *5$--@@
 	
 
s   !A0c                4   | j                   }||j                  |      }nh|j                  t        j                  t        j
                               j                  |      j                  |      t        j                               }| j                  |      S )N)r   )
rt   r   rS   pl	int_rangelenoveraliasallr   )rf   r   r   frameresults        ri   r   zPolarsBaseFrame.with_row_index  su    ))$/F\\RVVX&++X+>DDTJBFFHF   ((rk   )rg   r\   rh   r4   rb   boolreturnNone)r   r   )r   ztuple[int, ...])r   r\   )r   z	list[str])r   r   )r   r&   )rg   r\   r   r(   )rh   r4   r   r(   )r   r\   r   r5   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   r:   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   r{   rn   rj   re   propertyro   rt   rv   ry   r   r   r   classmethodr   r   r   r   r   r   r   r   r   r    rk   ri   r^   r^   j   s   


$$$++O */
-
- 	
-
 #'
- 

-4 7 7 " " # #6"9< 3 3D# '+)-&$& !	&
 $& '& 
&2 % %
1
 	

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

 
 

,
	)rk   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<   ed<d       Ze	 	 	 	 	 	 	 	 d=d       Ze	 	 	 	 	 	 	 	 d>d       Zed?d       Z	e	 	 	 	 	 	 	 	 d@d       Z
dAdZdBdZdCd ZedDd!       ZedEd"       ZedFd#       Z	 	 	 	 dGd$ZdHd%ZdId&Z	 dJd'd(	 	 	 	 	 dKd)ZdJd'd(dLd*ZedMd+       Z	 	 	 	 dNd,ZdOd-ZdPd.Z	 dJd'd/	 	 	 	 	 dQd0ZedRd1       ZedSd2       Z	 	 	 	 dTd3Z	 	 	 	 	 	 dUd4ZdVd5Z ej<                  d6      	 	 	 	 	 	 	 	 	 	 	 	 	 	 dWd7       ZdXd8Z 	 	 	 	 	 	 	 	 	 	 	 	 dY fd9Z!	 	 	 	 	 	 	 	 dZ fd:Z"d[d;Z# xZ$S )\PolarsDataFramer_   rD   zMethod[CompliantDataFrameAny]collectzMethod[int | float]rF   rI   z?Method[Iterator[tuple[Any, ...]] | Iterator[Mapping[str, Any]]]rM   zMethod[PolarsSeries]rK   zMethod[tuple[Any, ...]]rP   z?Method[Sequence[tuple[Any, ...]] | Sequence[Mapping[str, Any]]]rQ   rR   zMethod[pa.Table]rW   zMethod[pd.DataFrame]rX   zMethod[Any]rZ   Method[None]r[   c         	         |j                   j                         dk\  rt        j                  |      }n)t	        dt        j
                  t        ||                  }| j                  ||      S )N)r      pl.DataFramer   )rn   ro   r   r6   r   
from_arrowr   r   )r   r   r   rt   s       ri   r   zPolarsDataFrame.from_arrow0  sX    ""335?\\$'F."--8I$PW8X*YZFvw77rk   c         	         |r<|j                         D ci c]   \  }}||t        ||j                        nd " c}}nd }| j                  t	        j
                  ||      |      S c c}}w Nr   )r   r   ra   r   r   	from_dict)r   r   r   r   keyr   	pl_schemas          ri   r   zPolarsDataFrame.from_dict8  sz       %+LLN	 !S% $ .eW5E5EF  	 r||D)<gNNs   %A(c         	        |r<|j                         D ci c]   \  }}||t        ||j                        nd " c}}nd }|st        j                  |      }nat
        st        |d   t              rt        j                  ||      }n1|xs t        |d         }t        j                  d |D        |d      }| j                  ||      S c c}}w )N)r   r   c              3  N   K   | ]  }t        |j                                 y wrd   )tuplevalues).0rP   s     ri   	<genexpr>z-PolarsDataFrame.from_dicts.<locals>.<genexpr>g  s     5szz|$5s   #%rP   )r   orientr   )r   r   ra   r   r6   r   
isinstancedict
from_dictsr   r   )	r   r   r   r   r   r   r   rt   rv   s	            ri   r   zPolarsDataFrame.from_dictsM  s       %+LLN	 !S% $ .eW5E5EF  	 \\3F(JtAw,E]]43F15a>G\\55geF vw77's   %Cc                6    t        | t        j                        S rd   )r   r   r6   objs    ri   
_is_nativezPolarsDataFrame._is_nativel      #r||,,rk   c                  ddl m} t        |t        |f      r ||      j	                         n|}| j                  t        j                  ||      |      S )Nr   )Schemar   )narwhals.schemar   r   r   	to_polarsr   r   
from_numpy)r   r   r   r   r   r   s         ri   r   zPolarsDataFrame.from_numpyp  sR     	+ &7F"34 6N$$& 	
 r}}T9=wOOrk   c                <    | j                   j                  | d      S )Nr   level)ra   	dataframerr   s    ri   to_narwhalszPolarsDataFrame.to_narwhals      }}&&t6&::rk   c                     y)Nr   r   rr   s    ri   __repr__zPolarsDataFrame.__repr__       rk   c                    | S rd   r   rr   s    ri   __narwhals_dataframe__z&PolarsDataFrame.__narwhals_dataframe__      rk   c                     y rd   r   rf   r   s     ri   _from_native_objectz#PolarsDataFrame._from_native_object  s    CFrk   c                     y rd   r   r  s     ri   r  z#PolarsDataFrame._from_native_object  s    >Ark   c                     y rd   r   r  s     ri   r  z#PolarsDataFrame._from_native_object  s    03rk   c                    t        |t        j                        rt        j                  ||       S | j                  |      r| j                  |      S |S r   )r   r   Seriesr   r   r   r   r  s     ri   r  z#PolarsDataFrame._from_native_object  sG     c299%++C>>??3$$S))
rk   c                ,    t        | j                        S rd   )r   rt   rr   s    ri   __len__zPolarsDataFrame.__len__  s    4;;rk   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  getattrrt   r   
exceptionsr$   rv   	Exceptionr   )argskwargsposkwdser   attrrf   s         ri   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rf   r#  r   r$  s   ``  ri   __getattr__zPolarsDataFrame.__getattr__  sA    ((^^,,--A$rJC %%	: rk   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')ro   NotImplementedErrorrt   	__array__)rf   r   r+  r   s       ri   r/  zPolarsDataFrame.__array__  s_       ;.43CQC%c**  ;.;;((//{{$$U++rk   c               6    | j                   j                         S rd   )rt   to_numpy)rf   r   r+  s      ri   r1  zPolarsDataFrame.to_numpy  s    {{##%%rk   c                .    | j                   j                  S rd   )rt   shaperr   s    ri   r3  zPolarsDataFrame.shape  s    {{   rk   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        |      r, |j                  d t        |j                   |      D         }nYt#        |      rt%        |      st'        |      rH|j                  | j                   t)        |j*                  |j,                  |j.                                 }nt        |t0              r"|d d |j                  j3                         f   }n|d d |f   }nt        |t(              r9|j                  | j                   t)        t5        || j                                   }nkt        |      r*|j                  |j                  j3                               }n6t7        |      r|j                  |      }ndt9        |       }	t;        |	      t        |      st        |t<              r||gd d f   }nmt        |t(        t>        f      r
||d d f   }nMt        |      r||j                  d d f   }n.t7        |      r
||d d f   }ndt9        |       }	t;        |	      | jA                  |      S )N)r   r      r   c              3  ,   K   | ]  \  }}|s	|  y wrd   r   )r   colrS   s      ri   r   z.PolarsDataFrame.__getitem__.<locals>.<genexpr>  s     X+#vQW#Xs   
z'Unreachable code, got unexpected type: )!ro   r   rt   __getitem__r  r   r   listr#   tolistr    r   r   rS   r   ziprv   r   r   r   slicestartstopstepr   to_listr   r   r}   r~   r   ranger   )
rf   rL   rQ   rv   rows_nativecolumns_nativeselectorselectedrt   r   s
             ri   r8  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/*V]]XV^^W1MXF '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,,rk   c                b    t        j                  | j                  j                  |      |       S r   )r   r   rt   
get_column)rf   r   s     ri   rG  zPolarsDataFrame.get_column
  s$    ''(>(>t(DdSSrk   c              #  |   K   | j                   j                         D ]  }t        j                  ||         y wr   )rt   iter_columnsr   r   )rf   seriess     ri   rI  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)rb   rh   )DaskLazyFrame)IbisLazyFrame)rv   )SparkLikeLazyFramez5Spark like backends require `session` to be not None.)rK  implementationrh   )r   r{   PolarsLazyFramer   rt   lazyDUCKDBduckdbnarwhals._duckdb.dataframerM  tablera   DASKdask.dataframer  narwhals._dask.dataframerO  from_pandasrX   IBISibisnarwhals._ibis.dataframerP  memtablerv   is_spark_likenarwhals._spark_like.dataframerQ  
ValueError_from_compliant_dataframer~   )rf   backendrK  rV  rM  rN  ddrO  r^  rP  rQ  r   s               ri   rT  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%%??&	 @   rk   c                    y rd   r   rf   	as_seriess     ri   to_dictzPolarsDataFrame.to_dictG  s    ORrk   c                    y rd   r   rh  s     ri   rj  zPolarsDataFrame.to_dictJ  s    MPrk   c          	         |rQ| j                   j                         j                         D ci c]  \  }}|t        j                  ||        c}}S | j                   j                  d      S c c}}w )Nr   F)ri  )rt   rj  r   r   r   )rf   ri  r   r7  s       ri   rj  zPolarsDataFrame.to_dictM  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.   )rf   keysro  r.   s       ri   group_byzPolarsDataFrame.group_byW  s     	<T4GGrk   c               r    t        | ||      }| j                  | j                  j                  |            S )Nstrict)r!   r   rt   r   )rf   rv   ru  to_drops       ri   r   zPolarsDataFrame.drop^  s0    'gfE  !1!1'!:;;rk   r   c                   	 | j                   j                  ||||||      }| j	                  |      S # t        $ r}t        |      d d }~ww xY w)N)r   r   aggregate_functionsort_columns	separator)rt   pivotr  r   r  )	rf   r   r   r   rx  ry  rz  r   r"  s	            ri   r{  zPolarsDataFrame.pivotb  sd    
	6[[&&#5)# ' F ''//  	6(+5	6s   !4 	AA		Ac                    | j                   S rd   )rt   rr   s    ri   r   zPolarsDataFrame.to_polarsz  s    {{rk   c               h    	 t         |   |||||      S # t        $ r}t        |      d d }~ww xY w)Nr   )superr   r  r   )rf   r   r   r   r   r   r"  r   s          ri   r   zPolarsDataFrame.join}  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   )r~  r   r  r   )rf   r   r   r   r"  r   s        ri   r   zPolarsDataFrame.top_k  s:    	67=1W=== 	6(+5	6s    	/*/c                    | j                   dk  r%|#|!| j                  x}dk7  rd|}t        |      | j                  j	                  ||      S )N)r   $   )r   r   zfcan only call `.item()` without "row" or "column" values if the DataFrame has a single element; shape=)rP   column)ro   r3  rc  rt   rL   )rf   rP   r  r3  r   s        ri   rL   zPolarsDataFrame.item  sf    !!G+**$/99>	C  S/!{{C77rk   )r   r1   r   r5   r   r(   )r   zMapping[str, Any]r   r5   r   .IntoSchema | Mapping[str, DType | None] | Noner   r(   )r   zSequence[Mapping[str, Any]]r   r5   r   r  r   r(   )r   zpl.DataFrame | Anyr   zTypeIs[pl.DataFrame])r   r@   r   r5   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   rA   r   rA   )r   zpl.Series | pl.DataFrame | Tr   zSelf | PolarsSeries | T)r   r   r#  r   r   r	   rd   )r   z
Any | Noner+  r   r   r@   )r   r	   r+  r   r   r@   )r   ztuple[int, int])rL   z]tuple[SingleIndexSelector | MultiIndexSelector[PolarsSeries], MultiColSelector[PolarsSeries]]r   r	   )r   r   r   r   r   zIterator[PolarsSeries])re  z_LazyAllowedImpl | NonerK  zSparkSession | Noner   r,   )ri  zLiteral[True]r   zdict[str, PolarsSeries])ri  zLiteral[False]r   zdict[str, list[Any]])ri  r   r   z.dict[str, PolarsSeries] | dict[str, list[Any]])rq  $Sequence[str] | Sequence[PolarsExpr]ro  r   r   r.   rv   Sequence[str]ru  r   r   r(   )r   r  r   r   r   r   rx  zPivotAgg | Nonery  r   rz  r   r   r(   )r   r   )r   zPolarsBaseFrame[pl.DataFrame]r   r:   r   r   r   r   r   r   r   r(   r   )rP   z
int | Noner  zint | str | Noner   r	   )%r   r   r   r   r   r   r   r   staticmethodr   r   r  r  r  r   r  r  r*  r/  r1  r   r3  r8  rG  rI  rT  rj  rr  r   r"   backend_versionr{  r   r   r   rL   __classcell__r   s   @ri   r   r     s]   **''NN##	  
II## 8 8 OO
 !O ?O 
O O( 8)8
 !8 ?8 
8 8< - - PP
 !P 2P 
P P";! F FA A3 3/	  $ #',?C,,1<,	,& & ! !E-
E- 
E-N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8rk   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 )rS  r   rT   c                6    t        | t        j                        S rd   )r   r   r7   r   s    ri   r   zPolarsLazyFrame._is_native  r   rk   c                <    | j                   j                  | d      S )NrT  r  )ra   	lazyframerr   s    ri   r  zPolarsLazyFrame.to_narwhals  r  rk   c                     y)NrS  r   rr   s    ri   r  zPolarsLazyFrame.__repr__  r	  rk   c                    | S rd   r   rr   s    ri   __narwhals_lazyframe__z&PolarsLazyFrame.__narwhals_lazyframe__  r  rk   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rd   )r   r   r  rt   r   r  r$   r   )r  r  r   r!  r"  r#  rf   s        ri   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   ``  ri   r*  zPolarsLazyFrame.__getattr__  sA    ((^^,,--A$rJC %%	9 rk   c              #  z   K   | j                  t        j                        j                         E d {    y 7 wrd   )r   r   r{   rI  rr   s    ri   _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rd   )r~  r   r  r   )rf   r"  r   s     ri   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)rR  rb   rh   validate_column_names)ArrowDataFrame)rb   rh   r  zUnsupported `backend` value: r   )rt   r   r  r   r   r{   r   r   PANDASnarwhals._pandas_like.dataframer  rX   ra   PYARROWnarwhals._arrow.dataframer  rW   rc  )rf   re  r  r   r"  r  r  r   s           ri   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/   rn  )rp  r/   )rf   rq  ro  r/   s       ri   rr  zPolarsLazyFrame.group_by  s     	@ tNKKrk   c                   | j                   dk  r*| j                  | j                  j                  |            S | j                  | j                  j                  ||            S )Nr   rt  )ro   r   rt   r   )rf   rv   ru  s      ri   r   zPolarsLazyFrame.drop  sU      9,$$T[[%5%5g%>??  !1!1'&!1!IJJrk   )r   zpl.LazyFrame | Anyr   zTypeIs[pl.LazyFrame])r   zLazyFrame[pl.LazyFrame]r  r  r  r  r   )re  z_EagerAllowedImpl | Noner  r	   r   r+   )rq  r  ro  r   r   r/   r  )r   r   r   r   r  r   r  r  r  r*  r  r   r   rr  r   r  r  s   @ri   rS  rS    s    - -;!F6!/!;>!	!FL8LMQL	LKrk   rS  )b
__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   r   r   narwhals._utilsr   r   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-   rp  r.   r/   narwhals._spark_like.utilsr0   narwhals._translater1   narwhals._typingr2   r3   r4   r5   narwhals.dataframer6   r7   narwhals.dtypesr8   narwhals.typingr9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   r   	frozensetr'  r\   r^   r   rS  r   rk   ri   <module>r     s   " > > P P P  6 0     4 3( 99W0J72D87%	 	 	 	AA&	 &  : /r||L r)g/0 r)jB8obll3 B8JTKobll3 TKrk   