
    Lpj	N                       % S SK Jr  S SKJrJr  S SKJr  S SKJ	r	J
r
  S SKJrJr  S SKJr  S SKJrJrJrJrJrJrJrJr  S SKJr  S S	KJr  \(       aw  S S
KJrJrJ r J!r!  S SK"J#r#  S SK$J%r%  S SK&J'r'  S SKJ(r(  S SK)Js  J*r+  S SK,J-r-J.r.  S SK/J0r0  S SK1J2r2  S SK3J4r4  S SK5J6r6  S SK7J8r8  S SKJ9r9J:r:  S SK;J<r<  S SK=J>r>  S SKJ?r?  S SKJ@r@JArAJBrB  SrCS\DS'     " S S\S   \5      rEg)     )annotations)TYPE_CHECKINGAnyN)add_row_indexevaluate_exprs)native_to_narwhals_dtypeselect_columns_by_name)assert_never)ImplementationValidateBackendVersion_remap_full_join_keyscheck_column_names_are_uniquecheck_columns_existgenerate_temporary_column_namenot_implementedparse_columns_to_drop)MultiOutputExpressionError)CompliantLazyFrame)IterableIteratorMappingSequence)BytesIO)Path)
ModuleType)	TypeAlias)SelfTypeIs)CompliantDataFrameAny)DaskExprDaskLazyGroupByDaskNamespace)_EagerAllowedImpl)Version_LimitedContext)	LazyFrame)DType)ColumnNotFoundError)AsofJoinStrategyJoinStrategyUniqueKeepStrategyr   r   
Incompletec                     \ rS rSr\R
                  rSS.       S1S jjr\S2S j5       r	\
S3S j5       rS4S jrS5S jrS6S	 jrS7S
 jrS8S jrS9S jrS:S jrS;S jrS<S jrS=S jr      S>S jr\S?S j5       rS@S jrSAS jrS=S jrS=S jrSBS jr\SCS j5       rSCS jrSDS jr SES jr!SFS jr"SGS jr#        SHS jr$SIS jr%SJS  jr&          SKS! jr'          SKS" jr(          SKS# jr)SLS$ jr*        SMS% jr+        SMS& jr,        SNS' jr-            SOS( jr.                SPS) jr/      SQS* jr0SGS+ jr1SRS, jr2          SSS- jr3STS. jr4\5" 5       r6S/r7g0)UDaskLazyFrame4   F)validate_backend_versionc               h    Xl         X l        S U l        S U l        U(       a  U R	                  5         g g N)_native_frame_version_cached_schema_cached_columns_validate_backend_version)selfnative_dataframeversionr2   s       T/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/narwhals/_dask/dataframe.py__init__DaskLazyFrame.__init__:   s3     ,<7;15#**, $    c                6    [        U [        R                  5      $ r4   )
isinstancedd	DataFrame)objs    r=   
_is_nativeDaskLazyFrame._is_nativeH   s    #r||,,r@   c              "    U " XR                   S9$ Nr<   )r6   )clsdatacontexts      r=   from_nativeDaskLazyFrame.from_nativeL   s    4!1!122r@   c                6    U R                   R                  U SS9$ )Nlazy)level)r6   	lazyframer:   s    r=   to_narwhalsDaskLazyFrame.to_narwhalsP   s    }}&&t6&::r@   c                    U R                   [        R                  L a  U R                   R                  5       $ S[	        U R                   5       3n[        U5      e)NzExpected dask, got: )_implementationr   DASKto_native_namespacetypeAssertionError)r:   msgs     r=   __native_namespace__"DaskLazyFrame.__native_namespace__S   sN    >#6#66'';;==$T$*>*>%?$@AS!!r@   c                .    SSK Jn  U" U R                  S9$ )Nr   r#   rJ   )narwhals._dask.namespacer$   r6   )r:   r$   s     r=   __narwhals_namespace__$DaskLazyFrame.__narwhals_namespace__Z   s    :T]]33r@   c                    U $ r4    rT   s    r=   __narwhals_lazyframe__$DaskLazyFrame.__narwhals_lazyframe___   s    r@   c                6    U R                  U R                  US9$ rI   )	__class__native)r:   r<   s     r=   _with_versionDaskLazyFrame._with_versionb   s    ~~dkk7~;;r@   c                4    U R                  XR                  S9$ rI   )ri   r6   )r:   dfs     r=   _with_nativeDaskLazyFrame._with_nativee   s    ~~b--~88r@   c                (    [        XR                  S9$ )N)	available)r   columns)r:   subsets     r=   _check_columns_exist"DaskLazyFrame._check_columns_existh   s    "6\\BBr@   c              #  Z   #    U R                   R                  5        H	  u  pUv   M     g 7fr4   )rj   items)r:   _colsers      r=   _iter_columnsDaskLazyFrame._iter_columnsk   s#     **,IDI -s   )+c                f    UR                  U 5      n[        U5      S:w  a  Sn[        U5      eUS   $ )N   z4multi-output expressions not allowed in this contextr   )_calllenr   )r:   rE   resultsr]   s       r=   _evaluate_single_output_expr*DaskLazyFrame._evaluate_single_output_expro   s5    ))D/w<1HC,S11qzr@   c           	         [        U /UQ76 nU R                  U R                  R                  " S0 [	        U5      D65      $ )Nre   )r   ro   rj   assigndict)r:   exprs
new_seriess      r=   with_columnsDaskLazyFrame.with_columnsv   s9    #D151
  !3!3!Gd:6F!GHHr@   c                   U R                   R                  " S
0 UD6nUb  U[        R                  L a(  SSKJn  U" U[        R                  SU R                  SS9$ U[        R                  L a+  SS KnSSK	J
n  U" UR                  U5      SU R                  S9$ U[        R                  L a6  SS KnSSKJn  U" UR                   R                  U5      SU R                  SS9$ S	U 3n	[#        U	5      e)Nr   )PandasLikeDataFrameT)implementationr2   r<   validate_column_names)PolarsDataFrame)r2   r<   )ArrowDataFrame)r2   r<   r   zUnsupported `backend` value: re   )rj   computer   PANDASnarwhals._pandas_like.dataframer   r6   POLARSpolarsnarwhals._polars.dataframer   from_pandasPYARROWpyarrownarwhals._arrow.dataframer   Table
ValueError)
r:   backendkwargsresultr   plr   par   r]   s
             r=   collectDaskLazyFrame.collectz   s     $$.v.?g)>)>>K&-44)-&*  n+++B"v&)-  n,,, @!$$V,)-&*	  .gY7or@   c                    U R                   cK  U R                  b  [        U R                  5      O#U R                  R
                  R                  5       U l         U R                   $ r4   )r8   r7   listschemarj   rs   tolistrT   s    r=   rs   DaskLazyFrame.columns   sV    ' &&2 T[[![[((//1  
 ###r@   c                h    U" U 5      S   nU R                  U R                  R                  U   5      $ )Nr   )ro   rj   loc)r:   	predicatemasks      r=   filterDaskLazyFrame.filter   s.    q!  !677r@   c                |    U R                   n[        U[        U5      U R                  5      nU R	                  U5      $ r4   )rj   r	   r   rX   ro   )r:   column_namesrn   rj   s       r=   simple_selectDaskLazyFrame.simple_select   s5    'D,>@T@TU  ((r@   c           	         [        U /UQ76 n[        R                  " U VVs/ s H  u  p4UR                  U5      PM     snnSS9nU R	                  U5      $ s  snnf )Nr~   axis)r   rC   concatrenamero   )r:   r   r   namevalrn   s         r=   	aggregateDaskLazyFrame.aggregate   sR    #D151
YY*E*YT

4(*EAN  $$ Fs   A
c           	         [        U /UQ76 nU R                  n[        UR                  " S0 [	        U5      D6U Vs/ s H  oDS   PM	     snU R
                  5      nU R                  U5      $ s  snf )Nr   re   )r   rj   r	   r   r   rX   ro   )r:   r   r   rn   ss        r=   selectDaskLazyFrame.select   sm    #D151
#II)Z()%&:aqT:&  

   $$ 's   A-
c                    Uc)  U R                  U R                  R                  5       5      $ U R                  5       nUR	                  UR
                  " U6 R                  5       SS9) nU R                  U5      $ )NT)ignore_nulls)ro   rj   dropnarb   any_horizontalcolis_nullr   )r:   rt   plxr   s       r=   
drop_nullsDaskLazyFrame.drop_nulls   sl    >$$T[[%7%7%9::))+""377F#3#;#;#=D"QQ{{4  r@   c           	        U R                   cd  U R                  R                  nU R                  R                   Vs0 s H'  nU[	        X   U R
                  U R                  5      _M)     snU l         U R                   $ s  snf r4   )r7   rj   dtypesrs   r   r6   rX   )r:   native_dtypesr   s      r=   r   DaskLazyFrame.schema   s    & KK..M
  ;;..	# /C -!&t7K7K  /	#D """#s   .A>c                    U R                   $ r4   )r   rT   s    r=   collect_schemaDaskLazyFrame.collect_schema   s    {{r@   c               f    [        XUS9nU R                  U R                  R                  US95      $ )Nstrictrs   )r   ro   rj   drop)r:   rs   r   to_drops       r=   r   DaskLazyFrame.drop   s1    'fE  !1!1'!1!BCCr@   c                   Uc%  U R                  [        U R                  U5      5      $ U R                  5       nU R                  nUR                  SS S9R                  U5      R                  5       nUR                  U5      R                  SS9R                  / US9UR                  SS S9R                  5       -
  nU R                  U5      R                  XcR                  " U6 5      $ )Nr~   dtypeF)reverse)partition_byorder_by)ro   r   rj   rb   rs   litalias	broadcastr   cum_sumoverr   r   )r:   r   r   r   rs   
const_exprrow_index_exprs          r=   with_row_indexDaskLazyFrame.with_row_index   s     $$]4;;%EFF))+,,WWQdW+11$7AAC
GGDM!!%!0552PX5Yggatg$..01 	   ,33NGGWDUVVr@   c                R    U R                  U R                  R                  US95      $ )Nr   )ro   rj   r   )r:   mappings     r=   r   DaskLazyFrame.rename   s%      !3!3G!3!DEEr@   c                V    U R                  U R                  R                  USSS95      $ )NFnr   npartitions)ro   rj   head)r:   r   s     r=   r   DaskLazyFrame.head   s*      !1!1AuRT!1!UVVr@   c               F   U(       a  U R                  U5      =n(       a  UeUS:X  a  U=(       d    U R                  n[        SUSS9nU R                  R	                  U5      R                  5       R                  U5      nXfS:H     nUR                  5       R                  US9nU R                  R                  XqSS9nOSS	S
0R                  X"5      n	U(       a  U R                  " USSS.6R                  n
OU R                  n
U
R                  XS9nU R                  U5      $ )Nnone   count_n_bytesrs   prefixr~   r   inner)onhowanyfirstF)
descending
nulls_last)rt   keep)ru   rs   r   rj   groupbysizer   reset_indexr   mergegetsortdrop_duplicatesro   )r:   rt   r   r   errortokenrz   uniquer   mapped_keeprj   s              r=   r  DaskLazyFrame.unique   s     9 9& AAuAK6>+t||F26(E ++%%f-224;;EBCQh-C__&++E+:F[[&&vg&FF '*..t:KH5QXX++6+LF  ((r@   c                   [        U[        5      (       a  U(       + nOU Vs/ s H	  oU(       + PM     nnU(       a  SOSnU R                  U R                  R	                  [        U5      XFS95      $ s  snf )Nlastr   )	ascendingna_position)rB   boolro   rj   sort_valuesr   )r:   r   r   byr  dpositions          r=   r  DaskLazyFrame.sort  sf    j$''/9>I(23
1
I3'6W  KK##DH	#X
 	
 4s   A1c                 ^ U R                   nU R                  m[        U5      n[        U[        5      (       aa  [        U4S jU 5       5      (       aG  U(       a   U R                  UR                  X5      5      $ U R                  UR                  X5      5      $ [        U[        5      (       a  U/[        U5      -  nU R                  UR                  U[        U5      S9R                  USSS95      $ )Nc              3  J   >#    U  H  nTU   R                  5       v   M     g 7fr4   )
is_numeric).0xr   s     r=   	<genexpr>&DaskLazyFrame.top_k.<locals>.<genexpr>   s!     ,PRVAY-A-A-C-CRs    #)r  Fr   r   )rj   r   r   rB   r  allro   	nsmallestnlargestr   r  r   )r:   kr  r   rn   r   s        @r=   top_kDaskLazyFrame.top_k  s    [["Xgt$$,PR,P)P)P((a)<==$$R[[%788gt$$i#b')G  NN2gN7<<U = 
 	
r@   c               p    U R                   R                  USS9R                  UR                   UUSSU4S9$ )Nr   rt   r   r    left_onright_onr   suffixes)rj   r   r  )r:   otherr&  r'  suffixs        r=   _join_innerDaskLazyFrame._join_inner,  sH     {{!!e!<BBLL&\ C 
 	
r@   c                  U R                   R                  UR                   R                  USS9SUUSU4S9n[        X#SS9 VVs/ s H#  u  pgXv:w  d  M  XpR                  ;  a  UOU U 3PM%     nnnUR                  US9$ s  snnf )	Nr   r#  leftr$  r   r&  r'  r(  Tr   r   )rj   r  r   ziprs   r   )	r:   r)  r&  r'  r*  result_nativeleft_key	right_keyextras	            r=   
_join_leftDaskLazyFrame._join_left7  s     ))LLxU;&\ * 
 (+7T'J
'J#$ S,,6Iyk&<RR'J 	 

 !!%!00
s   BBc                  U R                   n[        X#U5      nUR                   R                  US9n[        UR                  5        [        UR                  5       5      nU[        U5         R                  5       R                  SS9n	Xx   R                  5       R                  SS9n
[        UR                  5      R                  U R                  5      R                  U5      nXz   R                  U Vs0 s H	  oU U 3_M     snS9nXY)    R                  Xz)    UUSSU4S9n[        R                  " XU	   U/SSS9$ s  snf )	Nr   r~   r   outerr$  r%  r   )r   join)rj   r   r   r   rs   r   valuesisnar   setintersection
differencer  rC   r   )r:   r)  r&  r'  r*  self_nativeright_on_mapperother_nativeright_suffixedleft_null_maskright_null_mask	to_renamer   right_null_rowsjoin_results                  r=   
_join_fullDaskLazyFrame._join_fullH  sV   
 kk/6J||**?*C%l&:&:;o4467$T']388:>>A>F&6;;=AAqAI &33DLLALLXV	&7>>6?@isSE&**i@ ? 
 "/288)*#&\ 9 
 yyn5G
 	
 As   6Ec                   [        S/ U R                  QUR                  Q7SS9nU R                  R                  " S	0 US0D6R	                  UR                  R                  " S	0 US0D6SUUSU4S9R                  US9$ )
Nr   cross_join_key_r   r   r   r$  r/  r   re   )r   rs   rj   r   r  r   )r:   r)  r*  	key_tokens       r=   _join_crossDaskLazyFrame._join_crossi  s    2>>>GX
	 KK0)Q0U##5y!n5!"f   T)T$
	
r@   c                   U R                  U[        U5      [        [        X2SS95      S9nU R                  R                  USS9R                  USX"S9$ )NFr   r)  columns_to_selectcolumns_mappingr   r#  r   )r   r&  r'  )_join_filter_renamer   r   r0  rj   r   r  )r:   r)  r&  r'  rA  s        r=   
_join_semiDaskLazyFrame._join_semiy  sh     //"8n Xu!EF 0 

 {{!!e!<BBgw C 
 	
r@   c               &   [        S/ U R                  QUR                  Q7SS9nU R                  U[        U5      [	        [        X2SS95      S9nU R                  R                  UR                  USS9S	UUUS
9nXfU   S:H     R                  U/S9$ )Nr   join_indicator_r   Fr   rP  r   r#  r.  )r   	indicatorr&  r'  	left_onlyr   )
r   rs   rS  r   r   r0  rj   r  r   r   )r:   r)  r&  r'  indicator_tokenrA  rn   s          r=   
_join_antiDaskLazyFrame._join_anti  s     9>>>GX
 //"8n Xu!EF 0 

 [[wE:%  
 _%45::OCT:UUr@   c                |    UR                   n[        XBU R                  5      R                  US9R	                  5       $ )zHelper function to avoid creating extra columns and row duplication.

Used in `"anti"` and `"semi`" join's.

Notice that a native object is returned.
r   )rj   r	   rX   r   r  )r:   r)  rQ  rR  rA  s        r=   rS  !DaskLazyFrame._join_filter_rename  s8     $)<< #<DDXDXYVOV,_	
r@   c               n   US:X  a  U R                  XS9nOUb  Uc  [        X45      eUS:X  a  U R                  XXES9nOgUS:X  a  U R                  XUS9nOPUS:X  a  U R	                  XUS9nO9US:X  a  U R                  XXES9nO"US	:X  a  U R                  XXES9nO[        U5        U R                  W5      $ )
Ncross)r)  r*  r   )r)  r&  r'  r*  anti)r)  r&  r'  semir.  full)	rM  r   r+  r[  rT  r5  rH  r
   ro   )r:   r)  r   r&  r'  r*  r   s          r=   r9  DaskLazyFrame.join  s     '>%%E%AF_ 0W//G^%%x & F F]__5H_UFF]__5H_UFF]__x % F F]__x % F   ((r@   c                   U R                  5       nU R                  UR                  U R                  UR                  UUUUUSU4S95      $ )Nr$  )r&  r'  left_byright_by	directionr(  )r^   ro   
merge_asofrj   )	r:   r)  r&  r'  by_leftby_rightstrategyr*  r   s	            r=   	join_asofDaskLazyFrame.join_asof  sZ     '')  NN!!"f  	
 	
r@   c                   SSK Jn  U" XUS9$ )Nr   r!   )drop_null_keys)narwhals._dask.group_byr"   )r:   keysrp  r"   s       r=   group_byDaskLazyFrame.group_by  s     	<t.IIr@   c                    U R                   nUR                  nUS:X  a)  U R                  U R                   R                  USS95      $ Sn[	        U5      e)Nr~   F)r   r   zL`LazyFrame.tail` is not supported for Dask backend with multiple partitions.)rj   r   ro   tailNotImplementedError)r:   r   native_framen_partitionsr]   s        r=   rv  DaskLazyFrame.tail  sX    {{#//1$$T[[%5%55%5%IJJZ 	 "#&&r@   c                   [        SU R                  SS9nU R                  5       nUR                  US S9R	                  5       nUR                  US S9R	                  5       nUR                  SS S9R	                  5       nU R                  US S9R                  UR                  U5      U:  UR                  U5      U-
  U-  U:H  -  5      R                  U/SS9$ )	Nr   
row_index_r   r   r   )r   Fr   )	r   rs   rb   r   r   r   r   r   r   )r:   r   offsetrow_index_tokenr   offset_exprn_expr	zero_exprs           r=   gather_everyDaskLazyFrame.gather_every  s    8t||L
 ))+ggfDg1;;=$'113GGATG*446	$?V)[8GGO,{:fD	QS T?#ET2	
r@   c           	     X    U R                  U R                  R                  UUUUS95      $ )N)id_vars
value_varsvar_name
value_name)ro   rj   melt)r:   r   indexvariable_namer  s        r=   unpivotDaskLazyFrame.unpivot	  s:       KK&%	  
 	
r@   c                :    U R                   R                  U5        g r4   )rj   
to_parquet)r:   files     r=   sink_parquetDaskLazyFrame.sink_parquet  s    t$r@   )r8   r7   r5   r6   N)r;   dd.DataFramer<   r&   r2   r  returnNone)rE   zdd.DataFrame | Anyr  zTypeIs[dd.DataFrame])rL   r  rM   r'   r  r   )r  LazyFrame[dd.DataFrame])r  r   )r  r$   )r  r   )r<   r&   r  r   )rn   r   r  r   )rt   Sequence[str]r  zColumnNotFoundError | None)r  zIterator[dx.Series])rE   r    r  z	dx.Series)r   r    r  r   )r   z_EagerAllowedImpl | Noner   r   r  r   )r  	list[str])r   r    r  r   )r   strr  r   )rt   Sequence[str] | Noner  r   )r  zdict[str, DType])rs   r  r   r  r  r   )r   r  r   r  r  r   )r   zMapping[str, str]r  r   )r   intr  r   )rt   r  r   r-   r   r  r  r   )r  r  r   bool | Sequence[bool]r   r  r  r   )r  r  r  zIterable[str]r   r  r  r   )
r)  r   r&  r  r'  r  r*  r  r  r  )r)  r   r*  r  r  r  )r)  r   r&  r  r'  r  r  r  )r)  r   rQ  r  rR  zdict[str, str]r  r  )r)  r   r   r,   r&  r  r'  r  r*  r  r  r   )r)  r   r&  r  r'  r  rj  r  rk  r  rl  r+   r*  r  r  r   )rr  z"Sequence[str] | Sequence[DaskExpr]rp  r  r  r"   )r   r  r}  r  r  r   )
r   r  r  r  r  r  r  r  r  r   )r  zstr | Path | BytesIOr  r  )8__name__
__module____qualname____firstlineno__r   rY   rX   r>   staticmethodrF   classmethodrN   rU   r^   rb   rf   rk   ro   ru   r{   r   r   r   propertyrs   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r+  r5  rH  rM  rT  r[  rS  r9  rm  rs  rv  r  r  r  r   explode__static_attributes__re   r@   r=   r0   r0   4   sO    %))O */-&- 	-
 #'- 
- - - 3 3;"4
<9CI(/(;>(	(T $ $8
)
%
%! 	# 	#D
WFW)$) !	)
 ') 
)6

 	
	
'4	
@M	
WZ	
		
11'41@M1WZ1	1"

'4
@M
WZ
	
B
 



'4

@M

	

VV'4V@MV	V(

.7
JX
	
"!)!) 	!)
 &!) '!) !) 
!)F

 	

 
 &
 '
 #
 
 

2J6JKOJ	J	'
"
 
 $
 	

 
 

 % Gr@   r0   )r    r  r  )F
__future__r   typingr   r   dask.dataframe	dataframerC   narwhals._dask.utilsr   r   narwhals._pandas_like.utilsr   r	   narwhals._typing_compatr
   narwhals._utilsr   r   r   r   r   r   r   r   narwhals.exceptionsr   narwhals.typingr   collections.abcr   r   r   r   ior   pathlibr   typesr   r   dask.dataframe.dask_expr	dask_exprdxtyping_extensionsr   r   narwhals._compliant.typingr   narwhals._dask.exprr    rq  r"   ra   r$   narwhals._typingr%   r&   r'   narwhals.dataframer(   narwhals.dtypesr)   r*   r+   r,   r-   r.   __annotations__r0   re   r@   r=   <module>r     s    " %  > X 0	 	 	 ; .EE  )).@,7628,%7RR
I h LMh r@   