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

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 (IPC vs C Stream)

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

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

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.3.tar.gz (240.2 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.3-cp314-cp314-win_amd64.whl (33.4 MB view details)

Uploaded CPython 3.14Windows x86-64

timeseries_table_format-0.1.3-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.3-cp314-cp314-macosx_11_0_arm64.whl (33.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

timeseries_table_format-0.1.3-cp313-cp313-win_amd64.whl (33.4 MB view details)

Uploaded CPython 3.13Windows x86-64

timeseries_table_format-0.1.3-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.3-cp313-cp313-macosx_11_0_arm64.whl (33.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

timeseries_table_format-0.1.3-cp312-cp312-win_amd64.whl (33.4 MB view details)

Uploaded CPython 3.12Windows x86-64

timeseries_table_format-0.1.3-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.3-cp312-cp312-macosx_11_0_arm64.whl (33.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

timeseries_table_format-0.1.3-cp311-cp311-win_amd64.whl (33.4 MB view details)

Uploaded CPython 3.11Windows x86-64

timeseries_table_format-0.1.3-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.3-cp311-cp311-macosx_11_0_arm64.whl (33.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

timeseries_table_format-0.1.3-cp310-cp310-win_amd64.whl (33.4 MB view details)

Uploaded CPython 3.10Windows x86-64

timeseries_table_format-0.1.3-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.3-cp310-cp310-macosx_11_0_arm64.whl (33.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: timeseries_table_format-0.1.3.tar.gz
  • Upload date:
  • Size: 240.2 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.3.tar.gz
Algorithm Hash digest
SHA256 ceb8a26da9028f7f6072318725943abdd3c1c751d0ff3a6c2bbf044a4e7a9d77
MD5 75b71d75fc46b94a3bdd5f4cdf097816
BLAKE2b-256 91cd441867278c27afb60b46cc4389b613968b65d4c01e7761f0746e891d8e98

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3.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.3-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 13efcf534a4e6086252f02a37f188c032304e7d86d67084006257296f302c6aa
MD5 22fb62826554780bb1c332e7ef5a3f20
BLAKE2b-256 80498c6827324162a6b3811d5178f03dd5fbf7b3e904366c2b28788677905ee6

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 fe31bfefb620998bfcaae21f8da7b7a5245edaa658c67bef027961702a9e6b8b
MD5 4105e735077d4726ba320fba19b6809f
BLAKE2b-256 4cca19745e50b652e957c0b63827a9a7fb993fba4482163fec7b033783381c5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7685cab49ba743830bfdfc00a2914cf69ed6480c509aa5ddc0a5f10fc4221aed
MD5 d2c5c02a8f1abe00469cdbf24ee8e144
BLAKE2b-256 657f815685ab12ba42d2ac00864e6fdeeb4ad24705ed581c96b3b958f80018fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9e8c77fc335ab620679b649a33dca57fed843631e14ed4ea0b37a290de65c404
MD5 e20f6425342f696d5dabdebfc92e1b02
BLAKE2b-256 db227e0249174552f2d856d01d4bdd260977b89626d604b9aed948a1c32cbbd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 29e3e8d342e861c6a5157d223671cf99540ed725cd4249854a8a5deabc82fc32
MD5 c8d4420ff3153b833976e984e21d52c8
BLAKE2b-256 aa8cef3b578a80cf092232eaadf0fac6ecccfb27c2c3e20e5cd2811ff080b726

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a8c6049ea80fbfe651a939aba74d78fd74445fc4eea6789b0db7064f61c3697
MD5 ab2bd27dcccdf84aeb49ac9eac1479ed
BLAKE2b-256 c3bce4814c7fb377743992dee32619745a288375ae3e41abed4a651a7dcb8c58

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 901b6cddf92b7587f744c687e97ab4bdaa63707dad8f0529d71c117013e10fbd
MD5 24d3ea315bb6d27981184c8803e15907
BLAKE2b-256 c23d8a85a11a19a7b72a4e9baea086ede8478d4477e5d2877342e570dbbe35b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 977c801519d3f850302354a417281ac14d3b5136c2fa2ee672acd6a4b7d0d6ba
MD5 80290af2ef42dd8a352208549912d881
BLAKE2b-256 fd92ca06ea4bb09a2f3dcd6045d89186d870f2976a5c0d4861778b0ffc55bb35

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9494f7d587e262a61af1ae2e508191c4d2d7393e75367b7a7ce718d96e9a0f36
MD5 30778577add4be6a3b0b6f2332fbfbbc
BLAKE2b-256 272c317ff174a0b15e69c05402ba137f9806c62f4db5d92ffcdccfb92c5cdb18

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a296e904f384350a17fcf394813d824a90d4e02abea18ddfa7a086af9f95bf77
MD5 b3424dd1f7cb01e088463f62c9488f18
BLAKE2b-256 f463e66591cf990a211e4ea2f200e548ff170d43bf06ebaae3f6327c5d82246f

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1700c811592427db0ecc48141d4c5b01b9d2add212b8f2b1e76e840dcf07baa2
MD5 992342f38ca41c79181863e4c77f0aee
BLAKE2b-256 ae7d79e2e8bab261bd0c74195d586e3e95a3cdc820ef754aea26503dc1f13f80

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 030646dce02a8c2e5ed7b694756173a6b4011effc81afa0059ae95db74b88364
MD5 63beb3146d6a43a1abec2a9739dc1866
BLAKE2b-256 ad0ad86bb02f485e2e55feea12f39e03c217420fb54c2eda90d6427760b6b86b

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0dafa7bf7af63523dfd1221648ba6dd4ae485a05d61456b4f31f4a907550c0c9
MD5 9c170402e3ac8858bee04a37eb1b87e1
BLAKE2b-256 78cbf3a524cb36ddd12f78eaec8fc9ff83ee3aadf51babc840dc5368c5053188

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 ee3fdc7d5b5ae162b75d6a53319d2acdf83537c1b4a89aab95987cd58a8c4ebe
MD5 5951fc21fcd9ebe7781e672000e4f2ce
BLAKE2b-256 9a101cb12835b2ae9cef761fefd158654a28f30501e004606176a6622e78fc5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timeseries_table_format-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e81d3bb74996d46af51217b85dc1d8c2c4f9cb4b63bab5c403b7ec250d357fb
MD5 64c13b1cb36b962b8a9d62bea3eb5424
BLAKE2b-256 71a8e966304b89ebb9671b880c513cb38cf63860c327ef242d677befb0b1d1e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for timeseries_table_format-0.1.3-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