Portabellas
Type-safe, ergonomic table operations, with the speed of Polars.
Installation
pip install portabellas
Why Portabellas?
Portabellas is built on Polars, so you get the same query optimization and parallelization, with these improvements on top:
-
Early validation: Catch type and name errors directly where they occur, with negligible runtime overhead.
# Portabellas from portabellas import Table data = Table({"name": ["Alice", "Bob"], "age": [25, 30]}) data = data.add_computed_column("result", lambda row: row["age"].struct.get("name")) # ^^^^^^^^^^^^^^^^^ # # ColumnTypeError: Expected struct type, got i64
# Polars — same mistake, but error is deferred and misleading import polars as pl data = pl.LazyFrame({"name": ["Alice", "Bob"], "age": [25, 30]}) data = data.with_columns(result=pl.col("age").struct.field("name")) # No error data = data.collect() # ^^^^^^^^^^^^^^ # # StructFieldNotFoundError: name
-
No lazy/eager split: No need to manually switch between lazy and eager mode. Lazy evaluation is active whenever possible. Operations that require eager mode handle it automatically.
-
Familiar abstractions: Work with
Table,Column,Row, andCell— names that match how you think about data, not how the library stores it.
Fun fact: "Portabellas" is an anagram of "Polars table". And, as for any proper Python package, it starts with P.
For Developers
Project Setup
- Install uv.
- Run
uv syncto generate a venv and install the dependencies. - Activate your venv by running
source .venv/bin/activate.
(Optional) Pre-Commit Hooks
We use pre-commit hooks for linting and formatting. Install the commit hooks locally via:
pre-commit install
The configuration can be adapted in .pre-commit-config.yaml.
Metadata
Release files for portabellas 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| portabellas-0.3.0.tar.gz | 51.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| portabellas-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 130.6 kB
Release files / portabellas-0.3.0.tar.gz
| Download URL | portabellas-0.3.0.tar.gz |
|---|---|
| Size | 51.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c5975fb7ad7a54f7d42c9edf1c05496b6753cf9d8bf2c0a82f05bedbb5eecb61
|
|
BLAKE2b-256 checksum How to use checksums |
731fad68cd161561ce20ac8b42c065afb5bef07db428e3720eb3afe97807d042
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / portabellas-0.3.0-py3-none-any.whl
| Download URL | portabellas-0.3.0-py3-none-any.whl |
|---|---|
| Size | 78.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
36182e4086bc054c7a2122e2e53e5db19423d9a20293ad0aff3c921531f99ac2
|
|
BLAKE2b-256 checksum How to use checksums |
02b478fb6b83a718d9a4d9b2b700b0f481669282cc2cad3b6f606d84d4029a08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for portabellas 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.