Flowfile 0.3.5__py3-none-any.whl → 0.3.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Flowfile might be problematic. Click here for more details.
- flowfile/__init__.py +27 -6
- flowfile/api.py +1 -0
- flowfile/web/__init__.py +2 -2
- flowfile/web/static/assets/CloudConnectionManager-2dfdce2f.css +86 -0
- flowfile/web/static/assets/CloudConnectionManager-c20a740f.js +783 -0
- flowfile/web/static/assets/CloudStorageReader-29d14fcc.css +143 -0
- flowfile/web/static/assets/CloudStorageReader-960b400a.js +437 -0
- flowfile/web/static/assets/CloudStorageWriter-49c9a4b2.css +138 -0
- flowfile/web/static/assets/CloudStorageWriter-e3decbdd.js +430 -0
- flowfile/web/static/assets/{CrossJoin-dfcf7351.js → CrossJoin-d67e2405.js} +8 -8
- flowfile/web/static/assets/{DatabaseConnectionSettings-b2afb1d7.js → DatabaseConnectionSettings-a81e0f7e.js} +2 -2
- flowfile/web/static/assets/{DatabaseManager-824a49b2.js → DatabaseManager-9ea35e84.js} +2 -2
- flowfile/web/static/assets/{DatabaseReader-a48124d8.js → DatabaseReader-9578bfa5.js} +9 -9
- flowfile/web/static/assets/{DatabaseWriter-b47cbae2.js → DatabaseWriter-19531098.js} +9 -9
- flowfile/web/static/assets/{ExploreData-fdfc45a4.js → ExploreData-40476474.js} +47141 -43697
- flowfile/web/static/assets/{ExternalSource-861b0e71.js → ExternalSource-2297ef96.js} +6 -6
- flowfile/web/static/assets/{Filter-f87bb897.js → Filter-f211c03a.js} +8 -8
- flowfile/web/static/assets/{Formula-b8cefc31.css → Formula-29f19d21.css} +10 -0
- flowfile/web/static/assets/{Formula-1e2ed720.js → Formula-4207ea31.js} +75 -9
- flowfile/web/static/assets/{FuzzyMatch-b6cc4fdd.js → FuzzyMatch-bf120df0.js} +9 -9
- flowfile/web/static/assets/{GraphSolver-6a371f4c.js → GraphSolver-5bb7497a.js} +5 -5
- flowfile/web/static/assets/{GroupBy-f7b7f472.js → GroupBy-92c81b65.js} +6 -6
- flowfile/web/static/assets/{Join-eec38203.js → Join-4e49a274.js} +23 -15
- flowfile/web/static/assets/{Join-41c0f331.css → Join-f45eff22.css} +20 -20
- flowfile/web/static/assets/{ManualInput-9aaa46fb.js → ManualInput-90998ae8.js} +106 -34
- flowfile/web/static/assets/{ManualInput-ac7b9972.css → ManualInput-a71b52c6.css} +29 -17
- flowfile/web/static/assets/{Output-3b2ca045.js → Output-81e3e917.js} +4 -4
- flowfile/web/static/assets/{Pivot-a4f5d88f.js → Pivot-a3419842.js} +6 -6
- flowfile/web/static/assets/{PolarsCode-49ce444f.js → PolarsCode-72710deb.js} +6 -6
- flowfile/web/static/assets/{Read-07acdc9a.js → Read-c4059daf.js} +6 -6
- flowfile/web/static/assets/{RecordCount-6a21da56.js → RecordCount-c2b5e095.js} +5 -5
- flowfile/web/static/assets/{RecordId-949bdc17.js → RecordId-10baf191.js} +6 -6
- flowfile/web/static/assets/{Sample-7afca6e1.js → Sample-3ed9a0ae.js} +5 -5
- flowfile/web/static/assets/{SecretManager-b41c029d.js → SecretManager-0d49c0e8.js} +2 -2
- flowfile/web/static/assets/{Select-32b28406.js → Select-8a02a0b3.js} +8 -8
- flowfile/web/static/assets/{SettingsSection-a0f15a05.js → SettingsSection-4c0f45f5.js} +1 -1
- flowfile/web/static/assets/{Sort-fc6ba0e2.js → Sort-f55c9f9d.js} +6 -6
- flowfile/web/static/assets/{TextToRows-23127596.js → TextToRows-5dbc2145.js} +8 -8
- flowfile/web/static/assets/{UnavailableFields-c42880a3.js → UnavailableFields-a1768e52.js} +2 -2
- flowfile/web/static/assets/{Union-39eecc6c.js → Union-f2aefdc9.js} +5 -5
- flowfile/web/static/assets/{Unique-a0e8fe61.js → Unique-46b250da.js} +8 -8
- flowfile/web/static/assets/{Unpivot-1e2d43f0.js → Unpivot-25ac84cc.js} +5 -5
- flowfile/web/static/assets/api-6ef0dcef.js +80 -0
- flowfile/web/static/assets/{api-44ca9e9c.js → api-a0abbdc7.js} +1 -1
- flowfile/web/static/assets/cloud_storage_reader-aa1415d6.png +0 -0
- flowfile/web/static/assets/{designer-267d44f1.js → designer-13eabd83.js} +36 -34
- flowfile/web/static/assets/{documentation-6c0810a2.js → documentation-b87e7f6f.js} +1 -1
- flowfile/web/static/assets/{dropDown-52790b15.js → dropDown-13564764.js} +1 -1
- flowfile/web/static/assets/{fullEditor-e272b506.js → fullEditor-fd2cd6f9.js} +2 -2
- flowfile/web/static/assets/{genericNodeSettings-4bdcf98e.js → genericNodeSettings-71e11604.js} +3 -3
- flowfile/web/static/assets/{index-e235a8bc.js → index-f6c15e76.js} +59 -22
- flowfile/web/static/assets/{nodeTitle-fc3fc4b7.js → nodeTitle-988d9efe.js} +3 -3
- flowfile/web/static/assets/{secretApi-cdc2a3fd.js → secretApi-dd636aa2.js} +1 -1
- flowfile/web/static/assets/{selectDynamic-96aa82cd.js → selectDynamic-af36165e.js} +3 -3
- flowfile/web/static/assets/{vue-codemirror.esm-25e75a08.js → vue-codemirror.esm-2847001e.js} +2 -1
- flowfile/web/static/assets/{vue-content-loader.es-6c4b1c24.js → vue-content-loader.es-0371da73.js} +1 -1
- flowfile/web/static/index.html +1 -1
- {flowfile-0.3.5.dist-info → flowfile-0.3.7.dist-info}/METADATA +9 -4
- {flowfile-0.3.5.dist-info → flowfile-0.3.7.dist-info}/RECORD +131 -124
- {flowfile-0.3.5.dist-info → flowfile-0.3.7.dist-info}/entry_points.txt +2 -0
- flowfile_core/__init__.py +3 -0
- flowfile_core/auth/jwt.py +39 -0
- flowfile_core/configs/node_store/nodes.py +9 -6
- flowfile_core/configs/settings.py +6 -5
- flowfile_core/database/connection.py +63 -15
- flowfile_core/database/init_db.py +0 -1
- flowfile_core/database/models.py +49 -2
- flowfile_core/flowfile/code_generator/code_generator.py +472 -17
- flowfile_core/flowfile/connection_manager/models.py +1 -1
- flowfile_core/flowfile/database_connection_manager/db_connections.py +216 -2
- flowfile_core/flowfile/extensions.py +1 -1
- flowfile_core/flowfile/flow_data_engine/cloud_storage_reader.py +259 -0
- flowfile_core/flowfile/flow_data_engine/create/funcs.py +19 -8
- flowfile_core/flowfile/flow_data_engine/flow_data_engine.py +1062 -311
- flowfile_core/flowfile/flow_data_engine/flow_file_column/main.py +12 -2
- flowfile_core/flowfile/flow_data_engine/fuzzy_matching/settings_validator.py +1 -1
- flowfile_core/flowfile/flow_data_engine/join/__init__.py +2 -1
- flowfile_core/flowfile/flow_data_engine/join/utils.py +25 -0
- flowfile_core/flowfile/flow_data_engine/polars_code_parser.py +3 -1
- flowfile_core/flowfile/flow_data_engine/subprocess_operations/subprocess_operations.py +29 -22
- flowfile_core/flowfile/flow_data_engine/utils.py +1 -40
- flowfile_core/flowfile/flow_graph.py +718 -253
- flowfile_core/flowfile/flow_graph_utils.py +2 -2
- flowfile_core/flowfile/flow_node/flow_node.py +563 -117
- flowfile_core/flowfile/flow_node/models.py +154 -20
- flowfile_core/flowfile/flow_node/schema_callback.py +3 -2
- flowfile_core/flowfile/handler.py +2 -33
- flowfile_core/flowfile/manage/open_flowfile.py +1 -2
- flowfile_core/flowfile/sources/external_sources/__init__.py +0 -2
- flowfile_core/flowfile/sources/external_sources/factory.py +4 -7
- flowfile_core/flowfile/util/calculate_layout.py +0 -2
- flowfile_core/flowfile/utils.py +35 -26
- flowfile_core/main.py +35 -15
- flowfile_core/routes/cloud_connections.py +77 -0
- flowfile_core/routes/logs.py +2 -7
- flowfile_core/routes/public.py +1 -0
- flowfile_core/routes/routes.py +130 -90
- flowfile_core/routes/secrets.py +72 -14
- flowfile_core/schemas/__init__.py +8 -0
- flowfile_core/schemas/cloud_storage_schemas.py +215 -0
- flowfile_core/schemas/input_schema.py +121 -71
- flowfile_core/schemas/output_model.py +19 -3
- flowfile_core/schemas/schemas.py +150 -12
- flowfile_core/schemas/transform_schema.py +175 -35
- flowfile_core/utils/utils.py +40 -1
- flowfile_core/utils/validate_setup.py +41 -0
- flowfile_frame/__init__.py +9 -1
- flowfile_frame/cloud_storage/frame_helpers.py +39 -0
- flowfile_frame/cloud_storage/secret_manager.py +73 -0
- flowfile_frame/expr.py +28 -1
- flowfile_frame/expr.pyi +76 -61
- flowfile_frame/flow_frame.py +481 -208
- flowfile_frame/flow_frame.pyi +140 -91
- flowfile_frame/flow_frame_methods.py +160 -22
- flowfile_frame/group_frame.py +3 -0
- flowfile_frame/utils.py +25 -3
- flowfile_worker/external_sources/s3_source/main.py +216 -0
- flowfile_worker/external_sources/s3_source/models.py +142 -0
- flowfile_worker/funcs.py +51 -6
- flowfile_worker/models.py +22 -2
- flowfile_worker/routes.py +40 -38
- flowfile_worker/utils.py +1 -1
- test_utils/s3/commands.py +46 -0
- test_utils/s3/data_generator.py +292 -0
- test_utils/s3/demo_data_generator.py +186 -0
- test_utils/s3/fixtures.py +214 -0
- flowfile/web/static/assets/AirbyteReader-1ac35765.css +0 -314
- flowfile/web/static/assets/AirbyteReader-e08044e5.js +0 -922
- flowfile/web/static/assets/dropDownGeneric-60f56a8a.js +0 -72
- flowfile/web/static/assets/dropDownGeneric-895680d6.css +0 -10
- flowfile_core/flowfile/sources/external_sources/airbyte_sources/airbyte.py +0 -159
- flowfile_core/flowfile/sources/external_sources/airbyte_sources/models.py +0 -172
- flowfile_core/flowfile/sources/external_sources/airbyte_sources/settings.py +0 -173
- flowfile_core/schemas/defaults.py +0 -9
- flowfile_core/schemas/external_sources/airbyte_schemas.py +0 -20
- flowfile_core/schemas/models.py +0 -193
- flowfile_worker/external_sources/airbyte_sources/cache_manager.py +0 -161
- flowfile_worker/external_sources/airbyte_sources/main.py +0 -89
- flowfile_worker/external_sources/airbyte_sources/models.py +0 -133
- flowfile_worker/external_sources/airbyte_sources/settings.py +0 -0
- {flowfile-0.3.5.dist-info → flowfile-0.3.7.dist-info}/LICENSE +0 -0
- {flowfile-0.3.5.dist-info → flowfile-0.3.7.dist-info}/WHEEL +0 -0
- {flowfile_core/flowfile/sources/external_sources/airbyte_sources → flowfile_frame/cloud_storage}/__init__.py +0 -0
- {flowfile_core/schemas/external_sources → flowfile_worker/external_sources/s3_source}/__init__.py +0 -0
- {flowfile_worker/external_sources/airbyte_sources → test_utils/s3}/__init__.py +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from flowfile_core.schemas.cloud_storage_schemas import FullCloudStorageConnection, FullCloudStorageConnectionInterface
|
|
4
|
+
from flowfile_core.flowfile.database_connection_manager.db_connections import (store_cloud_connection,
|
|
5
|
+
get_all_cloud_connections_interface,
|
|
6
|
+
delete_cloud_connection)
|
|
7
|
+
from flowfile_core.database.connection import get_db_context
|
|
8
|
+
from flowfile_core.auth.jwt import get_current_user_sync, create_access_token
|
|
9
|
+
from asyncio import run
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_current_user_id() -> int | None:
|
|
13
|
+
access_token = create_access_token(data={"sub": "local_user"})
|
|
14
|
+
with get_db_context() as db:
|
|
15
|
+
current_user_id = get_current_user_sync(
|
|
16
|
+
access_token,
|
|
17
|
+
db
|
|
18
|
+
).id
|
|
19
|
+
return current_user_id
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def create_cloud_storage_connection(connection: FullCloudStorageConnection) -> None:
|
|
23
|
+
"""
|
|
24
|
+
Create a cloud storage connection using the provided connection details.
|
|
25
|
+
|
|
26
|
+
Args:
|
|
27
|
+
connection (FullCloudStorageConnection): The connection details for cloud storage.
|
|
28
|
+
|
|
29
|
+
Returns:
|
|
30
|
+
None
|
|
31
|
+
"""
|
|
32
|
+
access_token = create_access_token(data={"sub": "local_user"})
|
|
33
|
+
|
|
34
|
+
with get_db_context() as db:
|
|
35
|
+
current_user_id = get_current_user_sync(
|
|
36
|
+
access_token,
|
|
37
|
+
db
|
|
38
|
+
).id
|
|
39
|
+
store_cloud_connection(
|
|
40
|
+
db,
|
|
41
|
+
connection,
|
|
42
|
+
current_user_id
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def create_cloud_storage_connection_if_not_exists(connection: FullCloudStorageConnection) -> None:
|
|
47
|
+
"""
|
|
48
|
+
Create a cloud storage connection if it does not already exist.
|
|
49
|
+
|
|
50
|
+
Args:
|
|
51
|
+
connection (FullCloudStorageConnection): The connection details for cloud storage.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
None
|
|
55
|
+
"""
|
|
56
|
+
all_connections = get_all_available_cloud_storage_connections()
|
|
57
|
+
if not any(conn.connection_name == connection.connection_name for conn in all_connections):
|
|
58
|
+
create_cloud_storage_connection(connection)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def get_all_available_cloud_storage_connections() -> List[FullCloudStorageConnectionInterface]:
|
|
62
|
+
with get_db_context() as db:
|
|
63
|
+
all_connections = get_all_cloud_connections_interface(
|
|
64
|
+
db,
|
|
65
|
+
get_current_user_id()
|
|
66
|
+
)
|
|
67
|
+
return all_connections
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def del_cloud_storage_connection(connection_name: str) -> None:
|
|
71
|
+
with get_db_context() as db:
|
|
72
|
+
user_id = get_current_user_id()
|
|
73
|
+
delete_cloud_connection(db, connection_name, user_id)
|
flowfile_frame/expr.py
CHANGED
|
@@ -20,6 +20,13 @@ if TYPE_CHECKING:
|
|
|
20
20
|
from flowfile_frame.selectors import Selector
|
|
21
21
|
ExprType = TypeVar('ExprType', bound='Expr')
|
|
22
22
|
ColumnType = "Column" # Use string literal instead of direct class reference
|
|
23
|
+
from polars._typing import (
|
|
24
|
+
Ambiguous,
|
|
25
|
+
IntoExpr,
|
|
26
|
+
IntoExprColumn,
|
|
27
|
+
PolarsDataType,
|
|
28
|
+
PolarsTemporalType,
|
|
29
|
+
TimeUnit)
|
|
23
30
|
|
|
24
31
|
ExprOrStr = Union['Expr', str]
|
|
25
32
|
ExprOrStrList = List[ExprOrStr]
|
|
@@ -110,6 +117,11 @@ class StringMethods:
|
|
|
110
117
|
res_expr = self.expr.to_uppercase() if self.expr is not None else None
|
|
111
118
|
return self._create_next_expr(method_name="to_uppercase", result_expr=res_expr, is_complex=True)
|
|
112
119
|
|
|
120
|
+
def slice(self, offset: int | IntoExprColumn, length: int | IntoExprColumn | None = None) -> Expr:
|
|
121
|
+
res_expr = self.expr.slice(offset=offset, length=length)
|
|
122
|
+
return self._create_next_expr(method_name="slice", result_expr=res_expr, is_complex=True,
|
|
123
|
+
offset=offset, length=length)
|
|
124
|
+
|
|
113
125
|
def to_lowercase(self):
|
|
114
126
|
res_expr = self.expr.to_lowercase() if self.expr is not None else None
|
|
115
127
|
return self._create_next_expr(method_name="to_lowercase", result_expr=res_expr, is_complex=True)
|
|
@@ -138,13 +150,28 @@ class StringMethods:
|
|
|
138
150
|
strict: bool = True,
|
|
139
151
|
exact: bool = True,
|
|
140
152
|
cache: bool = True,
|
|
141
|
-
ambiguous: Literal["earliest", "latest", "raise", "null"] | Expr = "raise",):
|
|
153
|
+
ambiguous: Literal["earliest", "latest", "raise", "null"] | Expr = "raise",) -> 'Expr':
|
|
142
154
|
res_expr = self.expr.to_datetime(format, time_unit=time_unit, time_zone=time_zone, strict=strict,
|
|
143
155
|
exact=exact, cache=cache, ambiguous=ambiguous)
|
|
144
156
|
return self._create_next_expr(method_name="to_datetime", result_expr=res_expr, is_complex=True,
|
|
145
157
|
format=format, time_unit=time_unit, time_zone=time_zone, strict=strict,
|
|
146
158
|
exact=exact, cache=cache, ambiguous=ambiguous)
|
|
147
159
|
|
|
160
|
+
def strptime(self,
|
|
161
|
+
dtype: PolarsTemporalType,
|
|
162
|
+
format: str | None = None,
|
|
163
|
+
*,
|
|
164
|
+
strict: bool = True,
|
|
165
|
+
exact: bool = True,
|
|
166
|
+
cache: bool = True,
|
|
167
|
+
ambiguous: Literal["earliest", "latest", "raise", "null"] | Expr = "raise",) -> 'Expr':
|
|
168
|
+
res_expr = self.expr.strptime(dtype, format, strict=strict, exact=exact, cache=cache, ambiguous=ambiguous)
|
|
169
|
+
return self._create_next_expr(method_name="strptime", dtype=dtype, result_expr=res_expr, is_complex=True,
|
|
170
|
+
format=format, strict=strict,
|
|
171
|
+
exact=exact, cache=cache, ambiguous=ambiguous)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
148
175
|
def __getattr__(self, name):
|
|
149
176
|
if self.expr is None or not hasattr(self.expr, name):
|
|
150
177
|
if self.expr is None:
|
flowfile_frame/expr.pyi
CHANGED
|
@@ -56,6 +56,12 @@ class StringMethods:
|
|
|
56
56
|
|
|
57
57
|
def starts_with(self, prefix) -> Any: ...
|
|
58
58
|
|
|
59
|
+
def strptime(self, dtype: PolarsTemporalType, format: str | None=None, strict: bool=True, exact: bool=True, cache: bool=True, ambiguous: Literal['earliest', 'latest', 'raise', 'null'] | Expr='raise') -> 'Expr': ...
|
|
60
|
+
|
|
61
|
+
def to_date(self, format: str, strict: bool=True, exact: bool=True, cache: bool=True) -> Any: ...
|
|
62
|
+
|
|
63
|
+
def to_datetime(self, format: str | None=None, time_unit: Literal['ns', 'us', 'ms'] | None=None, time_zone: str | None=None, strict: bool=True, exact: bool=True, cache: bool=True, ambiguous: Literal['earliest', 'latest', 'raise', 'null'] | Expr='raise') -> 'Expr': ...
|
|
64
|
+
|
|
59
65
|
def to_lowercase(self, ) -> Any: ...
|
|
60
66
|
|
|
61
67
|
def to_titlecase(self, ) -> Any: ...
|
|
@@ -297,7 +303,7 @@ class Expr:
|
|
|
297
303
|
def cum_sum(self, reverse: bool=False) -> Expr: ...
|
|
298
304
|
|
|
299
305
|
# Run an expression over a sliding window that increases `1` slot every iteration.
|
|
300
|
-
def cumulative_eval(self, expr: Expr, min_samples: int=1
|
|
306
|
+
def cumulative_eval(self, expr: Expr, min_samples: int=1) -> Expr: ...
|
|
301
307
|
|
|
302
308
|
# Bin continuous values into discrete categories.
|
|
303
309
|
def cut(self, breaks: Sequence[float], labels: Sequence[str] | None=None, left_closed: bool=False, include_breaks: bool=False) -> Expr: ...
|
|
@@ -309,7 +315,7 @@ class Expr:
|
|
|
309
315
|
def deserialize(self, source: str | Path | IOBase | bytes, format: SerializationFormat='binary') -> Expr: ...
|
|
310
316
|
|
|
311
317
|
# Calculate the first discrete difference between shifted items.
|
|
312
|
-
def diff(self, n: int=1, null_behavior: NullBehavior='ignore') -> Expr: ...
|
|
318
|
+
def diff(self, n: int | IntoExpr=1, null_behavior: NullBehavior='ignore') -> Expr: ...
|
|
313
319
|
|
|
314
320
|
# Compute the dot/inner product between two Expressions.
|
|
315
321
|
def dot(self, other: Expr | str) -> Expr: ...
|
|
@@ -414,7 +420,7 @@ class Expr:
|
|
|
414
420
|
# Print the value that this expression evaluates to and pass on the value.
|
|
415
421
|
def inspect(self, fmt: str='{}') -> Expr: ...
|
|
416
422
|
|
|
417
|
-
#
|
|
423
|
+
# Interpolate intermediate values.
|
|
418
424
|
def interpolate(self, method: InterpolationMethod='linear') -> Expr: ...
|
|
419
425
|
|
|
420
426
|
# Fill null values using interpolation based on another column.
|
|
@@ -483,7 +489,7 @@ class Expr:
|
|
|
483
489
|
def lt(self, other: Any) -> Expr: ...
|
|
484
490
|
|
|
485
491
|
# Apply a custom python function to a whole Series or sequence of Series.
|
|
486
|
-
def map_batches(self, function: Callable[[Series], Series | Any], return_dtype: PolarsDataType | None=None, agg_list: bool=False, is_elementwise: bool=False, returns_scalar: bool=False) -> Expr: ...
|
|
492
|
+
def map_batches(self, function: Callable[[Series], Series | Any], return_dtype: PolarsDataType | pl.DataTypeExpr | None=None, agg_list: bool=False, is_elementwise: bool=False, returns_scalar: bool=False) -> Expr: ...
|
|
487
493
|
|
|
488
494
|
# Map a custom/user-defined function (UDF) to each element of a column.
|
|
489
495
|
def map_elements(self, function: Callable[[Any], Any], return_dtype: PolarsDataType | None=None, skip_nulls: bool=True, pass_name: bool=False, strategy: MapElementsStrategy='thread_local', returns_scalar: bool=False) -> Expr: ...
|
|
@@ -556,7 +562,7 @@ class Expr:
|
|
|
556
562
|
def qcut(self, quantiles: Sequence[float] | int, labels: Sequence[str] | None=None, left_closed: bool=False, allow_duplicates: bool=False, include_breaks: bool=False) -> Expr: ...
|
|
557
563
|
|
|
558
564
|
# Get quantile value.
|
|
559
|
-
def quantile(self, quantile: float | Expr, interpolation:
|
|
565
|
+
def quantile(self, quantile: float | Expr, interpolation: QuantileMethod='nearest') -> Expr: ...
|
|
560
566
|
|
|
561
567
|
# Convert from degrees to radians.
|
|
562
568
|
def radians(self, ) -> Expr: ...
|
|
@@ -580,7 +586,7 @@ class Expr:
|
|
|
580
586
|
def replace(self, old: IntoExpr | Sequence[Any] | Mapping[Any, Any], new: IntoExpr | Sequence[Any], default: IntoExpr, return_dtype: PolarsDataType | None=None) -> Expr: ...
|
|
581
587
|
|
|
582
588
|
# Replace all values by different values.
|
|
583
|
-
def replace_strict(self, old: IntoExpr | Sequence[Any] | Mapping[Any, Any], new: IntoExpr | Sequence[Any], default: IntoExpr, return_dtype: PolarsDataType | None=None) -> Expr: ...
|
|
589
|
+
def replace_strict(self, old: IntoExpr | Sequence[Any] | Mapping[Any, Any], new: IntoExpr | Sequence[Any], default: IntoExpr, return_dtype: PolarsDataType | pl.DataTypeExpr | None=None) -> Expr: ...
|
|
584
590
|
|
|
585
591
|
# Reshape this Expr to a flat column or an Array column.
|
|
586
592
|
def reshape(self, dimensions: tuple[int, ...]) -> Expr: ...
|
|
@@ -597,6 +603,9 @@ class Expr:
|
|
|
597
603
|
# Create rolling groups based on a temporal or integer column.
|
|
598
604
|
def rolling(self, index_column: str, period: str | timedelta, offset: str | timedelta | None=None, closed: ClosedInterval='right') -> Expr: ...
|
|
599
605
|
|
|
606
|
+
# Compute a rolling kurtosis.
|
|
607
|
+
def rolling_kurtosis(self, window_size: int, fisher: bool=True, bias: bool=True, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
608
|
+
|
|
600
609
|
# Compute a custom rolling window function.
|
|
601
610
|
def rolling_map(self, function: Callable[[Series], Any], window_size: int, weights: list[float] | None=None, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
602
611
|
|
|
@@ -625,13 +634,13 @@ class Expr:
|
|
|
625
634
|
def rolling_min_by(self, by: IntoExpr, window_size: timedelta | str, min_samples: int=1, closed: ClosedInterval='right') -> Expr: ...
|
|
626
635
|
|
|
627
636
|
# Compute a rolling quantile.
|
|
628
|
-
def rolling_quantile(self, quantile: float, interpolation:
|
|
637
|
+
def rolling_quantile(self, quantile: float, interpolation: QuantileMethod='nearest', window_size: int=2, weights: list[float] | None=None, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
629
638
|
|
|
630
639
|
# Compute a rolling quantile based on another column.
|
|
631
|
-
def rolling_quantile_by(self, by: IntoExpr, window_size: timedelta | str, quantile: float, interpolation:
|
|
640
|
+
def rolling_quantile_by(self, by: IntoExpr, window_size: timedelta | str, quantile: float, interpolation: QuantileMethod='nearest', min_samples: int=1, closed: ClosedInterval='right') -> Expr: ...
|
|
632
641
|
|
|
633
642
|
# Compute a rolling skew.
|
|
634
|
-
def rolling_skew(self, window_size: int, bias: bool=True) -> Expr: ...
|
|
643
|
+
def rolling_skew(self, window_size: int, bias: bool=True, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
635
644
|
|
|
636
645
|
# Compute a rolling standard deviation.
|
|
637
646
|
def rolling_std(self, window_size: int, weights: list[float] | None=None, min_samples: int | None=None, center: bool=False, ddof: int=1) -> Expr: ...
|
|
@@ -652,7 +661,7 @@ class Expr:
|
|
|
652
661
|
def rolling_var_by(self, by: IntoExpr, window_size: timedelta | str, min_samples: int=1, closed: ClosedInterval='right', ddof: int=1) -> Expr: ...
|
|
653
662
|
|
|
654
663
|
# Round underlying floating point data by `decimals` digits.
|
|
655
|
-
def round(self, decimals: int=0) -> Expr: ...
|
|
664
|
+
def round(self, decimals: int=0, mode: RoundMode='half_to_even') -> Expr: ...
|
|
656
665
|
|
|
657
666
|
# Round to a number of significant figures.
|
|
658
667
|
def round_sig_figs(self, digits: int) -> Expr: ...
|
|
@@ -661,7 +670,7 @@ class Expr:
|
|
|
661
670
|
def sample(self, n: int | IntoExprColumn | None=None, fraction: float | IntoExprColumn | None=None, with_replacement: bool=False, shuffle: bool=False, seed: int | None=None) -> Expr: ...
|
|
662
671
|
|
|
663
672
|
# Find indices where elements should be inserted to maintain order.
|
|
664
|
-
def search_sorted(self, element: IntoExpr | np.ndarray[Any, Any], side: SearchSortedSide='any') -> Expr: ...
|
|
673
|
+
def search_sorted(self, element: IntoExpr | np.ndarray[Any, Any], side: SearchSortedSide='any', descending: bool=False) -> Expr: ...
|
|
665
674
|
|
|
666
675
|
# Flags the expression as 'sorted'.
|
|
667
676
|
def set_sorted(self, descending: bool=False) -> Expr: ...
|
|
@@ -735,7 +744,7 @@ class Expr:
|
|
|
735
744
|
# Calculate the upper bound.
|
|
736
745
|
def upper_bound(self, ) -> Expr: ...
|
|
737
746
|
|
|
738
|
-
# Count the
|
|
747
|
+
# Count the occurrence of unique values.
|
|
739
748
|
def value_counts(self, sort: bool=False, parallel: bool=False, name: str | None=None, normalize: bool=False) -> Expr: ...
|
|
740
749
|
|
|
741
750
|
def var(self, ddof=1) -> Any: ...
|
|
@@ -746,59 +755,59 @@ class Expr:
|
|
|
746
755
|
# Method equivalent of bitwise exclusive-or operator `expr ^ other`.
|
|
747
756
|
def xor(self, other: Any) -> Expr: ...
|
|
748
757
|
|
|
749
|
-
def
|
|
758
|
+
def __pos__(self, *args, **kwargs) -> 'Expr': ...
|
|
750
759
|
|
|
751
|
-
def
|
|
760
|
+
def __rxor__(self, *args, **kwargs) -> 'Expr': ...
|
|
752
761
|
|
|
753
|
-
def
|
|
762
|
+
def __sizeof__(self, *args, **kwargs) -> 'Expr': ...
|
|
754
763
|
|
|
755
|
-
def
|
|
764
|
+
def __init_subclass__(self, *args, **kwargs) -> 'Expr': ...
|
|
756
765
|
|
|
757
|
-
def
|
|
766
|
+
def __new__(self, *args, **kwargs) -> 'Expr': ...
|
|
758
767
|
|
|
759
|
-
def
|
|
768
|
+
def __reduce__(self, *args, **kwargs) -> 'Expr': ...
|
|
760
769
|
|
|
761
|
-
def
|
|
770
|
+
def __setattr__(self, *args, **kwargs) -> 'Expr': ...
|
|
762
771
|
|
|
763
|
-
def
|
|
772
|
+
def __subclasshook__(self, *args, **kwargs) -> 'Expr': ...
|
|
764
773
|
|
|
765
|
-
def
|
|
774
|
+
def _skip_batch_predicate(self, *args, **kwargs) -> 'Expr': ...
|
|
766
775
|
|
|
767
|
-
def
|
|
776
|
+
def __getattribute__(self, *args, **kwargs) -> 'Expr': ...
|
|
768
777
|
|
|
769
778
|
def __class__(self, *args, **kwargs) -> 'Expr': ...
|
|
770
779
|
|
|
771
|
-
def
|
|
780
|
+
def _from_pyexpr(self, *args, **kwargs) -> 'Expr': ...
|
|
772
781
|
|
|
773
|
-
def
|
|
782
|
+
def __bool__(self, *args, **kwargs) -> 'Expr': ...
|
|
774
783
|
|
|
775
|
-
def
|
|
784
|
+
def __setstate__(self, *args, **kwargs) -> 'Expr': ...
|
|
776
785
|
|
|
777
|
-
def
|
|
786
|
+
def __format__(self, *args, **kwargs) -> 'Expr': ...
|
|
778
787
|
|
|
779
|
-
def
|
|
788
|
+
def __getstate__(self, *args, **kwargs) -> 'Expr': ...
|
|
780
789
|
|
|
781
|
-
def
|
|
790
|
+
def __array_ufunc__(self, *args, **kwargs) -> 'Expr': ...
|
|
782
791
|
|
|
783
792
|
def __xor__(self, *args, **kwargs) -> 'Expr': ...
|
|
784
793
|
|
|
785
|
-
def
|
|
786
|
-
|
|
787
|
-
def __rand__(self, *args, **kwargs) -> 'Expr': ...
|
|
794
|
+
def __reduce_ex__(self, *args, **kwargs) -> 'Expr': ...
|
|
788
795
|
|
|
789
|
-
def
|
|
796
|
+
def _repr_html_(self, *args, **kwargs) -> 'Expr': ...
|
|
790
797
|
|
|
791
|
-
def
|
|
798
|
+
def __dir__(self, *args, **kwargs) -> 'Expr': ...
|
|
792
799
|
|
|
793
800
|
def __abs__(self, *args, **kwargs) -> 'Expr': ...
|
|
794
801
|
|
|
795
|
-
def
|
|
802
|
+
def __ror__(self, *args, **kwargs) -> 'Expr': ...
|
|
796
803
|
|
|
797
|
-
def
|
|
804
|
+
def _map_batches_wrapper(self, *args, **kwargs) -> 'Expr': ...
|
|
798
805
|
|
|
799
|
-
def
|
|
806
|
+
def __rand__(self, *args, **kwargs) -> 'Expr': ...
|
|
800
807
|
|
|
801
|
-
def
|
|
808
|
+
def __str__(self, *args, **kwargs) -> 'Expr': ...
|
|
809
|
+
|
|
810
|
+
def __delattr__(self, *args, **kwargs) -> 'Expr': ...
|
|
802
811
|
|
|
803
812
|
|
|
804
813
|
class Column(Expr):
|
|
@@ -1005,7 +1014,7 @@ class Column(Expr):
|
|
|
1005
1014
|
def cum_sum(self, reverse: bool=False) -> Expr: ...
|
|
1006
1015
|
|
|
1007
1016
|
# Run an expression over a sliding window that increases `1` slot every iteration.
|
|
1008
|
-
def cumulative_eval(self, expr: Expr, min_samples: int=1
|
|
1017
|
+
def cumulative_eval(self, expr: Expr, min_samples: int=1) -> Expr: ...
|
|
1009
1018
|
|
|
1010
1019
|
# Bin continuous values into discrete categories.
|
|
1011
1020
|
def cut(self, breaks: Sequence[float], labels: Sequence[str] | None=None, left_closed: bool=False, include_breaks: bool=False) -> Expr: ...
|
|
@@ -1017,7 +1026,7 @@ class Column(Expr):
|
|
|
1017
1026
|
def deserialize(self, source: str | Path | IOBase | bytes, format: SerializationFormat='binary') -> Expr: ...
|
|
1018
1027
|
|
|
1019
1028
|
# Calculate the first discrete difference between shifted items.
|
|
1020
|
-
def diff(self, n: int=1, null_behavior: NullBehavior='ignore') -> Expr: ...
|
|
1029
|
+
def diff(self, n: int | IntoExpr=1, null_behavior: NullBehavior='ignore') -> Expr: ...
|
|
1021
1030
|
|
|
1022
1031
|
# Compute the dot/inner product between two Expressions.
|
|
1023
1032
|
def dot(self, other: Expr | str) -> Expr: ...
|
|
@@ -1122,7 +1131,7 @@ class Column(Expr):
|
|
|
1122
1131
|
# Print the value that this expression evaluates to and pass on the value.
|
|
1123
1132
|
def inspect(self, fmt: str='{}') -> Expr: ...
|
|
1124
1133
|
|
|
1125
|
-
#
|
|
1134
|
+
# Interpolate intermediate values.
|
|
1126
1135
|
def interpolate(self, method: InterpolationMethod='linear') -> Expr: ...
|
|
1127
1136
|
|
|
1128
1137
|
# Fill null values using interpolation based on another column.
|
|
@@ -1191,7 +1200,7 @@ class Column(Expr):
|
|
|
1191
1200
|
def lt(self, other: Any) -> Expr: ...
|
|
1192
1201
|
|
|
1193
1202
|
# Apply a custom python function to a whole Series or sequence of Series.
|
|
1194
|
-
def map_batches(self, function: Callable[[Series], Series | Any], return_dtype: PolarsDataType | None=None, agg_list: bool=False, is_elementwise: bool=False, returns_scalar: bool=False) -> Expr: ...
|
|
1203
|
+
def map_batches(self, function: Callable[[Series], Series | Any], return_dtype: PolarsDataType | pl.DataTypeExpr | None=None, agg_list: bool=False, is_elementwise: bool=False, returns_scalar: bool=False) -> Expr: ...
|
|
1195
1204
|
|
|
1196
1205
|
# Map a custom/user-defined function (UDF) to each element of a column.
|
|
1197
1206
|
def map_elements(self, function: Callable[[Any], Any], return_dtype: PolarsDataType | None=None, skip_nulls: bool=True, pass_name: bool=False, strategy: MapElementsStrategy='thread_local', returns_scalar: bool=False) -> Expr: ...
|
|
@@ -1264,7 +1273,7 @@ class Column(Expr):
|
|
|
1264
1273
|
def qcut(self, quantiles: Sequence[float] | int, labels: Sequence[str] | None=None, left_closed: bool=False, allow_duplicates: bool=False, include_breaks: bool=False) -> Expr: ...
|
|
1265
1274
|
|
|
1266
1275
|
# Get quantile value.
|
|
1267
|
-
def quantile(self, quantile: float | Expr, interpolation:
|
|
1276
|
+
def quantile(self, quantile: float | Expr, interpolation: QuantileMethod='nearest') -> Expr: ...
|
|
1268
1277
|
|
|
1269
1278
|
# Convert from degrees to radians.
|
|
1270
1279
|
def radians(self, ) -> Expr: ...
|
|
@@ -1288,7 +1297,7 @@ class Column(Expr):
|
|
|
1288
1297
|
def replace(self, old: IntoExpr | Sequence[Any] | Mapping[Any, Any], new: IntoExpr | Sequence[Any], default: IntoExpr, return_dtype: PolarsDataType | None=None) -> Expr: ...
|
|
1289
1298
|
|
|
1290
1299
|
# Replace all values by different values.
|
|
1291
|
-
def replace_strict(self, old: IntoExpr | Sequence[Any] | Mapping[Any, Any], new: IntoExpr | Sequence[Any], default: IntoExpr, return_dtype: PolarsDataType | None=None) -> Expr: ...
|
|
1300
|
+
def replace_strict(self, old: IntoExpr | Sequence[Any] | Mapping[Any, Any], new: IntoExpr | Sequence[Any], default: IntoExpr, return_dtype: PolarsDataType | pl.DataTypeExpr | None=None) -> Expr: ...
|
|
1292
1301
|
|
|
1293
1302
|
# Reshape this Expr to a flat column or an Array column.
|
|
1294
1303
|
def reshape(self, dimensions: tuple[int, ...]) -> Expr: ...
|
|
@@ -1305,6 +1314,9 @@ class Column(Expr):
|
|
|
1305
1314
|
# Create rolling groups based on a temporal or integer column.
|
|
1306
1315
|
def rolling(self, index_column: str, period: str | timedelta, offset: str | timedelta | None=None, closed: ClosedInterval='right') -> Expr: ...
|
|
1307
1316
|
|
|
1317
|
+
# Compute a rolling kurtosis.
|
|
1318
|
+
def rolling_kurtosis(self, window_size: int, fisher: bool=True, bias: bool=True, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
1319
|
+
|
|
1308
1320
|
# Compute a custom rolling window function.
|
|
1309
1321
|
def rolling_map(self, function: Callable[[Series], Any], window_size: int, weights: list[float] | None=None, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
1310
1322
|
|
|
@@ -1333,13 +1345,13 @@ class Column(Expr):
|
|
|
1333
1345
|
def rolling_min_by(self, by: IntoExpr, window_size: timedelta | str, min_samples: int=1, closed: ClosedInterval='right') -> Expr: ...
|
|
1334
1346
|
|
|
1335
1347
|
# Compute a rolling quantile.
|
|
1336
|
-
def rolling_quantile(self, quantile: float, interpolation:
|
|
1348
|
+
def rolling_quantile(self, quantile: float, interpolation: QuantileMethod='nearest', window_size: int=2, weights: list[float] | None=None, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
1337
1349
|
|
|
1338
1350
|
# Compute a rolling quantile based on another column.
|
|
1339
|
-
def rolling_quantile_by(self, by: IntoExpr, window_size: timedelta | str, quantile: float, interpolation:
|
|
1351
|
+
def rolling_quantile_by(self, by: IntoExpr, window_size: timedelta | str, quantile: float, interpolation: QuantileMethod='nearest', min_samples: int=1, closed: ClosedInterval='right') -> Expr: ...
|
|
1340
1352
|
|
|
1341
1353
|
# Compute a rolling skew.
|
|
1342
|
-
def rolling_skew(self, window_size: int, bias: bool=True) -> Expr: ...
|
|
1354
|
+
def rolling_skew(self, window_size: int, bias: bool=True, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
1343
1355
|
|
|
1344
1356
|
# Compute a rolling standard deviation.
|
|
1345
1357
|
def rolling_std(self, window_size: int, weights: list[float] | None=None, min_samples: int | None=None, center: bool=False, ddof: int=1) -> Expr: ...
|
|
@@ -1360,7 +1372,7 @@ class Column(Expr):
|
|
|
1360
1372
|
def rolling_var_by(self, by: IntoExpr, window_size: timedelta | str, min_samples: int=1, closed: ClosedInterval='right', ddof: int=1) -> Expr: ...
|
|
1361
1373
|
|
|
1362
1374
|
# Round underlying floating point data by `decimals` digits.
|
|
1363
|
-
def round(self, decimals: int=0) -> Expr: ...
|
|
1375
|
+
def round(self, decimals: int=0, mode: RoundMode='half_to_even') -> Expr: ...
|
|
1364
1376
|
|
|
1365
1377
|
# Round to a number of significant figures.
|
|
1366
1378
|
def round_sig_figs(self, digits: int) -> Expr: ...
|
|
@@ -1369,7 +1381,7 @@ class Column(Expr):
|
|
|
1369
1381
|
def sample(self, n: int | IntoExprColumn | None=None, fraction: float | IntoExprColumn | None=None, with_replacement: bool=False, shuffle: bool=False, seed: int | None=None) -> Expr: ...
|
|
1370
1382
|
|
|
1371
1383
|
# Find indices where elements should be inserted to maintain order.
|
|
1372
|
-
def search_sorted(self, element: IntoExpr | np.ndarray[Any, Any], side: SearchSortedSide='any') -> Expr: ...
|
|
1384
|
+
def search_sorted(self, element: IntoExpr | np.ndarray[Any, Any], side: SearchSortedSide='any', descending: bool=False) -> Expr: ...
|
|
1373
1385
|
|
|
1374
1386
|
# Flags the expression as 'sorted'.
|
|
1375
1387
|
def set_sorted(self, descending: bool=False) -> Expr: ...
|
|
@@ -1446,7 +1458,7 @@ class Column(Expr):
|
|
|
1446
1458
|
# Calculate the upper bound.
|
|
1447
1459
|
def upper_bound(self, ) -> Expr: ...
|
|
1448
1460
|
|
|
1449
|
-
# Count the
|
|
1461
|
+
# Count the occurrence of unique values.
|
|
1450
1462
|
def value_counts(self, sort: bool=False, parallel: bool=False, name: str | None=None, normalize: bool=False) -> Expr: ...
|
|
1451
1463
|
|
|
1452
1464
|
def var(self, ddof=1) -> Any: ...
|
|
@@ -1666,7 +1678,7 @@ class When(Expr):
|
|
|
1666
1678
|
def cum_sum(self, reverse: bool=False) -> Expr: ...
|
|
1667
1679
|
|
|
1668
1680
|
# Run an expression over a sliding window that increases `1` slot every iteration.
|
|
1669
|
-
def cumulative_eval(self, expr: Expr, min_samples: int=1
|
|
1681
|
+
def cumulative_eval(self, expr: Expr, min_samples: int=1) -> Expr: ...
|
|
1670
1682
|
|
|
1671
1683
|
# Bin continuous values into discrete categories.
|
|
1672
1684
|
def cut(self, breaks: Sequence[float], labels: Sequence[str] | None=None, left_closed: bool=False, include_breaks: bool=False) -> Expr: ...
|
|
@@ -1678,7 +1690,7 @@ class When(Expr):
|
|
|
1678
1690
|
def deserialize(self, source: str | Path | IOBase | bytes, format: SerializationFormat='binary') -> Expr: ...
|
|
1679
1691
|
|
|
1680
1692
|
# Calculate the first discrete difference between shifted items.
|
|
1681
|
-
def diff(self, n: int=1, null_behavior: NullBehavior='ignore') -> Expr: ...
|
|
1693
|
+
def diff(self, n: int | IntoExpr=1, null_behavior: NullBehavior='ignore') -> Expr: ...
|
|
1682
1694
|
|
|
1683
1695
|
# Compute the dot/inner product between two Expressions.
|
|
1684
1696
|
def dot(self, other: Expr | str) -> Expr: ...
|
|
@@ -1783,7 +1795,7 @@ class When(Expr):
|
|
|
1783
1795
|
# Print the value that this expression evaluates to and pass on the value.
|
|
1784
1796
|
def inspect(self, fmt: str='{}') -> Expr: ...
|
|
1785
1797
|
|
|
1786
|
-
#
|
|
1798
|
+
# Interpolate intermediate values.
|
|
1787
1799
|
def interpolate(self, method: InterpolationMethod='linear') -> Expr: ...
|
|
1788
1800
|
|
|
1789
1801
|
# Fill null values using interpolation based on another column.
|
|
@@ -1852,7 +1864,7 @@ class When(Expr):
|
|
|
1852
1864
|
def lt(self, other: Any) -> Expr: ...
|
|
1853
1865
|
|
|
1854
1866
|
# Apply a custom python function to a whole Series or sequence of Series.
|
|
1855
|
-
def map_batches(self, function: Callable[[Series], Series | Any], return_dtype: PolarsDataType | None=None, agg_list: bool=False, is_elementwise: bool=False, returns_scalar: bool=False) -> Expr: ...
|
|
1867
|
+
def map_batches(self, function: Callable[[Series], Series | Any], return_dtype: PolarsDataType | pl.DataTypeExpr | None=None, agg_list: bool=False, is_elementwise: bool=False, returns_scalar: bool=False) -> Expr: ...
|
|
1856
1868
|
|
|
1857
1869
|
# Map a custom/user-defined function (UDF) to each element of a column.
|
|
1858
1870
|
def map_elements(self, function: Callable[[Any], Any], return_dtype: PolarsDataType | None=None, skip_nulls: bool=True, pass_name: bool=False, strategy: MapElementsStrategy='thread_local', returns_scalar: bool=False) -> Expr: ...
|
|
@@ -1928,7 +1940,7 @@ class When(Expr):
|
|
|
1928
1940
|
def qcut(self, quantiles: Sequence[float] | int, labels: Sequence[str] | None=None, left_closed: bool=False, allow_duplicates: bool=False, include_breaks: bool=False) -> Expr: ...
|
|
1929
1941
|
|
|
1930
1942
|
# Get quantile value.
|
|
1931
|
-
def quantile(self, quantile: float | Expr, interpolation:
|
|
1943
|
+
def quantile(self, quantile: float | Expr, interpolation: QuantileMethod='nearest') -> Expr: ...
|
|
1932
1944
|
|
|
1933
1945
|
# Convert from degrees to radians.
|
|
1934
1946
|
def radians(self, ) -> Expr: ...
|
|
@@ -1952,7 +1964,7 @@ class When(Expr):
|
|
|
1952
1964
|
def replace(self, old: IntoExpr | Sequence[Any] | Mapping[Any, Any], new: IntoExpr | Sequence[Any], default: IntoExpr, return_dtype: PolarsDataType | None=None) -> Expr: ...
|
|
1953
1965
|
|
|
1954
1966
|
# Replace all values by different values.
|
|
1955
|
-
def replace_strict(self, old: IntoExpr | Sequence[Any] | Mapping[Any, Any], new: IntoExpr | Sequence[Any], default: IntoExpr, return_dtype: PolarsDataType | None=None) -> Expr: ...
|
|
1967
|
+
def replace_strict(self, old: IntoExpr | Sequence[Any] | Mapping[Any, Any], new: IntoExpr | Sequence[Any], default: IntoExpr, return_dtype: PolarsDataType | pl.DataTypeExpr | None=None) -> Expr: ...
|
|
1956
1968
|
|
|
1957
1969
|
# Reshape this Expr to a flat column or an Array column.
|
|
1958
1970
|
def reshape(self, dimensions: tuple[int, ...]) -> Expr: ...
|
|
@@ -1969,6 +1981,9 @@ class When(Expr):
|
|
|
1969
1981
|
# Create rolling groups based on a temporal or integer column.
|
|
1970
1982
|
def rolling(self, index_column: str, period: str | timedelta, offset: str | timedelta | None=None, closed: ClosedInterval='right') -> Expr: ...
|
|
1971
1983
|
|
|
1984
|
+
# Compute a rolling kurtosis.
|
|
1985
|
+
def rolling_kurtosis(self, window_size: int, fisher: bool=True, bias: bool=True, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
1986
|
+
|
|
1972
1987
|
# Compute a custom rolling window function.
|
|
1973
1988
|
def rolling_map(self, function: Callable[[Series], Any], window_size: int, weights: list[float] | None=None, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
1974
1989
|
|
|
@@ -1997,13 +2012,13 @@ class When(Expr):
|
|
|
1997
2012
|
def rolling_min_by(self, by: IntoExpr, window_size: timedelta | str, min_samples: int=1, closed: ClosedInterval='right') -> Expr: ...
|
|
1998
2013
|
|
|
1999
2014
|
# Compute a rolling quantile.
|
|
2000
|
-
def rolling_quantile(self, quantile: float, interpolation:
|
|
2015
|
+
def rolling_quantile(self, quantile: float, interpolation: QuantileMethod='nearest', window_size: int=2, weights: list[float] | None=None, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
2001
2016
|
|
|
2002
2017
|
# Compute a rolling quantile based on another column.
|
|
2003
|
-
def rolling_quantile_by(self, by: IntoExpr, window_size: timedelta | str, quantile: float, interpolation:
|
|
2018
|
+
def rolling_quantile_by(self, by: IntoExpr, window_size: timedelta | str, quantile: float, interpolation: QuantileMethod='nearest', min_samples: int=1, closed: ClosedInterval='right') -> Expr: ...
|
|
2004
2019
|
|
|
2005
2020
|
# Compute a rolling skew.
|
|
2006
|
-
def rolling_skew(self, window_size: int, bias: bool=True) -> Expr: ...
|
|
2021
|
+
def rolling_skew(self, window_size: int, bias: bool=True, min_samples: int | None=None, center: bool=False) -> Expr: ...
|
|
2007
2022
|
|
|
2008
2023
|
# Compute a rolling standard deviation.
|
|
2009
2024
|
def rolling_std(self, window_size: int, weights: list[float] | None=None, min_samples: int | None=None, center: bool=False, ddof: int=1) -> Expr: ...
|
|
@@ -2024,7 +2039,7 @@ class When(Expr):
|
|
|
2024
2039
|
def rolling_var_by(self, by: IntoExpr, window_size: timedelta | str, min_samples: int=1, closed: ClosedInterval='right', ddof: int=1) -> Expr: ...
|
|
2025
2040
|
|
|
2026
2041
|
# Round underlying floating point data by `decimals` digits.
|
|
2027
|
-
def round(self, decimals: int=0) -> Expr: ...
|
|
2042
|
+
def round(self, decimals: int=0, mode: RoundMode='half_to_even') -> Expr: ...
|
|
2028
2043
|
|
|
2029
2044
|
# Round to a number of significant figures.
|
|
2030
2045
|
def round_sig_figs(self, digits: int) -> Expr: ...
|
|
@@ -2033,7 +2048,7 @@ class When(Expr):
|
|
|
2033
2048
|
def sample(self, n: int | IntoExprColumn | None=None, fraction: float | IntoExprColumn | None=None, with_replacement: bool=False, shuffle: bool=False, seed: int | None=None) -> Expr: ...
|
|
2034
2049
|
|
|
2035
2050
|
# Find indices where elements should be inserted to maintain order.
|
|
2036
|
-
def search_sorted(self, element: IntoExpr | np.ndarray[Any, Any], side: SearchSortedSide='any') -> Expr: ...
|
|
2051
|
+
def search_sorted(self, element: IntoExpr | np.ndarray[Any, Any], side: SearchSortedSide='any', descending: bool=False) -> Expr: ...
|
|
2037
2052
|
|
|
2038
2053
|
# Flags the expression as 'sorted'.
|
|
2039
2054
|
def set_sorted(self, descending: bool=False) -> Expr: ...
|
|
@@ -2110,7 +2125,7 @@ class When(Expr):
|
|
|
2110
2125
|
# Calculate the upper bound.
|
|
2111
2126
|
def upper_bound(self, ) -> Expr: ...
|
|
2112
2127
|
|
|
2113
|
-
# Count the
|
|
2128
|
+
# Count the occurrence of unique values.
|
|
2114
2129
|
def value_counts(self, sort: bool=False, parallel: bool=False, name: str | None=None, normalize: bool=False) -> Expr: ...
|
|
2115
2130
|
|
|
2116
2131
|
def var(self, ddof=1) -> Any: ...
|