Skip to main content

Append-only time-series table format with gap/overlap tracking (Python bindings).

Project description

timeseries-table-format (Python)

Python-first workflow for managing local, append-only time-series tables stored as Parquet segments on disk, with SQL querying (DataFusion) that returns pyarrow.Table.

v0 is local-filesystem-only (no S3/object storage backend yet).

Install

pip install timeseries-table-format

Requires: Python 3.10+. pyarrow is installed automatically (dependency: pyarrow>=23.0.0). If pip tries to build from source (Rust errors), see Troubleshooting below.

Verify installation

import timeseries_table_format as ttf

out = ttf.Session().sql("select 1 as x")
print(type(out))  # pyarrow.Table

Development: build and test locally

To run the Python test suite against the local editable Rust extension, build the extension into the repo virtualenv first, then run pytest with the same interpreter.

cd python
uv run -p .venv/bin/python maturin develop --features test-utils
uv run --no-sync -C build-args="--features test-utils" pytest -q

Return type and interop

Session.sql(...) returns a pyarrow.Table.

  • Polars: pip install polars, then polars.from_arrow(out)

Notebook display (Jupyter/IPython)

In IPython/Jupyter (including VS Code notebooks), pyarrow.Table results will display as a bounded HTML preview by default (the return type is still a real pyarrow.Table).

  • Defaults: max_rows=20 (head/tail), max_cols=50 (left/right), max_cell_chars=2000
  • Opt-out: set TTF_NOTEBOOK_DISPLAY=0 before importing timeseries_table_format, or call timeseries_table_format.disable_notebook_display()
  • Configure: call timeseries_table_format.enable_notebook_display(max_rows=..., max_cols=..., max_cell_chars=..., align=...)
  • Config file (TOML): set TTF_NOTEBOOK_CONFIG=path/to/ttf.toml before importing timeseries_table_format (or call timeseries_table_format.load_notebook_display_config("path/to/ttf.toml")) (On Python 3.10, install tomli to enable TOML parsing.)
  • Alignment: align="right" (default) or align="auto" (strings left, numbers right); auto-enable can be configured with TTF_NOTEBOOK_ALIGN=auto|left|right
  • Cells are visually clipped to a bounded column width with an ellipsis indicator; copying a cell copies the underlying value (up to max_cell_chars).

Example ttf.toml:

[notebook_display]
max_rows = 20
max_cols = 50
max_cell_chars = 2000
align = "auto"

Maintainers: releasing the Python package

The PyPI package version is derived from crates/timeseries-table-python/Cargo.toml (via maturin). If you change the pure-Python sources under python/src/ (or python/pyproject.toml / python/README.md), CI will automatically update crates/timeseries-table-python/python-src.stamp on PRs from branches in this repository.

If you need to update it locally (e.g. working on a fork, or before pushing), run:

python3 scripts/update_python_wheel_stamp.py

If your development environment uses the repo venv, you can also run:

python/.venv/bin/python scripts/update_python_wheel_stamp.py

CI enforces the stamp, and it helps the release automation notice python-only changes for version bumps.

Quickstart: create → append → query

import tempfile
from pathlib import Path

import pyarrow as pa
import pyarrow.parquet as pq

import timeseries_table_format as ttf

with tempfile.TemporaryDirectory() as d:
    table_root = Path(d) / "my_table"

    tbl = ttf.TimeSeriesTable.create(
        table_root=str(table_root),
        time_column="ts",
        bucket="1h",
        entity_columns=["symbol"],
        timezone=None,
    )

    seg_path = table_root / "incoming" / "prices.parquet"
    seg_path.parent.mkdir(parents=True, exist_ok=True)

    pq.write_table(
        pa.table(
            {
                "ts": pa.array([0, 3_600 * 1_000_000, 7_200 * 1_000_000], type=pa.timestamp("us")),
                "symbol": pa.array(["NVDA", "NVDA", "NVDA"], type=pa.string()),
                "close": pa.array([10.0, 20.0, 30.0], type=pa.float64()),
            }
        ),
        str(seg_path),
    )

    tbl.append_parquet(str(seg_path))

    sess = ttf.Session()
    sess.register_tstable("prices", str(table_root))

    out = sess.sql("select ts, symbol, close from prices order by ts")
    print(out)  # pyarrow.Table

Bucket size (important): bucket=1h does not resample your data. It defines the time grid used for overlap detection and coverage tracking. Example: with bucket=1h, timestamps 10:05 and 10:55 fall into the same bucket (10:00–11:00). See https://mag1cfrog.github.io/timeseries-table-format/concepts/bucketing_and_overlap/

Join multiple tables

# Aligned with python/examples/register_and_join_two_tables.py
import tempfile
from pathlib import Path

import pyarrow as pa
import pyarrow.parquet as pq

import timeseries_table_format as ttf

with tempfile.TemporaryDirectory() as d:
    base_dir = Path(d)

    prices_root = base_dir / "prices_tbl"
    prices = ttf.TimeSeriesTable.create(
        table_root=str(prices_root),
        time_column="ts",
        bucket="1h",
        entity_columns=["symbol"],
        timezone=None,
    )
    prices_seg = base_dir / "prices.parquet"
    pq.write_table(
        pa.table(
            {
                "ts": pa.array([0, 3_600 * 1_000_000], type=pa.timestamp("us")),
                "symbol": pa.array(["NVDA", "NVDA"], type=pa.string()),
                "close": pa.array([1.0, 2.0], type=pa.float64()),
            }
        ),
        str(prices_seg),
    )
    prices.append_parquet(str(prices_seg))

    volumes_root = base_dir / "volumes_tbl"
    volumes = ttf.TimeSeriesTable.create(
        table_root=str(volumes_root),
        time_column="ts",
        bucket="1h",
        entity_columns=["symbol"],
        timezone=None,
    )
    volumes_seg = base_dir / "volumes.parquet"
    pq.write_table(
        pa.table(
            {
                "ts": pa.array([0, 3_600 * 1_000_000], type=pa.timestamp("us")),
                "symbol": pa.array(["NVDA", "NVDA"], type=pa.string()),
                "volume": pa.array([10, 20], type=pa.int64()),
            }
        ),
        str(volumes_seg),
    )
    volumes.append_parquet(str(volumes_seg))

    sess = ttf.Session()
    sess.register_tstable("prices", str(prices_root))
    sess.register_tstable("volumes", str(volumes_root))

    out = sess.sql(
        """
        select p.ts as ts, p.symbol as symbol, p.close as close, v.volume as volume
        from prices p
        join volumes v
        on p.ts = v.ts and p.symbol = v.symbol
        order by p.ts
        """
    )
    print(out)  # pyarrow.Table

Parameterized queries

DataFusion infers placeholder types from context when possible (e.g. in WHERE clauses). If you use placeholders in a SELECT projection without type context, you may need an explicit cast.

# Aligned with python/examples/parameterized_queries.py
import timeseries_table_format as ttf

sess = ttf.Session()

out_positional = sess.sql(
    "select cast($1 as bigint) as x, cast($2 as varchar) as y",
    params=[1, "hello"],
)
out_named = sess.sql(
    "select cast($a as bigint) as x, cast($b as varchar) as y",
    params={"a": 2, "b": "world"},
)

print(out_positional)
print(out_named)

Building from source (contributors)

Prereqs:

  • Rust toolchain installed
  • Python 3.10+ (CI targets 3.10–3.14; examples below use 3.12)
  • uv installed

From the repo root:

uv venv -p 3.12 python/.venv
uv pip install -p python/.venv/bin/python -e python --group dev
python/.venv/bin/python -m pytest

Type checking (ty):

uvx ty check --project python

Alternative (uses the python/ dev environment):

cd python
uv run ty check

Alternative: build with maturin directly:

cd python
uv venv -p 3.12 .venv
uv pip install -p .venv/bin/python pyarrow --group dev
uv run -p .venv/bin/python maturin develop
.venv/bin/python -m pytest

Benchmark: SQL conversion and streaming SQL

Session.sql(...) returns results as a pyarrow.Table.

By default, results are exported via the Arrow C Data Interface (C Stream) when supported, and fall back to an in-memory Arrow IPC stream otherwise. To compare the two paths and estimate the conversion overhead, run:

cd python
uv pip install -p .venv/bin/python numpy
uv run -p .venv/bin/python maturin develop --features test-utils
.venv/bin/python bench/sql_conversion.py --target-ipc-gb 2

To also benchmark the streaming SQL API (Session.sql_reader(...)), include the streaming mode:

cd python
uv pip install -p .venv/bin/python numpy
uv run -p .venv/bin/python maturin develop --features test-utils
.venv/bin/python bench/sql_conversion.py --target-ipc-gb 2 --include-streaming --summary

Environment variables (useful for debugging and benchmarks):

  • TTF_SQL_EXPORT_MODE=auto|ipc|c_stream (default: c_stream)
  • TTF_SQL_EXPORT_DEBUG=1 to emit a debug warning when auto falls back from C Stream → IPC
  • TTF_SQL_EXPORT_AUTO_RERUN_FALLBACK=1 to re-run the SQL query on C Stream failure in auto mode (avoids cloning batches on the hot path, but may change results for non-deterministic queries)

Optional: benchmark IPC ZSTD compression (requires building with ipc-zstd):

uv run -p .venv/bin/python maturin develop --features test-utils,ipc-zstd
.venv/bin/python bench/sql_conversion.py --target-ipc-gb 2 --ipc-compression zstd

The script can print a human-friendly terminal summary (--summary) and/or write a JSON payload to a file (--json path). It reports separate timings for:

  • end-to-end Session.sql(...)
  • Rust-side query+IPC encode (_native._testing._bench_sql_ipc)
  • Rust-side query+C Stream export (_native._testing._bench_sql_c_stream)
  • Python-side decode/import

With --include-streaming, it also reports:

  • time to first batch for Session.sql_reader(...)
  • total incremental iteration time and batch counts
  • process-as-you-go comparison: Session.sql_reader(...) batch iteration vs Session.sql(...) materialize-then-process
  • Session.sql_reader(...).read_all() vs Session.sql(...) parity
  • best-effort process peak RSS (ru_maxrss) after each run
  • isolated child-process peak RSS for the process-as-you-go comparison (sampled from Linux /proc/<pid>/status)

Sample streaming benchmark results

One local Linux run over a generated dataset of about 10.5M rows:

Query Metric Session.sql_reader(...) Session.sql(...) materialize-then-process Improvement
select * from prices First batch available 370.7ms 2.312s 84.0% earlier
select * from prices Peak RSS 2.30 GiB 3.60 GiB 36.1% lower
select * from prices order by ts First batch available 2.489s 13.182s 81.1% earlier
select * from prices order by ts Peak RSS 3.66 GiB 4.84 GiB 24.4% lower

sql_reader(...).read_all() stayed in the same general performance range as Session.sql(...).

Large targets can require high peak RAM (IPC bytes + decoded Table + intermediate buffers). Start with --target-ipc-gb 2 and scale up to 3 or 6 on a machine with plenty of memory.

If you hit Disk quota exceeded, pass --tmpdir /path/with/more/space (the bench uses a temporary directory and cleans it up on exit).

Troubleshooting

  • pip is building from source / fails with Rust errors: no wheel is available for your platform/Python; install Rust and retry, or use a supported Python/platform combination.
  • DataFusionError about an unknown table name: call sess.register_tstable("name", "/path/to/table") first; use sess.tables() to list registrations.
  • Append fails with a time column error: the timestamp column must be an Arrow timestamp(...), and the unit should remain consistent across segments (e.g. timestamp("us")).
  • SchemaMismatchError on append: the new Parquet segment schema must match the table's adopted schema (column names and types).
  • SQL errors / parameter placeholders: try an explicit CAST(...) for placeholders used in SELECT projections.

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

timeseries_table_format-0.1.4.tar.gz (247.1 kB view details)

Uploaded Source

Built Distributions

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

timeseries_table_format-0.1.4-cp314-cp314-win_amd64.whl (33.3 MB view details)

Uploaded CPython 3.14Windows x86-64

timeseries_table_format-0.1.4-cp314-cp314-manylinux_2_35_x86_64.whl (37.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

timeseries_table_format-0.1.4-cp314-cp314-macosx_11_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

timeseries_table_format-0.1.4-cp313-cp313-win_amd64.whl (33.3 MB view details)

Uploaded CPython 3.13Windows x86-64

timeseries_table_format-0.1.4-cp313-cp313-manylinux_2_35_x86_64.whl (37.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

timeseries_table_format-0.1.4-cp313-cp313-macosx_11_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

timeseries_table_format-0.1.4-cp312-cp312-win_amd64.whl (33.3 MB view details)

Uploaded CPython 3.12Windows x86-64

timeseries_table_format-0.1.4-cp312-cp312-manylinux_2_35_x86_64.whl (37.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

timeseries_table_format-0.1.4-cp312-cp312-macosx_11_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

timeseries_table_format-0.1.4-cp311-cp311-win_amd64.whl (33.3 MB view details)

Uploaded CPython 3.11Windows x86-64

timeseries_table_format-0.1.4-cp311-cp311-manylinux_2_35_x86_64.whl (37.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

timeseries_table_format-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

timeseries_table_format-0.1.4-cp310-cp310-win_amd64.whl (33.3 MB view details)

Uploaded CPython 3.10Windows x86-64

timeseries_table_format-0.1.4-cp310-cp310-manylinux_2_35_x86_64.whl (37.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

timeseries_table_format-0.1.4-cp310-cp310-macosx_11_0_arm64.whl (33.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file timeseries_table_format-0.1.4.tar.gz.

File metadata

  • Download URL: timeseries_table_format-0.1.4.tar.gz
  • Upload date:
  • Size: 247.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for timeseries_table_format-0.1.4.tar.gz
Algorithm Hash digest
SHA256 eed9c4bf200a815f56f71f91a13958c0b60125b5aab2c733094319115f9dae95
MD5 a9d02bd58e61d2470c4a7b916c95ac5f
BLAKE2b-256 75ea18d6e47dfb9f2da868069c24bc0b4d9c6e2b16da260b209935a9b91c8dab

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4.tar.gz:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d1512889889407507167be2fd3d5b91cbedec13b25c23eed14f46bdc8a57cdf5
MD5 411ef2bfed8c2483f2d5516f123cd557
BLAKE2b-256 e37ac6fcacba291be6f4676f49981dc455c24f803e00d2f718689cceee63db58

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp314-cp314-win_amd64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d406b84a2e9078b356435a45cbb7adaa712b9eb45cd001ae50337f8ab00ec3a5
MD5 f5ff9f531fa06c7f492a24934d0c6682
BLAKE2b-256 582200e6fd46ef38e0eafc64c0e21f48a19c2f12d1d2aae26c77f8e2fdc9b7f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp314-cp314-manylinux_2_35_x86_64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 297f86977b6890ee235974e964b9019040054e99c28c0d2792446c85242ae378
MD5 ceff800ae65c09a5b040655744e13913
BLAKE2b-256 e630affc2d1253d234c4c02256347441b9e4199e22bb76c7ef77a76df9a3eaf7

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 701246e0dda6f3ad8a6667ef3a2fcaab635a1cae9adf7401ee2498170da52468
MD5 9fb78d2b4a311a07493cbf90f2c6329c
BLAKE2b-256 9e619861bb9d72bf8de8d5625ce3420ce1bac5bc1b10d5bad7b977749cd3a497

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp313-cp313-win_amd64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 253f5a723ee382894bfbda5a30b8c9f93c96718ba00da69ad89a0bb86eae85e4
MD5 13da694e0f154399501914c323316bb5
BLAKE2b-256 d6c65312bc799bd0323e7f0df2277e9227579a07e1e8fd103a963143c6297a28

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp313-cp313-manylinux_2_35_x86_64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7fe36dbcea30aaacef8bbca0f6f8f9f0fc91fce3c2cb02cfaa7dcccb31869a5
MD5 27966a08ef5b7516c4032b2f61958131
BLAKE2b-256 e0241153151df89cd6fd413deed1881aed40b224b12205a4c6ef07e743206d9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 321a8c784cab4c0b575cbfa34f15b8c2484a7f5c8704d1f06521042384aaa924
MD5 22b9c19c4089df6f2080cab63943bc04
BLAKE2b-256 0502e0b4b52fe784a3426a9bee6c28115bc38df35e7f2bea863e9ae94d6f8ecd

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp312-cp312-win_amd64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 cacb0145027deb81d147131e5d120eceb1ac08bff08db1162f351dc57ff7784c
MD5 f18b0e3407d48ee93e2742395028a074
BLAKE2b-256 4c5c99715e04c9e29faf0223026c5251f49313935782fc06b662b37918dce004

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp312-cp312-manylinux_2_35_x86_64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c583672b1380e7e5a1a9299568dc1f03664cd0fbb89b0b21281d8b0c83ae03be
MD5 c04be558e780fc00d2f3d89ff146d18b
BLAKE2b-256 8de5b919096e7c9d083a212a1cff827c970a2e8caa586de6bbb05ec0ac7de929

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 77b259853d16988783a99af3b8a13102c14bff481f1bc4c5d81e527594877f10
MD5 aa45435616df39f7542ea9043684b48d
BLAKE2b-256 a26cfd064d08e568f1d5e2a35008666a17935e393fa209ffe8e94b9c2238794d

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp311-cp311-win_amd64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b9746603608ad0284f59ab2e83dd12da853d63dac4c376b75534a94a84721902
MD5 1002fdf4aa0d5b84a3c626ee829cc7ce
BLAKE2b-256 e495e68272d224038bc83a2e81d93f1009330a473175a487771a64e2c344f346

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp311-cp311-manylinux_2_35_x86_64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e3310c1aad6b467222b685c96d88f71470361a60c1e5ed616d2cf6b8cac08db6
MD5 13b8f8469ba57f4f7da8838023224410
BLAKE2b-256 5b2fa9a850f9dee67d146d64427b09d9f4b91d3a3cf79cebda38bb1c90f13fee

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8b02221b73b793021af49e1e74af6d339ac8a5db2821fe8341dd44ff1f943b01
MD5 96db713968c179cf26ec5185ed2f153f
BLAKE2b-256 96e7001c9603b5aded851b0c81bae689ea5ea1109d307180fe1c8e341d9b9f17

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp310-cp310-win_amd64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 afe31114891e897b2b3d04fd90889ac9eb53c7d7f062e990ab72acffbef49acb
MD5 4748adfce4f04b6191cfdf3759243d77
BLAKE2b-256 ab1a13e17b7ae8d9878e6c7c581a22df8d5f5f1433cf7f01aab2dffb2af01ccd

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp310-cp310-manylinux_2_35_x86_64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file timeseries_table_format-0.1.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3fba0d240220a29304c4e2bf8ffdf5d4aab8a7d0791811bfdb7b7e7212c3868f
MD5 f323929fbf9a87846611957401458777
BLAKE2b-256 be2ef07a9515710b47658f12eeb50407764896aaa88482ecbb5e0bd3f1a676d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.4-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on mag1cfrog/timeseries-table-format

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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