from collections.abc import Callable, Sequence from typing import Any, Literal, overload from numpy.typing import NDArray from typing_extensions import TypeAlias from polars.io.scan_options._options import ScanOptions # This file mirrors all the definitions made in the polars-python Rust API. __version__: str __build__: Any _ir_nodes: Any _allocator: Any _debug: bool RUNTIME_REPR: str CompatLevel: TypeAlias = int | bool BufferInfo: TypeAlias = tuple[int, int, int] UnicodeForm: TypeAlias = Literal["NFC", "NFKC", "NFD", "NFKD"] KeyValueMetadata: TypeAlias = Sequence[tuple[str, str]] | Any TimeZone: TypeAlias = str | None UpcastOrForbid: TypeAlias = Literal["upcast", "forbid"] ExtraColumnsPolicy: TypeAlias = Literal["ignore", "raise"] MissingColumnsPolicy: TypeAlias = Literal["insert", "raise"] MissingColumnsPolicyOrExpr: TypeAlias = Literal["insert", "raise"] | Any ColumnMapping: TypeAlias = Any DeletionFilesList: TypeAlias = Any DefaultFieldValues: TypeAlias = Any Path: TypeAlias = str | Any Schema: TypeAlias = Any NullValues: TypeAlias = Any DataType: TypeAlias = Any SyncOnCloseType: TypeAlias = Literal["none", "data", "all"] SinkOptions: TypeAlias = dict[str, Any] SinkTarget: TypeAlias = str | Any | PyPartitioning AsofStrategy: TypeAlias = Literal["backward", "forward", "nearest"] InterpolationMethod: TypeAlias = Literal["linear", "nearest"] AvroCompression: TypeAlias = Literal["uncompressed", "snappy", "deflate"] CategoricalOrdering: TypeAlias = Literal["physical", "lexical"] StartBy: TypeAlias = Literal[ "window", "datapoint", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday", ] ClosedWindow: TypeAlias = Literal["left", "right", "both", "none"] RoundMode: TypeAlias = Literal["half_to_even", "half_away_from_zero"] CsvEncoding: TypeAlias = Literal["utf8", "utf8-lossy"] IpcCompression: TypeAlias = Literal["uncompressed", "lz4", "zstd"] JoinType: TypeAlias = Literal["inner", "left", "right", "full", "semi", "anti", "cross"] Label: TypeAlias = Literal["left", "right", "datapoint"] ListToStructWidthStrategy: TypeAlias = Literal["first_non_null", "max_width"] NonExistent: TypeAlias = Literal["null", "raise"] NullBehavior: TypeAlias = Literal["drop", "ignore"] NullStrategy: TypeAlias = Literal["ignore", "propagate"] ParallelStrategy: TypeAlias = Literal[ "auto", "columns", "row_groups", "prefiltered", "none" ] IndexOrder: TypeAlias = Literal["fortran", "c"] QuantileMethod: TypeAlias = Literal[ "lower", "higher", "nearest", "linear", "midpoint", "equiprobable" ] RankMethod: TypeAlias = Literal["min", "max", "average", "dense", "ordinal", "random"] Roll: TypeAlias = Literal["raise", "forward", "backward"] TimeUnit: TypeAlias = Literal["ns", "us", "ms"] UniqueKeepStrategy: TypeAlias = Literal["first", "last", "any", "none"] SearchSortedSide: TypeAlias = Literal["any", "left", "right"] ClosedInterval: TypeAlias = Literal["both", "left", "right", "none"] WindowMapping: TypeAlias = Literal["group_to_rows", "join", "explode"] JoinValidation: TypeAlias = Literal["m:m", "m:1", "1:m", "1:1"] MaintainOrderJoin: TypeAlias = Literal[ "none", "left", "right", "left_right", "right_left" ] QuoteStyle: TypeAlias = Literal["always", "necessary", "non_numeric", "never"] SetOperation: TypeAlias = Literal[ "union", "difference", "intersection", "symmetric_difference" ] FloatFmt: TypeAlias = Literal["full", "mixed"] NDArray1D: TypeAlias = NDArray[Any] ParquetFieldOverwrites: TypeAlias = Any StatisticsOptions: TypeAlias = Any EngineType: TypeAlias = Literal["auto", "in-memory", "streaming", "gpu"] PyScanOptions: TypeAlias = Any # exceptions class PolarsError(Exception): ... class ColumnNotFoundError(PolarsError): ... class ComputeError(PolarsError): ... class DuplicateError(PolarsError): ... class InvalidOperationError(PolarsError): ... class NoDataError(PolarsError): ... class OutOfBoundsError(PolarsError): ... class SQLInterfaceError(PolarsError): ... class SQLSyntaxError(PolarsError): ... class SchemaError(PolarsError): ... class SchemaFieldNotFoundError(PolarsError): ... class ShapeError(PolarsError): ... class StringCacheMismatchError(PolarsError): ... class StructFieldNotFoundError(PolarsError): ... class PolarsWarning(Warning): ... class PerformanceWarning(PolarsWarning): ... class CategoricalRemappingWarning(PerformanceWarning): ... class MapWithoutReturnDtypeWarning(PolarsWarning): ... class PanicException(PolarsError): ... class PySeries: # map def map_elements( self, function: Any, return_dtype: Any | None, skip_nulls: bool ) -> PySeries: ... # general def struct_unnest(self) -> PyDataFrame: ... def struct_fields(self) -> list[str]: ... def is_sorted_ascending_flag(self) -> bool: ... def is_sorted_descending_flag(self) -> bool: ... def can_fast_explode_flag(self) -> bool: ... def cat_uses_lexical_ordering(self) -> bool: ... def cat_is_local(self) -> bool: ... def cat_to_local(self) -> PySeries: ... def estimated_size(self) -> int: ... def get_object(self, index: int) -> Any: ... def reshape(self, dims: Sequence[int]) -> PySeries: ... def get_fmt(self, index: int, str_len_limit: int) -> str: ... def rechunk(self, in_place: bool) -> PySeries | None: ... def get_index(self, index: int) -> Any: ... def get_index_signed(self, index: int) -> Any: ... def bitand(self, other: PySeries) -> PySeries: ... def bitor(self, other: PySeries) -> PySeries: ... def bitxor(self, other: PySeries) -> PySeries: ... def chunk_lengths(self) -> list[int]: ... def name(self) -> str: ... def rename(self, name: str) -> None: ... def dtype(self) -> Any: ... def set_sorted_flag(self, descending: bool) -> PySeries: ... def n_chunks(self) -> int: ... def append(self, other: PySeries) -> None: ... def extend(self, other: PySeries) -> None: ... def new_from_index(self, index: int, length: int) -> PySeries: ... def filter(self, filter: PySeries) -> PySeries: ... def sort( self, descending: bool, nulls_last: bool, multithreaded: bool ) -> PySeries: ... def gather_with_series(self, indices: PySeries) -> PySeries: ... def null_count(self) -> int: ... def has_nulls(self) -> bool: ... def equals( self, other: PySeries, check_dtypes: bool, check_names: bool, null_equal: bool ) -> bool: ... def as_str(self) -> str: ... def len(self) -> int: ... def as_single_ptr(self) -> int: ... def clone(self) -> PySeries: ... def zip_with(self, mask: PySeries, other: PySeries) -> PySeries: ... def to_dummies( self, separator: str | None, drop_first: bool, drop_nulls: bool ) -> PyDataFrame: ... def get_list(self, index: int) -> PySeries | None: ... def n_unique(self) -> int: ... def floor(self) -> PySeries: ... def shrink_to_fit(self) -> None: ... def dot(self, other: PySeries) -> Any: ... def __getstate__(self) -> bytes: ... def __setstate__(self, state: bytes) -> None: ... def skew(self, bias: bool) -> float | None: ... def kurtosis(self, fisher: bool, bias: bool) -> float | None: ... def cast(self, dtype: Any, strict: bool, wrap_numerical: bool) -> PySeries: ... def get_chunks(self) -> list[Any]: ... def is_sorted(self, descending: bool, nulls_last: bool) -> bool: ... def clear(self) -> PySeries: ... def head(self, n: int) -> PySeries: ... def tail(self, n: int) -> PySeries: ... def value_counts( self, sort: bool, parallel: bool, name: str, normalize: bool ) -> PyDataFrame: ... def slice(self, offset: int, length: int | None) -> PySeries: ... def not_(self) -> PySeries: ... def shrink_dtype(self) -> PySeries: ... def str_to_datetime_infer( self, time_unit: TimeUnit | None, strict: bool, exact: bool, ambiguous: PySeries, ) -> PySeries: ... def str_to_decimal_infer(self, inference_length: int) -> PySeries: ... def list_to_struct( self, width_strat: ListToStructWidthStrategy, name_gen: Any | None ) -> PySeries: ... def str_json_decode(self, infer_schema_length: int | None) -> PySeries: ... # aggregations def any(self, ignore_nulls: bool) -> bool | None: ... def all(self, ignore_nulls: bool) -> bool | None: ... def arg_max(self) -> int | None: ... def arg_min(self) -> int | None: ... def min(self) -> Any: ... def max(self) -> Any: ... def mean(self) -> Any: ... def median(self) -> Any: ... def product(self) -> Any: ... def quantile(self, quantile: float, interpolation: QuantileMethod) -> Any: ... def std(self, ddof: int) -> Any: ... def var(self, ddof: int) -> Any: ... def sum(self) -> Any: ... def first(self) -> Any: ... def last(self) -> Any: ... def approx_n_unique(self) -> int: ... def bitwise_and(self) -> Any: ... def bitwise_or(self) -> Any: ... def bitwise_xor(self) -> Any: ... # arithmetic # Operations with another PySeries def add(self, other: PySeries) -> PySeries: ... def sub(self, other: PySeries) -> PySeries: ... def mul(self, other: PySeries) -> PySeries: ... def div(self, other: PySeries) -> PySeries: ... def rem(self, other: PySeries) -> PySeries: ... # Operations with integer/float/datetime/duration scalars def add_u8(self, other: int) -> PySeries: ... def add_u16(self, other: int) -> PySeries: ... def add_u32(self, other: int) -> PySeries: ... def add_u64(self, other: int) -> PySeries: ... def add_i8(self, other: int) -> PySeries: ... def add_i16(self, other: int) -> PySeries: ... def add_i32(self, other: int) -> PySeries: ... def add_i64(self, other: int) -> PySeries: ... def add_datetime(self, other: int) -> PySeries: ... def add_duration(self, other: int) -> PySeries: ... def add_f32(self, other: float) -> PySeries: ... def add_f64(self, other: float) -> PySeries: ... def sub_u8(self, other: int) -> PySeries: ... def sub_u16(self, other: int) -> PySeries: ... def sub_u32(self, other: int) -> PySeries: ... def sub_u64(self, other: int) -> PySeries: ... def sub_i8(self, other: int) -> PySeries: ... def sub_i16(self, other: int) -> PySeries: ... def sub_i32(self, other: int) -> PySeries: ... def sub_i64(self, other: int) -> PySeries: ... def sub_datetime(self, other: int) -> PySeries: ... def sub_duration(self, other: int) -> PySeries: ... def sub_f32(self, other: float) -> PySeries: ... def sub_f64(self, other: float) -> PySeries: ... def div_u8(self, other: int) -> PySeries: ... def div_u16(self, other: int) -> PySeries: ... def div_u32(self, other: int) -> PySeries: ... def div_u64(self, other: int) -> PySeries: ... def div_i8(self, other: int) -> PySeries: ... def div_i16(self, other: int) -> PySeries: ... def div_i32(self, other: int) -> PySeries: ... def div_i64(self, other: int) -> PySeries: ... def div_f32(self, other: float) -> PySeries: ... def div_f64(self, other: float) -> PySeries: ... def mul_u8(self, other: int) -> PySeries: ... def mul_u16(self, other: int) -> PySeries: ... def mul_u32(self, other: int) -> PySeries: ... def mul_u64(self, other: int) -> PySeries: ... def mul_i8(self, other: int) -> PySeries: ... def mul_i16(self, other: int) -> PySeries: ... def mul_i32(self, other: int) -> PySeries: ... def mul_i64(self, other: int) -> PySeries: ... def mul_f32(self, other: float) -> PySeries: ... def mul_f64(self, other: float) -> PySeries: ... def rem_u8(self, other: int) -> PySeries: ... def rem_u16(self, other: int) -> PySeries: ... def rem_u32(self, other: int) -> PySeries: ... def rem_u64(self, other: int) -> PySeries: ... def rem_i8(self, other: int) -> PySeries: ... def rem_i16(self, other: int) -> PySeries: ... def rem_i32(self, other: int) -> PySeries: ... def rem_i64(self, other: int) -> PySeries: ... def rem_f32(self, other: float) -> PySeries: ... def rem_f64(self, other: float) -> PySeries: ... # Reverse operations (rhs) def add_u8_rhs(self, other: int) -> PySeries: ... def add_u16_rhs(self, other: int) -> PySeries: ... def add_u32_rhs(self, other: int) -> PySeries: ... def add_u64_rhs(self, other: int) -> PySeries: ... def add_i8_rhs(self, other: int) -> PySeries: ... def add_i16_rhs(self, other: int) -> PySeries: ... def add_i32_rhs(self, other: int) -> PySeries: ... def add_i64_rhs(self, other: int) -> PySeries: ... def add_f32_rhs(self, other: float) -> PySeries: ... def add_f64_rhs(self, other: float) -> PySeries: ... def sub_u8_rhs(self, other: int) -> PySeries: ... def sub_u16_rhs(self, other: int) -> PySeries: ... def sub_u32_rhs(self, other: int) -> PySeries: ... def sub_u64_rhs(self, other: int) -> PySeries: ... def sub_i8_rhs(self, other: int) -> PySeries: ... def sub_i16_rhs(self, other: int) -> PySeries: ... def sub_i32_rhs(self, other: int) -> PySeries: ... def sub_i64_rhs(self, other: int) -> PySeries: ... def sub_f32_rhs(self, other: float) -> PySeries: ... def sub_f64_rhs(self, other: float) -> PySeries: ... def div_u8_rhs(self, other: int) -> PySeries: ... def div_u16_rhs(self, other: int) -> PySeries: ... def div_u32_rhs(self, other: int) -> PySeries: ... def div_u64_rhs(self, other: int) -> PySeries: ... def div_i8_rhs(self, other: int) -> PySeries: ... def div_i16_rhs(self, other: int) -> PySeries: ... def div_i32_rhs(self, other: int) -> PySeries: ... def div_i64_rhs(self, other: int) -> PySeries: ... def div_f32_rhs(self, other: float) -> PySeries: ... def div_f64_rhs(self, other: float) -> PySeries: ... def mul_u8_rhs(self, other: int) -> PySeries: ... def mul_u16_rhs(self, other: int) -> PySeries: ... def mul_u32_rhs(self, other: int) -> PySeries: ... def mul_u64_rhs(self, other: int) -> PySeries: ... def mul_i8_rhs(self, other: int) -> PySeries: ... def mul_i16_rhs(self, other: int) -> PySeries: ... def mul_i32_rhs(self, other: int) -> PySeries: ... def mul_i64_rhs(self, other: int) -> PySeries: ... def mul_f32_rhs(self, other: float) -> PySeries: ... def mul_f64_rhs(self, other: float) -> PySeries: ... def rem_u8_rhs(self, other: int) -> PySeries: ... def rem_u16_rhs(self, other: int) -> PySeries: ... def rem_u32_rhs(self, other: int) -> PySeries: ... def rem_u64_rhs(self, other: int) -> PySeries: ... def rem_i8_rhs(self, other: int) -> PySeries: ... def rem_i16_rhs(self, other: int) -> PySeries: ... def rem_i32_rhs(self, other: int) -> PySeries: ... def rem_i64_rhs(self, other: int) -> PySeries: ... def rem_f32_rhs(self, other: float) -> PySeries: ... def rem_f64_rhs(self, other: float) -> PySeries: ... # buffers @staticmethod def _from_buffers( dtype: Any, data: Sequence[PySeries], validity: PySeries | None, ) -> PySeries: ... @staticmethod def _from_buffer( dtype: DataType, buffer_info: BufferInfo, owner: Any, ) -> PySeries: ... def _get_buffer_info(self) -> BufferInfo: ... def _get_buffers(self) -> tuple[PySeries, PySeries | None, PySeries | None]: ... # c_interface @staticmethod def _import_arrow_from_c( name: str, chunks: Sequence[tuple[int, int]] ) -> PySeries: ... def _export_arrow_to_c(self, out_ptr: int, out_schema_ptr: int) -> None: ... # comparison # Comparison with another PySeries def eq(self, rhs: PySeries) -> PySeries: ... def neq(self, rhs: PySeries) -> PySeries: ... def gt(self, rhs: PySeries) -> PySeries: ... def gt_eq(self, rhs: PySeries) -> PySeries: ... def lt(self, rhs: PySeries) -> PySeries: ... def lt_eq(self, rhs: PySeries) -> PySeries: ... # Comparison with scalar values def eq_u8(self, rhs: int) -> PySeries: ... def eq_u16(self, rhs: int) -> PySeries: ... def eq_u32(self, rhs: int) -> PySeries: ... def eq_u64(self, rhs: int) -> PySeries: ... def eq_i8(self, rhs: int) -> PySeries: ... def eq_i16(self, rhs: int) -> PySeries: ... def eq_i32(self, rhs: int) -> PySeries: ... def eq_i64(self, rhs: int) -> PySeries: ... def eq_i128(self, rhs: int) -> PySeries: ... def eq_f32(self, rhs: float) -> PySeries: ... def eq_f64(self, rhs: float) -> PySeries: ... def eq_str(self, rhs: str) -> PySeries: ... def eq_decimal(self, rhs: Any) -> PySeries: ... def neq_u8(self, rhs: int) -> PySeries: ... def neq_u16(self, rhs: int) -> PySeries: ... def neq_u32(self, rhs: int) -> PySeries: ... def neq_u64(self, rhs: int) -> PySeries: ... def neq_i8(self, rhs: int) -> PySeries: ... def neq_i16(self, rhs: int) -> PySeries: ... def neq_i32(self, rhs: int) -> PySeries: ... def neq_i64(self, rhs: int) -> PySeries: ... def neq_i128(self, rhs: int) -> PySeries: ... def neq_f32(self, rhs: float) -> PySeries: ... def neq_f64(self, rhs: float) -> PySeries: ... def neq_str(self, rhs: str) -> PySeries: ... def neq_decimal(self, rhs: Any) -> PySeries: ... def gt_u8(self, rhs: int) -> PySeries: ... def gt_u16(self, rhs: int) -> PySeries: ... def gt_u32(self, rhs: int) -> PySeries: ... def gt_u64(self, rhs: int) -> PySeries: ... def gt_i8(self, rhs: int) -> PySeries: ... def gt_i16(self, rhs: int) -> PySeries: ... def gt_i32(self, rhs: int) -> PySeries: ... def gt_i64(self, rhs: int) -> PySeries: ... def gt_i128(self, rhs: int) -> PySeries: ... def gt_f32(self, rhs: float) -> PySeries: ... def gt_f64(self, rhs: float) -> PySeries: ... def gt_str(self, rhs: str) -> PySeries: ... def gt_decimal(self, rhs: Any) -> PySeries: ... def gt_eq_u8(self, rhs: int) -> PySeries: ... def gt_eq_u16(self, rhs: int) -> PySeries: ... def gt_eq_u32(self, rhs: int) -> PySeries: ... def gt_eq_u64(self, rhs: int) -> PySeries: ... def gt_eq_i8(self, rhs: int) -> PySeries: ... def gt_eq_i16(self, rhs: int) -> PySeries: ... def gt_eq_i32(self, rhs: int) -> PySeries: ... def gt_eq_i64(self, rhs: int) -> PySeries: ... def gt_eq_i128(self, rhs: int) -> PySeries: ... def gt_eq_f32(self, rhs: float) -> PySeries: ... def gt_eq_f64(self, rhs: float) -> PySeries: ... def gt_eq_str(self, rhs: str) -> PySeries: ... def gt_eq_decimal(self, rhs: Any) -> PySeries: ... def lt_u8(self, rhs: int) -> PySeries: ... def lt_u16(self, rhs: int) -> PySeries: ... def lt_u32(self, rhs: int) -> PySeries: ... def lt_u64(self, rhs: int) -> PySeries: ... def lt_i8(self, rhs: int) -> PySeries: ... def lt_i16(self, rhs: int) -> PySeries: ... def lt_i32(self, rhs: int) -> PySeries: ... def lt_i64(self, rhs: int) -> PySeries: ... def lt_i128(self, rhs: int) -> PySeries: ... def lt_f32(self, rhs: float) -> PySeries: ... def lt_f64(self, rhs: float) -> PySeries: ... def lt_str(self, rhs: str) -> PySeries: ... def lt_decimal(self, rhs: Any) -> PySeries: ... def lt_eq_u8(self, rhs: int) -> PySeries: ... def lt_eq_u16(self, rhs: int) -> PySeries: ... def lt_eq_u32(self, rhs: int) -> PySeries: ... def lt_eq_u64(self, rhs: int) -> PySeries: ... def lt_eq_i8(self, rhs: int) -> PySeries: ... def lt_eq_i16(self, rhs: int) -> PySeries: ... def lt_eq_i32(self, rhs: int) -> PySeries: ... def lt_eq_i64(self, rhs: int) -> PySeries: ... def lt_eq_i128(self, rhs: int) -> PySeries: ... def lt_eq_f32(self, rhs: float) -> PySeries: ... def lt_eq_f64(self, rhs: float) -> PySeries: ... def lt_eq_str(self, rhs: str) -> PySeries: ... def lt_eq_decimal(self, rhs: Any) -> PySeries: ... # construction @staticmethod def new_i8(name: str, array: NDArray1D, _strict: bool) -> PySeries: ... @staticmethod def new_i16(name: str, array: NDArray1D, _strict: bool) -> PySeries: ... @staticmethod def new_i32(name: str, array: NDArray1D, _strict: bool) -> PySeries: ... @staticmethod def new_i64(name: str, array: NDArray1D, _strict: bool) -> PySeries: ... @staticmethod def new_u8(name: str, array: NDArray1D, _strict: bool) -> PySeries: ... @staticmethod def new_u16(name: str, array: NDArray1D, _strict: bool) -> PySeries: ... @staticmethod def new_u32(name: str, array: NDArray1D, _strict: bool) -> PySeries: ... @staticmethod def new_u64(name: str, array: NDArray1D, _strict: bool) -> PySeries: ... @staticmethod def new_bool(name: str, array: NDArray1D, _strict: bool) -> PySeries: ... @staticmethod def new_f32(name: str, array: NDArray1D, nan_is_null: bool) -> PySeries: ... @staticmethod def new_f64(name: str, array: NDArray1D, nan_is_null: bool) -> PySeries: ... @staticmethod def new_opt_bool(name: str, values: Any, _strict: bool) -> PySeries: ... @staticmethod def new_opt_u8(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_u16(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_u32(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_u64(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_u128(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_i8(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_i16(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_i32(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_i64(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_i128(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_f32(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_opt_f64(name: str, obj: Any, strict: bool) -> PySeries: ... @staticmethod def new_from_any_values(name: str, values: Any, strict: bool) -> PySeries: ... @staticmethod def new_from_any_values_and_dtype( name: str, values: Any, dtype: DataType, strict: bool ) -> PySeries: ... @staticmethod def new_str(name: str, values: Any, _strict: bool) -> PySeries: ... @staticmethod def new_binary(name: str, values: Any, _strict: bool) -> PySeries: ... @staticmethod def new_decimal(name: str, values: Any, strict: bool) -> PySeries: ... @staticmethod def new_series_list( name: str, values: Sequence[PySeries | None], _strict: bool ) -> PySeries: ... @staticmethod def new_array( name: str, values: Any, strict: bool, dtype: DataType ) -> PySeries: ... @staticmethod def new_object(name: str, values: Sequence[Any], _strict: bool) -> PySeries: ... @staticmethod def new_null(name: str, values: Any, _strict: bool) -> PySeries: ... @staticmethod def from_arrow(name: str, array: Any) -> PySeries: ... # export def to_list(self) -> list[Any]: ... def to_arrow(self, compat_level: Any) -> Any: ... def __arrow_c_stream__(self, requested_schema: Any | None) -> Any: ... def _export(self, location: int) -> None: ... # import @classmethod def from_arrow_c_array(cls, ob: Any) -> PySeries: ... @classmethod def from_arrow_c_stream(cls, ob: Any) -> PySeries: ... @classmethod def _import(cls, location: int) -> PySeries: ... # numpy ufunc def apply_ufunc_f32(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... def apply_ufunc_f64(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... def apply_ufunc_u8(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... def apply_ufunc_u16(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... def apply_ufunc_u32(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... def apply_ufunc_u64(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... def apply_ufunc_i8(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... def apply_ufunc_i16(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... def apply_ufunc_i32(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... def apply_ufunc_i64(self, lambda_func: Any, allocate_out: bool) -> PySeries: ... # scatter def scatter(self, idx: PySeries, values: PySeries) -> None: ... # interop def to_numpy(self, writable: bool, allow_copy: bool) -> Any: ... def to_numpy_view(self) -> Any | None: ... @staticmethod def _import_decimal_from_iceberg_binary_repr( *, bytes_list: Sequence[bytes | None], precision: int, scale: int ) -> PySeries: ... class PyDataFrame: # general @overload def __init__(self, columns: Sequence[PySeries]) -> None: ... @overload def __init__(self, data: Any, columns: Any, orient: Any) -> None: ... @overload def __init__(self, schema: dict[str, Any]) -> None: ... def estimated_size(self) -> int: ... def dtype_strings(self) -> list[str]: ... def add(self, s: PySeries) -> PyDataFrame: ... def sub(self, s: PySeries) -> PyDataFrame: ... def mul(self, s: PySeries) -> PyDataFrame: ... def div(self, s: PySeries) -> PyDataFrame: ... def rem(self, s: PySeries) -> PyDataFrame: ... def add_df(self, s: PyDataFrame) -> PyDataFrame: ... def sub_df(self, s: PyDataFrame) -> PyDataFrame: ... def mul_df(self, s: PyDataFrame) -> PyDataFrame: ... def div_df(self, s: PyDataFrame) -> PyDataFrame: ... def rem_df(self, s: PyDataFrame) -> PyDataFrame: ... def sample_n( self, n: PySeries, with_replacement: bool, shuffle: bool, seed: int | None ) -> PyDataFrame: ... def sample_frac( self, frac: PySeries, with_replacement: bool, shuffle: bool, seed: int | None, ) -> PyDataFrame: ... def rechunk(self) -> PyDataFrame: ... def as_str(self) -> str: ... def get_columns(self) -> list[PySeries]: ... def columns(self) -> list[str]: ... def set_column_names(self, names: Sequence[str]) -> None: ... def dtypes(self) -> list[Any]: ... def n_chunks(self) -> int: ... def shape(self) -> tuple[int, int]: ... def height(self) -> int: ... def width(self) -> int: ... def is_empty(self) -> bool: ... def hstack(self, columns: Sequence[PySeries]) -> PyDataFrame: ... def hstack_mut(self, columns: Sequence[PySeries]) -> None: ... def vstack(self, other: PyDataFrame) -> PyDataFrame: ... def vstack_mut(self, other: PyDataFrame) -> None: ... def extend(self, other: PyDataFrame) -> None: ... def drop_in_place(self, name: str) -> PySeries: ... def to_series(self, index: int) -> PySeries: ... def get_column_index(self, name: str) -> int: ... def get_column(self, name: str) -> PySeries: ... def select(self, columns: Sequence[str]) -> PyDataFrame: ... def gather(self, indices: Sequence[int]) -> PyDataFrame: ... def gather_with_series(self, indices: PySeries) -> PyDataFrame: ... def replace(self, column: str, new_col: PySeries) -> None: ... def replace_column(self, index: int, new_column: PySeries) -> None: ... def insert_column(self, index: int, column: PySeries) -> None: ... def slice(self, offset: int, length: int | None) -> PyDataFrame: ... def head(self, n: int) -> PyDataFrame: ... def tail(self, n: int) -> PyDataFrame: ... def is_unique(self) -> PySeries: ... def is_duplicated(self) -> PySeries: ... def equals(self, other: PyDataFrame, null_equal: bool) -> bool: ... def with_row_index(self, name: str, offset: int | None) -> PyDataFrame: ... def _to_metadata(self) -> PyDataFrame: ... def group_by_map_groups( self, by: Sequence[str], lambda_func: Any, maintain_order: bool ) -> PyDataFrame: ... def clone(self) -> PyDataFrame: ... def unpivot( self, on: Sequence[str], index: Sequence[str], value_name: str | None, variable_name: str | None, ) -> PyDataFrame: ... def pivot_expr( self, on: Sequence[str], index: Sequence[str] | None, values: Sequence[str] | None, maintain_order: bool, sort_columns: bool, aggregate_expr: Any | None, separator: str | None, ) -> PyDataFrame: ... def partition_by( self, by: Sequence[str], maintain_order: bool, include_key: bool ) -> list[PyDataFrame]: ... def lazy(self) -> PyLazyFrame: ... def to_dummies( self, columns: Sequence[str] | None, separator: str | None, drop_first: bool, drop_nulls: bool, ) -> PyDataFrame: ... def null_count(self) -> PyDataFrame: ... def map_rows( self, lambda_func: Any, output_type: Any | None, inference_size: int, ) -> tuple[Any, bool]: ... def shrink_to_fit(self) -> None: ... def hash_rows(self, k0: int, k1: int, k2: int, k3: int) -> PySeries: ... def transpose( self, keep_names_as: str | None, column_names: None | str | Sequence[str] ) -> PyDataFrame: ... def upsample( self, by: Sequence[str], index_column: str, every: str, stable: bool, ) -> PyDataFrame: ... def to_struct(self, name: str, invalid_indices: Sequence[int]) -> PySeries: ... def clear(self) -> PyDataFrame: ... def _export_columns(self, location: int) -> None: ... @classmethod def _import_columns(cls, location: int, width: int) -> PyDataFrame: ... def _row_encode(self, opts: Sequence[tuple[bool, bool, bool]]) -> PySeries: ... # construction @staticmethod def from_rows( data: Sequence[PySeries], schema: Any | None, infer_schema_length: int | None, ) -> PyDataFrame: ... @staticmethod def from_dicts( data: Any, schema: Any | None, schema_overrides: Any | None, strict: bool, infer_schema_length: int | None, ) -> PyDataFrame: ... @staticmethod def from_arrow_record_batches( rb: Sequence[Any], schema: Any, ) -> PyDataFrame: ... # export def row_tuple(self, idx: int) -> tuple[Any, ...]: ... def row_tuples(self) -> list[tuple[Any, ...]]: ... def to_arrow(self, compat_level: Any) -> list[Any]: ... def to_pandas(self) -> list[Any]: ... def __arrow_c_stream__(self, requested_schema: Any | None) -> Any: ... # io @staticmethod def read_csv( py_f: Any, infer_schema_length: int | None, chunk_size: int, has_header: bool, ignore_errors: bool, n_rows: int | None, skip_rows: int, skip_lines: int, projection: Sequence[int] | None, separator: str, rechunk: bool, columns: Sequence[str] | None, encoding: Any, n_threads: int | None, path: str | None, overwrite_dtype: Sequence[tuple[str, DataType]] | None, overwrite_dtype_slice: Sequence[DataType] | None, low_memory: bool, comment_prefix: str | None, quote_char: str | None, null_values: Any | None, missing_utf8_is_empty_string: bool, try_parse_dates: bool, skip_rows_after_header: int, row_index: tuple[str, int] | None, eol_char: str, raise_if_empty: bool, truncate_ragged_lines: bool, decimal_comma: bool, schema: Any | None, ) -> PyDataFrame: ... @staticmethod def read_json( py_f: Any, infer_schema_length: int | None, schema: Any | None, schema_overrides: Any | None, ) -> PyDataFrame: ... @staticmethod def read_ipc( py_f: Any, columns: Sequence[str] | None, projection: Sequence[int] | None, n_rows: int | None, row_index: tuple[str, int] | None, memory_map: bool, ) -> PyDataFrame: ... @staticmethod def read_ipc_stream( py_f: Any, columns: Sequence[str] | None, projection: Sequence[int] | None, n_rows: int | None, row_index: tuple[str, int] | None, rechunk: bool, ) -> PyDataFrame: ... @staticmethod def read_avro( py_f: Any, columns: Sequence[str] | None, projection: Sequence[int] | None, n_rows: int | None, ) -> PyDataFrame: ... def write_json(self, py_f: Any) -> None: ... def write_ipc_stream( self, py_f: Any, compression: Any, compat_level: Any ) -> None: ... def write_avro(self, py_f: Any, compression: Any, name: str) -> None: ... # serde def serialize_binary(self, py_f: Any) -> None: ... @staticmethod def deserialize_binary(py_f: Any) -> PyDataFrame: ... def serialize_json(self, py_f: Any) -> None: ... @staticmethod def deserialize_json(py_f: Any) -> PyDataFrame: ... # interop def to_numpy( self, order: IndexOrder, writable: bool, allow_copy: bool, ) -> Any: ... class PyLazyFrame: @staticmethod def new_from_ndjson( source: Any | None, sources: Any, infer_schema_length: int | None, schema: Any | None, schema_overrides: Any | None, batch_size: int | None, n_rows: int | None, low_memory: bool, rechunk: bool, row_index: tuple[str, int] | None, ignore_errors: bool, include_file_paths: str | None, cloud_options: dict[str, Any] | None, credential_provider: Any | None, retries: int, file_cache_ttl: int | None, ) -> PyLazyFrame: ... @staticmethod def new_from_csv( source: Any | None, sources: Any, separator: str, has_header: bool, ignore_errors: bool, skip_rows: int, skip_lines: int, n_rows: int | None, cache: bool, overwrite_dtype: Sequence[tuple[str, Any]] | None, low_memory: bool, comment_prefix: str | None, quote_char: str | None, null_values: Any | None, missing_utf8_is_empty_string: bool, infer_schema_length: int | None, with_schema_modify: Any | None, rechunk: bool, skip_rows_after_header: int, encoding: Any, row_index: tuple[str, int] | None, try_parse_dates: bool, eol_char: str, raise_if_empty: bool, truncate_ragged_lines: bool, decimal_comma: bool, glob: bool, schema: Any | None, cloud_options: dict[str, Any] | None, credential_provider: Any | None, retries: int, file_cache_ttl: int | None, include_file_paths: str | None, ) -> PyLazyFrame: ... @staticmethod def new_from_parquet( sources: Any, schema: Any | None, scan_options: ScanOptions, parallel: Any, low_memory: bool, use_statistics: bool, ) -> PyLazyFrame: ... @staticmethod def new_from_ipc( sources: Any, scan_options: ScanOptions, file_cache_ttl: int | None, ) -> PyLazyFrame: ... @staticmethod def new_from_dataset_object(dataset_object: Any) -> PyLazyFrame: ... @staticmethod def scan_from_python_function_arrow_schema( schema: Any, scan_fn: Any, pyarrow: bool, validate_schema: bool, is_pure: bool ) -> PyLazyFrame: ... @staticmethod def scan_from_python_function_pl_schema( schema: Sequence[tuple[str, Any]], scan_fn: Any, pyarrow: bool, validate_schema: bool, is_pure: bool, ) -> PyLazyFrame: ... @staticmethod def scan_from_python_function_schema_function( schema_fn: Any, scan_fn: Any, validate_schema: bool, is_pure: bool ) -> PyLazyFrame: ... def pipe_with_schema( self, callback: Callable[[tuple[PyLazyFrame, Schema]], PyLazyFrame] ) -> PyLazyFrame: ... def describe_plan(self) -> str: ... def describe_optimized_plan(self) -> str: ... def describe_plan_tree(self) -> str: ... def describe_optimized_plan_tree(self) -> str: ... def to_dot(self, optimized: bool) -> str: ... def to_dot_streaming_phys(self, optimized: bool) -> str: ... def optimization_toggle( self, type_coercion: bool, type_check: bool, predicate_pushdown: bool, projection_pushdown: bool, simplify_expression: bool, slice_pushdown: bool, comm_subplan_elim: bool, comm_subexpr_elim: bool, cluster_with_columns: bool, _eager: bool, _check_order: bool, new_streaming: bool, ) -> PyLazyFrame: ... def sort( self, by_column: str, descending: bool, nulls_last: bool, maintain_order: bool, multithreaded: bool, ) -> PyLazyFrame: ... def sort_by_exprs( self, by: Sequence[PyExpr], descending: Sequence[bool], nulls_last: Sequence[bool], maintain_order: bool, multithreaded: bool, ) -> PyLazyFrame: ... def top_k( self, k: int, by: Sequence[PyExpr], reverse: Sequence[bool] ) -> PyLazyFrame: ... def bottom_k( self, k: int, by: Sequence[PyExpr], reverse: Sequence[bool] ) -> PyLazyFrame: ... def cache(self) -> PyLazyFrame: ... def with_optimizations(self, optflags: PyOptFlags) -> PyLazyFrame: ... def profile( self, lambda_post_opt: Any | None ) -> tuple[PyDataFrame, PyDataFrame]: ... def collect(self, engine: Any, lambda_post_opt: Any | None) -> PyDataFrame: ... def collect_with_callback(self, engine: Any, lambda_func: Any) -> None: ... def sink_parquet( self, target: SinkTarget, compression: str, compression_level: int | None, statistics: StatisticsOptions, row_group_size: int | None, data_page_size: int | None, cloud_options: dict[str, Any] | None, credential_provider: Any | None, retries: int, sink_options: Any, metadata: KeyValueMetadata | None, field_overwrites: Sequence[ParquetFieldOverwrites], ) -> PyLazyFrame: ... def sink_ipc( self, target: SinkTarget, compression: IpcCompression | None, compat_level: CompatLevel, cloud_options: dict[str, Any] | None, credential_provider: Any | None, retries: int, sink_options: Any, ) -> PyLazyFrame: ... def sink_csv( self, target: SinkTarget, include_bom: bool, include_header: bool, separator: int, line_terminator: str, quote_char: int, batch_size: int, datetime_format: str | None, date_format: str | None, time_format: str | None, float_scientific: bool | None, float_precision: int | None, decimal_comma: bool, null_value: str | None, quote_style: QuoteStyle | None, cloud_options: dict[str, Any] | None, credential_provider: Any | None, retries: int, sink_options: Any, ) -> PyLazyFrame: ... def sink_json( self, target: SinkTarget, cloud_options: dict[str, Any] | None, credential_provider: Any | None, retries: int, sink_options: Any, ) -> PyLazyFrame: ... def sink_batches( self, function: Callable[[PyDataFrame], bool], maintain_order: bool, chunk_size: int | None, ) -> PyLazyFrame: ... def filter(self, predicate: PyExpr) -> PyLazyFrame: ... def remove(self, predicate: PyExpr) -> PyLazyFrame: ... def select(self, exprs: Sequence[PyExpr]) -> PyLazyFrame: ... def select_seq(self, exprs: Sequence[PyExpr]) -> PyLazyFrame: ... def group_by(self, by: Sequence[PyExpr], maintain_order: bool) -> PyLazyGroupBy: ... def rolling( self, index_column: PyExpr, period: str, offset: str, closed: ClosedWindow, by: Sequence[PyExpr], ) -> PyLazyGroupBy: ... def group_by_dynamic( self, index_column: PyExpr, every: str, period: str, offset: str, label: Label, include_boundaries: bool, closed: ClosedWindow, group_by: Sequence[PyExpr], start_by: StartBy, ) -> PyLazyGroupBy: ... def with_context(self, contexts: Sequence[PyLazyFrame]) -> PyLazyFrame: ... def join_asof( self, other: PyLazyFrame, left_on: PyExpr, right_on: PyExpr, left_by: Sequence[str] | None, right_by: Sequence[str] | None, allow_parallel: bool, force_parallel: bool, suffix: str, strategy: AsofStrategy, tolerance: Any | None, tolerance_str: str | None, coalesce: bool, allow_eq: bool, check_sortedness: bool, ) -> PyLazyFrame: ... def join( self, other: PyLazyFrame, left_on: Sequence[PyExpr], right_on: Sequence[PyExpr], allow_parallel: bool, force_parallel: bool, nulls_equal: bool, how: JoinType, suffix: str, validate: JoinValidation, maintain_order: MaintainOrderJoin, coalesce: bool | None, ) -> PyLazyFrame: ... def join_where( self, other: PyLazyFrame, predicates: Sequence[PyExpr], suffix: str ) -> PyLazyFrame: ... def with_columns(self, exprs: Sequence[PyExpr]) -> PyLazyFrame: ... def with_columns_seq(self, exprs: Sequence[PyExpr]) -> PyLazyFrame: ... def match_to_schema( self, schema: Schema, missing_columns: Any, missing_struct_fields: Any, extra_columns: ExtraColumnsPolicy, extra_struct_fields: Any, integer_cast: Any, float_cast: Any, ) -> PyLazyFrame: ... def rename( self, existing: Sequence[str], new: Sequence[str], strict: bool ) -> PyLazyFrame: ... def reverse(self) -> PyLazyFrame: ... def shift(self, n: PyExpr, fill_value: PyExpr | None) -> PyLazyFrame: ... def fill_nan(self, fill_value: PyExpr) -> PyLazyFrame: ... def min(self) -> PyLazyFrame: ... def max(self) -> PyLazyFrame: ... def sum(self) -> PyLazyFrame: ... def mean(self) -> PyLazyFrame: ... def std(self, ddof: int) -> PyLazyFrame: ... def var(self, ddof: int) -> PyLazyFrame: ... def median(self) -> PyLazyFrame: ... def quantile( self, quantile: PyExpr, interpolation: QuantileMethod ) -> PyLazyFrame: ... def explode(self, subset: PySelector) -> PyLazyFrame: ... def null_count(self) -> PyLazyFrame: ... def unique( self, maintain_order: bool, subset: PySelector | None, keep: UniqueKeepStrategy, ) -> PyLazyFrame: ... def drop_nans(self, subset: PySelector | None) -> PyLazyFrame: ... def drop_nulls(self, subset: PySelector | None) -> PyLazyFrame: ... def slice(self, offset: int, len: int | None) -> PyLazyFrame: ... def tail(self, n: int) -> PyLazyFrame: ... def unpivot( self, on: PySelector, index: PySelector, value_name: str | None, variable_name: str | None, ) -> PyLazyFrame: ... def with_row_index(self, name: str, offset: int | None = None) -> PyLazyFrame: ... def map_batches( self, function: Any, predicate_pushdown: bool, projection_pushdown: bool, slice_pushdown: bool, streamable: bool, schema: Schema | None, validate_output: bool, ) -> PyLazyFrame: ... def drop(self, columns: PySelector) -> PyLazyFrame: ... def cast(self, dtypes: dict[str, DataType], strict: bool) -> PyLazyFrame: ... def cast_all(self, dtype: PyDataTypeExpr, strict: bool) -> PyLazyFrame: ... def clone(self) -> PyLazyFrame: ... def collect_schema(self) -> dict[str, Any]: ... def unnest(self, columns: PySelector, separator: str | None) -> PyLazyFrame: ... def count(self) -> PyLazyFrame: ... def merge_sorted(self, other: PyLazyFrame, key: str) -> PyLazyFrame: ... def hint_sorted( self, columns: list[str], descending: list[bool], nulls_last: list[bool] ) -> PyLazyFrame: ... # exitable def collect_concurrently(self) -> PyInProcessQuery: ... # serde def serialize_binary(self, py_f: Any) -> None: ... def serialize_json(self, py_f: Any) -> None: ... @staticmethod def deserialize_binary(py_f: Any) -> PyLazyFrame: ... @staticmethod def deserialize_json(py_f: Any) -> PyLazyFrame: ... # visit def visit(self) -> NodeTraverser: ... class PyInProcessQuery: def cancel(self) -> None: ... def fetch(self) -> PyDataFrame | None: ... def fetch_blocking(self) -> PyDataFrame: ... class PyExpr: def __init__(self, inner: Any) -> None: ... def __richcmp__(self, other: PyExpr, op: Any) -> PyExpr: ... def __add__(self, rhs: PyExpr) -> PyExpr: ... def __sub__(self, rhs: PyExpr) -> PyExpr: ... def __mul__(self, rhs: PyExpr) -> PyExpr: ... def __truediv__(self, rhs: PyExpr) -> PyExpr: ... def __mod__(self, rhs: PyExpr) -> PyExpr: ... def __floordiv__(self, rhs: PyExpr) -> PyExpr: ... def __neg__(self) -> PyExpr: ... def to_str(self) -> str: ... def eq(self, other: PyExpr) -> PyExpr: ... def eq_missing(self, other: PyExpr) -> PyExpr: ... def neq(self, other: PyExpr) -> PyExpr: ... def neq_missing(self, other: PyExpr) -> PyExpr: ... def gt(self, other: PyExpr) -> PyExpr: ... def gt_eq(self, other: PyExpr) -> PyExpr: ... def lt_eq(self, other: PyExpr) -> PyExpr: ... def lt(self, other: PyExpr) -> PyExpr: ... def alias(self, name: str) -> PyExpr: ... def not_(self) -> PyExpr: ... def is_null(self) -> PyExpr: ... def is_not_null(self) -> PyExpr: ... def is_infinite(self) -> PyExpr: ... def is_finite(self) -> PyExpr: ... def is_nan(self) -> PyExpr: ... def is_not_nan(self) -> PyExpr: ... def min(self) -> PyExpr: ... def max(self) -> PyExpr: ... def nan_max(self) -> PyExpr: ... def nan_min(self) -> PyExpr: ... def mean(self) -> PyExpr: ... def median(self) -> PyExpr: ... def sum(self) -> PyExpr: ... def n_unique(self) -> PyExpr: ... def arg_unique(self) -> PyExpr: ... def unique(self) -> PyExpr: ... def unique_stable(self) -> PyExpr: ... def first(self) -> PyExpr: ... def last(self) -> PyExpr: ... def item(self, *, allow_empty: bool) -> PyExpr: ... def implode(self) -> PyExpr: ... def quantile(self, quantile: PyExpr, interpolation: Any) -> PyExpr: ... def cut( self, breaks: Sequence[float], labels: Sequence[str] | None, left_closed: bool, include_breaks: bool, ) -> PyExpr: ... def qcut( self, probs: Sequence[float], labels: Sequence[str] | None, left_closed: bool, allow_duplicates: bool, include_breaks: bool, ) -> PyExpr: ... def qcut_uniform( self, n_bins: int, labels: Sequence[str] | None, left_closed: bool, allow_duplicates: bool, include_breaks: bool, ) -> PyExpr: ... def rle(self) -> PyExpr: ... def rle_id(self) -> PyExpr: ... def agg_groups(self) -> PyExpr: ... def count(self) -> PyExpr: ... def len(self) -> PyExpr: ... def value_counts( self, sort: bool, parallel: bool, name: str, normalize: bool ) -> PyExpr: ... def unique_counts(self) -> PyExpr: ... def null_count(self) -> PyExpr: ... def cast( self, dtype: PyDataTypeExpr, strict: bool, wrap_numerical: bool ) -> PyExpr: ... def sort_with(self, descending: bool, nulls_last: bool) -> PyExpr: ... def arg_sort(self, descending: bool, nulls_last: bool) -> PyExpr: ... def top_k(self, k: PyExpr) -> PyExpr: ... def top_k_by( self, by: Sequence[PyExpr], k: PyExpr, reverse: Sequence[bool] ) -> PyExpr: ... def bottom_k(self, k: PyExpr) -> PyExpr: ... def bottom_k_by( self, by: Sequence[PyExpr], k: PyExpr, reverse: Sequence[bool] ) -> PyExpr: ... def peak_min(self) -> PyExpr: ... def peak_max(self) -> PyExpr: ... def arg_max(self) -> PyExpr: ... def arg_min(self) -> PyExpr: ... def index_of(self, element: PyExpr) -> PyExpr: ... def search_sorted(self, element: PyExpr, side: Any, descending: bool) -> PyExpr: ... def gather(self, idx: PyExpr) -> PyExpr: ... def get(self, idx: PyExpr) -> PyExpr: ... def sort_by( self, by: Sequence[PyExpr], descending: Sequence[bool], nulls_last: Sequence[bool], multithreaded: bool, maintain_order: bool, ) -> PyExpr: ... def shift(self, n: PyExpr, fill_value: PyExpr | None) -> PyExpr: ... def fill_null(self, expr: PyExpr) -> PyExpr: ... def fill_null_with_strategy(self, strategy: str, limit: Any) -> PyExpr: ... def fill_nan(self, expr: PyExpr) -> PyExpr: ... def drop_nulls(self) -> PyExpr: ... def drop_nans(self) -> PyExpr: ... def filter(self, predicate: PyExpr) -> PyExpr: ... def reverse(self) -> PyExpr: ... def std(self, ddof: int) -> PyExpr: ... def var(self, ddof: int) -> PyExpr: ... def is_unique(self) -> PyExpr: ... def is_between(self, lower: PyExpr, upper: PyExpr, closed: Any) -> PyExpr: ... def is_close( self, other: PyExpr, abs_tol: float, rel_tol: float, nans_equal: bool ) -> PyExpr: ... def approx_n_unique(self) -> PyExpr: ... def is_first_distinct(self) -> PyExpr: ... def is_last_distinct(self) -> PyExpr: ... def explode(self) -> PyExpr: ... def gather_every(self, n: int, offset: int) -> PyExpr: ... def slice(self, offset: PyExpr, length: PyExpr) -> PyExpr: ... def append(self, other: PyExpr, upcast: bool) -> PyExpr: ... def rechunk(self) -> PyExpr: ... def round(self, decimals: int, mode: Any) -> PyExpr: ... def round_sig_figs(self, digits: int) -> PyExpr: ... def floor(self) -> PyExpr: ... def ceil(self) -> PyExpr: ... def clip(self, min: PyExpr | None, max: PyExpr | None) -> PyExpr: ... def abs(self) -> PyExpr: ... def sin(self) -> PyExpr: ... def cos(self) -> PyExpr: ... def tan(self) -> PyExpr: ... def cot(self) -> PyExpr: ... def arcsin(self) -> PyExpr: ... def arccos(self) -> PyExpr: ... def arctan(self) -> PyExpr: ... def arctan2(self, y: PyExpr) -> PyExpr: ... def sinh(self) -> PyExpr: ... def cosh(self) -> PyExpr: ... def tanh(self) -> PyExpr: ... def arcsinh(self) -> PyExpr: ... def arccosh(self) -> PyExpr: ... def arctanh(self) -> PyExpr: ... def degrees(self) -> PyExpr: ... def radians(self) -> PyExpr: ... def sign(self) -> PyExpr: ... def is_duplicated(self) -> PyExpr: ... def over( self, partition_by: Sequence[PyExpr] | None, order_by: Sequence[PyExpr] | None, order_by_descending: bool, order_by_nulls_last: bool, mapping_strategy: Any, ) -> PyExpr: ... def rolling( self, index_column: str, period: str, offset: str, closed: Any ) -> PyExpr: ... def and_(self, expr: PyExpr) -> PyExpr: ... def or_(self, expr: PyExpr) -> PyExpr: ... def xor_(self, expr: PyExpr) -> PyExpr: ... def is_in(self, expr: PyExpr, nulls_equal: bool) -> PyExpr: ... def repeat_by(self, by: PyExpr) -> PyExpr: ... def pow(self, exponent: PyExpr) -> PyExpr: ... def sqrt(self) -> PyExpr: ... def cbrt(self) -> PyExpr: ... def cum_sum(self, reverse: bool) -> PyExpr: ... def cum_max(self, reverse: bool) -> PyExpr: ... def cum_min(self, reverse: bool) -> PyExpr: ... def cum_prod(self, reverse: bool) -> PyExpr: ... def cum_count(self, reverse: bool) -> PyExpr: ... def cumulative_eval(self, expr: PyExpr, min_samples: int) -> PyExpr: ... def product(self) -> PyExpr: ... def shrink_dtype(self) -> PyExpr: ... def dot(self, other: PyExpr) -> PyExpr: ... def reinterpret(self, signed: bool) -> PyExpr: ... def mode(self) -> PyExpr: ... def interpolate(self, method: Any) -> PyExpr: ... def interpolate_by(self, by: PyExpr) -> PyExpr: ... def lower_bound(self) -> PyExpr: ... def upper_bound(self) -> PyExpr: ... def rank(self, method: Any, descending: bool, seed: int | None) -> PyExpr: ... def diff(self, n: PyExpr, null_behavior: Any) -> PyExpr: ... def pct_change(self, n: PyExpr) -> PyExpr: ... def skew(self, bias: bool) -> PyExpr: ... def kurtosis(self, fisher: bool, bias: bool) -> PyExpr: ... def reshape(self, dims: Sequence[int]) -> PyExpr: ... def to_physical(self) -> PyExpr: ... def shuffle(self, seed: int | None) -> PyExpr: ... def sample_n( self, n: PyExpr, with_replacement: bool, shuffle: bool, seed: int | None ) -> PyExpr: ... def sample_frac( self, frac: PyExpr, with_replacement: bool, shuffle: bool, seed: int | None ) -> PyExpr: ... def ewm_mean( self, alpha: float, adjust: bool, min_periods: int, ignore_nulls: bool ) -> PyExpr: ... def ewm_mean_by(self, times: PyExpr, half_life: str) -> PyExpr: ... def ewm_std( self, alpha: float, adjust: bool, bias: bool, min_periods: int, ignore_nulls: bool, ) -> PyExpr: ... def ewm_var( self, alpha: float, adjust: bool, bias: bool, min_periods: int, ignore_nulls: bool, ) -> PyExpr: ... def extend_constant(self, value: PyExpr, n: PyExpr) -> PyExpr: ... def any(self, ignore_nulls: bool) -> PyExpr: ... def all(self, ignore_nulls: bool) -> PyExpr: ... def log(self, base: PyExpr) -> PyExpr: ... def log1p(self) -> PyExpr: ... def exp(self) -> PyExpr: ... def entropy(self, base: float, normalize: bool) -> PyExpr: ... def hash(self, seed: int, seed_1: int, seed_2: int, seed_3: int) -> PyExpr: ... def set_sorted_flag(self, descending: bool) -> PyExpr: ... def replace(self, old: PyExpr, new: PyExpr) -> PyExpr: ... def replace_strict( self, old: PyExpr, new: PyExpr, default: PyExpr | None, return_dtype: PyDataTypeExpr | None, ) -> PyExpr: ... def hist( self, bins: PyExpr | None, bin_count: int | None, include_category: bool, include_breakpoint: bool, ) -> PyExpr: ... def skip_batch_predicate(self, schema: Any) -> PyExpr | None: ... @staticmethod def row_encode_unordered(exprs: Sequence[PyExpr]) -> PyExpr: ... @staticmethod def row_encode_ordered( exprs: Sequence[PyExpr], descending: Sequence[bool] | None, nulls_last: Sequence[bool] | None, ) -> PyExpr: ... def row_decode_unordered( self, names: Sequence[str], datatypes: Sequence[PyDataTypeExpr] ) -> PyExpr: ... def row_decode_ordered( self, names: Sequence[str], datatypes: Sequence[PyDataTypeExpr], descending: Sequence[bool] | None, nulls_last: Sequence[bool] | None, ) -> PyExpr: ... def into_selector(self) -> Any: ... @staticmethod def new_selector(selector: Any) -> PyExpr: ... # array def arr_len(self) -> PyExpr: ... def arr_max(self) -> PyExpr: ... def arr_min(self) -> PyExpr: ... def arr_sum(self) -> PyExpr: ... def arr_std(self, ddof: int) -> PyExpr: ... def arr_var(self, ddof: int) -> PyExpr: ... def arr_mean(self) -> PyExpr: ... def arr_median(self) -> PyExpr: ... def arr_unique(self, maintain_order: bool) -> PyExpr: ... def arr_n_unique(self) -> PyExpr: ... def arr_to_list(self) -> PyExpr: ... def arr_all(self) -> PyExpr: ... def arr_any(self) -> PyExpr: ... def arr_sort(self, descending: bool, nulls_last: bool) -> PyExpr: ... def arr_reverse(self) -> PyExpr: ... def arr_arg_min(self) -> PyExpr: ... def arr_arg_max(self) -> PyExpr: ... def arr_get(self, index: PyExpr, null_on_oob: bool) -> PyExpr: ... def arr_join(self, separator: PyExpr, ignore_nulls: bool) -> PyExpr: ... def arr_contains(self, other: PyExpr, nulls_equal: bool) -> PyExpr: ... def arr_count_matches(self, expr: PyExpr) -> PyExpr: ... def arr_to_struct(self, name_gen: Any | None = None) -> PyExpr: ... def arr_slice( self, offset: PyExpr, length: PyExpr | None = None, as_array: bool = False ) -> PyExpr: ... def arr_tail(self, n: PyExpr, as_array: bool) -> PyExpr: ... def arr_shift(self, n: PyExpr) -> PyExpr: ... def arr_explode(self) -> PyExpr: ... def arr_eval(self, expr: PyExpr, *, as_list: bool) -> PyExpr: ... def arr_agg(self, expr: PyExpr) -> PyExpr: ... # binary def bin_contains(self, lit: PyExpr) -> PyExpr: ... def bin_ends_with(self, sub: PyExpr) -> PyExpr: ... def bin_starts_with(self, sub: PyExpr) -> PyExpr: ... def bin_hex_decode(self, strict: bool) -> PyExpr: ... def bin_base64_decode(self, strict: bool) -> PyExpr: ... def bin_hex_encode(self) -> PyExpr: ... def bin_base64_encode(self) -> PyExpr: ... def bin_reinterpret(self, dtype: PyDataTypeExpr, kind: str) -> PyExpr: ... def bin_size_bytes(self) -> PyExpr: ... # bitwise def bitwise_count_ones(self) -> PyExpr: ... def bitwise_count_zeros(self) -> PyExpr: ... def bitwise_leading_ones(self) -> PyExpr: ... def bitwise_leading_zeros(self) -> PyExpr: ... def bitwise_trailing_ones(self) -> PyExpr: ... def bitwise_trailing_zeros(self) -> PyExpr: ... def bitwise_and(self) -> PyExpr: ... def bitwise_or(self) -> PyExpr: ... def bitwise_xor(self) -> PyExpr: ... # categorical def cat_get_categories(self) -> PyExpr: ... def cat_len_bytes(self) -> PyExpr: ... def cat_len_chars(self) -> PyExpr: ... def cat_starts_with(self, prefix: str) -> PyExpr: ... def cat_ends_with(self, suffix: str) -> PyExpr: ... def cat_slice(self, offset: int, length: int | None = None) -> PyExpr: ... # datetime def dt_add_business_days( self, n: PyExpr, week_mask: Sequence[bool], holidays: Sequence[int], roll: Roll ) -> PyExpr: ... def dt_to_string(self, format: str) -> PyExpr: ... def dt_offset_by(self, by: PyExpr) -> PyExpr: ... def dt_with_time_unit(self, time_unit: TimeUnit) -> PyExpr: ... def dt_convert_time_zone(self, time_zone: str) -> PyExpr: ... def dt_cast_time_unit(self, time_unit: TimeUnit) -> PyExpr: ... def dt_replace_time_zone( self, time_zone: str | None, ambiguous: PyExpr, non_existent: NonExistent, ) -> PyExpr: ... def dt_truncate(self, every: PyExpr) -> PyExpr: ... def dt_month_start(self) -> PyExpr: ... def dt_month_end(self) -> PyExpr: ... def dt_base_utc_offset(self) -> PyExpr: ... def dt_dst_offset(self) -> PyExpr: ... def dt_round(self, every: PyExpr) -> PyExpr: ... def dt_replace( self, year: PyExpr, month: PyExpr, day: PyExpr, hour: PyExpr, minute: PyExpr, second: PyExpr, microsecond: PyExpr, ambiguous: PyExpr, ) -> PyExpr: ... def dt_combine(self, time: PyExpr, time_unit: TimeUnit) -> PyExpr: ... def dt_millennium(self) -> PyExpr: ... def dt_century(self) -> PyExpr: ... def dt_year(self) -> PyExpr: ... def dt_is_business_day( self, week_mask: Sequence[bool], holidays: Sequence[int] ) -> PyExpr: ... def dt_is_leap_year(self) -> PyExpr: ... def dt_iso_year(self) -> PyExpr: ... def dt_quarter(self) -> PyExpr: ... def dt_month(self) -> PyExpr: ... def dt_days_in_month(self) -> PyExpr: ... def dt_week(self) -> PyExpr: ... def dt_weekday(self) -> PyExpr: ... def dt_day(self) -> PyExpr: ... def dt_ordinal_day(self) -> PyExpr: ... def dt_time(self) -> PyExpr: ... def dt_date(self) -> PyExpr: ... def dt_datetime(self) -> PyExpr: ... def dt_hour(self) -> PyExpr: ... def dt_minute(self) -> PyExpr: ... def dt_second(self) -> PyExpr: ... def dt_millisecond(self) -> PyExpr: ... def dt_microsecond(self) -> PyExpr: ... def dt_nanosecond(self) -> PyExpr: ... def dt_timestamp(self, time_unit: TimeUnit) -> PyExpr: ... def dt_total_days(self, fractional: bool) -> PyExpr: ... def dt_total_hours(self, fractional: bool) -> PyExpr: ... def dt_total_minutes(self, fractional: bool) -> PyExpr: ... def dt_total_seconds(self, fractional: bool) -> PyExpr: ... def dt_total_milliseconds(self, fractional: bool) -> PyExpr: ... def dt_total_microseconds(self, fractional: bool) -> PyExpr: ... def dt_total_nanoseconds(self, fractional: bool) -> PyExpr: ... # list def list_all(self) -> PyExpr: ... def list_any(self) -> PyExpr: ... def list_arg_max(self) -> PyExpr: ... def list_arg_min(self) -> PyExpr: ... def list_contains(self, other: PyExpr, nulls_equal: bool) -> PyExpr: ... def list_count_matches(self, expr: PyExpr) -> PyExpr: ... def list_diff(self, n: int, null_behavior: NullBehavior) -> PyExpr: ... def list_eval(self, expr: PyExpr, _parallel: bool) -> PyExpr: ... def list_agg(self, expr: PyExpr) -> PyExpr: ... def list_filter(self, predicate: PyExpr) -> PyExpr: ... def list_get(self, index: PyExpr, null_on_oob: bool) -> PyExpr: ... def list_join(self, separator: PyExpr, ignore_nulls: bool) -> PyExpr: ... def list_len(self) -> PyExpr: ... def list_max(self) -> PyExpr: ... def list_mean(self) -> PyExpr: ... def list_median(self) -> PyExpr: ... def list_std(self, ddof: int) -> PyExpr: ... def list_var(self, ddof: int) -> PyExpr: ... def list_min(self) -> PyExpr: ... def list_reverse(self) -> PyExpr: ... def list_shift(self, periods: PyExpr) -> PyExpr: ... def list_slice(self, offset: PyExpr, length: PyExpr | None = None) -> PyExpr: ... def list_tail(self, n: PyExpr) -> PyExpr: ... def list_sort(self, descending: bool, nulls_last: bool) -> PyExpr: ... def list_sum(self) -> PyExpr: ... def list_drop_nulls(self) -> PyExpr: ... def list_sample_n( self, n: PyExpr, with_replacement: bool, shuffle: bool, seed: int | None = None ) -> PyExpr: ... def list_sample_fraction( self, fraction: PyExpr, with_replacement: bool, shuffle: bool, seed: int | None = None, ) -> PyExpr: ... def list_gather(self, index: PyExpr, null_on_oob: bool) -> PyExpr: ... def list_gather_every(self, n: PyExpr, offset: PyExpr) -> PyExpr: ... def list_to_array(self, width: int) -> PyExpr: ... def list_to_struct(self, names: Sequence[str]) -> PyExpr: ... def list_to_struct_fixed_width(self, names: Sequence[str]) -> PyExpr: ... def list_n_unique(self) -> PyExpr: ... def list_unique(self, maintain_order: bool) -> PyExpr: ... def list_set_operation(self, other: PyExpr, operation: SetOperation) -> PyExpr: ... # meta def meta_eq(self, other: PyExpr) -> bool: ... def meta_pop(self, schema: Schema | None = None) -> list[PyExpr]: ... def meta_root_names(self) -> list[str]: ... def meta_output_name(self) -> str: ... def meta_undo_aliases(self) -> PyExpr: ... def meta_has_multiple_outputs(self) -> bool: ... def meta_is_column(self) -> bool: ... def meta_is_regex_projection(self) -> bool: ... def meta_is_column_selection(self, allow_aliasing: bool) -> bool: ... def meta_is_literal(self, allow_aliasing: bool) -> bool: ... def compute_tree_format( self, display_as_dot: bool, schema: Schema | None ) -> str: ... def meta_tree_format(self, schema: Schema | None = None) -> str: ... def meta_show_graph(self, schema: Schema | None = None) -> str: ... # name def name_keep(self) -> PyExpr: ... def name_map(self, lambda_function: Any) -> PyExpr: ... def name_prefix(self, prefix: str) -> PyExpr: ... def name_suffix(self, suffix: str) -> PyExpr: ... def name_to_lowercase(self) -> PyExpr: ... def name_to_uppercase(self) -> PyExpr: ... def name_map_fields(self, name_mapper: Any) -> PyExpr: ... def name_prefix_fields(self, prefix: str) -> PyExpr: ... def name_suffix_fields(self, suffix: str) -> PyExpr: ... def name_replace(self, pattern: str, value: str, literal: bool) -> PyExpr: ... # rolling def rolling_sum( self, window_size: int, weights: Sequence[float] | None = None, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... def rolling_sum_by( self, by: PyExpr, window_size: str, min_periods: int, closed: ClosedWindow, ) -> PyExpr: ... def rolling_min( self, window_size: int, weights: Sequence[float] | None = None, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... def rolling_min_by( self, by: PyExpr, window_size: str, min_periods: int, closed: ClosedWindow, ) -> PyExpr: ... def rolling_max( self, window_size: int, weights: Sequence[float] | None = None, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... def rolling_max_by( self, by: PyExpr, window_size: str, min_periods: int, closed: ClosedWindow, ) -> PyExpr: ... def rolling_mean( self, window_size: int, weights: Sequence[float] | None = None, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... def rolling_mean_by( self, by: PyExpr, window_size: str, min_periods: int, closed: ClosedWindow, ) -> PyExpr: ... def rolling_std( self, window_size: int, weights: Sequence[float] | None = None, min_periods: int | None = None, center: bool = False, ddof: int = 1, ) -> PyExpr: ... def rolling_std_by( self, by: PyExpr, window_size: str, min_periods: int, closed: ClosedWindow, ddof: int = 1, ) -> PyExpr: ... def rolling_var( self, window_size: int, weights: Sequence[float] | None = None, min_periods: int | None = None, center: bool = False, ddof: int = 1, ) -> PyExpr: ... def rolling_var_by( self, by: PyExpr, window_size: str, min_periods: int, closed: ClosedWindow, ddof: int = 1, ) -> PyExpr: ... def rolling_median( self, window_size: int, weights: Sequence[float] | None = None, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... def rolling_median_by( self, by: PyExpr, window_size: str, min_periods: int, closed: ClosedWindow, ) -> PyExpr: ... def rolling_quantile( self, quantile: float, interpolation: QuantileMethod, window_size: int, weights: Sequence[float] | None = None, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... def rolling_quantile_by( self, by: PyExpr, quantile: float, interpolation: QuantileMethod, window_size: str, min_periods: int, closed: ClosedWindow, ) -> PyExpr: ... def rolling_rank( self, window_size: int, method: RankMethod, seed: int | None = None, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... def rolling_rank_by( self, by: PyExpr, window_size: str, method: RankMethod, seed: int | None, min_samples: int, closed: ClosedWindow, ) -> PyExpr: ... def rolling_skew( self, window_size: int, bias: bool, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... def rolling_kurtosis( self, window_size: int, fisher: bool, bias: bool, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... def rolling_map( self, lambda_function: Any, window_size: int, weights: Sequence[float] | None = None, min_periods: int | None = None, center: bool = False, ) -> PyExpr: ... # serde def __getstate__(self) -> bytes: ... def __setstate__(self, state: Any) -> None: ... def serialize_binary(self, py_f: Any) -> None: ... def serialize_json(self, py_f: Any) -> None: ... @staticmethod def deserialize_binary(py_f: Any) -> PyExpr: ... @staticmethod def deserialize_json(py_f: Any) -> PyExpr: ... # string def str_join(self, delimiter: str, ignore_nulls: bool) -> PyExpr: ... def str_to_date( self, format: str | None = None, strict: bool = True, exact: bool = True, cache: bool = True, ) -> PyExpr: ... def str_to_datetime( self, format: str | None, time_unit: TimeUnit | None, time_zone: TimeZone | None, strict: bool, exact: bool, cache: bool, ambiguous: PyExpr, ) -> PyExpr: ... def str_to_time( self, format: str | None = None, strict: bool = True, cache: bool = True, ) -> PyExpr: ... def str_strip_chars(self, matches: PyExpr) -> PyExpr: ... def str_strip_chars_start(self, matches: PyExpr) -> PyExpr: ... def str_strip_chars_end(self, matches: PyExpr) -> PyExpr: ... def str_strip_prefix(self, prefix: PyExpr) -> PyExpr: ... def str_strip_suffix(self, suffix: PyExpr) -> PyExpr: ... def str_slice(self, offset: PyExpr, length: PyExpr) -> PyExpr: ... def str_head(self, n: PyExpr) -> PyExpr: ... def str_tail(self, n: PyExpr) -> PyExpr: ... def str_to_uppercase(self) -> PyExpr: ... def str_to_lowercase(self) -> PyExpr: ... def str_to_titlecase(self) -> PyExpr: ... def str_len_bytes(self) -> PyExpr: ... def str_len_chars(self) -> PyExpr: ... def str_replace_n( self, pat: PyExpr, val: PyExpr, literal: bool, n: int ) -> PyExpr: ... def str_replace_all(self, pat: PyExpr, val: PyExpr, literal: bool) -> PyExpr: ... def str_normalize(self, form: UnicodeForm) -> PyExpr: ... def str_reverse(self) -> PyExpr: ... def str_pad_start(self, length: PyExpr, fill_char: str) -> PyExpr: ... def str_pad_end(self, length: PyExpr, fill_char: str) -> PyExpr: ... def str_zfill(self, length: PyExpr) -> PyExpr: ... def str_contains( self, pat: PyExpr, literal: bool | None = None, strict: bool = True ) -> PyExpr: ... def str_find( self, pat: PyExpr, literal: bool | None = None, strict: bool = True ) -> PyExpr: ... def str_ends_with(self, sub: PyExpr) -> PyExpr: ... def str_starts_with(self, sub: PyExpr) -> PyExpr: ... def str_hex_encode(self) -> PyExpr: ... def str_hex_decode(self, strict: bool) -> PyExpr: ... def str_base64_encode(self) -> PyExpr: ... def str_base64_decode(self, strict: bool) -> PyExpr: ... def str_to_integer( self, base: PyExpr, dtype: Any | None = None, strict: bool = True ) -> PyExpr: ... def str_json_decode( self, dtype: PyDataTypeExpr | None = None, infer_schema_len: int | None = None ) -> PyExpr: ... def str_json_path_match(self, pat: PyExpr) -> PyExpr: ... def str_extract(self, pat: PyExpr, group_index: int) -> PyExpr: ... def str_extract_all(self, pat: PyExpr) -> PyExpr: ... def str_extract_groups(self, pat: str) -> PyExpr: ... def str_count_matches(self, pat: PyExpr, literal: bool) -> PyExpr: ... def str_split(self, by: PyExpr) -> PyExpr: ... def str_split_inclusive(self, by: PyExpr) -> PyExpr: ... def str_split_exact(self, by: PyExpr, n: int) -> PyExpr: ... def str_split_exact_inclusive(self, by: PyExpr, n: int) -> PyExpr: ... def str_splitn(self, by: PyExpr, n: int) -> PyExpr: ... def str_to_decimal(self, scale: int) -> PyExpr: ... def str_contains_any( self, patterns: PyExpr, ascii_case_insensitive: bool ) -> PyExpr: ... def str_replace_many( self, patterns: PyExpr, replace_with: PyExpr, ascii_case_insensitive: bool ) -> PyExpr: ... def str_extract_many( self, patterns: PyExpr, ascii_case_insensitive: bool, overlapping: bool ) -> PyExpr: ... def str_find_many( self, patterns: PyExpr, ascii_case_insensitive: bool, overlapping: bool ) -> PyExpr: ... def str_escape_regex(self) -> PyExpr: ... @staticmethod def str_format(f_string: str, exprs: list[PyExpr]) -> PyExpr: ... # struct def struct_field_by_index(self, index: int) -> PyExpr: ... def struct_field_by_name(self, name: str) -> PyExpr: ... def struct_multiple_fields(self, names: Sequence[str]) -> PyExpr: ... def struct_rename_fields(self, names: Sequence[str]) -> PyExpr: ... def struct_json_encode(self) -> PyExpr: ... def struct_with_fields(self, fields: Sequence[PyExpr]) -> PyExpr: ... class PyDataTypeExpr: def __init__(self, inner: Any) -> None: ... @staticmethod def from_dtype(datatype: Any) -> PyDataTypeExpr: ... @staticmethod def of_expr(expr: PyExpr) -> PyDataTypeExpr: ... @staticmethod def self_dtype() -> PyDataTypeExpr: ... def collect_dtype(self, schema: Any) -> Any: ... def inner_dtype(self) -> PyDataTypeExpr: ... def equals(self, other: PyDataTypeExpr) -> PyExpr: ... def display(self) -> PyExpr: ... def matches(self, selector: Any) -> PyExpr: ... @staticmethod def struct_with_fields( fields: Sequence[tuple[str, PyDataTypeExpr]], ) -> PyDataTypeExpr: ... def wrap_in_list(self) -> PyDataTypeExpr: ... def wrap_in_array(self, width: int) -> PyDataTypeExpr: ... def to_unsigned_integer(self) -> PyDataTypeExpr: ... def to_signed_integer(self) -> PyDataTypeExpr: ... def default_value( self, n: int, numeric_to_one: bool, num_list_values: int ) -> PyExpr: ... # list def list_inner_dtype(self) -> PyDataTypeExpr: ... # array def arr_inner_dtype(self) -> PyDataTypeExpr: ... def arr_width(self) -> PyExpr: ... def arr_shape(self) -> PyExpr: ... # struct def struct_field_dtype_by_index(self, index: int) -> PyDataTypeExpr: ... def struct_field_dtype_by_name(self, name: str) -> PyDataTypeExpr: ... def struct_field_names(self) -> PyExpr: ... class PySelector: def __init__(self, inner: Any) -> None: ... def union(self, other: PySelector) -> PySelector: ... def difference(self, other: PySelector) -> PySelector: ... def exclusive_or(self, other: PySelector) -> PySelector: ... def intersect(self, other: PySelector) -> PySelector: ... @staticmethod def by_dtype(dtypes: Sequence[Any]) -> PySelector: ... @staticmethod def by_name(names: Sequence[str], strict: bool) -> PySelector: ... @staticmethod def by_index(indices: Sequence[int], strict: bool) -> PySelector: ... @staticmethod def first(strict: bool) -> PySelector: ... @staticmethod def last(strict: bool) -> PySelector: ... @staticmethod def matches(pattern: str) -> PySelector: ... @staticmethod def enum_() -> PySelector: ... @staticmethod def categorical() -> PySelector: ... @staticmethod def nested() -> PySelector: ... @staticmethod def list(inner_dst: PySelector | None) -> PySelector: ... @staticmethod def array(inner_dst: PySelector | None, width: int | None) -> PySelector: ... @staticmethod def struct_() -> PySelector: ... @staticmethod def integer() -> PySelector: ... @staticmethod def signed_integer() -> PySelector: ... @staticmethod def unsigned_integer() -> PySelector: ... @staticmethod def float() -> PySelector: ... @staticmethod def decimal() -> PySelector: ... @staticmethod def numeric() -> PySelector: ... @staticmethod def temporal() -> PySelector: ... @staticmethod def datetime(tu: Sequence[Any], tz: Sequence[Any]) -> PySelector: ... @staticmethod def duration(tu: Sequence[Any]) -> PySelector: ... @staticmethod def object() -> PySelector: ... @staticmethod def empty() -> PySelector: ... @staticmethod def all() -> PySelector: ... def hash(self) -> int: ... class PyOptFlags: def __init__(self) -> None: ... @staticmethod def empty() -> PyOptFlags: ... @staticmethod def default() -> PyOptFlags: ... def no_optimizations(self) -> None: ... def copy(self) -> PyOptFlags: ... @property def type_coercion(self) -> bool: ... @type_coercion.setter def type_coercion(self, value: bool) -> None: ... @property def type_check(self) -> bool: ... @type_check.setter def type_check(self, value: bool) -> None: ... @property def projection_pushdown(self) -> bool: ... @projection_pushdown.setter def projection_pushdown(self, value: bool) -> None: ... @property def predicate_pushdown(self) -> bool: ... @predicate_pushdown.setter def predicate_pushdown(self, value: bool) -> None: ... @property def cluster_with_columns(self) -> bool: ... @cluster_with_columns.setter def cluster_with_columns(self, value: bool) -> None: ... @property def simplify_expression(self) -> bool: ... @simplify_expression.setter def simplify_expression(self, value: bool) -> None: ... @property def slice_pushdown(self) -> bool: ... @slice_pushdown.setter def slice_pushdown(self, value: bool) -> None: ... @property def comm_subplan_elim(self) -> bool: ... @comm_subplan_elim.setter def comm_subplan_elim(self, value: bool) -> None: ... @property def comm_subexpr_elim(self) -> bool: ... @comm_subexpr_elim.setter def comm_subexpr_elim(self, value: bool) -> None: ... @property def check_order_observe(self) -> bool: ... @check_order_observe.setter def check_order_observe(self, value: bool) -> None: ... @property def fast_projection(self) -> bool: ... @fast_projection.setter def fast_projection(self, value: bool) -> None: ... @property def eager(self) -> bool: ... @eager.setter def eager(self, value: bool) -> None: ... @property def streaming(self) -> bool: ... @streaming.setter def streaming(self, value: bool) -> None: ... class PyPartitioning: def __init__(self) -> None: ... base_path: Any @staticmethod def new_max_size( base_path: Any, file_path_cb: Any | None, max_size: int, per_partition_sort_by: Sequence[PyExpr] | None, finish_callback: Any | None, ) -> PyPartitioning: ... @staticmethod def new_by_key( base_path: Any, file_path_cb: Any | None, by: Sequence[PyExpr], include_key: bool, per_partition_sort_by: Sequence[PyExpr] | None, finish_callback: Any | None, ) -> PyPartitioning: ... @staticmethod def new_parted( base_path: Any, file_path_cb: Any | None, by: Sequence[PyExpr], include_key: bool, per_partition_sort_by: Sequence[PyExpr] | None, finish_callback: Any | None, ) -> PyPartitioning: ... # functions.lazy def rolling_corr( x: PyExpr, y: PyExpr, window_size: int, min_periods: int, ddof: int ) -> PyExpr: ... def rolling_cov( x: PyExpr, y: PyExpr, window_size: int, min_periods: int, ddof: int ) -> PyExpr: ... def arg_sort_by( by: Sequence[PyExpr], descending: Sequence[bool], nulls_last: Sequence[bool], multithreaded: bool, maintain_order: bool, ) -> PyExpr: ... def arg_where(condition: PyExpr) -> PyExpr: ... def as_struct(exprs: Sequence[PyExpr]) -> PyExpr: ... def field(names: Sequence[str]) -> PyExpr: ... def coalesce(exprs: Sequence[PyExpr]) -> PyExpr: ... def col(name: str) -> PyExpr: ... def element() -> PyExpr: ... def collect_all( lfs: Sequence[PyLazyFrame], engine: Any, optflags: PyOptFlags ) -> list[PyDataFrame]: ... def explain_all(lfs: Sequence[PyLazyFrame], optflags: PyOptFlags) -> str: ... def collect_all_with_callback( lfs: Sequence[PyLazyFrame], engine: Any, optflags: PyOptFlags, lambda_func: Any ) -> None: ... def concat_lf( seq: Any, rechunk: bool, parallel: bool, to_supertypes: bool, maintain_order: bool ) -> PyLazyFrame: ... def concat_list(s: Sequence[PyExpr]) -> PyExpr: ... def concat_arr(s: Sequence[PyExpr]) -> PyExpr: ... def concat_str(s: Sequence[PyExpr], separator: str, ignore_nulls: bool) -> PyExpr: ... def len() -> PyExpr: ... def cov(a: PyExpr, b: PyExpr, ddof: int) -> PyExpr: ... def arctan2(y: PyExpr, x: PyExpr) -> PyExpr: ... def cum_fold( acc: PyExpr, lambda_func: Any, exprs: Sequence[PyExpr], returns_scalar: bool, return_dtype: PyDataTypeExpr | None, include_init: bool, ) -> PyExpr: ... def cum_reduce( lambda_func: Any, exprs: Sequence[PyExpr], returns_scalar: bool, return_dtype: PyDataTypeExpr | None, ) -> PyExpr: ... def datetime( year: PyExpr, month: PyExpr, day: PyExpr, hour: PyExpr | None, minute: PyExpr | None, second: PyExpr | None, microsecond: PyExpr | None, time_unit: TimeUnit, # Default set by Rust code time_zone: TimeZone | None, # Default set by Rust code ambiguous: PyExpr, # Default set by Rust code ) -> PyExpr: ... def concat_lf_diagonal( lfs: Any, rechunk: bool, parallel: bool, to_supertypes: bool, maintain_order: bool ) -> PyLazyFrame: ... def concat_lf_horizontal( lfs: Any, parallel: bool, ) -> PyLazyFrame: ... def concat_expr(e: Sequence[PyExpr], rechunk: bool) -> PyExpr: ... def duration( weeks: PyExpr | None, days: PyExpr | None, hours: PyExpr | None, minutes: PyExpr | None, seconds: PyExpr | None, milliseconds: PyExpr | None, microseconds: PyExpr | None, nanoseconds: PyExpr | None, time_unit: TimeUnit, # Default set by Rust code ) -> PyExpr: ... def fold( acc: PyExpr, lambda_func: Any, exprs: Sequence[PyExpr], returns_scalar: bool, return_dtype: PyDataTypeExpr | None, ) -> PyExpr: ... def lit(value: Any, allow_object: bool, is_scalar: bool) -> PyExpr: ... def map_expr( pyexpr: Sequence[PyExpr], lambda_func: Any, output_type: PyDataTypeExpr | None, is_elementwise: bool, returns_scalar: bool, ) -> PyExpr: ... def pearson_corr(a: PyExpr, b: PyExpr) -> PyExpr: ... def reduce( lambda_func: Any, exprs: Sequence[PyExpr], returns_scalar: bool, return_dtype: PyDataTypeExpr | None, ) -> PyExpr: ... def repeat(value: PyExpr, n: PyExpr, dtype: Any | None = None) -> PyExpr: ... def spearman_rank_corr(a: PyExpr, b: PyExpr, propagate_nans: bool) -> PyExpr: ... def sql_expr(sql: str) -> PyExpr: ... # functions.aggregations def all_horizontal(exprs: Sequence[PyExpr]) -> PyExpr: ... def any_horizontal(exprs: Sequence[PyExpr]) -> PyExpr: ... def max_horizontal(exprs: Sequence[PyExpr]) -> PyExpr: ... def min_horizontal(exprs: Sequence[PyExpr]) -> PyExpr: ... def sum_horizontal(exprs: Sequence[PyExpr], ignore_nulls: bool) -> PyExpr: ... def mean_horizontal(exprs: Sequence[PyExpr], ignore_nulls: bool) -> PyExpr: ... # functions.business def business_day_count( start: PyExpr, end: PyExpr, week_mask: Sequence[bool], holidays: Sequence[int], ) -> PyExpr: ... # functions.eager def concat_df(dfs: Any) -> PyDataFrame: ... def concat_series(series: Any) -> PySeries: ... def concat_df_diagonal(dfs: Any) -> PyDataFrame: ... def concat_df_horizontal(dfs: Any) -> PyDataFrame: ... # functions.io def read_ipc_schema(py_f: Any) -> dict[str, Any]: ... def read_parquet_metadata( py_f: Any, storage_options: Any, credential_provider: Any, retries: int ) -> dict[str, str]: ... def read_clipboard_string() -> str: ... def write_clipboard_string(s: str) -> None: ... # functions.meta def get_index_type() -> Any: ... def thread_pool_size() -> int: ... def set_float_fmt(fmt: FloatFmt) -> None: ... def get_float_fmt() -> str: ... def set_float_precision(precision: int | None) -> None: ... def get_float_precision() -> int | None: ... def set_thousands_separator(sep: str | None) -> None: ... def get_thousands_separator() -> str | None: ... def set_decimal_separator(sep: str | None) -> None: ... def get_decimal_separator() -> str | None: ... def set_trim_decimal_zeros(trim: bool | None) -> None: ... def get_trim_decimal_zeros() -> bool | None: ... # functions.misc def dtype_str_repr(dtype: Any) -> str: ... def register_plugin_function( plugin_path: str, function_name: str, args: Sequence[PyExpr], kwargs: Sequence[int], is_elementwise: bool, input_wildcard_expansion: bool, returns_scalar: bool, cast_to_supertype: bool, pass_name_to_apply: bool, changes_length: bool, ) -> PyExpr: ... def __register_startup_deps() -> None: ... # functions.random def set_random_seed(seed: int) -> None: ... # functions.range def int_range( start: PyExpr, end: PyExpr, step: int, dtype: PyDataTypeExpr ) -> PyExpr: ... def eager_int_range( lower: Any, upper: Any, step: Any, dtype: PyDataTypeExpr ) -> PySeries: ... def int_ranges( start: PyExpr, end: PyExpr, step: PyExpr, dtype: PyDataTypeExpr ) -> PyExpr: ... def date_range( start: PyExpr, end: PyExpr, interval: str, closed: ClosedWindow ) -> PyExpr: ... def date_ranges( start: PyExpr, end: PyExpr, interval: str, closed: ClosedWindow ) -> PyExpr: ... def datetime_range( start: PyExpr, end: PyExpr, every: str, closed: ClosedWindow, time_unit: TimeUnit | None, time_zone: TimeZone | None, ) -> PyExpr: ... def datetime_ranges( start: PyExpr, end: PyExpr, every: str, closed: ClosedWindow, time_unit: TimeUnit | None, time_zone: TimeZone | None, ) -> PyExpr: ... def time_range( start: PyExpr, end: PyExpr, every: str, closed: ClosedWindow ) -> PyExpr: ... def time_ranges( start: PyExpr, end: PyExpr, every: str, closed: ClosedWindow ) -> PyExpr: ... def linear_space( start: PyExpr, end: PyExpr, num_samples: PyExpr, closed: ClosedInterval ) -> PyExpr: ... def linear_spaces( start: PyExpr, end: PyExpr, num_samples: PyExpr, closed: ClosedInterval, as_array: bool, ) -> PyExpr: ... # functions.string_cache class PyStringCacheHolder: ... def enable_string_cache() -> None: ... def disable_string_cache() -> None: ... def using_string_cache() -> bool: ... # functions.strings def escape_regex(s: str) -> str: ... # functions.strings def check_length(check: bool) -> None: ... def get_engine_affinity() -> EngineType: ... # functions.when class PyWhen: def then(self, statement: PyExpr) -> PyThen: ... class PyThen: def when(self, condition: PyExpr) -> PyChainedWhen: ... def otherwise(self, statement: PyExpr) -> PyExpr: ... class PyChainedWhen: def then(self, statement: PyExpr) -> PyChainedThen: ... class PyChainedThen: def when(self, condition: PyExpr) -> PyChainedWhen: ... def otherwise(self, statement: PyExpr) -> PyExpr: ... def when(condition: PyExpr) -> PyWhen: ... # functions: schema def init_polars_schema_from_arrow_c_schema( polars_schema: Any, schema_object: Any ) -> None: ... def polars_schema_field_from_arrow_c_schema(schema_object: Any) -> tuple[Any, Any]: ... def polars_schema_to_pycapsule(schema: Schema, compat_level: CompatLevel) -> Any: ... class PyLazyGroupBy: def agg(self, aggs: list[PyExpr]) -> PyLazyFrame: ... def head(self, n: int) -> PyLazyFrame: ... def tail(self, n: int) -> PyLazyFrame: ... def map_groups( self, lambda_function: Any, schema: Schema | None ) -> PyLazyFrame: ... # categorical class PyCategories: def __init__(self, name: str, namespace: str, physical: str) -> None: ... @staticmethod def global_categories() -> PyCategories: ... @staticmethod def random(namespace: str, physical: str) -> PyCategories: ... def __eq__(self, other: PyCategories) -> bool: ... # type: ignore[override] def __hash__(self) -> int: ... def name(self) -> str: ... def namespace(self) -> str: ... def physical(self) -> str: ... def get_cat(self, s: str) -> int | None: ... def cat_to_str(self, cat: int) -> str | None: ... def is_global(self) -> bool: ... class PyBatchedCsv: @staticmethod def new( infer_schema_length: int | None, chunk_size: int, has_header: bool, ignore_errors: bool, n_rows: int | None, skip_rows: int, skip_lines: int, projection: Sequence[int] | None, separator: str, rechunk: bool, columns: Sequence[str] | None, encoding: CsvEncoding, n_threads: int | None, path: Any, schema_overrides: Sequence[tuple[str, DataType]] | None, overwrite_dtype_slice: Sequence[DataType] | None, low_memory: bool, comment_prefix: str | None, quote_char: str | None, null_values: NullValues | None, missing_utf8_is_empty_string: bool, try_parse_dates: bool, skip_rows_after_header: int, row_index: tuple[str, int] | None, eol_char: str, raise_if_empty: bool, truncate_ragged_lines: bool, decimal_comma: bool, ) -> PyBatchedCsv: ... def next_batches(self, n: int) -> list[PyDataFrame] | None: ... # catalog class PyCatalogClient: @staticmethod def new(workspace_url: str, bearer_token: str | None) -> PyCatalogClient: ... def list_catalogs(self) -> list[Any]: ... def list_namespaces(self, catalog_name: str) -> list[Any]: ... def list_tables(self, catalog_name: str, namespace: str) -> list[Any]: ... def get_table_info( self, table_name: str, catalog_name: str, namespace: str ) -> Any: ... def get_table_credentials( self, table_id: str, write: bool ) -> tuple[Any, Any, Any]: ... def scan_table( self, catalog_name: str, namespace: str, table_name: str, cloud_options: dict[str, str] | None, credential_provider: Any | None, retries: int, ) -> PyLazyFrame: ... def create_catalog( self, catalog_name: str, comment: str | None, storage_root: str | None ) -> Any: ... def delete_catalog(self, catalog_name: str, force: bool) -> None: ... def create_namespace( self, catalog_name: str, namespace: str, comment: str | None, storage_root: str | None, ) -> Any: ... def delete_namespace( self, catalog_name: str, namespace: str, force: bool ) -> None: ... def create_table( self, catalog_name: str, namespace: str, table_name: str, schema: Any | None, table_type: str, data_source_format: str | None, comment: str | None, storage_root: str | None, properties: Sequence[tuple[str, str]], ) -> Any: ... def delete_table( self, catalog_name: str, namespace: str, table_name: str ) -> None: ... @staticmethod def type_json_to_polars_type(type_json: str) -> Any: ... @staticmethod def init_classes( catalog_info_cls: Any, namespace_info_cls: Any, table_info_cls: Any, column_info_cls: Any, ) -> None: ... # sql class PySQLContext: @staticmethod def new() -> PySQLContext: ... def execute(self, query: str) -> PyLazyFrame: ... def get_tables(self) -> list[str]: ... def register(self, name: str, lf: PyLazyFrame) -> None: ... def unregister(self, name: str) -> None: ... # testing def assert_series_equal_py( left: PySeries, right: PySeries, *, check_dtypes: bool, check_names: bool, check_order: bool, check_exact: bool, rel_tol: float, abs_tol: float, categorical_as_str: bool, ) -> None: ... def assert_dataframe_equal_py( left: PyDataFrame, right: PyDataFrame, *, check_row_order: bool, check_column_order: bool, check_dtypes: bool, check_exact: bool, rel_tol: float, abs_tol: float, categorical_as_str: bool, ) -> None: ... # datatypes def _get_dtype_max(dt: DataType) -> PyExpr: ... def _get_dtype_min(dt: DataType) -> PyExpr: ... def _known_timezones() -> list[str]: ... # cloud_client def prepare_cloud_plan( lf: PyLazyFrame, *, allow_local_scans: bool, ) -> bytes: ... # cloud_server def _execute_ir_plan_with_gpu(ir_plan_ser: Sequence[int]) -> PyDataFrame: ... # visit class PyExprIR: node: int output_name: str class NodeTraverser: def get_exprs(self) -> list[PyExprIR]: ... def get_inputs(self) -> list[int]: ... def version(self) -> tuple[int, int]: ... def get_schema(self) -> dict[str, DataType]: ... def get_dtype(self, expr_node: int) -> DataType: ... def set_node(self, node: int) -> None: ... def get_node(self) -> int: ... def set_udf(self, function: Any, is_pure: bool = False) -> None: ... def view_current_node(self) -> Any: ... def view_expression(self, node: int) -> Any: ... def add_expressions(self, expressions: list[PyExpr]) -> tuple[list[int], int]: ... def set_expr_mapping(self, mapping: list[int]) -> None: ... def unset_expr_mapping(self) -> None: ...