timeseries-table-format (Python)
Build local, append-only time-series tables from Parquet files. The Python API
tracks coverage, rejects overlapping appends, and queries tables with
DataFusion SQL. Query results are returned as pyarrow.Table objects.
Early MVP: APIs and on-disk layouts may change before v1.0.
What it provides
- Timestamp, Int64, or UInt64 ordered indexes
- Per-entity index-interval uniqueness within and across appends
- Local table roots with managed metadata and table-relative Parquet segment paths
- DataFusion SQL over managed tables and standalone Parquet data
- Materialized and streaming Arrow result APIs
The current release supports local filesystems only. It does not yet support object storage, small-file compaction, schema evolution, row updates, merges, or time-travel queries.
Install
pip install timeseries-table-format
The package requires Python 3.10 or later and installs pyarrow automatically.
See Installation
for supported platforms, Python implementations, and source-build guidance.
Verify the installation
import timeseries_table_format as ttf
result = ttf.Session().sql("SELECT 1 AS value")
assert result.column("value").to_pylist() == [1]
Create, append, and query a table
Assuming prices.parquet contains a Timestamp column named ts and a string
column named symbol:
import pyarrow as pa
import pyarrow.parquet as pq
import timeseries_table_format as ttf
table = ttf.TimeSeriesTable.create(
table_root="prices",
index_column="ts",
index_type="timestamp",
index_granularity="1h",
entity_columns=["symbol"],
)
parquet_file = pq.ParquetFile("prices.parquet")
version = table.append(
pa.RecordBatchReader.from_batches(
parquet_file.schema_arrow,
parquet_file.iter_batches(),
)
)
session = ttf.Session()
session.register_tstable("prices", "prices")
result = session.sql("SELECT * FROM prices ORDER BY symbol, ts")
For a complete runnable example, follow Create, append, and query your first table.
Documentation
- Decide if the project fits your workload
- Append files incrementally
- Register and join tables
- Use SQL parameters
- Stream query results
- Configure native logging
- Configure notebook display
- Read the API reference
- Troubleshoot common problems
Contributing
See Develop the Python package for local setup, tests, quality checks, documentation builds, benchmarks, and release guidance.
License
MIT. See the repository license.
Metadata
Release files for timeseries-table-format 0.5.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 | |
|---|---|---|---|
| timeseries_table_format-0.5.0.tar.gz | 481.1 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| timeseries_table_format-0.5.0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| timeseries_table_format-0.5.0-cp310-abi3-manylinux_2_28_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| timeseries_table_format-0.5.0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| timeseries_table_format-0.5.0-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 182.4 MB
Release files / timeseries_table_format-0.5.0.tar.gz
| Download URL | timeseries_table_format-0.5.0.tar.gz |
|---|---|
| Size | 481.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c81b58844b942450e09a556ff08f4a15b5c1e45d063f8d07a115ee45e457779a
|
|
BLAKE2b-256 checksum How to use checksums |
68c6f1b9ebe96285c73117c47d298af5705aa2f929accda1b08058ad5c632b35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logRelease files / timeseries_table_format-0.5.0-cp310-abi3-win_amd64.whl
| Download URL | timeseries_table_format-0.5.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 43.5 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
62df013e741026c25b13c20156da19d30f5e4c36dc361299ae892975f1c9ffc3
|
|
BLAKE2b-256 checksum How to use checksums |
67737f90bb9e078bc2d0035d6f915d7ae6be4f019cb17923e289ebf8fe177a8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logRelease files / timeseries_table_format-0.5.0-cp310-abi3-manylinux_2_28_x86_64.whl
| Download URL | timeseries_table_format-0.5.0-cp310-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 48.7 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
00d227a8a5df1e1c98e0dfd4854f13e08c92981990578546c91baac30f08de7c
|
|
BLAKE2b-256 checksum How to use checksums |
5d3e238a7d52f0b68f696e5c1f4e323942cd98dedd4c3f3a054d3f46704dd9f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logRelease files / timeseries_table_format-0.5.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | timeseries_table_format-0.5.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 44.1 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4865edfde14a76561da1e7abc44d81ee490c9a96e60780d1a65a948d44807122
|
|
BLAKE2b-256 checksum How to use checksums |
f3675f78f828788281e397b9b0b75f1d86ebcdf7b0bd534c4c511d3eaae92493
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency logRelease files / timeseries_table_format-0.5.0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | timeseries_table_format-0.5.0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 45.6 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
61b794faa711108b655d8d0820a0bc72bf9fc24f9c813b3a30cb0755f68233c5
|
|
BLAKE2b-256 checksum How to use checksums |
81b4c8012d1d4c66aa2c6193e99b238fd7104eb0a5370b08e67168aeb6eb083d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 24, 2026.
Transparency log