Polars backend adapter for PlanFrame.
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
planframe-polars
Polars adapter package for PlanFrame. Import as planframe_polars.
Documentation (ReadTheDocs):
- Polars track (end users):
https://planframe.readthedocs.io/en/latest/planframe_polars/ - Light API reference:
https://planframe.readthedocs.io/en/latest/planframe_polars/reference/api/
Usage
import polars as pl
from planframe_polars import PolarsFrame
class User(PolarsFrame):
id: int
age: int
pf = User(pl.DataFrame({"id": [1], "age": [2]}))
df = pf.select("id").collect()
# Common transforms
#
# PlanFrame is always lazy; these build a plan until `collect()`.
pf3 = pf.with_row_count(name="row_nr").clip(lower=0, subset=("age",))
# Or construct from python data:
pf2 = User({"id": [1], "age": [2]})
Execution model
PlanFrame is always lazy:
- Chaining methods (like
.select(...)) does not run Polars operations. collect()evaluates the full plan. If the source is apolars.LazyFrame, this naturally compiles into a single lazy query before collecting.
Notes (Polars-specific)
- Pivot:
LazyFrame.pivot(...)requireson_columnsto be provided up-front (Polars must know the output schema prior tocollect()). PlanFrame enforces this at execution time. - concat_vertical: implemented via
polars.concat(..., how="vertical"). - Join: implemented via
LazyFrame.join(...)/DataFrame.join(...)with symmetriconor asymmetricleft_on/right_on, plus optionalJoinOptionsmapped to Polars (nulls_equal,validate,coalesce,maintain_order,allow_parallel/ streaming). - Group by / agg:
group_bycompiles to Polarsgroup_bywith column or expression keys (expression keys are aliased__pf_g{i}).aggcompiles tuple reductions topl.col(...).sum()-style calls andAggExprto aggregated expressions on compiled inners (e.g.agg_sum(truediv(col("a"), col("b")))).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
planframe_polars-0.4.0.tar.gz
(10.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file planframe_polars-0.4.0.tar.gz.
File metadata
- Download URL: planframe_polars-0.4.0.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2f033a9b1b8e50d3daca4754493fa415f4cdf3374df21232b4fa3e6be5485f3
|
|
| MD5 |
fc179c927aa187cb76e35dcf59afe7c3
|
|
| BLAKE2b-256 |
1ac5f1dbe1beadb65f223b87306da491657a93a34206f92e2dd55f19161178af
|
File details
Details for the file planframe_polars-0.4.0-py3-none-any.whl.
File metadata
- Download URL: planframe_polars-0.4.0-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e791440ee3466781f62085524e64f9d73861f4a4c3af50f16424c1f5b845cde
|
|
| MD5 |
2675e32de0fe72d2b93f0cce6c2712e7
|
|
| BLAKE2b-256 |
7450d5e6372281e8776ba3c2fc9e0e8b0acaa4500e619044433c79dbc63d85f8
|