
    Lpj                       % S SK Jr  S SKJr  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  \(       aO  S SKJrJrJr  S S	KJr  S SKrS SK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&r&  \ \\4   r'S\(S'   \S\4   r)S\(S'   O  S SK*J
s  Jr  \RX                  R8                  rSr-S\(S'    SS jr.SS jr/SS jr0SS jr1SS jr2 " S S\SS\-4   5      r3g! \+ a    S SKr NUf = f)     )annotations)partial)TYPE_CHECKINGAnyClassVarcastN)DepthTrackingGroupBy)make_group_by_kwargs)!evaluate_output_names_and_aliases)CallableMappingSequence)	TypeAlias)GroupBy)SeriesGroupBy)NarwhalsAggregationDaskLazyFrame)DaskExprr   PandasSeriesGroupBy._AggFnzstr | _AggFnAggregationc                 @    SS jn SS jn[         R                  " SXS9$ )Nc                     U R                  SS9$ )NF)dropna)nuniquess    S/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/narwhals/_dask/group_by.pychunkn_unique.<locals>.chunk(   s    yyy&&    c                "    U R                  5       $ N)sums0s    r   aggn_unique.<locals>.agg+   s    vvxr"   r   namer    r(   r   r   returnpd.Series[Any]r'   r   r-   r.   ddr   r    r(   s     r   n_uniquer3   '   s    ' >>y??r"   c                 @    SS jn SS jn[         R                  " SXS9$ )Nc                     U R                  SS9$ NT)skipnaallr   s    r   r    _all.<locals>.chunk2       uuDu!!r"   c                     U R                  SS9$ r6   r8   r&   s    r   r(   _all.<locals>.agg5       vvTv""r"   r9   r*   r,   r/   r0   r2   s     r   _allr?   1       "# >>uE;;r"   c                 @    SS jn SS jn[         R                  " SXS9$ )Nc                     U R                  SS9$ r6   anyr   s    r   r    _any.<locals>.chunk<   r;   r"   c                     U R                  SS9$ r6   rC   r&   s    r   r(   _any.<locals>.agg?   r>   r"   rD   r*   r,   r/   r0   r2   s     r   _anyrH   ;   r@   r"   c                2    [        [        R                  U S9$ Nddof)r   _DaskGroupByvarrK   s    r   rN   rN   E       <##$//r"   c                2    [        [        R                  U S9$ rJ   )r   rM   stdrK   s    r   rQ   rQ   I   rO   r"   c                  d    \ rS rSr% SSSSS\\S\SS	\\S
.r	S\
S'           SS jrSS jrSrg)DaskLazyGroupByM   r%   meanmedianmaxminsizecountquantile)r%   rU   rV   rW   rX   rQ   rN   lenr3   rZ   r[   r9   rD   z3ClassVar[Mapping[NarwhalsAggregation, Aggregation]]_REMAP_AGGSc                  U R                  XS9u  U l        U l        U l        [	        US9nU R
                  R                  R                  " U R                  40 UD6U l        g )N)keys)drop_null_keys)	_parse_keys_compliant_frame_keys_output_key_namesr
   	compliantnativegroupby_grouped)selfdfr_   r`   group_by_kwargss        r   __init__DaskLazyGroupBy.__init__^   sa     EIDTDT EU E
Atz4+A /nM--55djjTOTr"   c           
       ^ SSK Jn  U(       dq  U R                  R                  " U R                  6 R                  U R                  SS S9R                  [        [        U R                  U R                  SS95      5      $ U R                  U5        0 n/ U R                  QU R                  Q7nU GH  n[        XPR                  U5      u  pg[        UR                  R                  5       5      nUS   n	[        U5      S:X  aR  U R                  S   n
U R!                  U	R"                  5      mUR%                  [        R'                  XzT45      5        M  U R!                  U R)                  U5      5      m[+        T5      (       a  T" S0 U	R,                  D6OTmUR%                  U4S j[        XvS	S9 5       5        GM     [/        S
U R0                  R2                  " S0 UD65      nU" UR5                  5       U R                  R6                  S9R                  [        [        U R                  U R                  SS95      5      $ )Nr   r   rD   )keeporder_byF)strict   c              3  2   >#    U  H  u  pXT44v   M     g 7fr$    ).0aliasoutput_nameagg_fns      r   	<genexpr>&DaskLazyGroupBy.agg.<locals>.<genexpr>   s#      '*Q&E f-.*Qs   Tzdx.DataFrame)versionrt   )narwhals._dask.dataframer   re   simple_selectrc   uniquerenamedictziprd   _ensure_all_simpler   list	_metadataop_nodes_reversedr\   _remap_expr_namer+   updatefromkeys
_leaf_namecallablekwargsr   rh   r(   reset_index_version)ri   exprsr   simple_aggregationsexcludeexproutput_namesaliasesnodes	last_nodecolumnaggedrx   s               @r   r(   DaskLazyGroupBy.aggl   s   : ,,djj9

>ST-C-CERST 	& CE8DJJ8!7!78D$Enng%!L 99;<EaI5zQA..y~~>#**4==6BR+ST **4??4+@AF3;F3C3CV/i../F&& '*-gD*Q' # * ^T]]%6%6%M9L%MNU..0$..:Q:QRYYTZZ!7!7FG
 	
r"   )rb   rh   rc   rd   N)rj   r   r_   z"Sequence[DaskExpr] | Sequence[str]r`   boolr-   None)r   r   r-   r   )__name__
__module____qualname____firstlineno__rQ   rN   r3   r?   rH   r]   __annotations__rl   r(   __static_attributes__rt   r"   r   rS   rS   M   sn    HKD  UU 1U U 
U)
r"   rS   r   r   )r-   zdd.Aggregation)rL   intr-   r   )4
__future__r   	functoolsr   typingr   r   r   r   dask.dataframe	dataframer1   narwhals._compliantr	   narwhals._dask.utilsr
   narwhals._expression_parsingr   collections.abcr   r   r   r   	dask_exprdxpandaspddask.dataframe.apir   rM   pandas.core.groupbyr   _PandasSeriesGroupBynarwhals._compliant.typingr   r|   r   narwhals._dask.exprr   r   r   r   dask.dataframe.dask_exprModuleNotFoundError_groupbyr   r3   r?   rH   rN   rQ   rS   rt   r"   r   <module>r      s    "  5 5  4 5 J;; :I>6,%9#s(%CC c*FI*-- ;;&&L'Y ' B@<<00H
*?J+ST H
]  s   		C 
C('C(