Skip to main content

Portabellas

PyPI Main codecov Documentation Status

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, and Cell — 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

  1. Install uv.
  2. Run uv sync to generate a venv and install the dependencies.
  3. 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)

Source distribution for portabellas 0.3.0
File Size Uploaded Provenance
portabellas-0.3.0.tar.gz 51.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for portabellas 0.3.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page