o
    $&]if                     @  sL  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ZXedZYdZZde[d< 	 e\g dZ]edejKejLZ^G d d! d!e
e^ Z_G d"d# d#e_ejK Z`G d$d% d%e_ejL Zad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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                   @  s\  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dgddZdhddZe	diddZ
e	djd d!Ze	dkd#d$Zdld&d'Zdmd)d*Zdnd,d-Zdod.d/Zedpd3d4Zdqd7d8Zdrd;d<Zd=d=d>dsdFdGZe	dtdIdJZdudRdSZdvdZd[Zdwd`daZdtdbdcZdxdedfZd=S )yPolarsBaseFrameMethod[Self]rD   rF   rG   rH   rI   rM   rN   rR   rT   rU   rX   r[   _native_framer3   _versionF)validate_backend_versiondfversionr`   boolreturnNonec                C  s    || _ || _|r|   d S d S N)r^   r_   _validate_backend_version)selfra   rb   r`    ri   X/var/www/html/IGF-ODF-V3/venv/lib/python3.10/site-packages/narwhals/_polars/dataframe.py__init__{   s
   zPolarsBaseFrame.__init__c                 C  s   | 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)rh   _ri   ri   rj   rg      s   z)PolarsBaseFrame._validate_backend_versiontuple[int, ...]c                 C  
   | j  S rf   rl   rh   ri   ri   rj   rn      s   
z PolarsBaseFrame._backend_versionc                 C     | j S rf   )r^   rr   ri   ri   rj   native   s   zPolarsBaseFrame.native	list[str]c                 C     | j jS rf   )rt   columnsrr   ri   ri   rj   rw         zPolarsBaseFrame.columnsr   c                 C  s   t | jdS N)rb   )r   r_   rr   ri   ri   rj   __narwhals_namespace__   s   z&PolarsBaseFrame.__narwhals_namespace__r%   c                 C  s.   | j tju r| j  S dt| j  }t|)NzExpected polars, got: )rm   r   POLARSto_native_namespacetypeAssertionError)rh   msgri   ri   rj   __native_namespace__   s   
z$PolarsBaseFrame.__native_namespace__r'   c                 C  s   | j || jdS ry   )	__class__r_   )rh   ra   ri   ri   rj   _with_native      zPolarsBaseFrame._with_nativec                 C  s   | j | j|dS ry   )r   rt   )rh   rb   ri   ri   rj   _with_version   r   zPolarsBaseFrame._with_versiondatacontextr4   c               C  s   | ||j dS ry   )r_   )clsr   r   ri   ri   rj   from_native   s   zPolarsBaseFrame.from_nativecolumn_namesstrc                 G  s   |  | jj| S rf   )r   rt   rR   )rh   r   ri   ri   rj   simple_select   s   zPolarsBaseFrame.simple_selectexprsr   c                 G  s
   | j | S rf   )rR   )rh   r   ri   ri   rj   	aggregate      
zPolarsBaseFrame.aggregateN)maintain_orderorder_bysubsetSequence[str] | Nonekeepr>   r   bool | Noner   c                C  s   |r&|r&t d| jdd}| j|j|ddj|p| j|d||}n|r4| j|j||d}n| jj|||p<dd}| |S )N   
row_index_)prefixF)
nulls_last)r   )r   r   )r   rw   rt   with_row_indexrT   uniquedropr   )rh   r   r   r   r   tokenresri   ri   rj   r      s    


zPolarsBaseFrame.uniquedict[str, DType]c                 C  s   |   S rf   )collect_schemarr   ri   ri   rj   schema   rx   zPolarsBaseFrame.schemaother"PolarsBaseFrame[NativePolarsFrame]howr9   left_onright_onsuffixc             	   C  s8   | j dk r|dkrdn|}| | jj|j||||dS )N)r         fullouterr   r   r   r   r   )rn   r   rt   join)rh   r   r   r   r   r   
how_nativeri   ri   rj   r      s   
zPolarsBaseFrame.joinkintbystr | Iterable[str]reversebool | Sequence[bool]c                C  s:   | j dk r| | jj|||dS | | jj|||dS )N   r   r   )r   r   
descendingr   r   r   )rn   r   rt   top_k)rh   r   r   r   ri   ri   rj   r      s   
zPolarsBaseFrame.top_konindexvariable_name
value_namec                 C  s>   | j dk r| | jj||||dS | | jj||||dS )Nr   )id_vars
value_varsr   r   )r   r   r   r   )rn   r   rt   meltunpivot)rh   r   r   r   r   ri   ri   rj   r      s   
zPolarsBaseFrame.unpivotc                   s4    j } jdk r|jn| } fdd| D S )Nr   c                   s   i | ]\}}|t | jqS ri   )r   r_   ).0namedtyperr   ri   rj   
<dictcomp>  s    z2PolarsBaseFrame.collect_schema.<locals>.<dictcomp>)rt   rn   r   r   items)rh   ra   r   ri   rr   rj   r     s
   
zPolarsBaseFrame.collect_schemar   c                 C  sL   | j }|d u r||}n|tt j|d|t }| 	|S )N)r   )
rt   r   rR   pl	int_rangelenoveraliasallr   )rh   r   r   frameresultri   ri   rj   r     s    
zPolarsBaseFrame.with_row_index)ra   r[   rb   r3   r`   rc   rd   re   )rd   re   )rd   rp   )rd   r[   )rd   ru   )rd   r   )rd   r%   )ra   r[   rd   r'   )rb   r3   rd   r'   )r   r[   r   r4   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   r9   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{   rm   rk   rg   propertyrn   rt   rw   rz   r   r   r   classmethodr   r   r   r   r   r   r   r   r   r   ri   ri   ri   rj   r\   j   sT   
 










r\   c                      s
  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ddd Zedd$d%Zedd'd(Zedd,d-Z	edd0d1Z
dd3d4Zdd6d7Zdd8d9Zedd<d=Zedd?d=ZeddAd=ZddDd=ZddFdGZddJdKZ	LddLdMddRdSZddLdMddTdUZeddWdXZdd[d\Zdd^d_ZddadbZ	LddLdcddidjZeddndoZeddrdoZddudoZddzd{ZdddZeddddZdddZ d fddZ!d fddZ"dddZ#  Z$S )PolarsDataFramer]   rC   zMethod[CompliantDataFrameAny]collectzMethod[int | float]rE   rH   z?Method[Iterator[tuple[Any, ...]] | Iterator[Mapping[str, Any]]]rL   zMethod[PolarsSeries]rJ   zMethod[tuple[Any, ...]]rO   z?Method[Sequence[tuple[Any, ...]] | Sequence[Mapping[str, Any]]]rP   rQ   zMethod[pa.Table]rV   zMethod[pd.DataFrame]rW   zMethod[Any]rY   Method[None]rZ   r   r0   r   r4   rd   r'   c               C  s>   |j  dkrt|}ntdtt||}| j||dS )N)r      pl.DataFramer   )rm   rn   r   r5   r   
from_arrowr   r   )r   r   r   rt   ri   ri   rj   r   0  s   zPolarsDataFrame.from_arrowMapping[str, Any]r   .IntoSchema | Mapping[str, DType | None] | Nonec                 s4   |r fdd|  D nd }| jt|| dS )Nc                   *   i | ]\}}||d urt | jnd qS rf   r   r_   r   keyr   r   ri   rj   r   B      z-PolarsDataFrame.from_dict.<locals>.<dictcomp>r   )r   r   r   	from_dict)r   r   r   r   	pl_schemari   r   rj   r   8  s   
zPolarsDataFrame.from_dictSequence[Mapping[str, Any]]c                 s   |r fdd|  D nd }|stj|d}n%ts!t|d tr(t||}n|p/t|d }tjdd |D |dd}| j| d	S )
Nc                   r   rf   r   r   r   ri   rj   r   W  r   z.PolarsDataFrame.from_dicts.<locals>.<dictcomp>)r   r   c                 s  s    | ]	}t | V  qd S rf   )tuplevalues)r   rO   ri   ri   rj   	<genexpr>g      z-PolarsDataFrame.from_dicts.<locals>.<genexpr>rO   )r   orientr   )	r   r   r5   r   
isinstancedict
from_dictsr   r   )r   r   r   r   r   rt   rw   ri   r   rj   r   M  s   
zPolarsDataFrame.from_dictsobjpl.DataFrame | AnyTypeIs[pl.DataFrame]c                 C     t | tjS rf   )r   r   r5   r   ri   ri   rj   
_is_nativel     zPolarsDataFrame._is_nativer?   !IntoSchema | Sequence[str] | Nonec               C  s@   ddl m} t|t|fr|| n|}| jt|||dS )Nr   )Schemar   )narwhals.schemar   r   r   	to_polarsr   r   
from_numpy)r   r   r   r   r   r   ri   ri   rj   r   p  s   	zPolarsDataFrame.from_numpyDataFrame[pl.DataFrame]c                 C     | j j| ddS )Nr   level)r_   	dataframerr   ri   ri   rj   to_narwhals  r   zPolarsDataFrame.to_narwhalsr   c                 C     dS )Nr   ri   rr   ri   ri   rj   __repr__     zPolarsDataFrame.__repr__c                 C     | S rf   ri   rr   ri   ri   rj   __narwhals_dataframe__  r  z&PolarsDataFrame.__narwhals_dataframe__	pl.Seriesr   c                 C     d S rf   ri   rh   r   ri   ri   rj   _from_native_object  r  z#PolarsDataFrame._from_native_objectr   c                 C  r  rf   ri   r	  ri   ri   rj   r
    r  r@   c                 C  r  rf   ri   r	  ri   ri   rj   r
    r  pl.Series | pl.DataFrame | TSelf | PolarsSeries | Tc                 C  s2   t |tjrtj|| dS | |r| |S |S Nr   )r   r   Seriesr   r   r   r   r	  ri   ri   rj   r
    s
   

r   c                 C  s
   t | jS rf   )r   rt   rr   ri   ri   rj   __len__  r   zPolarsDataFrame.__len__attrr   c                   8    t vrjj d  d}t|d	 fdd}|S )
N has not attribute ''.argsr   kwargsrd   c               
     s   t | |\}}ztj |i |W S  tjjy2 } z|dj d}t||d }~w tyB } zt	|d d }~ww )Nz+

Hint: Did you mean one of these columns: ?)
r   r
  getattrrt   r   
exceptionsr#   rw   	Exceptionr   )r  r  poskwdser   r  rh   ri   rj   func  s   

z)PolarsDataFrame.__getattr__.<locals>.funcr  r   r  r   rd   r   INHERITED_METHODSr   r   AttributeErrorrh   r  r   r  ri   r  rj   __getattr__  s
   
zPolarsDataFrame.__getattr__N)copyr   
Any | Noner%  r   c                C  s@   | j dk r|d u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')rn   NotImplementedErrorrt   	__array__)rh   r   r%  r   ri   ri   rj   r)    s   
zPolarsDataFrame.__array__c                C  rq   rf   )rt   to_numpy)rh   r   r%  ri   ri   rj   r*    r   zPolarsDataFrame.to_numpytuple[int, int]c                 C  rv   rf   )rt   shaperr   ri   ri   rj   r,    rx   zPolarsDataFrame.shaperK   ]tuple[SingleIndexSelector | MultiIndexSelector[PolarsSeries], MultiColSelector[PolarsSeries]]c           
      C  s^  |\}}| j dkr*t|r|jn|}t|r|jn|}||f}| j|}| |S t|tr3t|n|}t|tr>t|n|}t|rH|	 }| j}t
|st|tr^t|dkr^|  S t|rq|jdd t|j|D  }nlt|rt|s}t|r|| jt|j|j|j }nPt|tr|d d |j f }n?|d d |f }n6t|tr|| jtt|| j  }n"t|r||j }nt|r||}ndt| }	t|	t
|s*t|tr||gd d f }n9t|ttfr||d d f }n(t|r||jd d f }nt|r||d d f }ndt| }	t|	|  |S )N)r   r      r   c                 s  s    | ]	\}}|r|V  qd S rf   ri   )r   colrR   ri   ri   rj   r     r   z.PolarsDataFrame.__getitem__.<locals>.<genexpr>z'Unreachable code, got unexpected type: )!rn   r   rt   __getitem__r
  r   r   listr"   tolistr   r   r   rR   r   ziprw   r   r   r   slicestartstopstepr   to_listr   r   r}   r~   r   ranger   )
rh   rK   rP   rw   rows_nativecolumns_nativeselectorselectedrt   r   ri   ri   rj   r0    sf   








zPolarsDataFrame.__getitem__r   c                 C  s   t j| j|| dS r  )r   r   rt   
get_column)rh   r   ri   ri   rj   r>  
  s   zPolarsDataFrame.get_columnIterator[PolarsSeries]c                 c  s&    | j  D ]
}tj|| dV  qd S r  )rt   iter_columnsr   r   )rh   seriesri   ri   rj   r@    s   zPolarsDataFrame.iter_columns)sessionbackend_LazyAllowedImpl | NonerB  SparkSession | Noner+   c                C  s  |d u s	|t ju rtj| j | dS |t ju r0dd l}ddlm	} | j}||
dd| jdS |t ju rOdd lm} ddlm} ||| j d| jdS |t ju rmdd l}ddlm}	 |	|j| j| jd	d| jdS | rdd
lm}
 |d u rd}t||
j| ||| jdS t)Nr   r   )DuckDBLazyFrame_dfT)r`   rb   )DaskLazyFrame)IbisLazyFrame)rw   )SparkLikeLazyFramez5Spark like backends require `session` to be not None.)rB  implementationrb   )r   r{   PolarsLazyFramer   rt   lazyDUCKDBduckdbnarwhals._duckdb.dataframerF  tabler_   DASKdask.dataframer   narwhals._dask.dataframerH  from_pandasrW   IBISibisnarwhals._ibis.dataframerI  memtablerw   is_spark_likenarwhals._spark_like.dataframerJ  
ValueError_from_compliant_dataframer~   )rh   rC  rB  rO  rF  rG  ddrH  rW  rI  rJ  r   ri   ri   rj   rM    sJ   


zPolarsDataFrame.lazy	as_seriesLiteral[True]dict[str, PolarsSeries]c                C  r  rf   ri   rh   r_  ri   ri   rj   to_dictG  r  zPolarsDataFrame.to_dictLiteral[False]dict[str, list[Any]]c                C  r  rf   ri   rb  ri   ri   rj   rc  J  r  rc   .dict[str, PolarsSeries] | dict[str, list[Any]]c                  s.   |r fdd j   D S  j jddS )Nc                   s    i | ]\}}|t j| d qS )r   )r   r   )r   r   r/  rr   ri   rj   r   Q  s    z+PolarsDataFrame.to_dict.<locals>.<dictcomp>F)r_  )rt   rc  r   rb  ri   rr   rj   rc  M  s
   
keys$Sequence[str] | Sequence[PolarsExpr]drop_null_keysr-   c                C     ddl m} || ||dS )Nr   )r-   ri  )narwhals._polars.group_byr-   )rh   rg  ri  r-   ri   ri   rj   group_byW     zPolarsDataFrame.group_byrw   Sequence[str]strictc                C  s    t | ||d}| | j|S )Nrp  )r    r   rt   r   )rh   rw   rp  to_dropri   ri   rj   r   ^  s   zPolarsDataFrame.dropr   r   r   r   r   aggregate_functionPivotAgg | Nonesort_columns	separatorc          	   
   C  sJ   z| j j||||||d}W n ty } zt|d d }~ww | |S )N)r   r   rs  ru  rv  )rt   pivotr  r   r
  )	rh   r   r   r   rs  ru  rv  r   r  ri   ri   rj   rw  b  s   


zPolarsDataFrame.pivotc                 C  rs   rf   )rt   rr   ri   ri   rj   r   z  s   zPolarsDataFrame.to_polarsr   PolarsBaseFrame[pl.DataFrame]r   r9   r   r   r   c             
     s<   zt  j|||||dW S  ty } zt|d d }~ww )Nr   )superr   r  r   )rh   r   r   r   r   r   r  r   ri   rj   r   }  s   	

zPolarsDataFrame.joinr   r   r   r   r   c             
     s8   z
t  j|||dW S  ty } zt|d d }~ww )Nr   )ry  r   r  r   )rh   r   r   r   r  rz  ri   rj   r     s   
zPolarsDataFrame.top_k
int | Nonecolumnint | str | Nonec                 C  sJ   | j dk r|d u r|d u r| j }dkrd|}t|| jj||dS )N)r   $   )r   r   zfcan only call `.item()` without "row" or "column" values if the DataFrame has a single element; shape=)rO   r|  )rn   r,  r\  rt   rK   )rh   rO   r|  r,  r   ri   ri   rj   rK     s   
zPolarsDataFrame.item)r   r0   r   r4   rd   r'   )r   r   r   r4   r   r   rd   r'   )r   r   r   r4   r   r   rd   r'   )r   r   rd   r   )r   r?   r   r4   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   rf   )r   r&  r%  r   rd   r?   )r   r   r%  r   rd   r?   )rd   r+  )rK   r-  rd   r   )r   r   rd   r   rd   r?  )rC  rD  rB  rE  rd   r+   )r_  r`  rd   ra  )r_  rd  rd   re  )r_  rc   rd   rf  )rg  rh  ri  rc   rd   r-   rw   ro  rp  rc   rd   r'   )r   ro  r   r   r   r   rs  rt  ru  rc   rv  r   rd   r'   )rd   r   )r   rx  r   r9   r   r   r   r   r   r   rd   r'   r   )rO   r{  r|  r}  rd   r   )%r   r   r   r   r   r   r   r   staticmethodr   r   r  r  r  r   r
  r  r$  r)  r*  r   r,  r0  r>  r@  rM  rc  rm  r   r!   backend_versionrw  r   r   r   rK   __classcell__ri   ri   rz  rj   r     s~   
 









G
6




r   c                      s   e Zd ZU ded< ed.ddZd/d
dZd0ddZd1ddZd2ddZ	d3ddZ
d4 fddZd5d d!Zd6d'd(Zd7d,d-Z  ZS )8rL  r   rS   r   pl.LazyFrame | Anyrd   TypeIs[pl.LazyFrame]c                 C  r   rf   )r   r   r6   r   ri   ri   rj   r     r   zPolarsLazyFrame._is_nativeLazyFrame[pl.LazyFrame]c                 C  r   )NrM  r   )r_   	lazyframerr   ri   ri   rj   r    r   zPolarsLazyFrame.to_narwhalsr   c                 C  r  )NrL  ri   rr   ri   ri   rj   r    r  zPolarsLazyFrame.__repr__r'   c                 C  r  rf   ri   rr   ri   ri   rj   __narwhals_lazyframe__  r  z&PolarsLazyFrame.__narwhals_lazyframe__r  r   c                   r  )
Nr  r  r  r   r  rd   c               
     sX   t | |\}}ztj |i |W S  tjjy+ } ztt||d }~ww rf   )r   r   r  rt   r   r  r#   r   )r  r  r  r  r  r  ri   rj   r    s   z)PolarsLazyFrame.__getattr__.<locals>.funcr  r   r#  ri   r  rj   r$    s
   zPolarsLazyFrame.__getattr__r?  c                 c  s    |  tj E d H  d S rf   )r   r   r{   r@  rr   ri   ri   rj   _iter_columns  s   zPolarsLazyFrame._iter_columnsr   c              
     s0   zt   W S  ty } zt|d d }~ww rf   )ry  r   r  r   )rh   r  rz  ri   rj   r     s   
zPolarsLazyFrame.collect_schemarC  _EagerAllowedImpl | Noner  r*   c              
   K  s   z| j jd
i |}W n ty } zt|d d }~ww |d u s&|tju r-tj|| dS |tju rEddl	m
} || tjd| jddS |tju r[ddlm} || d| jddS d	| }t|)Nr   r   )PandasLikeDataFrameTF)rK  r`   rb   validate_column_names)ArrowDataFrame)r`   rb   r  zUnsupported `backend` value: ri   )rt   r   r  r   r   r{   r   r   PANDASnarwhals._pandas_like.dataframer  rW   r_   PYARROWnarwhals._arrow.dataframer  rV   r\  )rh   rC  r  r   r  r  r  r   ri   ri   rj   r     s6   



zPolarsLazyFrame.collectrg  rh  ri  rc   r.   c                C  rj  )Nr   )r.   rk  )rl  r.   )rh   rg  ri  r.   ri   ri   rj   rm    rn  zPolarsLazyFrame.group_byrw   ro  rp  c                C  s2   | j dk r| | j|S | | jj||dS )Nr   rq  )rn   r   rt   r   )rh   rw   rp  ri   ri   rj   r     s   
zPolarsLazyFrame.drop)r   r  rd   r  )rd   r  r  r  r  r  r   )rC  r  r  r   rd   r*   )rg  rh  ri  rc   rd   r.   r  )r   r   r   r   r  r   r  r  r  r$  r  r   r   rm  r   r  ri   ri   rz  rj   rL    s   
 






#rL  )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,   rl  r-   r.   narwhals._spark_like.utilsr/   narwhals._translater0   narwhals._typingr1   r2   r3   r4   narwhals.dataframer5   r6   narwhals.dtypesr7   narwhals.typingr8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   r   	frozensetr!  r[   r\   r   rL  ri   ri   ri   rj   <module>   sT    $<( 6   