ElastiCube Python Bindings
High-performance OLAP cube library for Python, powered by Rust, Apache Arrow, and DataFusion.
Features
- Fast: Native Rust implementation with near C-level performance
- Columnar Storage: Efficient memory layout using Apache Arrow
- Familiar API: Pandas-like interface for data scientists
- Type Safe: Full type hints and stub files for IDE support
- No Pre-Aggregation: Query raw data with dynamic aggregations
Installation
pip install elasticube
Quick Start
from elasticube import ElastiCubeBuilder
# Build a cube from CSV data
builder = ElastiCubeBuilder()
builder.add_dimension("region", "string")
builder.add_dimension("date", "date")
builder.add_measure("sales", "float64", "sum")
builder.add_measure("quantity", "int32", "sum")
builder.load_csv("sales_data.csv")
cube = builder.build()
# Query the cube
query = cube.query()
query.select(["region", "SUM(sales)", "SUM(quantity)"])
query.filter("date >= '2024-01-01'")
query.group_by(["region"])
query.order_by(["region"])
# Get results as Pandas DataFrame
df = query.to_pandas()
print(df)
Supported Data Types
- Numeric:
int32,int64,float32,float64 - Text:
string(utf8) - Temporal:
date,timestamp - Boolean:
bool
Aggregation Functions
sum- Sum of valuesavg/mean- Averagemin- Minimum valuemax- Maximum valuecount- Count of non-null valuescount_distinct- Count of unique valuesmedian- Median valuestddev- Standard deviationvariance- Variance
Data Sources
ElastiCube supports multiple data source formats:
- CSV:
builder.load_csv("data.csv") - Parquet:
builder.load_parquet("data.parquet") - JSON:
builder.load_json("data.json")
License
Dual licensed under MIT or Apache-2.0.
Metadata
Release files for elasticube 1.1.1
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 | |
|---|---|---|---|---|
| elasticube-1.1.1.tar.gz | 392.9 kB | Without provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| elasticube-1.1.1-cp38-abi3-win_amd64.whl | CPython 3.8 | abi3 | Windows x86-64 | Details |
| elasticube-1.1.1-cp38-abi3-musllinux_1_2_x86_64.whl | CPython 3.8 | abi3 | Linux musl 1.2+ x86-64 | Details |
| elasticube-1.1.1-cp38-abi3-musllinux_1_2_aarch64.whl | CPython 3.8 | abi3 | Linux musl 1.2+ ARM64 | Details |
| elasticube-1.1.1-cp38-abi3-manylinux_2_28_x86_64.whl | CPython 3.8 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| elasticube-1.1.1-cp38-abi3-manylinux_2_28_aarch64.whl | CPython 3.8 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| elasticube-1.1.1-cp38-abi3-macosx_11_0_arm64.whl | CPython 3.8 | abi3 | macOS 11.0+ ARM64 | Details |
| elasticube-1.1.1-cp38-abi3-macosx_10_12_x86_64.whl | CPython 3.8 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 160.7 MB
Release files / elasticube-1.1.1.tar.gz
| Download URL | elasticube-1.1.1.tar.gz |
|---|---|
| Size | 392.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
70d487ebb5c0bc4a832dbffef81e7cf81a65a5b1d95712882de7dd0a279c6cf1
|
|
BLAKE2b-256 checksum How to use checksums |
2579081fc411063090d8ed7673140c924d46b220d58f69be58da5278f8367a9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / elasticube-1.1.1-cp38-abi3-win_amd64.whl
| Download URL | elasticube-1.1.1-cp38-abi3-win_amd64.whl |
|---|---|
| Size | 25.1 MB |
| Tags | CPython 3.8 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
6e621148bb4920e24f69fd3465b781633a768180fa246f2d509761247530ef2d
|
|
BLAKE2b-256 checksum How to use checksums |
b0e288ae6c016290f7add1b40f0666c257dd7e05ef4ac70979d1dc2c37e3c9a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / elasticube-1.1.1-cp38-abi3-musllinux_1_2_x86_64.whl
| Download URL | elasticube-1.1.1-cp38-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 23.0 MB |
| Tags | CPython 3.8 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
d213bcd4b8e7515cc94c9a220109c629a2252bfd4dae3bc38b8fc20d68c07455
|
|
BLAKE2b-256 checksum How to use checksums |
469d03528ffcc80a2c797e285c5f59120ca44a5e316bb03d35011256abbafdea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / elasticube-1.1.1-cp38-abi3-musllinux_1_2_aarch64.whl
| Download URL | elasticube-1.1.1-cp38-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 21.2 MB |
| Tags | CPython 3.8 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
299a6d849d64363915c374f7518675723a327b6d7a0cab3f2d231b734ae74794
|
|
BLAKE2b-256 checksum How to use checksums |
eb2be6cf2f97f224e1161b40175715275e94d0b743eda626610892c99782b393
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / elasticube-1.1.1-cp38-abi3-manylinux_2_28_x86_64.whl
| Download URL | elasticube-1.1.1-cp38-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 23.0 MB |
| Tags | CPython 3.8 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
34884db5c8126ebfe8e988655bc33609c322d505d0e8e21b6743f8b441e780d7
|
|
BLAKE2b-256 checksum How to use checksums |
e0892212bffa5b27366bdd74ddba876f0a4f45cc609adbf4558123e6323cceab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / elasticube-1.1.1-cp38-abi3-manylinux_2_28_aarch64.whl
| Download URL | elasticube-1.1.1-cp38-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 21.2 MB |
| Tags | CPython 3.8 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
46def58bfe03ec530c355e0f59de89700aa6f89d35c498f03fdddb7dea4e3d42
|
|
BLAKE2b-256 checksum How to use checksums |
869db6b8926cea9c1e21bd1007d042295b8fb02c1b566f14d389b5abd3b8a61d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / elasticube-1.1.1-cp38-abi3-macosx_11_0_arm64.whl
| Download URL | elasticube-1.1.1-cp38-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 22.2 MB |
| Tags | CPython 3.8 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
406aa6ae95e3947b812869dcfe891218b293640abeafd9737dfe79983294d5b4
|
|
BLAKE2b-256 checksum How to use checksums |
338334a280ef9c8f12599391d60798509786bca00bd6dcda42e33733f4c697cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / elasticube-1.1.1-cp38-abi3-macosx_10_12_x86_64.whl
| Download URL | elasticube-1.1.1-cp38-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 24.4 MB |
| Tags | CPython 3.8 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
114951ff04c4fc0a828b8b8eabb35eeca7daa198874e19a52d4806ba778b6f6c
|
|
BLAKE2b-256 checksum How to use checksums |
19df5b91002117eac0093ae2f06e88e2a95461d7344347e39b42b95baea8edfb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for elasticube 1.1.1
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.