In-memory LSM-style time-indexed storage engine with CPython bindings.
Project description
Timelog
In-memory, LSM-inspired, time-indexed multimap for Python.
Timelog stores many Python objects per timestamp, supports out-of-order ingest, and answers timestamp/range queries from a native C17 engine through a CPython extension. Current package version: 1.3.0.
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.
Use it when you want a local Python object index optimized for:
- append-heavy event streams,
- range scans over integer timestamps,
- retention via logical deletes/tombstones,
- concurrent snapshot readers over live Python objects,
- zero-copy timestamp views for analytics-style scans.
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
Runtime Support
- Regular CPython 3.12-3.14.
- Isolated subinterpreters with a per-interpreter GIL.
- Free-threaded CPython 3.14t (
Py_GIL_DISABLED=1) on the supported wheel set; importing Timelog does not re-enable the GIL. - Typed package metadata is included (
py.typedand_timelog.pyi).
The Python API remains single-writer at the instance level: writes and lifecycle operations must be externally serialized. Independent snapshot readers can run concurrently.
What Changed in 1.2 and 1.3
1.2.0 rebuilt the CPython runtime boundary: _timelog now uses
multi-phase module initialization, module-local exceptions and heap types,
per-interpreter-safe state recovery, and explicit synchronization for the
supported free-threaded wheel family.
1.3.0 keeps that runtime contract and focuses on the hot user paths:
auto-timestamp append(obj) moved from Python into C, common positional
methods use lower-overhead dispatch, bulk_append() ingests typed timestamp
buffers directly, and core lower/upper-bound searches use a measured
size-gated branchless path.
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() # deterministic cleanup; finalizer cleanup is best-effort
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. close()discards all data. Timelog is in-memory;flush()improves open-instance visibility for readers, not durability.
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() discards all data — the engine is in-memory, so nothing survives it.
flush() matters while the log is OPEN: it materializes pending writes into
immutable segments so zero-copy views() readers can see them.
API Snapshot
Core Python facade surface:
- Constructors:
Timelog(...),for_streaming(...),for_bulk_ingest(...),for_low_latency(...). - Writes:
append(obj),append(obj, ts=...),append(ts, obj).extend([(ts, obj), ...], mostly_ordered=..., insert_on_error=...).bulk_append(timestamps, objects)for contiguous native-endian int64 buffers plus a same-length list/tuple of payloads.log[ts] = obj,delete(t1, t2),delete(ts),cutoff(ts).
- Reads:
log[t1:t2],log[t1:],log[:t2],log[:].log[ts]/at(ts).- named iterators:
range,since,until,all,point/equal. - iterator helpers:
len(it),next_batch(n), andit.view().
- Introspection and views:
stats(),busy_events,extend_skipped,retired_queue_len.views(...)/page_spans(...)for zero-copy timestamp spans.PageSpan.timestampsis a read-only memoryview;PageSpan.objects()lazily exposes the corresponding Python payloads.
See docs/python-api.md for the full behavior contract.
Lifecycle, Threading, and Backpressure
- Most users should write
log = Timelog(...)or use a preset constructor and keep the object for the required scope. A context manager is available but not required. - Explicit
close()gives deterministic cleanup. If omitted, collection auto-closes on a best-effort basis. - Do not call
close()concurrently with other operations on the same instance. - Release active iterators,
PageSpanobjects, object views, and exported memoryviews before closing; they hold snapshot pins. - Background maintenance can run automatically (
maintenance="background") or be controlled manually (maintenance="disabled"+flush()/compact()/maint_step()). TimelogBusyErroron write operations means accepted write + pressure signal, not "write lost".
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.
flush() is a visibility operation, not durability: it publishes pending
writes into immutable in-memory segments so readers and zero-copy views() can
see them. close() always tears down the in-memory engine and discards all
records.
Performance at a Glance
Same-harness v1.3 A/B against the v1.2.0 wheel, Linux x86_64, pinned CPU,
CPython 3.13.12, median of 5:
| Operation | v1.2.0 | v1.3.0 | Change |
|---|---|---|---|
append(obj) |
513.9 ns | 117.1 ns | 4.39x faster |
append(ts, obj) |
352.1 ns | 103.9 ns | 3.39x faster |
append(obj, ts=...) |
364.7 ns | 109.6 ns | 3.33x faster |
point(ts) |
457.1 ns | 337.1 ns | 1.36x faster |
equal(ts) |
548.8 ns | 429.3 ns | 1.28x faster |
next_ts(ts) |
393.8 ns | 299.8 ns | 1.31x faster |
range(t1, t2) |
575.9 ns | 458.0 ns | 1.26x faster |
delete_range(t1, t2) |
18,059.6 ns | 13,289.3 ns | 1.36x faster |
delete_before(ts) |
109.7 ns | 80.8 ns | 1.36x faster |
New v1.3 ingest fast path:
bulk_append(np.int64 array, list): 113.3 ns/record on a 200k-record measured batch.- In that benchmark,
bulk_appendwas 2.23x faster than a post-v1.3 per-record append loop and 3.51x faster thanextend(zip(...)).
Search-path optimization:
- Size-gated branchless lower/upper-bound search measured 1.9x-5.0x faster at gated sizes up to 262,144 records, and falls back to the neutral path for very large arrays where it no longer wins.
Historical scale snapshot (2026-02-15, Linux x86_64, CPython 3.13.12,
dataset 11,550,000 rows):
- Batch ingest (
A2):191,105records/sec. - Full scan (
B4):18,088,679records/sec. - Append latency (
K1, background):p99 = 672 ns. - PageSpan iteration (
F1):1.48Btimestamps/sec on the timestamp-only span path.
Results are workload-, configuration-, and hardware-dependent.
The current publishable benchmark framing is docs/performance.md; older
reports are retained as historical snapshots.
Methodology and context:
docs/PERFORMANCE_METHODOLOGY.mddocs/performance.mddocs/benchmarks/bulk_append.mddocs/benchmarks/max_delta_segments.mddocs/BENCHMARK_1GB_7PCT_OOO_UNIX.mddocs/BENCHMARK_REPORT.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 - Release notes:
docs/release-notes.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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file timelog_lib-1.3.0.tar.gz.
File metadata
- Download URL: timelog_lib-1.3.0.tar.gz
- Upload date:
- Size: 680.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d33813602f3230ed5ead4583e44813ee05963c7db6ca504b72de4728b4451a0b
|
|
| MD5 |
08a1e68903798f4627cb4880a769e719
|
|
| BLAKE2b-256 |
2be0d8beb0ed819592334ae20e1302680a286e44a0f680e9672d2688640a3361
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0.tar.gz:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0.tar.gz -
Subject digest:
d33813602f3230ed5ead4583e44813ee05963c7db6ca504b72de4728b4451a0b - Sigstore transparency entry: 1809559413
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 117.2 kB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05032d89c8fe20436d2dca14388e45fbb848a68e573c52e91d41b2374eadaf6f
|
|
| MD5 |
6b11a4df294d870829d6ac48ea2954f1
|
|
| BLAKE2b-256 |
1060b6b208ee41a7b4e66e1a4adb8287ab82c1d836c35f5f4435242ed679fa1a
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
05032d89c8fe20436d2dca14388e45fbb848a68e573c52e91d41b2374eadaf6f - Sigstore transparency entry: 1809560203
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 116.2 kB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10966e98cbc1f72c9d8901d611d5fd41cb0af7eb92b33e61bf051b8eb81a9198
|
|
| MD5 |
0ff2fa07400694e2a8f81d706ae24cff
|
|
| BLAKE2b-256 |
f1a088e554f35113f1c4b98c5bf09e9e29bb487d0f699cea4c209641c7c94439
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
10966e98cbc1f72c9d8901d611d5fd41cb0af7eb92b33e61bf051b8eb81a9198 - Sigstore transparency entry: 1809560014
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 114.3 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4ec4875078a80f4ea8fc37d89f1676d90fe3a2a096b8f5e8a1e469585833b2f
|
|
| MD5 |
06be88800eec26675ac3fd8920c8d312
|
|
| BLAKE2b-256 |
1d25407b7e5b355aac55e2eab068c22ea562be8cc52b845cf7bd1216eb8bb251
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp314-cp314-win_amd64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp314-cp314-win_amd64.whl -
Subject digest:
e4ec4875078a80f4ea8fc37d89f1676d90fe3a2a096b8f5e8a1e469585833b2f - Sigstore transparency entry: 1809559556
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 117.9 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
147a97e08ec24484dbf7a6c02ec3ea2d445ef87ae6e3bcf6a382596dd391b4ba
|
|
| MD5 |
c4ac94f226107c23c3084a93226a98bd
|
|
| BLAKE2b-256 |
45f0e728f662e2421f8bb647dab78ecc573dae8b2e18a513ee602acb5520bf7d
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
147a97e08ec24484dbf7a6c02ec3ea2d445ef87ae6e3bcf6a382596dd391b4ba - Sigstore transparency entry: 1809559848
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 117.0 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
978f84ccc49708b51c6128b9b186915d385837b5e394c9741036325914fc7c3d
|
|
| MD5 |
7afd2533c0a1a0bedbe3c6d93de95e9d
|
|
| BLAKE2b-256 |
960a6c24cb783cdf487c0920bbd386c9bfbb7dc3c3ff7fc609b14cefe64acac4
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
978f84ccc49708b51c6128b9b186915d385837b5e394c9741036325914fc7c3d - Sigstore transparency entry: 1809559903
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 99.5 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2506ea4ae55b82ad6cf7a0537eb195afb80b49b5ba9bb78918aac4b5add25d97
|
|
| MD5 |
0294652c574d0d35aa6f3bf5f666800f
|
|
| BLAKE2b-256 |
2526e62173ce8fb5fe7c2299e1a4859e80c580f1806ef31173ad2fc77c7793a1
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
2506ea4ae55b82ad6cf7a0537eb195afb80b49b5ba9bb78918aac4b5add25d97 - Sigstore transparency entry: 1809559429
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp314-cp314-macosx_10_15_x86_64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp314-cp314-macosx_10_15_x86_64.whl
- Upload date:
- Size: 108.5 kB
- Tags: CPython 3.14, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d397253f103ebcf66f469a7cc6449a43dfc59d33fe8d9e6ac4f1cacc8c76e7cd
|
|
| MD5 |
4da7b0e8ae6a1386d9e3f0cee7aba6e8
|
|
| BLAKE2b-256 |
e5e97901909dbbc24239d154b7d76cfa932ed6847acc7705ef0a0b1bf51807f5
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp314-cp314-macosx_10_15_x86_64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp314-cp314-macosx_10_15_x86_64.whl -
Subject digest:
d397253f103ebcf66f469a7cc6449a43dfc59d33fe8d9e6ac4f1cacc8c76e7cd - Sigstore transparency entry: 1809559627
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 111.8 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bca963b0a491f333b97c8651ac2a1b25376144c8240df8b808c62f27c8ca49b
|
|
| MD5 |
fda3c340380d9e30539cb22c8b61bd36
|
|
| BLAKE2b-256 |
3da57f23f6b051317773bf81848251a7693b00fb32150ce0f163bab2054e27ed
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp313-cp313-win_amd64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp313-cp313-win_amd64.whl -
Subject digest:
7bca963b0a491f333b97c8651ac2a1b25376144c8240df8b808c62f27c8ca49b - Sigstore transparency entry: 1809559681
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 117.8 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
368d648a9068e16c49daf3a7e2948017fc4fc40752aa32711abf6006eeebd97c
|
|
| MD5 |
acaf012d1548f8048691d03033bf9478
|
|
| BLAKE2b-256 |
e5633c61b5659b4f90f00cc08a68f1361338720303b75f925bd1a14b949e410f
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
368d648a9068e16c49daf3a7e2948017fc4fc40752aa32711abf6006eeebd97c - Sigstore transparency entry: 1809560152
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 116.9 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21ec09fbeeb165ea8f77935e5a75f6931a08c8d08bd38404ecc2a88c70fb7a4b
|
|
| MD5 |
09dbea24716fc57b1a25a734a40cf0f1
|
|
| BLAKE2b-256 |
9a2d1f0b4d10920f76abc997614680d46df2d40007f033a06b8252e90b75bf70
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
21ec09fbeeb165ea8f77935e5a75f6931a08c8d08bd38404ecc2a88c70fb7a4b - Sigstore transparency entry: 1809559450
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 99.5 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a9d34aeca15afc1b636e67660befa03ad6318f8ddae58b105d0b52c2091ed06
|
|
| MD5 |
d690cbf699ed9a6892931332b6794965
|
|
| BLAKE2b-256 |
2959e95ea469810929bbb1b678f4d2d0c6f97e6b5f3c0bcc35919aab2becaba1
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
3a9d34aeca15afc1b636e67660befa03ad6318f8ddae58b105d0b52c2091ed06 - Sigstore transparency entry: 1809560058
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 108.3 kB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7265b7910e27d3b2a7c8f1d4f94235d183e822a163a9fedb9275fadbefdc993d
|
|
| MD5 |
639680b8e34b7c974c13f0cb8e5b8067
|
|
| BLAKE2b-256 |
7051dcf7a50fc5435bfbbb221b3f55cbc623ae9a2bc6739267b71726a4596642
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp313-cp313-macosx_10_13_x86_64.whl -
Subject digest:
7265b7910e27d3b2a7c8f1d4f94235d183e822a163a9fedb9275fadbefdc993d - Sigstore transparency entry: 1809559739
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 111.8 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ad266900d8090f3df59f8f889e9e1c46ed77cf9662bd8c3cf2dba2ffbb128ca
|
|
| MD5 |
f1f937ea0381e50d9f6798e9accbaf81
|
|
| BLAKE2b-256 |
774b3272d1752c6dc2b3dfc56fa6dfa8bcdb97fa9342471027998ff267bca3e7
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp312-cp312-win_amd64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp312-cp312-win_amd64.whl -
Subject digest:
5ad266900d8090f3df59f8f889e9e1c46ed77cf9662bd8c3cf2dba2ffbb128ca - Sigstore transparency entry: 1809559956
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 116.6 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b57b08b0ff27b57b8a472b81186396884063dd0fab51e424fd0001006a9e87e
|
|
| MD5 |
c5944748fc1c466d1ef09f0c63668a0f
|
|
| BLAKE2b-256 |
fbcc3ff9e33a243be2bff4f2b2bb287e6edd10ef96f5cd62d0895422e34a81ac
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
2b57b08b0ff27b57b8a472b81186396884063dd0fab51e424fd0001006a9e87e - Sigstore transparency entry: 1809559474
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 115.8 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88de2101f640bc1e7faee229ee88125ec3d21aa07c046f0aebb6a379997fe19a
|
|
| MD5 |
9d3cdd217449c7db06cc2a2e76fb421c
|
|
| BLAKE2b-256 |
a402be2f3bf9353640d2dcec2dd8da27126de796a560bca7201295c4047254d9
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
88de2101f640bc1e7faee229ee88125ec3d21aa07c046f0aebb6a379997fe19a - Sigstore transparency entry: 1809560099
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 99.5 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91071fc5d730e1eaa10b05418618601ec3ef28f35acace03812c7c5d11d9603d
|
|
| MD5 |
fd145af3da0a028d602c21e0f957695c
|
|
| BLAKE2b-256 |
40969b09a8d08504887152d84a050193a893ece1df6cfd72c04ffe676e4e36be
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
91071fc5d730e1eaa10b05418618601ec3ef28f35acace03812c7c5d11d9603d - Sigstore transparency entry: 1809559793
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file timelog_lib-1.3.0-cp312-cp312-macosx_10_13_x86_64.whl.
File metadata
- Download URL: timelog_lib-1.3.0-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 108.3 kB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
683b1555c4ff2eb1ecf6a4e73d208353619b9eee6561594e3bece128b07f3ea5
|
|
| MD5 |
52486c23840dc6f1b610b70ad912d22b
|
|
| BLAKE2b-256 |
a95f888c3634a0a54951994a825442ec10e4b55a0fd04a7b3b7471a449b9a0f8
|
Provenance
The following attestation bundles were made for timelog_lib-1.3.0-cp312-cp312-macosx_10_13_x86_64.whl:
Publisher:
release-pypi.yml on VldChk/timelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
timelog_lib-1.3.0-cp312-cp312-macosx_10_13_x86_64.whl -
Subject digest:
683b1555c4ff2eb1ecf6a4e73d208353619b9eee6561594e3bece128b07f3ea5 - Sigstore transparency entry: 1809559506
- Sigstore integration time:
-
Permalink:
VldChk/timelog@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Branch / Tag:
refs/tags/v1.3.0 - Owner: https://github.com/VldChk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@751a1cc7a6fb3d165d7bb4720a8bcdfae956d4cc -
Trigger Event:
push
-
Statement type: