
    hha                       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 d dlmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d d	l'm(Z( d d
l)m*Z* erd dlm+Z+ d dl,m-Z- d dlm.Z. d dl/Z0d dl1Z2d dl3m4Z4m5Z5m6Z6 d dl7m8Z8m9Z9 d dl:m;Z; d dl<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZDmEZE d dlmFZFmGZG d dlHmIZImJZJ d dlKmLZL d dlMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZU  ed          ZV ed          ZWdZXdeYd<   	  eZg d          Z[ edejI        ejJ                  Z\ G d  d!e
e\                   Z] G d" d#e]ejI                           Z^ G d$ d%e]ejJ                           Z_dS )&    )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native_to_narwhals_dtype)Implementation_into_arrow_tableconvert_str_slice_to_int_slicegenerate_temporary_column_nameis_compliant_seriesis_index_selectoris_rangeis_sequence_likeis_slice_indexis_slice_noneparse_columns_to_droprequires)is_numpy_array_1d)ColumnNotFoundError)Iterable)
ModuleType)Callable)Self	TypeAliasTypeIs)CompliantDataFrameAnyCompliantLazyFrameAny)
PolarsExpr)PolarsGroupByPolarsLazyGroupBy)SparkSession)IntoArrowTable)_EagerAllowedImpl_LazyAllowedImpl)Version_LimitedContext)	DataFrame	LazyFrame)DType)
IntoSchemaJoinStrategyMultiColSelectorMultiIndexSelectorPivotAggSingleIndexSelectorUniqueKeepStrategy_2DArrayTRzCallable[..., R]r'   Method)clone
drop_nullsestimated_sizeexplodefiltergather_everyhead	is_uniqueitem	iter_rows	join_asofrenamerowrowssampleselectsink_parquetsorttailto_arrow	to_pandaswith_columns	write_csvwrite_parquetNativePolarsFramec                     e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ej        Zded<   dddTdZdUdZe	dVd            Z
e	dWd            Ze	dXd            ZdYd!ZdZd#Zd[d%Zd\d&Zed]d*            Zd^d-Zd_d0Zd1d1d2d`d:Ze	dad<            ZdbdDZdcdKZdddPZdadQZdedSZd1S )fPolarsBaseFrameMethod[Self]rC   rE   rF   rG   rH   rL   rM   rQ   rS   rT   rW   rZ   _native_framer2   _versionF)validate_backend_versiondfversionr`   boolreturnNonec               R    || _         || _        |r|                                  d S d S N)r^   r_   _validate_backend_version)selfra   rb   r`   s       Q/var/www/histauto/venv/lib/python3.11/site-packages/narwhals/_polars/dataframe.py__init__zPolarsBaseFrame.__init__y   s=      # 	-**,,,,,	- 	-    c                8    | j                                         }dS )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     rj   rh   z)PolarsBaseFrame._validate_backend_version   s      1133rl   tuple[int, ...]c                4    | j                                         S rg   rn   ri   s    rj   rp   z PolarsBaseFrame._backend_version   s    #44666rl   c                    | j         S rg   )r^   rt   s    rj   nativezPolarsBaseFrame.native   s    !!rl   	list[str]c                    | j         j        S rg   )rv   columnsrt   s    rj   ry   zPolarsBaseFrame.columns   s    {""rl   r   c                ,    t          | j                  S N)rb   )r   r_   rt   s    rj   __narwhals_namespace__z&PolarsBaseFrame.__narwhals_namespace__   s    t}5555rl   r$   c                    | j         t          j        u r| j                                         S dt	          | j                    }t          |          )NzExpected polars, got: )ro   r   POLARSto_native_namespacetypeAssertionError)ri   msgs     rj   __native_namespace__z$PolarsBaseFrame.__native_namespace__   sN    >#888';;===CtD,@'A'ACCS!!!rl   r&   c                :    |                      || j                  S r{   )	__class__r_   )ri   ra   s     rj   _with_nativezPolarsBaseFrame._with_native   s    ~~b$-~888rl   c                :    |                      | j        |          S r{   )r   rv   )ri   rb   s     rj   _with_versionzPolarsBaseFrame._with_version   s    ~~dk7~;;;rl   datacontextr3   c              &     | ||j                   S r{   )r_   )clsr   r   s      rj   from_nativezPolarsBaseFrame.from_native   s    s4!12222rl   column_namesstrc                F    |                       | j        j        |           S rg   )r   rv   rQ   )ri   r   s     rj   simple_selectzPolarsBaseFrame.simple_select   s#      !3!3\!BCCCrl   exprsr	   c                     | j         | S rg   )rQ   )ri   r   s     rj   	aggregatezPolarsBaseFrame.aggregate   s    t{E""rl   N)maintain_orderorder_bysubsetSequence[str] | Nonekeepr=   r   bool | Noner   c                  |r|rt          d| j        d          }| j                            |                              |d                              |p| j        |                              |                              |          }nQ|r0| j                            |                              ||          }n| j                            |||pd          }|                     |          S )N   
row_index_)prefixF)
nulls_last)r   )r   r   )r   ry   rv   with_row_indexrS   uniquedropr   )ri   r   r   r   r   tokenress          rj   r   zPolarsBaseFrame.unique   s      	 	21dl<XXXE**511h511.$,T::ee C  	+""8,,33F3FFCC+$$T.2IE %  C   %%%rl   dict[str, DType]c                *    |                                  S rg   )collect_schemart   s    rj   schemazPolarsBaseFrame.schema   s    ""$$$rl   other"PolarsBaseFrame[NativePolarsFrame]howr8   left_onright_onsuffixc          	         | j         dk     r|dk    rdn|}|                     | j                            |j        ||||                    S )N)r         fullouterr   r   r   r   r   )rp   r   rv   join)ri   r   r   r   r   r   
how_natives          rj   r   zPolarsBaseFrame.join   sk     -;;vGGTW 	   Kl!   
 
 	
rl   kintbystr | Iterable[str]reversebool | Sequence[bool]c                   | j         dk     r0|                     | j                            |||                    S |                     | j                            |||                    S )N   r   r   )r   r   
descendingr   r   r   )rp   r   rv   top_k)ri   r   r   r   s       rj   r   zPolarsBaseFrame.top_k   sz      9,,$$!!& "       !2!2Q2w!2!O!OPPPrl   onindexvariable_name
value_namec                    | j         dk     r1|                     | j                            ||||                    S |                     | j                            ||||                    S )Nr   )id_vars
value_varsr   r   )r   r   r   r   )rp   r   rv   meltunpivot)ri   r   r   r   r   s        rj   r   zPolarsBaseFrame.unpivot   s      9,,$$  !!"/)	 !       KU-J    
 
 	
rl   c                      j         } j        dk     r|j        n|                                } fd|                                D             S )Nr   c                B    i | ]\  }}|t          |j                  S  )r   r_   ).0namedtyperi   s      rj   
<dictcomp>z2PolarsBaseFrame.collect_schema.<locals>.<dictcomp>  s<     
 
 
e *5$-@@
 
 
rl   )rv   rp   r   r   items)ri   ra   r   s   `  rj   r   zPolarsBaseFrame.collect_schema	  sa    ["3d::@Q@Q@S@S
 
 
 
%||~~
 
 
 	
rl   r   c                   | j         }||                    |          }n| j        dk     rt          j                    nt          j                    }|                    t          j        d|                              |          	                    |          t          j
                              }|                     |          S )N)r   r      r   )startend)rv   r   rp   plcountlenrQ   	int_rangesort_byaliasallr   )ri   r   r   frameresultr   s         rj   r   zPolarsBaseFrame.with_row_index  s    ))$//FF $ 5
 B B"(***C\\1#...66x@@FFtLLbfhh F   (((rl   )ra   rZ   rb   r2   r`   rc   rd   re   )rd   re   )rd   rr   )rd   rZ   )rd   rw   )rd   r   )rd   r$   )ra   rZ   rd   r&   )rb   r2   rd   r&   )r   rZ   r   r3   rd   r&   )r   r   rd   r&   )r   r	   rd   r&   )
r   r   r   r=   r   r   r   r   rd   r&   rd   r   )r   r   r   r8   r   r   r   r   r   r   rd   r&   r   r   r   r   r   r   rd   r&   )
r   r   r   r   r   r   r   r   rd   r&   )r   r   r   r   rd   r&   )__name__
__module____qualname____annotations__r   r~   ro   rk   rh   propertyrp   rv   ry   r|   r   r   r   classmethodr   r   r   r   r   r   r   r   r   r   r   rl   rj   r\   r\   h   s        $$$$$+O */
- 
- 
- 
- 
- 
-4 4 4 4 7 7 7 X7 " " " X" # # # X#6 6 6 6" " " "9 9 9 9< < < < 3 3 3 [3D D D D# # # # '+)-& & & & & &2 % % % X%
 
 
 
,Q Q Q Q
 
 
 
,
 
 
 

) 
) 
) 
) 
) 
)rl   r\   c                      e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   edd             Zedd$            Zedd&            Zedd*            Z	edd-            Z
dd/Zdd1Zdd2Zedd5            Zedd7            Zedd9            Zdd<Zdd>ZddAZ	 ddBdCddHZddBdCddIZeddK            ZddMZddOZddQZ	 ddBdRddXZedd\            Zedd_            ZddbZddgZddkZ ej        dl          ddu            ZddvZ d fd~Z!d fdZ" xZ#S )PolarsDataFramer]   rB   zMethod[CompliantDataFrameAny]collectzMethod[int | float]rD   rG   zMethod[Any]rJ   z?Method[Iterator[tuple[Any, ...]] | Iterator[Mapping[str, Any]]]rK   zMethod[PolarsSeries]rI   zMethod[tuple[Any, ...]]rN   z?Method[Sequence[tuple[Any, ...]] | Sequence[Mapping[str, Any]]]rO   rP   zMethod[pa.Table]rU   zMethod[pd.DataFrame]rV   rX   Method[None]rY   r   r/   r   r3   rd   r&   c         	         |j                                         dk    rt          j        |          }n0t	          dt          j        t          ||                              }|                     ||          S )N)r      pl.DataFramer   )ro   rp   r   r4   r   
from_arrowr   r   )r   r   r   rv   s       rj   r   zPolarsDataFrame.from_arrow0  sh    "3355??\$''FF."-8I$PW8X8X*Y*YZZFvw777rl   Mapping[str, Any]r   IntoSchema | Nonec                  ddl m} | ||                                          n|}|                     t	          j        ||          |          S Nr   Schemar   )narwhals.schemar   	to_polarsr   r   	from_dictr   r   r   r   r   	pl_schemas         rj   r   zPolarsDataFrame.from_dict8  s[     	+*****282DFF6NN,,...&	r|D)<<gNNNrl   Sequence[Mapping[str, Any]]c                 ddl m} | ||                                          n|}|st          j        |          }npt
          st          |d         t                    rt          j        ||          }n8|pt          |d                   }t          j        d |D             |d          }| 
                    ||          S )Nr   r   )r   c              3  X   K   | ]%}t          |                                          V  &d S rg   )tuplevalues)r   rN   s     rj   	<genexpr>z-PolarsDataFrame.from_dicts.<locals>.<genexpr>Y  s2      55szz||$$555555rl   rN   )r   orientr   )r   r   r   r   r4   r   
isinstancedict
from_dictsr  r   )r   r   r   r   r   r   rv   ry   s           rj   r  zPolarsDataFrame.from_dictsF  s     	+*****282DFF6NN,,...&	 	\333FF( 	JtAw,E,E 	]433FF15a>>G\55555ge  F vw777rl   objpl.DataFrame | AnyTypeIs[pl.DataFrame]c                6    t          | t          j                  S rg   )r  r   r4   r  s    rj   
_is_nativezPolarsDataFrame._is_native^      #r|,,,rl   r>   !IntoSchema | Sequence[str] | Nonec                  ddl m} t          |t          |f          r ||                                          n|}|                     t          j        ||          |          S r   )r   r   r  r   r   r   r   
from_numpyr   s         rj   r  zPolarsDataFrame.from_numpyb  st     	+***** &7F"344FF6NN$$&&& 	
 r}T9==wOOOrl   DataFrame[pl.DataFrame]c                :    | j                             | d          S )Nr   level)r_   	dataframert   s    rj   to_narwhalszPolarsDataFrame.to_narwhalst      }&&t6&:::rl   r   c                    dS )Nr   r   rt   s    rj   __repr__zPolarsDataFrame.__repr__w        rl   c                    | S rg   r   rt   s    rj   __narwhals_dataframe__z&PolarsDataFrame.__narwhals_dataframe__z      rl   	pl.Seriesr   c                    d S rg   r   ri   r  s     rj   _from_native_objectz#PolarsDataFrame._from_native_object}  s    CF3rl   r   c                    d S rg   r   r!  s     rj   r"  z#PolarsDataFrame._from_native_object  s    >Acrl   r?   c                    d S rg   r   r!  s     rj   r"  z#PolarsDataFrame._from_native_object  s    03rl   pl.Series | pl.DataFrame | TSelf | PolarsSeries | Tc                    t          |t          j                  rt          j        ||           S |                     |          r|                     |          S |S Nr   )r  r   Seriesr   r   r  r   r!  s     rj   r"  z#PolarsDataFrame._from_native_object  s[     c29%% 	?+C>>>>??3 	*$$S)))
rl   r   c                *    t          | j                  S rg   )r   rv   rt   s    rj   __len__zPolarsDataFrame.__len__  s    4;rl   attrr	   c                l     t           vr! j        j         d d}t          |          d fd}|S )	N has not attribute ''.argsr	   kwargsrd   c                 4   t          | |          \  }}	                      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"  getattrrv   r   
exceptionsr"   ry   	Exceptionr   )r0  r1  poskwdser   r,  ri   s         rj   funcz)PolarsDataFrame.__getattr__.<locals>.func  s    +D&99IC://0JT0J0JC0XSW0X0XYYY=4 6 6 6ZZ4<ZZZ)#..A5 : : :,Q//T9:s#   -A BA55BBBr0  r	   r1  r	   rd   r	   INHERITED_METHODSr   r   AttributeErrorri   r,  r   r:  s   ``  rj   __getattr__zPolarsDataFrame.__getattr__  sc    (((^,JJ$JJJC %%%	: 	: 	: 	: 	: 	: 	: rl   N)copyr   
Any | NonerA  r   c                   | j         dk     r|d}t          |          | j         dk     r| j                            |          S | j                            |          S )N)r   r      z=`copy` in `__array__` is only supported for 'polars>=0.20.28')rp   NotImplementedErrorrv   	__array__)ri   r   rA  r   s       rj   rF  zPolarsDataFrame.__array__  sd      ;..43CQC%c*** ;..;((///{$$U+++rl   c               4    | j                                         S rg   )rv   to_numpy)ri   r   rA  s      rj   rH  zPolarsDataFrame.to_numpy  s    {##%%%rl   tuple[int, int]c                    | j         j        S rg   )rv   shapert   s    rj   rK  zPolarsDataFrame.shape  s    {  rl   ]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          |t,                    r$|d d |j                                        f         }n|d d |f         }nt          |t$                    r;|                    | j        t%          t1          || j                                      }nt          |          r-|                    |j                                                  }nFt3          |          r|                    |          }n!dt5          |           }	t7          |	          t          |          st          |t8                    r||gd d f         }nt          |t$          t:          f          r||d d f         }n^t          |          r||j        d d f         }n=t3          |          r||d d f         }n!dt5          |           }	t7          |	          |                     |          S )N)r   r      r   z'Unreachable code, got unexpected type: )rp   r   rv   __getitem__r"  r  r  listr!   tolistr   r   r   rQ   r   r   r   ry   slicer   stopstepr   to_listr   r   r   r   r   ranger   )
ri   rJ   rO   ry   rows_nativecolumns_nativeselectorselectedrv   r   s
             rj   rO  zPolarsDataFrame.__getitem__  sj    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" "
 $G\:: 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,,,rl   r   c                ^    t          j        | j                            |          |           S r(  )r   r   rv   
get_column)ri   r   s     rj   r\  zPolarsDataFrame.get_column  s(    '(>(>t(D(DdSSSSrl   Iterator[PolarsSeries]c              #  r   K   | j                                         D ]}t          j        ||           V  d S r(  )rv   iter_columnsr   r   )ri   seriess     rj   r_  zPolarsDataFrame.iter_columns  sP      k..00 	A 	AF*64@@@@@@@	A 	Arl   )sessionbackend_LazyAllowedImpl | Nonera  SparkSession | Noner*   c                  ||t           j        u r3t                              | j                                        |           S |t           j        u r7dd l}ddlm	} | j        } ||
                    d          d| j                  S |t           j        u rIdd lm} ddlm}  ||                    | j                                                  d| j                  S |t           j        u r<dd l}ddlm}	  |	|                    | j        | j        	          d| j                  S |                                r7dd
lm}
 |d}t9          |          |
                    | ||| j                  S t<          )Nr   r   )DuckDBLazyFrame_dfT)r`   rb   )DaskLazyFrame)IbisLazyFrame)ry   )SparkLikeLazyFramez5Spark like backends require `session` to be not None.)ra  implementationrb   )r   r~   PolarsLazyFramer   rv   lazyDUCKDBduckdbnarwhals._duckdb.dataframerf  tabler_   DASKdask.dataframer  narwhals._dask.dataframerh  from_pandasrV   IBISibisnarwhals._ibis.dataframeri  memtablery   is_spark_likenarwhals._spark_like.dataframerj  
ValueError_from_compliant_dataframer   )ri   rb  ra  ro  rf  rg  ddrh  rw  ri  rj  r   s               rj   rm  zPolarsDataFrame.lazy  s    ?g)>>>"..t{/?/?/A/A4.PPPn+++MMMBBBBBB+C"?U##dDM    n)))''''''>>>>>> =t{446677)-   
 n)))KKK>>>>>> =dk4<@@)-      "" 	IIIIIIM oo%%??&	 @    rl   	as_seriesLiteral[True]dict[str, PolarsSeries]c                   d S rg   r   ri   r  s     rj   to_dictzPolarsDataFrame.to_dict5  s    ORsrl   Literal[False]dict[str, list[Any]]c                   d S rg   r   r  s     rj   r  zPolarsDataFrame.to_dict8  s    MPSrl   rc   .dict[str, PolarsSeries] | dict[str, list[Any]]c                    |r7 fd j                                                                         D             S  j                             d          S )Nc                D    i | ]\  }}|t          j        |           S )r   )r   r   )r   r   colri   s      rj   r   z+PolarsDataFrame.to_dict.<locals>.<dictcomp>?  s?       D# l.sDAAA  rl   F)r  )rv   r  r   r  s   ` rj   r  zPolarsDataFrame.to_dict;  sm      	   !%!4!4!6!6!<!<!>!>    {""U"333rl   keys$Sequence[str] | Sequence[PolarsExpr]drop_null_keysr,   c               *    ddl m}  || ||          S )Nr   )r,   r  )narwhals._polars.group_byr,   )ri   r  r  r,   s       rj   group_byzPolarsDataFrame.group_byE  s-     	<;;;;;}T4GGGGrl   ry   Sequence[str]strictc                   t          | ||          }|                     | j                            |                    S )Nr  )r   r   rv   r   )ri   ry   r  to_drops       rj   r   zPolarsDataFrame.dropL  s:    'gfEEE  !1!1'!:!:;;;rl   r   r   r   r   r  aggregate_functionPivotAgg | Nonesort_columns	separatorc                   	 | j                             ||||||          }n"# t          $ r}t          |          d d }~ww xY w|                     |          S )N)r   r  r  r  r  )rv   pivotr6  r   r"  )	ri   r   r   r  r  r  r  r   r9  s	            rj   r  zPolarsDataFrame.pivotP  s|    
	6[&&#5)# '  FF  	6 	6 	6(++5	6''///s    # 
A=Ac                    | j         S rg   )rv   rt   s    rj   r   zPolarsDataFrame.to_polarsh  s
    {rl   r   PolarsBaseFrame[pl.DataFrame]r   r8   r   r   r   c                   	 t                                          |||||          S # t          $ r}t          |          d d }~ww xY w)Nr   )superr   r6  r   )ri   r   r   r   r   r   r9  r   s          rj   r   zPolarsDataFrame.joink  sd    	677<<gQW       	6 	6 	6(++5	6s   %) 
AAAr   r   r   r   r   c                   	 t                                          |||          S # t          $ r}t          |          d d }~ww xY w)Nr   )r  r   r6  r   )ri   r   r   r   r9  r   s        rj   r   zPolarsDataFrame.top_k{  sS    	677==1W==== 	6 	6 	6(++5	6s   #' 
AAA)r   r/   r   r3   rd   r&   )r   r   r   r3   r   r   rd   r&   )r   r   r   r3   r   r   rd   r&   )r  r	  rd   r
  )r   r>   r   r3   r   r  rd   r&   )rd   r  rd   r   rd   r&   )r  r  rd   r   )r  r   rd   r&   )r  r?   rd   r?   )r  r%  rd   r&  )rd   r   r,  r   rd   r	   rg   )r   rB  rA  r   rd   r>   )r   r	   rA  r   rd   r>   )rd   rI  )rJ   rL  rd   r	   )r   r   rd   r   rd   r]  )rb  rc  ra  rd  rd   r*   )r  r  rd   r  )r  r  rd   r  )r  rc   rd   r  )r  r  r  rc   rd   r,   ry   r  r  rc   rd   r&   )r   r  r   r   r  r   r  r  r  rc   r  r   rd   r&   )rd   r   )r   r  r   r8   r   r   r   r   r   r   rd   r&   r   )$r   r   r   r   r   r   r   r  staticmethodr  r  r  r  r  r   r"  r+  r@  rF  rH  r   rK  rO  r\  r_  rm  r  r  r   r    backend_versionr  r   r   r   __classcell__r   s   @rj   r   r     s         ****''''NNNN####    IIII#### 8 8 8 [8 O O O [O 8 8 8 [8. - - - \- P P P [P"; ; ; ;! ! ! !    FFF XFAAA XA333 X3             $ #',?C, , , , , ,& & & & & & & ! ! ! X!A- A- A- A-FT T T TA A A A ,04 (,	4 4 4 4 4 4l RRR XRPPP XP4 4 4 4H H H H< < < < Xd##0 0 0 $#0.   6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6rl   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 ).rl  r   rR   r  pl.LazyFrame | Anyrd   TypeIs[pl.LazyFrame]c                6    t          | t          j                  S rg   )r  r   r5   r  s    rj   r  zPolarsLazyFrame._is_native  r  rl   LazyFrame[pl.LazyFrame]c                :    | j                             | d          S )Nrm  r  )r_   	lazyframert   s    rj   r  zPolarsLazyFrame.to_narwhals  r  rl   r   c                    dS )Nrl  r   rt   s    rj   r  zPolarsLazyFrame.__repr__  r  rl   r&   c                    | S rg   r   rt   s    rj   __narwhals_lazyframe__z&PolarsLazyFrame.__narwhals_lazyframe__  r  rl   r,  r	   c                l     t           vr! j        j         d d}t          |          d fd}|S )	Nr.  r/  r0  r	   r1  rd   c                     t          | |          \  }}	                      t          j                  |i |          S # t          j        j        $ r"}t          t          |                    |d }~ww xY wrg   )r   r   r4  rv   r   r5  r"   r   )r0  r1  r7  r8  r9  r,  ri   s        rj   r:  z)PolarsLazyFrame.__getattr__.<locals>.func  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   ``  rj   r@  zPolarsLazyFrame.__getattr__  sc    (((^,JJ$JJJC %%%	9 	9 	9 	9 	9 	9 	9 rl   r]  c              #  x   K   |                      t          j                                                  E d {V  d S rg   )r   r   r~   r_  rt   s    rj   _iter_columnszPolarsLazyFrame._iter_columns  s?      << 566CCEEEEEEEEEEErl   r   c                    	 t                                                      S # t          $ r}t          |          d d }~ww xY wrg   )r  r   r6  r   )ri   r9  r   s     rj   r   zPolarsLazyFrame.collect_schema  sM    	677))+++ 	6 	6 	6(++5	6s   # 
A=Arb  _EagerAllowedImpl | Noner1  r)   c                   	  | j         j        d
i |}n"# t          $ r}t          |          d d }~ww xY w||t          j        u rt                              ||           S |t          j        u r7ddl	m
}  ||                                t          j        d| j        d          S |t          j        u r,ddlm}  ||                                d| j        d          S d	| }t#          |          )Nr   r   )PandasLikeDataFrameTF)rk  r`   rb   validate_column_names)ArrowDataFrame)r`   rb   r  zUnsupported `backend` value: r   )rv   r   r6  r   r   r~   r   r   PANDASnarwhals._pandas_like.dataframer  rV   r_   PYARROWnarwhals._arrow.dataframer  rU   r|  )ri   rb  r1  r   r9  r  r  r   s           rj   r   zPolarsLazyFrame.collect  sG   	6(T[(22622FF 	6 	6 	6(++5	6 ?g)>>>"..vt.DDDn+++KKKKKK&&  ""-4)-&+    n,,,@@@@@@!>!!)-&+	    8g77oos    
4/4r  r  r  rc   r-   c               *    ddl m}  || ||          S )Nr   )r-   r  )r  r-   )ri   r  r  r-   s       rj   r  zPolarsLazyFrame.group_by  s/     	@?????  tNKKKKrl   ry   r  r  c                   | j         dk     r-|                     | j                            |                    S |                     | j                            ||                    S )Nr   r  )rp   r   rv   r   )ri   ry   r  s      rj   r   zPolarsLazyFrame.drop  s]     9,,$$T[%5%5g%>%>???  !1!1'&!1!I!IJJJrl   )r  r  rd   r  )rd   r  r  r  r  r  r   )rb  r  r1  r	   rd   r)   )r  r  r  rc   rd   r-   r  )r   r   r   r   r  r  r  r  r  r@  r  r   r   r  r   r  r  s   @rj   rl  rl    s        - - - \-; ; ; ;! ! ! !      F F F F6 6 6 6 6 6! ! ! !FL L L LK K K K K K K Krl   rl  )`
__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   narwhals._utilsr   r   r   r   r   r   r   r   r   r   r   r    narwhals.dependenciesr!   narwhals.exceptionsr"   r#   typesr$   r%   pandaspdpyarrowpatyping_extensionsr&   r'   r(   narwhals._compliant.typingr)   r*   narwhals._polars.exprr+   r  r,   r-   narwhals._spark_like.utilsr.   narwhals._translater/   narwhals._typingr0   r1   r2   r3   narwhals.dataframer4   r5   narwhals.dtypesr6   narwhals.typingr7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   r   	frozensetr=  rZ   r\   r   rl  r   rl   rj   <module>r     s\   " " " " " " " > > > > > > > > > > > > P P P P P P P P P P P P P P P P P P     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777777222222DDDDDDDD8888888877777777%%%%%%	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	AA& & & & & I    : G/r|LL s) s) s) s) s)g/0 s) s) s)lc6 c6 c6 c6 c6obl3 c6 c6 c6LTK TK TK TK TKobl3 TK TK TK TK TKrl   