
    7^jBi                       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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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/m0Z0 d dl1m2Z2 d dlm3Z3 d dl4Z5d dl6Z7d dl8m9Z9m:Z: d dl;m<Z<m=Z= d dl>m?Z? d dl@mAZAmBZB d dlCmDZD d dlEmFZF d dlGmHZHmIZI d dlmJZJmKZK d dlLmMZMmNZN d dlOmPZP d dlQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY  ed      ZZ ed      Z[dZ\de]d<   dZ^de]d <   	  e_g d!      Z` ed"ej                  ej                        Za G d# d$eea         Zb G d% d&ebej                           Zc G d' d(ebej                           Zdy))    )annotations)IteratorMappingSequenceSized)TYPE_CHECKINGAnyFinalGenericLiteralTypeVarcastoverloadN)PolarsNamespace)PolarsSeries)FROM_DICTS_ACCEPTS_MAPPINGSRESPECT_JOIN_NULL_SEMI_ANTI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)CallableIterable)
ModuleType)	TypeAlias)SelfTypeIs)CompliantDataFrameAnyCompliantLazyFrameAny)
PolarsExpr)PolarsGroupByPolarsLazyGroupBy)SparkSession)IntoArrowTable)_EagerAllowedImpl_LazyAllowedImpl)Version_LimitedContext)	DataFrame	LazyFrame)DType)	IntoDTypeJoinStrategyMultiColSelectorMultiIndexSelectorPivotAggSingleIndexSelectorUniqueKeepStrategy_2DArrayTRFr
   MYPYz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<   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	 	 	 	 	 	 	 	 	 	 d9d%Zd5d&Zd:d'Zy);PolarsBaseFrameMethod[Self]rH   rK   rL   rM   rQ   rR   rV   rX   rY   r\   r_   _native_framer6   _versionF)validate_backend_versionc               F    || _         || _        |r| j                          y y N)rc   rd   _validate_backend_version)selfdfversionre   s       e/var/www/ramen.bs-engineer-server.com/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)ri   _s     rl   rh   z)PolarsBaseFrame._validate_backend_version   s       113rn   c                6    | j                   j                         S rg   rp   ri   s    rl   rr   z PolarsBaseFrame._backend_version   s    ##4466rn   c                    | j                   S rg   )rc   ru   s    rl   nativezPolarsBaseFrame.native   s    !!!rn   c                .    | j                   j                  S rg   )rw   columnsru   s    rl   ry   zPolarsBaseFrame.columns   s    {{"""rn   c                .    t        | j                        S N)rk   )r   rd   ru   s    rl   __narwhals_namespace__z&PolarsBaseFrame.__narwhals_namespace__   s    t}}55rn   c                    | j                   t        j                  u r| j                   j                         S dt	        | j                          }t        |      )NzExpected polars, got: )rq   r   POLARSto_native_namespacetypeAssertionError)ri   msgs     rl   __native_namespace__z$PolarsBaseFrame.__native_namespace__   sN    >#8#88'';;==&tD,@,@'A&BCS!!rn   c                <    | j                  || j                        S r{   )	__class__rd   )ri   rj   s     rl   _with_nativezPolarsBaseFrame._with_native   s    ~~b$--~88rn   c                <    | j                  | j                  |      S r{   )r   rw   )ri   rk   s     rl   _with_versionzPolarsBaseFrame._with_version   s    ~~dkk7~;;rn   c              *     | ||j                         S r{   )rd   )clsdatacontexts      rl   from_nativezPolarsBaseFrame.from_native   s    4!1!122rn   c                R    | j                   | j                  j                  |       S rg   )r   rw   rV   )ri   column_namess     rl   simple_selectzPolarsBaseFrame.simple_select   s%      !3!3!3\!BCCrn   c                      | j                   | S rg   )rV   )ri   exprss     rl   	aggregatezPolarsBaseFrame.aggregate   s    t{{E""rn   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   ry   rw   with_row_indexrX   uniquedropr   )ri   subsetr   r   r   tokenress          rl   r   zPolarsBaseFrame.unique   s     21dll<XE**51h51.$,,T:ee  ++""8,33F3FC++$$T.2IE % C   %%rn   c                "    | j                         S rg   )collect_schemaru   s    rl   schemazPolarsBaseFrame.schema   s    ""$$rn   c          	         | j                   dk  r|dk(  rdn|}|j                  }|dv }|rt        s|j                  |      }| j	                  | j                  j                  |||||            S )N)r         fullouter>   antisemi)r   otherhowleft_onright_onsuffix)rr   rw   r   rH   r   join)	ri   r   r   r   r   r   
how_nativeother_nativeis_semi_or_antis	            rl   r   zPolarsBaseFrame.join   s     --;vGTW 	 ||!11#>'22(2CL  KK"!  
 	
rn   c                    | j                   dk  r*| j                  | j                  j                  |            S | j                  j                  |dd      }| j                  |      S )N   $   T)empty_as_null
keep_nulls)rr   r   rw   rJ   )ri   ry   r   s      rl   rJ   zPolarsBaseFrame.explode   s\      7*$$T[[%8%8%ABBkk!!'$!O  %%rn   c                   | j                   dk  r-| j                  | j                  j                  |||            S | j                  | j                  j                  |||            S )Nr   r   r   )kby
descendingr   r   reverse)rr   r   rw   top_k)ri   r   r   r   s       rl   r   zPolarsBaseFrame.top_k   sn       9,$$!!& "     !2!2Q2w!2!OPPrn   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   )rr   r   rw   meltunpivot)ri   r   r   r   r   s        rl   r   zPolarsBaseFrame.unpivot  s}       9,$$  !!"/)	 !     KKU-J   
 	
rn   c           	         | j                   }| j                  dk  r|j                  n|j                         }|j	                         D ci c]  \  }}|t        || j                         c}}S c c}}w )Nr   )rw   rr   r   r   itemsr   rd   )ri   rj   r   namedtypes        rl   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   )
rw   r   rV   pl	int_rangelenoveraliasallr   )ri   r   r   frameresults        rl   r   zPolarsBaseFrame.with_row_index  su    ))$/F\\RVVX&++X+>DDTJBFFHF   ((rn   )rj   r_   rk   r6   re   boolreturnNone)r   r   )r   ztuple[int, ...])r   r_   )r   z	list[str])r   r   )r   r)   )rj   r_   r   r+   )rk   r6   r   r+   )r   r_   r   r7   r   r+   )r   strr   r+   )r   r	   r   r+   )
r   Sequence[str] | Noner   rA   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+   )ry   Sequence[str]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~   rq   rm   rh   propertyrr   rw   ry   r|   r   r   r   classmethodr   r   r   r   r   r   rJ   r   r   r   r    rn   rl   ra   ra   m   s   


$$$++O */
-
- 	
-
 #'
- 

-4 7 7 " " # #6"9< 3 3D# '+)-&$& !	&
 $& '& 
&2 % %
1
 	

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

 
 

,
	)rn   ra   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 )\PolarsDataFramerb   rG   zMethod[CompliantDataFrameAny]collectzMethod[int | float]rI   rL   z?Method[Iterator[tuple[Any, ...]] | Iterator[Mapping[str, Any]]]rP   zMethod[PolarsSeries]rN   zMethod[tuple[Any, ...]]rS   z?Method[Sequence[tuple[Any, ...]] | Sequence[Mapping[str, Any]]]rT   rU   zMethod[pa.Table]rZ   zMethod[pd.DataFrame]r[   zMethod[Any]r]   Method[None]r^   c         	         |j                   j                         dk\  rt        j                  |      }n)t	        dt        j
                  t        ||                  }| j                  ||      S )N)r      pl.DataFramer   )rq   rr   r   r8   r   
from_arrowr   r   )r   r   r   rw   s       rl   r   zPolarsDataFrame.from_arrow<  sX    ""335?\\$'F."--8I$PW8X*YZFvw77rn   c         	         |r<|j                         D ci c]   \  }}||t        ||j                        nd " c}}nd }| j                  t	        j
                  ||      |      S c c}}w Nr   )r   r   rd   r   r   	from_dict)r   r   r   r   keyr   	pl_schemas          rl   r   zPolarsDataFrame.from_dictD  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rg   )tuplevalues).0rS   s     rl   	<genexpr>z-PolarsDataFrame.from_dicts.<locals>.<genexpr>s  s     5szz|$5s   #%rS   )r   orientr   )r   r   rd   r   r8   r   
isinstancedict
from_dictsr   r   )	r   r   r   r   r   r   r   rw   ry   s	            rl   r  zPolarsDataFrame.from_dictsY  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 rg   )r  r   r8   objs    rl   
_is_nativezPolarsDataFrame._is_nativex      #r||,,rn   c                  ddl m} t        |t        |f      r ||      j	                         n|}t        j                  ||d      }| j                  ||      S )Nr   )SchemarS   )r   r   )narwhals.schemar
  r  r   	to_polarsr   
from_numpyr   )r   r   r   r   r
  r   rw   s          rl   r  zPolarsDataFrame.from_numpy|  sY     	+ &7F"34 6N$$& 	
 tYu=vw77rn   c                <    | j                   j                  | d      S )Nr   level)rd   	dataframeru   s    rl   to_narwhalszPolarsDataFrame.to_narwhals      }}&&t6&::rn   c                     y)Nr   r   ru   s    rl   __repr__zPolarsDataFrame.__repr__       rn   c                    | S rg   r   ru   s    rl   __narwhals_dataframe__z&PolarsDataFrame.__narwhals_dataframe__      rn   c                     y rg   r   ri   r  s     rl   _from_native_objectz#PolarsDataFrame._from_native_object  s    CFrn   c                     y rg   r   r  s     rl   r  z#PolarsDataFrame._from_native_object  s    >Arn   c                     y rg   r   r  s     rl   r  z#PolarsDataFrame._from_native_object  s    03rn   c                    t        |t        j                        rt        j                  ||       S | j                  |      r| j                  |      S |S r   )r  r   Seriesr   r   r  r   r  s     rl   r  z#PolarsDataFrame._from_native_object  sG     c299%++C>>??3$$S))
rn   c                ,    t        | j                        S rg   )r   rw   ru   s    rl   __len__zPolarsDataFrame.__len__  s    4;;rn   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  getattrrw   r   
exceptionsr&   ry   	Exceptionr   )argskwargsposkwdser   attrri   s         rl   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ri   r0  r   r1  s   ``  rl   __getattr__zPolarsDataFrame.__getattr__  sA    ((^^,,--A$rJC %%	: rn   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')rr   NotImplementedErrorrw   	__array__)ri   r   r8  r   s       rl   r<  zPolarsDataFrame.__array__  s_       ;.43CQC%c**  ;.;;((//{{$$U++rn   c               6    | j                   j                         S rg   )rw   to_numpy)ri   r   r8  s      rl   r>  zPolarsDataFrame.to_numpy  s    {{##%%rn   c                .    | j                   j                  S rg   )rw   shaperu   s    rl   r@  zPolarsDataFrame.shape  s    {{   rn   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      D         }nyt#        |      rt%        |      st'        |      rI|j                  | j                   t)        |j*                  |j,                  |j.                                 }nt        |t0              r"|d d |j                  j3                         f   }n|d d |f   }nt        |t(              rXt4        rt7        || j                         }	nt7        || j                         }	|j                  | j                   t)        |	          }nkt        |      r*|j                  |j                  j3                               }n6t9        |      r|j                  |      }ndt;        |       }
t=        |
      t        |      st        |t>              r||gd d f   }nmt        |t(        t@        f      r
||d d f   }nMt        |      r||j                  d d f   }n.t9        |      r
||d d f   }ndt;        |       }
t=        |
      | jC                  |      S )N)r   r      r   c              3  *   K   | ]  \  }}|r|  y wrg   r   )r   colrV   s      rl   r   z.PolarsDataFrame.__getitem__.<locals>.<genexpr>  s       +V%  s   Fstrictz'Unreachable code, got unexpected type: )"rr   r   rw   __getitem__r  r  r   listr%   tolistr"   r   r   rV   r   zipry   r   r!   r   slicestartstopstepr   to_listrE   r   r    r   r   r   ranger   )ri   rO   rT   ry   rows_nativecolumns_nativeselectorselectedrw   	int_slicer   s              rl   rG  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]]/26>>7SX/YF 'w/%g.(72C!' LLw}}gllGLL)YZ"
 $G\:!'7>>+A+A+C(C!D!'7
!3/$B7DLL$Y	$B7DLL$Y	#]]4<<y8I+JKF(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,,rn   c                b    t        j                  | j                  j                  |      |       S r   )r   r   rw   
get_column)ri   r   s     rl   rW  zPolarsDataFrame.get_column  s$    ''(>(>t(DdSSrn   c              #  |   K   | j                   j                         D ]  }t        j                  ||         y wr   )rw   iter_columnsr   r   )ri   seriess     rl   rY  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)re   rk   )DaskLazyFrame)IbisLazyFrame)ry   )SparkLikeLazyFramez5Spark like backends require `session` to be not None.)r[  implementationrk   )r   r~   PolarsLazyFramer   rw   lazyDUCKDBduckdbnarwhals._duckdb.dataframer]  tablerd   DASKdask.dataframer  narwhals._dask.dataframer_  from_pandasr[   IBISibisnarwhals._ibis.dataframer`  memtablery   is_spark_likenarwhals._spark_like.dataframera  
ValueError_from_compliant_dataframer   )ri   backendr[  rf  r]  r^  ddr_  rn  r`  ra  r   s               rl   rd  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%%??&	 @   rn   c                    y rg   r   ri   	as_seriess     rl   to_dictzPolarsDataFrame.to_dictX  s    ORrn   c                    y rg   r   rx  s     rl   rz  zPolarsDataFrame.to_dict[  s    MPrn   c          	         |rQ| j                   j                         j                         D ci c]  \  }}|t        j                  ||        c}}S | j                   j                  d      S c c}}w )Nr   F)ry  )rw   rz  r   r   r   )ri   ry  r   rD  s       rl   rz  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   )r0   drop_null_keys)narwhals._polars.group_byr0   )ri   keysr  r0   s       rl   group_byzPolarsDataFrame.group_byh  s     	<T4GGrn   c               r    t        | ||      }| j                  | j                  j                  |            S )NrE  )r#   r   rw   r   )ri   ry   rF  to_drops       rl   r   zPolarsDataFrame.dropo  s0    'gfE  !1!1'!:;;rn   r   c                   	 | j                   j                  ||||||      }| j	                  |      S # t        $ r}t        |      d d }~ww xY w)N)r   r   aggregate_functionsort_columns	separator)rw   pivotr*  r   r  )	ri   r   r   r   r  r  r  r   r/  s	            rl   r  zPolarsDataFrame.pivots  sd    
	6[[&&#5)# ' F ''//  	6(+5	6s   !4 	AA		Ac                    | j                   S rg   )rw   ru   s    rl   r  zPolarsDataFrame.to_polars  s    {{rn   c               h    	 t         |   |||||      S # t        $ r}t        |      d d }~ww xY w)Nr   )superr   r*  r   )ri   r   r   r   r   r   r/  r   s          rl   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   )ri   r   r   r   r/  r   s        rl   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 )Nr   )r   r   zfcan only call `.item()` without "row" or "column" values if the DataFrame has a single element; shape=)rS   column)rr   r@  rs  rw   rO   )ri   rS   r  r@  r   s        rl   rO   zPolarsDataFrame.item  sf    !!G+**$/99>	C  S/!{{C77rn   )r   r3   r   r7   r   r+   )r   zMapping[str, Any]r   r7   r   %Mapping[str, IntoDType | None] | Noner   r+   )r   zSequence[Mapping[str, Any]]r   r7   r   r  r   r+   )r  zpl.DataFrame | Anyr   zTypeIs[pl.DataFrame])r   rB   r   r7   r   z.Mapping[str, IntoDType] | Sequence[str] | Noner   r+   )r   zDataFrame[pl.DataFrame]r   r   r   r+   )r  z	pl.Seriesr   r   )r  r   r   r+   )r  rC   r   rC   )r  zpl.Series | pl.DataFrame | Tr   zSelf | PolarsSeries | T)r   r   r0  r   r   r	   rg   )r   z
Any | Noner8  r   r   rB   )r   r	   r8  r   r   rB   )r   ztuple[int, int])rO   z]tuple[SingleIndexSelector | MultiIndexSelector[PolarsSeries], MultiColSelector[PolarsSeries]]r   r	   )r   r   r   r   r   zIterator[PolarsSeries])ru  z_LazyAllowedImpl | Noner[  zSparkSession | Noner   r.   )ry  zLiteral[True]r   zdict[str, PolarsSeries])ry  zLiteral[False]r   zdict[str, list[Any]])ry  r   r   z.dict[str, PolarsSeries] | dict[str, list[Any]])r  $Sequence[str] | Sequence[PolarsExpr]r  r   r   r0   ry   r   rF  r   r   r+   )r   r   r   r   r   r   r  zPivotAgg | Noner  r   r  r   r   r+   )r   r   )r   zPolarsBaseFrame[pl.DataFrame]r   r<   r   r   r   r   r   r   r   r+   r   )rS   z
int | Noner  zint | str | Noner   r	   )%r   r   r   r   r   r   r   r  staticmethodr  r  r  r  r  r   r  r"  r7  r<  r>  r   r@  rG  rW  rY  rd  rz  r  r   r$   backend_versionr  r  r   r   rO   __classcell__r   s   @rl   r   r   +  sW   **''NN##	  
II## 8 8 OO
 !O 6O 
O O( 8)8
 !8 68 
8 8< - - 88
 !8 ?8 
8 8$;! F FA A3 3/	  $ #',?C,,1<,	,& & ! !I-
I- 
I-V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8rn   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 )rc  r   rW   c                6    t        | t        j                        S rg   )r  r   r9   r  s    rl   r  zPolarsLazyFrame._is_native  r  rn   c                <    | j                   j                  | d      S )Nrd  r  )rd   	lazyframeru   s    rl   r  zPolarsLazyFrame.to_narwhals  r  rn   c                     y)Nrc  r   ru   s    rl   r  zPolarsLazyFrame.__repr__  r  rn   c                    | S rg   r   ru   s    rl   __narwhals_lazyframe__z&PolarsLazyFrame.__narwhals_lazyframe__  r  rn   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rg   )r   r   r(  rw   r   r)  r&   r   )r+  r,  r-  r.  r/  r0  ri   s        rl   r1  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r2  r3  r6  s   ``  rl   r7  zPolarsLazyFrame.__getattr__  sA    ((^^,,--A$rJC %%	9 rn   c              #  z   K   | j                  t        j                        j                         E d {    y 7 wrg   )r   r   r~   rY  ru   s    rl   _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rg   )r  r   r*  r   )ri   r/  r   s     rl   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)rb  re   rk   validate_column_names)ArrowDataFrame)re   rk   r  zUnsupported `backend` value: r   )rw   r   r*  r   r   r~   r   r   PANDASnarwhals._pandas_like.dataframer  r[   rd   PYARROWnarwhals._arrow.dataframer  rZ   rs  )ri   ru  r,  r   r/  r  r  r   s           rl   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   )r1   r~  )r  r1   )ri   r  r  r1   s       rl   r  zPolarsLazyFrame.group_by  s     	@ tNKKrn   c                   | j                   dk  r*| j                  | j                  j                  |            S | j                  | j                  j                  ||            S )Nr   rE  )rr   r   rw   r   )ri   ry   rF  s      rl   r   zPolarsLazyFrame.drop  sU      9,$$T[[%5%5g%>??  !1!1'&!1!IJJrn   )r  zpl.LazyFrame | Anyr   zTypeIs[pl.LazyFrame])r   zLazyFrame[pl.LazyFrame]r  r  r  r  r   )ru  z_EagerAllowedImpl | Noner,  r	   r   r-   )r  r  r  r   r   r1   r  )r   r   r   r   r  r  r  r  r  r7  r  r   r   r  r   r  r  s   @rl   rc  rc    s    - -;!F6!/!;>!	!FL8LMQL	LKrn   rc  )e
__future__r   collections.abcr   r   r   r   typingr   r	   r
   r   r   r   r   r   polarsr   narwhals._polars.namespacer   narwhals._polars.seriesr   narwhals._polars.utilsr   r   r   r   r   r   narwhals._utilsr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   narwhals.dependenciesr%   narwhals.exceptionsr&   r'   r(   typesr)   r*   pandaspdpyarrowpatyping_extensionsr+   r,   narwhals._compliant.typingr-   r.   narwhals._polars.exprr/   r  r0   r1   narwhals._spark_like.utilsr2   narwhals._translater3   narwhals._typingr4   r5   r6   r7   narwhals.dataframer8   r9   narwhals.dtypesr:   narwhals.typingr;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   r   rF   	frozensetr4  r_   ra   r   rc  r   rn   rl   <module>r     s$   " > > W W W  6 0     4 32  .W0J72D87%	 	 	 	AAe &	 &  : /r||L {)g/0 {)|G8obll3 G8TTKobll3 TKrn   