Skip to main content

No project description provided

Project description

Bundlebase

Like Docker, but for data.

Documentation | PyPI | Issues

Features

  • Multiple Formats: Support for Parquet, CSV, JSON, and more
  • Version Control: Built-in commit system for data pipeline versioning
  • Python Native: Seamless async/sync Python API with type hints
  • High Performance: Rust-powered core with Apache Arrow columnar format
  • Fluent API: Chain operations with intuitive, readable syntax

Installation

pip install bundlebase

Quick Start

Async API

import bundlebase

# Create a new bundle and chain operations
c = await (bundlebase.create()
    .attach("data.parquet")
    .filter("age >= 18")
    .remove_column("ssn")
    .rename_column("fname", "first_name"))

# Convert to pandas
df = await c.to_pandas()

# Commit changes
await c.commit("Cleaned customer data")

Sync API

import bundlebase.sync as dc

# Same operations, no await needed
c = (dc.create()
    .attach("data.parquet")
    .filter("age >= 18")
    .remove_column("ssn")
    .rename_column("fname", "first_name"))

df = c.to_pandas()
c.commit("Cleaned customer data")

Streaming Large Datasets

Process data larger than RAM efficiently:

import bundlebase

# Stream batches instead of loading everything
c = await bundlebase.open("huge_dataset.parquet")

total_rows = 0
async for batch in bundlebase.stream_batches(c):
    # Each batch is ~100MB, not entire dataset
    total_rows += batch.num_rows
    # Memory is freed after each iteration

print(f"Processed {total_rows} rows")

Core Operations

Data Loading

c = await bundlebase.create()
c = c.attach("data.parquet")      # Parquet files
c = c.attach("data.csv")          # CSV files
c = c.attach("data.json")         # JSON files

Data Transformation

c = c.filter("active = true")              # Filter rows
c = c.select(["id", "name", "email"])      # Select columns
c = c.remove_column("temp_field")          # Remove columns
c = c.rename_column("old", "new")          # Rename columns
c = c.select("SELECT * FROM self WHERE ...") # SQL queries

Data Export

df = await c.to_pandas()    # → pandas DataFrame
df = await c.to_polars()    # → polars DataFrame
arr = await c.to_numpy()    # → NumPy array
data = await c.to_dict()    # → Python dict

Indexing

c = c.create_index("email")        # Create index for fast lookups
c = c.rebuild_index("email")       # Rebuild existing index

Joining

c = await bundlebase.create()
c = c.attach("customers.parquet")
c = c.join(
    "orders.parquet",
    left_on="customer_id",
    right_on="id",
    join_type="inner"
)

Development

Prerequisites

  • Rust (latest stable)
  • Python 3.9+
  • Poetry

Setup

# Install Python dependencies
poetry install

# Build Rust extension
maturin develop

# Run tests
cargo test              # Rust tests
poetry run pytest       # Python tests

Contributing

Contributions are welcome!

License

Distributed under the Apache 2.0 license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bundlebase-0.11.0.tar.gz (809.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bundlebase-0.11.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

bundlebase-0.11.0-cp314-cp314-win_amd64.whl (65.8 MB view details)

Uploaded CPython 3.14Windows x86-64

bundlebase-0.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

bundlebase-0.11.0-cp314-cp314-macosx_11_0_arm64.whl (57.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

bundlebase-0.11.0-cp313-cp313-win_amd64.whl (65.8 MB view details)

Uploaded CPython 3.13Windows x86-64

bundlebase-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

bundlebase-0.11.0-cp313-cp313-macosx_11_0_arm64.whl (57.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

bundlebase-0.11.0-cp312-cp312-win_amd64.whl (65.8 MB view details)

Uploaded CPython 3.12Windows x86-64

bundlebase-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

bundlebase-0.11.0-cp312-cp312-macosx_11_0_arm64.whl (57.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

bundlebase-0.11.0-cp311-cp311-win_amd64.whl (65.8 MB view details)

Uploaded CPython 3.11Windows x86-64

bundlebase-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

bundlebase-0.11.0-cp311-cp311-macosx_11_0_arm64.whl (57.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

bundlebase-0.11.0-cp310-cp310-win_amd64.whl (65.8 MB view details)

Uploaded CPython 3.10Windows x86-64

bundlebase-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

bundlebase-0.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

bundlebase-0.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (63.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file bundlebase-0.11.0.tar.gz.

File metadata

  • Download URL: bundlebase-0.11.0.tar.gz
  • Upload date:
  • Size: 809.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bundlebase-0.11.0.tar.gz
Algorithm Hash digest
SHA256 9510766a7b791cead85d3afc9a1b13075b7f7287d187eb91126206b5fe1742e2
MD5 9706ba4c4c281901165fd75a9303d89c
BLAKE2b-256 8527e866c9bf6c95d74cd774c3032d760da8acceb77f768e2dc620429c362d86

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1812a05f66f2a98b5c088c21b29c416e8b23df174700b3497535664cd1cdc975
MD5 9022589c80699825e6f29c1e1f9e857c
BLAKE2b-256 e75e5033cda3bf491d3e4b095e8a2380ecd22858215d1adda886804fe43b8802

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d36cd9d4e6c1471cb52ffbf56827f0d831a7779cdb950e132a1a6faaa8c47e7a
MD5 b65b13b9d7896da519442d0162275212
BLAKE2b-256 a4898b605a3577fd6f0ea6b251ecd848a20e4a25ce571d310909fbe4d7b2273b

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3842f9afb4c2c8f5a3aa567032394dbb85501694cb1f24e10d1f82864b38b137
MD5 b30065213e2d8381021f7b5c96699c22
BLAKE2b-256 19f1e6dc6e7f97daeae89b5b0756fe48d5e7effc910dd752afa915d4dcb6e3aa

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b99b48c6b0e935fab091d24693927dea19291f384d5f28f20268abce347b1e0a
MD5 1f384feb7d8c0b81256ed0d7383307ce
BLAKE2b-256 3c7d82a90833fb80a6049d214e73debc0b195601b1d9a94cedaa05b31f32a9e1

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 79066e79bbee7aae60b09d031a79b91dd1f0c786304d29f890f29792248d6dc8
MD5 e9f2fd4d1a53ddcfdc7b905224c05a51
BLAKE2b-256 f39e7580cdaf52f39afefcff4f9f459eaca087612b3da96cbbc5dc31e293268f

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 11e635a33c5d2af55d65007b527f90f701f3c59fce04c57ee93c0e4793f028f7
MD5 2b5fe0ac0b154793b80fe0e681d0285b
BLAKE2b-256 f09f481747c35885319bc453ffa07e1d2b26014d950382c551fee524dfbefa01

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4da0fceccf147eed6d8e15c9dcdc494874ed3a13773c53001aa4c8f939e673ee
MD5 463f5456d73d5f4cf10fb0267e5cb1a2
BLAKE2b-256 ee744cbf8cfff8798de6beef332d4f3bb5c114e77c599801437844003f0af0e7

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6e585d9353c6353493f226cb600b93e060ce041cf2911925b8e236adffa063ff
MD5 54354b5f334bd762a8d0a3d211a771db
BLAKE2b-256 a8edaf7591d8a8c4a18a2f20f31d369c52562260e14c8fca486d223c5192f819

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c1ec90fdeb775a81ca607ed6fe5f07352a49341f6ad8343bf48239404019616
MD5 d75ba842107a7f05f70f02c55233640b
BLAKE2b-256 d60dc30f594e7a6dd87ac8c41432e6cb31bda42c91e3ffcf82d52f84318217d9

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf0593661a3f95a8f93b86f196d8f57c5834b9bbc91db0fc9955e546daf368ed
MD5 9e0674d6540053a9b4330cf562c93d34
BLAKE2b-256 4b3ffd1ef7ca8b71f2155513b34ce4e398fdf6ea729127a0ebfaa1248aaba20b

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 982e57dec07b3e236a68b3c47b6a97c561dfa3797d03d3dc7d9508f568bd0d34
MD5 9244f2c4df1aa7d59ec8e5221e24286b
BLAKE2b-256 d8b4f29e92d198627534cb12dddcab3584795e8b85324c5529716bed2abd896f

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27f22ce8eeafbd63c8dd16aa29c52956cb1e813d653a91b2ab891829d6a02489
MD5 3b2e40296057949780d2d367cb36060f
BLAKE2b-256 827a7a713cc9a3a7d9283fc263a493024c8c84c89bf2f2473ed690bb5c006a50

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e41aada2e26c5b131b7bd0600d63910417db3256e66db2d9f97a2612010cf48a
MD5 ef9c7634b41335b7dace56caf7a851eb
BLAKE2b-256 5d108fabd0472595f6687e100dcd5eceaa720643ed14d7dec319c84ec9bfb6be

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 976019c9fcc0eaed64505e08786aa88262330f5f1ab3633dacc390d5415bf019
MD5 85dfcbfbc4e365758ab8b95c6d289970
BLAKE2b-256 06f8fa905eaa588d65d8459f7deeceb68df0aca0fa1a8a9489b407807655649e

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7925fbd2d004def445e7368cecdaa51a8a242b5dd340e0eaae9f3a8918c860b1
MD5 08e0ecf0aae048424251e9002078999f
BLAKE2b-256 8f0a56fbfaac065b36bf09b1d430287dfe47c2b4b22a339d843e887a2e8d8abf

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef478ff4ae7f138bccaa46e1e23f2b93c9bd3db79fe57cbc8278ca523e76ad0a
MD5 278152c3d26e5becc1299d65651a028e
BLAKE2b-256 05049c155c3147bd797959482ae9e1191c72251dca10ef94b09f88ec7c61aeef

See more details on using hashes here.

File details

Details for the file bundlebase-0.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for bundlebase-0.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7062c17a0482b03c2c2c057d4c18a2409b15ba6fdb16b5777b3c2f90aa5d0933
MD5 abc0d540946a6e99074ef475711911fb
BLAKE2b-256 9a1c5261a3096fde1bd59b86a7ae8782b65aa5e7f5c0743f3d11c65fd354a1d4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page