DriverTrac/venv/lib/python3.12/site-packages/narwhals/_compliant/column.py
2025-11-28 09:08:33 +05:30

150 lines
5.1 KiB
Python

from __future__ import annotations
from typing import TYPE_CHECKING, Any, Protocol
if TYPE_CHECKING:
from collections.abc import Sequence
from typing_extensions import Self
from narwhals._compliant.any_namespace import (
CatNamespace,
DateTimeNamespace,
ListNamespace,
StringNamespace,
StructNamespace,
)
from narwhals._compliant.namespace import CompliantNamespace
from narwhals._typing import NoDefault
from narwhals._utils import Version
from narwhals.typing import (
ClosedInterval,
FillNullStrategy,
IntoDType,
ModeKeepStrategy,
RankMethod,
)
__all__ = ["CompliantColumn"]
class CompliantColumn(Protocol):
"""Common parts of `Expr`, `Series`."""
_version: Version
def __add__(self, other: Self) -> Self: ...
def __and__(self, other: Self) -> Self: ...
def __eq__(self, other: Self) -> Self: ... # type: ignore[override]
def __floordiv__(self, other: Self) -> Self: ...
def __ge__(self, other: Self) -> Self: ...
def __gt__(self, other: Self) -> Self: ...
def __invert__(self) -> Self: ...
def __le__(self, other: Self) -> Self: ...
def __lt__(self, other: Self) -> Self: ...
def __mod__(self, other: Self) -> Self: ...
def __mul__(self, other: Self) -> Self: ...
def __ne__(self, other: Self) -> Self: ... # type: ignore[override]
def __or__(self, other: Self) -> Self: ...
def __pow__(self, other: Self) -> Self: ...
def __rfloordiv__(self, other: Self) -> Self: ...
def __rmod__(self, other: Self) -> Self: ...
def __rpow__(self, other: Self) -> Self: ...
def __rsub__(self, other: Self) -> Self: ...
def __rtruediv__(self, other: Self) -> Self: ...
def __sub__(self, other: Self) -> Self: ...
def __truediv__(self, other: Self) -> Self: ...
def __narwhals_namespace__(self) -> CompliantNamespace[Any, Any]: ...
def abs(self) -> Self: ...
def alias(self, name: str) -> Self: ...
def cast(self, dtype: IntoDType) -> Self: ...
def clip(self, lower_bound: Self, upper_bound: Self) -> Self: ...
def clip_lower(self, lower_bound: Self) -> Self: ...
def clip_upper(self, upper_bound: Self) -> Self: ...
def cum_count(self, *, reverse: bool) -> Self: ...
def cum_max(self, *, reverse: bool) -> Self: ...
def cum_min(self, *, reverse: bool) -> Self: ...
def cum_prod(self, *, reverse: bool) -> Self: ...
def cum_sum(self, *, reverse: bool) -> Self: ...
def diff(self) -> Self: ...
def drop_nulls(self) -> Self: ...
def ewm_mean(
self,
*,
com: float | None,
span: float | None,
half_life: float | None,
alpha: float | None,
adjust: bool,
min_samples: int,
ignore_nulls: bool,
) -> Self: ...
def exp(self) -> Self: ...
def sqrt(self) -> Self: ...
def fill_nan(self, value: float | None) -> Self: ...
def fill_null(
self, value: Self | None, strategy: FillNullStrategy | None, limit: int | None
) -> Self: ...
def is_between(
self, lower_bound: Self, upper_bound: Self, closed: ClosedInterval
) -> Self:
if closed == "left":
return (self >= lower_bound) & (self < upper_bound)
if closed == "right":
return (self > lower_bound) & (self <= upper_bound)
if closed == "none":
return (self > lower_bound) & (self < upper_bound)
return (self >= lower_bound) & (self <= upper_bound)
def is_duplicated(self) -> Self:
return ~self.is_unique()
def is_finite(self) -> Self: ...
def is_first_distinct(self) -> Self: ...
def is_in(self, other: Any) -> Self: ...
def is_last_distinct(self) -> Self: ...
def is_nan(self) -> Self: ...
def is_null(self) -> Self: ...
def is_unique(self) -> Self: ...
def log(self, base: float) -> Self: ...
def mode(self, *, keep: ModeKeepStrategy) -> Self: ...
def rank(self, method: RankMethod, *, descending: bool) -> Self: ...
def replace_strict(
self,
default: Self | NoDefault,
old: Sequence[Any],
new: Sequence[Any],
*,
return_dtype: IntoDType | None,
) -> Self: ...
def rolling_mean(
self, window_size: int, *, min_samples: int, center: bool
) -> Self: ...
def rolling_std(
self, window_size: int, *, min_samples: int, center: bool, ddof: int
) -> Self: ...
def rolling_sum(
self, window_size: int, *, min_samples: int, center: bool
) -> Self: ...
def rolling_var(
self, window_size: int, *, min_samples: int, center: bool, ddof: int
) -> Self: ...
def round(self, decimals: int) -> Self: ...
def floor(self) -> Self: ...
def ceil(self) -> Self: ...
def shift(self, n: int) -> Self: ...
def unique(self) -> Self: ...
@property
def str(self) -> StringNamespace[Self]: ...
@property
def dt(self) -> DateTimeNamespace[Self]: ...
@property
def cat(self) -> CatNamespace[Self]: ...
@property
def list(self) -> ListNamespace[Self]: ...
@property
def struct(self) -> StructNamespace[Self]: ...