Skip to main content

In-memory LSM-style time-indexed storage engine with CPython bindings.

Project description

Timelog

In-memory, LSM-inspired, time-indexed multimap for Python (C17 core + CPython extension).

License PyPI version Python versions Tests (PR) Packaging (PR) Dependency Review Release (PyPI) Coverage CodeQL Sanitizers OpenSSF Scorecard Python 3.12+

Why Timelog

Timelog is built for timestamp-first workloads where the core operation is "everything in [t1, t2)".
It provides a native in-memory index with snapshot-consistent reads, out-of-order ingestion support, and sequenced range deletes.

At a high level, writes flow through mutable ingest state into immutable layers (memrun, L0, L1), while reads merge across layers with tombstone-aware filtering.
The design is LSM-inspired, but explicitly scoped to an embedded in-memory engine.

Installation

Install from PyPI:

pip install timelog-lib

Or with uv:

uv add timelog-lib

Distribution name is timelog-lib, import namespace stays timelog:

from timelog import Timelog

Quickstart: Streaming

from timelog import Timelog

log = Timelog.for_streaming(time_unit="ms")

# Auto-timestamp append
log.append({"event": "boot"})

# Operator-style explicit timestamp append
log[1_700_000_000_000] = {"event": "tick"}

# Half-open range query [t1, t2)
rows = list(log[1_700_000_000_000:1_700_000_000_001])
print(rows)

log.close()  # optional explicit cleanup

Quickstart: Correctness Semantics

from timelog import Timelog

log = Timelog(time_unit="ms")
log[10] = "A"
del log[5:15]              # delete [5, 15)
log[10] = "B"              # later insert at same ts

print(log[10])             # ['B']
print(list(log[0:20]))     # [(10, 'B')]

log.close()  # optional explicit cleanup

Timelog uses sequenced tombstones, so later inserts are not hidden by earlier deletes.

Core Guarantees

  • Time ranges are half-open: [t1, t2).
  • Reads are snapshot-consistent.
  • Concurrency model is single writer plus concurrent readers.
  • Duplicate timestamps are allowed (multimap semantics).
  • Write-path backpressure (TimelogBusyError) indicates the write was accepted; do not blind-retry the same write.

What Timelog Is (and Isn’t)

Timelog is:

  • an embedded, in-memory timestamp index,
  • optimized for append-heavy ingest and time-range retrieval,
  • implemented in C17 with first-party CPython bindings.

Timelog is not:

  • a durable storage engine,
  • a distributed TSDB,
  • a SQL query engine.

close() does not materialize unflushed writes. Call flush() first if you need all pending data materialized into immutable segments before shutdown.

API Snapshot

Core Python facade surface:

  • Constructors:
    • Timelog(...)
    • Timelog.for_streaming(...)
    • Timelog.for_bulk_ingest(...)
    • Timelog.for_low_latency(...)
  • Writes:
    • append(...)
    • extend(...)
    • log[ts] = obj
    • delete(t1, t2) / delete(ts)
    • cutoff(ts)
  • Reads:
    • log[t1:t2], log[t1:], log[:t2], log[:]
    • log[ts] / at(ts)
  • Introspection and views:
    • stats()
    • views(...)

See docs/python-api.md for the full behavior contract.

Threading and Backpressure

  • Writes and lifecycle operations must be externally serialized.
  • Snapshot iterators are safe for concurrent reads.
  • Background maintenance can run automatically (maintenance="background") or be controlled manually.
  • TimelogBusyError on write operations means accepted write + pressure signal, not "write lost".
  • Do not call close() concurrently with other operations on the same instance.

Architecture

Write Path                               Read Path
----------                               ---------
append/extend/delete                     snapshot + query([t1, t2))
      |                                           |
      v                                           v
  Memtable (mutable)  <--------------------  Snapshot view
      | seal
      v
  Memrun (immutable)
      | flush
      v
  L0 Segments (overlap)
      | compact
      v
  L1 Segments (windowed, non-overlap)

Reads plan sources across active + immutable layers, then run k-way merge with tombstone filtering based on sequencing/watermark state.
Flush and compaction bound read fan-out over time.
Deletes are logical tombstones; physical cleanup is deferred to maintenance.

Performance at a Glance

Historical snapshot (2026-02-15, Linux x86_64, Python 3.13.12, dataset 11,550,000 rows):

  • Batch ingest (A2): 191,105 records/sec
  • Full scan (B4): 18,088,679 records/sec
  • Append latency (K1, background): p99 = 672 ns

Results are workload-, configuration-, and hardware-dependent.

Methodology and context:

  • docs/PERFORMANCE_METHODOLOGY.md
  • docs/BENCHMARK_1GB_7PCT_OOO_UNIX.md
  • docs/BENCHMARK_REPORT.md
  • docs/performance.md

Complexity claims should be interpreted with stated assumptions. In practice:

  • append path is amortized O(1) at memtable layer,
  • point/range behavior approaches logarithmic seek + linear output scan when source fan-out is bounded by maintenance,
  • delete cost depends on tombstone interval state.

Documentation

  • Index: docs/index.md
  • Python API: docs/python-api.md
  • Configuration: docs/configuration.md
  • Error and retry semantics: docs/errors-and-retry-semantics.md
  • Performance methodology: docs/PERFORMANCE_METHODOLOGY.md
  • PyPI/release operations: docs/pypi-release.md

License

MIT. See LICENSE.

Contributing

PRs are welcome. Run core validation locally:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DTIMELOG_BUILD_PYTHON=ON -DTIMELOG_BUILD_PY_TESTS=ON
cmake --build build --target timelog_e2e_build --config Release -j 2
ctest --test-dir build -C Release --output-on-failure -R '^py_.*_tests$'
cmake -E env PYTHONPATH="$PWD/python" python -m pytest python/tests -q

Package build sanity:

python -m build
python -m twine check dist/*

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

timelog_lib-1.2.0.tar.gz (619.9 kB view details)

Uploaded Source

Built Distributions

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

timelog_lib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (104.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

timelog_lib-1.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (101.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

timelog_lib-1.2.0-cp314-cp314-win_amd64.whl (103.0 kB view details)

Uploaded CPython 3.14Windows x86-64

timelog_lib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (103.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

timelog_lib-1.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (102.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

timelog_lib-1.2.0-cp314-cp314-macosx_11_0_arm64.whl (86.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

timelog_lib-1.2.0-cp314-cp314-macosx_10_15_x86_64.whl (94.1 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

timelog_lib-1.2.0-cp313-cp313-win_amd64.whl (100.4 kB view details)

Uploaded CPython 3.13Windows x86-64

timelog_lib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (103.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

timelog_lib-1.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (101.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

timelog_lib-1.2.0-cp313-cp313-macosx_11_0_arm64.whl (86.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

timelog_lib-1.2.0-cp313-cp313-macosx_10_13_x86_64.whl (94.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

timelog_lib-1.2.0-cp312-cp312-win_amd64.whl (99.4 kB view details)

Uploaded CPython 3.12Windows x86-64

timelog_lib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (103.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

timelog_lib-1.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (100.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

timelog_lib-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (86.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

timelog_lib-1.2.0-cp312-cp312-macosx_10_13_x86_64.whl (94.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

File details

Details for the file timelog_lib-1.2.0.tar.gz.

File metadata

  • Download URL: timelog_lib-1.2.0.tar.gz
  • Upload date:
  • Size: 619.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for timelog_lib-1.2.0.tar.gz
Algorithm Hash digest
SHA256 7a2aa2b9845d49731f0884113a87b2a1e6b6855f0b1714f863b30a184c4e507f
MD5 819d6c911cc226cc86c028162e45afcf
BLAKE2b-256 4b09bff35d02f76901125c048f23adc34bd2a37d7084869605abf5f41f814053

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0.tar.gz:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71ebfd53d1b5936b8756645d7763b2e6953fb21f66d44b735c0ab6391e9052c7
MD5 25bd8c12780dc08c5e790624557295f7
BLAKE2b-256 f0ca910b94bd75635ca15f7b4b7f429f28443ae90473deb38ac89c56a637d1e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2bf1be0ab3529752acb4d76703195d38d501fe3ecd0c3e84713ab9a08f8a657a
MD5 1d11ecc6e8b899a91f8b92a223ea97df
BLAKE2b-256 1e6ac2a249bb786897d9e95c51022a2a91a7698f30652226bec7a59800d7b858

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: timelog_lib-1.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 103.0 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for timelog_lib-1.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cb09eeb5f13cb94f8882b96a23d86398d93282d222d788d2dd93ebafe3a894f4
MD5 cdd8c2afed40cce0e5b0d3db9608d682
BLAKE2b-256 87b07d9cb002094a5d4ee86fb4496f4b6503dc8feb1a325112317b69457e2d29

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp314-cp314-win_amd64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab0622c01cefa584009da54dbd2effdb5fe87d353c463ffb6ce0d02b50030b01
MD5 f6f692477ef6fce9cf156f8f0e0af120
BLAKE2b-256 de5928be51db99c9fe0320ea2baf12ed48b15ca4ec2c51d1bb35edf5293735e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 efe53def66ba421d214603562d8b748a10be0040d108a8fa9ffa90e12cd2fb04
MD5 610fba67611472dc66713a2a91896827
BLAKE2b-256 8355e8625a02b20f05a3fa73c1cfe2fbaa231dec5a76f8bb109e7834878a7d9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 715540b9b7e3d9b21049a80164f5207d3ea2127f377a6a8574544181c9494d31
MD5 94bba5dcce963e30db08933b243d7669
BLAKE2b-256 99428de66652aa1ddcb9b1d2ede2b28fe1777aaac6b46588421675f9b09decd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9a17affbf946a99a0ddc8877a44183dc4db86c8a7a51f207ca2fbf20af95b51e
MD5 8ea4031a53a9fab0b7422413d23888f8
BLAKE2b-256 cc28d476563f23e82c6277c1783074b95177e743946c59d11e215567a5caa01d

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: timelog_lib-1.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 100.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for timelog_lib-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 66b966eda0b19f3879338d14fa01d445d3198e7bbaee9cdacfb44e9c8b770a47
MD5 3c57b1d10d8295e14b97d97c610c4cbb
BLAKE2b-256 7baafd6688c8aed019c5b7d654152b5398f02081e554d0d640c8cce5e1ebf12c

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp313-cp313-win_amd64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 393f00f074d9ee99b115b0ce98e1eba2fb306ec58f35028661562cc863dd1cd2
MD5 612e7523ab9ff520840e0ea28e33a9bc
BLAKE2b-256 7797fe953acd6f636b2561b42fc027903b703f24ed8b734c94474e13c4c973ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ebe05ff9e172de102160fef592eb3d914d4a5678185ad75b02ceb565c5d6a951
MD5 01883d95e724bf13007524ef43199635
BLAKE2b-256 e7391d83f0e977a31577efb8dec89dc1549088eee139bc7d6b55f3fa1d426fc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9cfabe23ec96a88be89b6103f6695a98598fd6f9e04f437111b8055ad4c6e6d
MD5 0fc015d7132f40b016aba60688e349b2
BLAKE2b-256 059546d5faac92689391aa07b20ad67b6a139f4659a78ad6800c2730b0838bb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ba17d5ca3ef7c1282c2c3d7896d9bf60e0fded0e3ebf10489d421255541e4da9
MD5 07158f6bd2a869f1e05eb50619105213
BLAKE2b-256 51d06c2bd157312ff822b08963f9471e2978e7022ce953d9a462c406e94031b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9e8634993998b4c23b2e6bb88b9ad75d58e4ac4af7e2a0798d81b4cd6ce71523
MD5 a9f7e8f9436800c7c364985e1c9d7deb
BLAKE2b-256 934f5a4cb61a803a4c42daafb9d864137d8c04bd4d78d91465e9423bed200869

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp312-cp312-win_amd64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a895b5bbcf69aaa2a2a3071f3dead8531423879946b690f742d51626d49b55c
MD5 7f599ee113faa99b74cc95d2e0df40fb
BLAKE2b-256 76ee18acc88e9dad9f7511d6ed63523349f8beac58abc0b574e63c22dc6716f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 de473bb00dbe131604de52c6d1e2418fdf7c5b87fb196377158f37229341800e
MD5 6a33618d0e170a0a9835f5c7f98f4ee5
BLAKE2b-256 f30b5a8d892e2b4d2b0680fa95c66a3445e355fe0f667c978f24802c19d8c991

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 424586a187031e26dbb1920b59d27dff25890004460e27b29f4e681df4393dba
MD5 6f63426135ba422d4b6812077e32c3c3
BLAKE2b-256 d81bf12f7d2cb984cbb9c2ed246b4137ed09ca9242991d6278008f3be0dd2ed6

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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

File details

Details for the file timelog_lib-1.2.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for timelog_lib-1.2.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1293249f6c93cc69dcb8417400bbb07b0863c415a723b87f3a3cf62998ef5010
MD5 8a051b26152ea7bdf641c401b2f5e243
BLAKE2b-256 09bf0309d900c8a9d12519ddf80799c5f50412b026966bf3c7e9f6902119d359

See more details on using hashes here.

Provenance

The following attestation bundles were made for timelog_lib-1.2.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: release-pypi.yml on VldChk/timelog

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