| 
37 | 37 |     from typing_extensions import TypeAlias  | 
38 | 38 | 
 
  | 
39 | 39 |     from narwhals._compliant.group_by import CompliantGroupBy  | 
 | 40 | +    from narwhals._compliant.group_by import DataFrameGroupBy  | 
40 | 41 |     from narwhals._translate import IntoArrowTable  | 
41 | 42 |     from narwhals.dtypes import DType  | 
42 | 43 |     from narwhals.schema import Schema  | 
43 | 44 |     from narwhals.typing import AsofJoinStrategy  | 
44 | 45 |     from narwhals.typing import JoinStrategy  | 
45 | 46 |     from narwhals.typing import LazyUniqueKeepStrategy  | 
 | 47 | +    from narwhals.typing import PivotAgg  | 
46 | 48 |     from narwhals.typing import SizeUnit  | 
47 | 49 |     from narwhals.typing import UniqueKeepStrategy  | 
48 | 50 |     from narwhals.typing import _2DArray  | 
@@ -136,7 +138,7 @@ def gather_every(self, n: int, offset: int) -> Self: ...  | 
136 | 138 |     def get_column(self, name: str) -> CompliantSeriesT: ...  | 
137 | 139 |     def group_by(  | 
138 | 140 |         self, *keys: str, drop_null_keys: bool  | 
139 |  | -    ) -> CompliantGroupBy[Self, Any]: ...  | 
 | 141 | +    ) -> DataFrameGroupBy[Self, Any]: ...  | 
140 | 142 |     def head(self, n: int) -> Self: ...  | 
141 | 143 |     def item(self, row: int | None, column: int | str | None) -> Any: ...  | 
142 | 144 |     def iter_columns(self) -> Iterator[CompliantSeriesT]: ...  | 
@@ -165,6 +167,16 @@ def join_asof(  | 
165 | 167 |         suffix: str,  | 
166 | 168 |     ) -> Self: ...  | 
167 | 169 |     def lazy(self, *, backend: Implementation | None) -> CompliantLazyFrame[Any, Any]: ...  | 
 | 170 | +    def pivot(  | 
 | 171 | +        self,  | 
 | 172 | +        on: Sequence[str],  | 
 | 173 | +        *,  | 
 | 174 | +        index: Sequence[str] | None,  | 
 | 175 | +        values: Sequence[str] | None,  | 
 | 176 | +        aggregate_function: PivotAgg | None,  | 
 | 177 | +        sort_columns: bool,  | 
 | 178 | +        separator: str,  | 
 | 179 | +    ) -> Self: ...  | 
168 | 180 |     def rename(self, mapping: Mapping[str, str]) -> Self: ...  | 
169 | 181 |     def row(self, index: int) -> tuple[Any, ...]: ...  | 
170 | 182 |     def rows(  | 
 | 
0 commit comments