Yet another etcd-client API binding based on the Rust's etcd-client package
Project description
etcd-client-py
Python wrapper of etcd_client built with PyO3.
Installation
pip install etcd_client
Basic usage
from etcd_client import EtcdClient
etcd = EtcdClient(['http://127.0.0.1:2379'])
Actual connection establishment with Etcd's gRPC channel will be done when you call EtcdClient.connect().
async def main():
async with etcd.connect() as communicator:
await communicator.put('testkey'.encode(), 'testvalue'.encode())
value = await communicator.get('testkey'.encode())
print(bytes(value).decode()) # testvalue
Working with key prefixes
EtcdCommunicator.get_prefix(prefix) returns a list of key-value pairs matching the given prefix.
async def main():
async with etcd.connect() as communicator:
await communicator.put('/testdir'.encode(), 'root'.encode())
await communicator.put('/testdir/1'.encode(), '1'.encode())
await communicator.put('/testdir/2'.encode(), '2'.encode())
await communicator.put('/testdir/2/3'.encode(), '3'.encode())
test_dir = await communicator.get_prefix('/testdir'.encode())
for resp in test_dir:
# ['/testdir', 'root']
# ['/testdir/1', '1']
# ['/testdir/2', '2']
# ['/testdir/2/3', '3']
print([bytes(v).decode() for v in resp])
Automatic runtime cleanup
The tokio runtime is automatically cleaned up when the last client context exits. In most cases, no explicit cleanup is needed:
import asyncio
from etcd_client import EtcdClient
async def main():
etcd = EtcdClient(['http://127.0.0.1:2379'])
async with etcd.connect() as communicator:
await communicator.put('testkey'.encode(), 'testvalue'.encode())
value = await communicator.get('testkey'.encode())
print(bytes(value).decode())
# Runtime automatically cleaned up when context exits
asyncio.run(main())
The library uses reference counting to track active client contexts. When the last context exits, the tokio runtime is gracefully shut down, waiting up to 5 seconds for pending tasks to complete. If you create new clients after this, the runtime is automatically re-initialized.
For advanced use cases requiring explicit control, cleanup_runtime() is available:
from etcd_client import cleanup_runtime
# Force cleanup at a specific point (usually not needed)
cleanup_runtime()
Operating with Etcd lock
Just like EtcdClient.connect(), you can easily use etcd lock by calling EtcdClient.with_lock(lock_opts).
async def first():
async with etcd.with_lock(
EtcdLockOption(
lock_name='foolock'.encode(),
)
) as communicator:
value = await communicator.get('testkey'.encode())
print('first:', bytes(value).decode(), end=' | ')
async def second():
await asyncio.sleep(0.1)
async with etcd.with_lock(
EtcdLockOption(
lock_name='foolock'.encode(),
)
) as communicator:
value = await communicator.get('testkey'.encode())
print('second:', bytes(value).decode())
async with etcd.connect() as communicator:
await communicator.put('testkey'.encode(), 'testvalue'.encode())
await asyncio.gather(first(), second()) # first: testvalue | second: testvalue
Lock timeout
Adding timeout parameter to EtcdLockOption will add a timeout to the lock acquiring process.
async def second():
await asyncio.sleep(0.1)
async with etcd.with_lock(
EtcdLockOption(
lock_name='foolock'.encode(),
timeout=5.0,
)
) as communicator:
value = await communicator.get('testkey'.encode())
print('second:', bytes(value).decode())
Lock TTL
Adding ttl parameter to EtcdLockOption will force the lock to be released after the given seconds.
async def first():
async with etcd.with_lock(
EtcdLockOption(lock_name="foolock".encode(), ttl=5)
) as communicator:
await asyncio.sleep(10)
async def second():
start = time.time()
async with etcd.with_lock(
EtcdLockOption(lock_name="foolock".encode(), ttl=5)
) as communicator:
print(f"acquired lock after {time.time() - start} seconds")
# 'second' acquired lock after 5.247947931289673 seconds
done, _ = await asyncio.wait([
asyncio.create_task(first()),
asyncio.create_task(second())
], return_when=asyncio.FIRST_COMPLETED)
for task in done:
print(task.result())
Watch
You can watch changes on a key with EtcdCommunicator.watch(key).
async def watch():
async with etcd.connect() as communicator:
async for event in communicator.watch('testkey'.encode()):
print(event.event, bytes(event.value).decode())
async def update():
await asyncio.sleep(0.1)
async with etcd.connect() as communicator:
await communicator.put('testkey'.encode(), '1'.encode())
await communicator.put('testkey'.encode(), '2'.encode())
await communicator.put('testkey'.encode(), '3'.encode())
await communicator.put('testkey'.encode(), '4'.encode())
await communicator.put('testkey'.encode(), '5'.encode())
await asyncio.gather(watch(), update())
# WatchEventType.PUT 1
# WatchEventType.PUT 2
# WatchEventType.PUT 3
# WatchEventType.PUT 4
# WatchEventType.PUT 5
Watch with prefix
Watching changes on keys with a specific prefix can be done with EtcdCommunicator.watch_prefix(key_prefix).
async def watch():
async with etcd.connect() as communicator:
async for event in communicator.watch_prefix('/testdir'.encode()):
print(event.event, bytes(event.key).decode(), bytes(event.value).decode())
async def update():
await asyncio.sleep(0.1)
async with etcd.connect() as communicator:
await communicator.put('/testdir'.encode(), '1'.encode())
await communicator.put('/testdir/foo'.encode(), '2'.encode())
await communicator.put('/testdir/bar'.encode(), '3'.encode())
await communicator.put('/testdir/foo/baz'.encode(), '4'.encode())
await asyncio.gather(watch(), update())
# WatchEventType.PUT /testdir 1
# WatchEventType.PUT /testdir/foo 2
# WatchEventType.PUT /testdir/bar 3
# WatchEventType.PUT /testdir/foo/baz 4
Transaction
You can run etcd transactions by calling EtcdCommunicator.txn(txn).
Constructing compares
Constructing compare operations can be done using the Compare class.
from etcd_client import Compare, CompareOp
compares = [
Compare.value('cmpkey1'.encode(), CompareOp.EQUAL, 'foo'.encode()),
Compare.value('cmpkey2'.encode(), CompareOp.GREATER, 'bar'.encode()),
]
Executing transactions
async with etcd.connect() as communicator:
await communicator.put('cmpkey1'.encode(), 'foo'.encode())
await communicator.put('cmpkey2'.encode(), 'baz'.encode())
await communicator.put('successkey'.encode(), 'asdf'.encode())
compares = [
Compare.value('cmpkey1'.encode(), CompareOp.EQUAL, 'foo'.encode()),
Compare.value('cmpkey2'.encode(), CompareOp.GREATER, 'bar'.encode()),
]
res = await communicator.txn(Txn().when(compares).and_then([TxnOp.get('successkey'.encode())]))
print(res) # TODO: Need to write response type bindings.
How to build
Prerequisites
- The Rust development environment (2021 edition or later) using
rustupor your package manager - The Python development environment (3.10 or later) using
pyenvor your package manager
Build instructions
First, create a virtualenv (using the standard venv package, pyenv, or your preferred tool). Then, install the PEP-517 build toolchain and run it.
pip install -U pip build setuptools
python -m build --sdist --wheel
This will automatically install build dependencies like maturin and build the wheel and source distributions under the dist/ directory.
How to develop and test
Setup development environment
This project uses uv for fast Python package management.
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install all dependencies and build the package
make install
# Or manually:
uv sync --all-extras # Installs all dependencies from pyproject.toml
uv run maturin develop # Builds and installs the Rust extension
Code quality checks
This project uses ruff for linting/formatting and mypy for type checking:
make fmt # Format all code (Python + Rust)
make lint # Lint all code (Python + Rust)
make fix # Auto-fix all issues (Python + Rust)
make typecheck # Type check Python code
make check # Run all checks
Running tests
make test # Run tests using uv
uv run pytest # Or directly with uv
# Tests use testcontainers to automatically spin up etcd
Project details
Release history Release notifications | RSS feed
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 etcd_client_py-0.5.1.tar.gz.
File metadata
- Download URL: etcd_client_py-0.5.1.tar.gz
- Upload date:
- Size: 143.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7809b1adfa58c0e84cbaac166c7e76ce5987558426acaa8651075dd2315a9212
|
|
| MD5 |
1e56174eb1a6b4025183772236f64415
|
|
| BLAKE2b-256 |
bbd2c79d349cd668a24a3647b17db2396c59393ba6b368279abbe1169ba39bc7
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1.tar.gz:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1.tar.gz -
Subject digest:
7809b1adfa58c0e84cbaac166c7e76ce5987558426acaa8651075dd2315a9212 - Sigstore transparency entry: 810155302
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
700a5e7decc1e610c5f199952b1d5fb5c14632a9d33a0642c55d20d687a20f57
|
|
| MD5 |
d3fa517faf519820742c5455efed1ff7
|
|
| BLAKE2b-256 |
33f1722209166948cad28666eb405c039061e3d243e5f49f117631d1f61239c3
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
700a5e7decc1e610c5f199952b1d5fb5c14632a9d33a0642c55d20d687a20f57 - Sigstore transparency entry: 810155354
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
343f8cdf7838837b5d46f4d2937a061ca00850884bdb2d02adbed9e951de858c
|
|
| MD5 |
057f7144b3a3d1c715715b3d4f18cd71
|
|
| BLAKE2b-256 |
ef460dceb5fd907e77fa4c80add21f96a08985266161d80c82e2a2f51fc986ae
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
343f8cdf7838837b5d46f4d2937a061ca00850884bdb2d02adbed9e951de858c - Sigstore transparency entry: 810155315
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.14t, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6a4bfa04b8f95e88f67797df536959b3e6e0f386b57fea499eda48baf6d86a0
|
|
| MD5 |
1ec4dabd14e4b194c92880729602a56c
|
|
| BLAKE2b-256 |
aa4f3b45ff283a34e4c3a14944bdfaa026a1cab605928fecb703a6516824ff5a
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
d6a4bfa04b8f95e88f67797df536959b3e6e0f386b57fea499eda48baf6d86a0 - Sigstore transparency entry: 810155372
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a8fe3810519f2ffe768f1c4e66c0ed131fbfe2baa26eb9954e077dace80c98d
|
|
| MD5 |
4206dfbda6b2ccd401bc2340da8f4cae
|
|
| BLAKE2b-256 |
d9913c985cece1a15f09621a11f62a35c95a7be4d4c005890fd46e053004d7e9
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
8a8fe3810519f2ffe768f1c4e66c0ed131fbfe2baa26eb9954e077dace80c98d - Sigstore transparency entry: 810155400
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ed46ecda5c03ee2a9d02b71d356b17dc9f952a39421a737b74641a811a8ed48
|
|
| MD5 |
a67dd75fe4f442e0a4cf4a6fd493033b
|
|
| BLAKE2b-256 |
efe8151f535656d41fed4a6d3c6ab5ba8d010dca11cf738289c2a1523ab6a58d
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
0ed46ecda5c03ee2a9d02b71d356b17dc9f952a39421a737b74641a811a8ed48 - Sigstore transparency entry: 810155332
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.14, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
285e8735dc1d6562ac28d97f2f893b1324473bcd10eeef2fe9e34165fd94f133
|
|
| MD5 |
43c27eb82e4454864a23e5220d29e7b3
|
|
| BLAKE2b-256 |
1d03fcddc60c758acb030169ce6f5a9366bfffc52dc43809b95895ad3ec21c65
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
285e8735dc1d6562ac28d97f2f893b1324473bcd10eeef2fe9e34165fd94f133 - Sigstore transparency entry: 810155459
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63d245dcecdf845aa76b4da4f73d00919f07eb35788e683ee4f809e188c53375
|
|
| MD5 |
a090a6354989e6aa88fd4483f3abb49e
|
|
| BLAKE2b-256 |
3f6ce6b2cf73127561e9c9bae8a41c017be346deeb54d0f8128109c2581beae6
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
63d245dcecdf845aa76b4da4f73d00919f07eb35788e683ee4f809e188c53375 - Sigstore transparency entry: 810155438
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8bc311f225147e3260c6416d4c66146dd291e5af5c6b8120d0b410cce89a8d1
|
|
| MD5 |
031e9ec272ca3cf518bd7bc87a118fc7
|
|
| BLAKE2b-256 |
a2d16aad26b2f0581db64650f640c0d7968bbe25cc6a2fc35f7d66d4c0347f6b
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
c8bc311f225147e3260c6416d4c66146dd291e5af5c6b8120d0b410cce89a8d1 - Sigstore transparency entry: 810155389
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.13, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dee52d29cd2d441ecebbc84b80c3c08370b0b5859dc5b165bf9133bd209e2565
|
|
| MD5 |
de8cc6cdefecf15c204dde23fdb50a09
|
|
| BLAKE2b-256 |
ab922f21e778b884729d412613713d33eda98c644fbfb03bca4bb0ded94298ec
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
dee52d29cd2d441ecebbc84b80c3c08370b0b5859dc5b165bf9133bd209e2565 - Sigstore transparency entry: 810155466
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e877a31128928ef1c05b92bbdf449c647e785a1321bacf43e9208d8afab9f90c
|
|
| MD5 |
1726e5ad0dd76fc0ac5d7992cda2548f
|
|
| BLAKE2b-256 |
0618020314d598cb0c1af91a5cb53a5c0382600acc0398210d87a084c8f93d83
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
e877a31128928ef1c05b92bbdf449c647e785a1321bacf43e9208d8afab9f90c - Sigstore transparency entry: 810155402
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bcde1cb9582638d9a1874a4840bda9dc7107e34a13c712b955efe5982d0d05be
|
|
| MD5 |
606338adc81fdc9e213383bf7d740de5
|
|
| BLAKE2b-256 |
7cc97b8e101840e9d95102a132dbd819153595a9c003fcf9d05f89c4dda064d5
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
bcde1cb9582638d9a1874a4840bda9dc7107e34a13c712b955efe5982d0d05be - Sigstore transparency entry: 810155426
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.12, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cb43c1bfc72cd0308f297773ac1fda165bcccbda1b91ec4877c47b1dd7782f9
|
|
| MD5 |
ea4d8594cd92d438bca3300e5540acef
|
|
| BLAKE2b-256 |
5bd85f7d168b2bf48ccd3f0aef1b7ee546e681f10d60e6003a95bdb87189da52
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
3cb43c1bfc72cd0308f297773ac1fda165bcccbda1b91ec4877c47b1dd7782f9 - Sigstore transparency entry: 810155413
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d3542dbb21b95acc33be3a566b30d1b396bc2e0d7e72ff314ba280f5cafca4a
|
|
| MD5 |
02357b368c22ecd5dac0490318a51c24
|
|
| BLAKE2b-256 |
c7ba98134a57f9cb574aafbd8f569e232258dcee29c01b909a6c105d89bc5b2a
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
1d3542dbb21b95acc33be3a566b30d1b396bc2e0d7e72ff314ba280f5cafca4a - Sigstore transparency entry: 810155362
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44530f2e480724841472a5cdd8cff191b4db981de8b5537c874b2b8bff2b5c8d
|
|
| MD5 |
7cda36b354ee60b21485ed2aa7a14130
|
|
| BLAKE2b-256 |
01094e245cd7a293bcc3351f71da8755c8c50d9e0b82d26d009e99d4156550fa
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
44530f2e480724841472a5cdd8cff191b4db981de8b5537c874b2b8bff2b5c8d - Sigstore transparency entry: 810155447
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type:
File details
Details for the file etcd_client_py-0.5.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: etcd_client_py-0.5.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.11, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abe0a0da592343a1c31eec11d179663c40cf000a7eb36d3ad3c89342067ad634
|
|
| MD5 |
7d1f54cb75f13cd81c6e8a7d124c35e3
|
|
| BLAKE2b-256 |
9bdf47f22f9a8bfbfcb26b2b264e6b9b545c7a3020ee5bc5988807683b7454d8
|
Provenance
The following attestation bundles were made for etcd_client_py-0.5.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
ci.yml on lablup/etcd-client-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
etcd_client_py-0.5.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
abe0a0da592343a1c31eec11d179663c40cf000a7eb36d3ad3c89342067ad634 - Sigstore transparency entry: 810155344
- Sigstore integration time:
-
Permalink:
lablup/etcd-client-py@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Branch / Tag:
refs/tags/0.5.1 - Owner: https://github.com/lablup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@dcb1b5caa271c2a13ab47dc4a1675978608dc496 -
Trigger Event:
push
-
Statement type: