gpiod
These are the official Python bindings for libgpiod.
Both GIL-enabled and free-threaded CPython are supported.
The Python bindings, much like the C API they wrap, are not thread-safe and do require external synchronization by the caller to serialize access to objects shared across threads.
The gpiod library has been vendored into this package for your convenience and this version of gpiod is independent from your system package.
Binary wheels are provided for some platforms. The source package requires python3-dev.
Rationale
The new character device interface guarantees all allocated resources are freed after closing the device file descriptor and adds several new features that are not present in the obsolete sysfs interface (like event polling, setting/reading multiple values at once or open-source and open-drain GPIOs).
Unfortunately interacting with the linux device file can no longer be done using only standard command-line tools. This is the reason for creating a library encapsulating the cumbersome, ioctl-based kernel-userspace interaction in a set of convenient functions and opaque data structures.
Breaking Changes
As of v2.0.2 we have replaced the unofficial, pure-Python "gpiod". The official gpiod is not backwards compatible.
You should ensure you specify at least v2.0.2 for the official API. Versions 1.5.4 and prior are the deprecated, unofficial, pure-Python bindings.
Installing
You will need python3-dev, on Debian/Ubuntu you can install this with:
sudo apt install python3-dev
And then install gpiod with:
pip install gpiod
You can optionally depend upon your system gpiod by installing with:
LINK_SYSTEM_LIBGPIOD=1 pip install gpiod
If you still need the deprecated pure-Python bindings, install with:
pip install gpiod==1.5.4
Examples
Check a GPIO chip character device exists:
import gpiod
gpiod.is_gpiochip_device("/dev/gpiochip0")
Get information about a GPIO chip character device:
import gpiod
with gpiod.Chip("/dev/gpiochip0") as chip:
info = chip.get_info()
print(f"{info.name} [{info.label}] ({info.num_lines} lines)")
Blink an LED, or toggling a GPIO line:
import time
from gpiod.line import Direction, Value
LINE = 5
with gpiod.request_lines(
"/dev/gpiochip0",
consumer="blink-example",
config={
LINE: gpiod.LineSettings(
direction=Direction.OUTPUT, output_value=Value.ACTIVE
)
},
) as request:
while True:
request.set_value(LINE, Value.ACTIVE)
time.sleep(1)
request.set_value(LINE, Value.INACTIVE)
time.sleep(1)
Testing
The test suite for the python bindings can be run by calling:
python -B -m tests
from the libgpiod/bindings/python directory as root (necessary to be able
to create the gpio-sims used for testing).
Linting/Formatting
When making changes, ensure type checks and linting still pass:
python3 -m venv venv
. venv/bin/activate
pip install --group lint
mypy; ruff format; ruff check
Note that pip >=25.1 is necessary for --group support.
Ideally the gpiod library will continue to pass strict checks:
mypy --strict
Release files for gpiod 2.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gpiod-2.5.0.tar.gz | 75.5 kB | Details |
Built distributions (wheels)
Total release size: 2.8 MB
Release files / gpiod-2.5.0.tar.gz
| Download URL | gpiod-2.5.0.tar.gz |
|---|---|
| Size | 75.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
53ae5a1f14d6388c155b591ca0fc0cfa73b44d4f6d8d117e8a9e68f5902d187a
|
|
BLAKE2b-256 checksum How to use checksums |
fcc2c7bc26965855f39ae3e1b09b404a1fdc3b172dac371012c316f5b9b6a314
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl
| Download URL | gpiod-2.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 118.6 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
72b768c1f847a5c75f301920d690e408120f4b0ceafe91304cadcd571f9c3e04
|
|
BLAKE2b-256 checksum How to use checksums |
d2ee4f634d271e24138fe8bbc3aa890aa768efc03e98ee2bac8ded9ba0a27715
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl
| Download URL | gpiod-2.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 119.7 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
48e41ba6883fcf136bfae411440b3b05b211e84a751b4733a139ce9d90f920e1
|
|
BLAKE2b-256 checksum How to use checksums |
f6409d1786c5b1e0f8664f6d2e56de95cd43dceb430514e95c47137bda564133
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpiod-2.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 120.2 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
34db3048b6e293ec387e7687e4027c9add8d55441bbaeb2d92cbcb528238dfc3
|
|
BLAKE2b-256 checksum How to use checksums |
255c0245ab49b43d57d93fcf57504b728429f92a083d876bfcc1b42167417682
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpiod-2.5.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 122.2 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
30331f030422aa400670a9c004a64e3e2f715a2c03b61ee349fe94730b75d2f9
|
|
BLAKE2b-256 checksum How to use checksums |
3ce3c22faee30bd2341be94f8426b1829e141e1da4f24113aeeed77bcd0134c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp314-cp314-musllinux_1_2_x86_64.whl
| Download URL | gpiod-2.5.0-cp314-cp314-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 113.6 kB |
| Tags | CPython 3.14 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
36810ddf5ad35d30eef75c8c317339b1da8e8faf799953406925fa6777f82de2
|
|
BLAKE2b-256 checksum How to use checksums |
b6cfbf30830aecba9eb146d7bf1054ed08dacf1468891ef375689174e351b564
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp314-cp314-musllinux_1_2_aarch64.whl
| Download URL | gpiod-2.5.0-cp314-cp314-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 113.8 kB |
| Tags | CPython 3.14 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
087a7a81f3875c70a11691cc705321f7764358f6fb320e7e801b2c16b4e01d98
|
|
BLAKE2b-256 checksum How to use checksums |
cdbb66266c13df04cc6467809dd099f3c30f3ef98a19a5d6e7b2445e56fbb56d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpiod-2.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 115.3 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8faf1337e74871980377ba19283d5f6cddec14d15b3741dca0981e98bf37f07b
|
|
BLAKE2b-256 checksum How to use checksums |
5f2f12fc27a96f41cd0faa92db82732de6761c922da454543bcab826e690c761
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpiod-2.5.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 115.7 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
c23e246249f78628bcda026349e58e5414fa33c46ec30d214f51ac911c9e557e
|
|
BLAKE2b-256 checksum How to use checksums |
c277c713b1ef7c033081c564b9c4c9947d5e6e66f887dd8d2ec4c9db37f6c867
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | gpiod-2.5.0-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 113.3 kB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
960a16c48471440eb72d8f0c45894936e14ad329a9347748a82811c0bdfff6f2
|
|
BLAKE2b-256 checksum How to use checksums |
a6b20218a8253319216ccf40b7649af08acb709f0d27b0d11436f09c649ac54d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp313-cp313-musllinux_1_2_aarch64.whl
| Download URL | gpiod-2.5.0-cp313-cp313-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 113.5 kB |
| Tags | CPython 3.13 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
4ddf72333749924f29d341d9c36ab09b6de4a31d7e6106fdfcd995ad07d8296b
|
|
BLAKE2b-256 checksum How to use checksums |
c3ef455114c0fe94bee96272af68c1ab02d59ee934509cfe583876c116d9443f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpiod-2.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 114.6 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2122147b7946af80753ca25c23cf3a4dc8f0ef808f8c0bfdfacdfd523e8c385e
|
|
BLAKE2b-256 checksum How to use checksums |
753b78f62278cae19ad43b4df89ba534d470d3c05a6852c0352c604ac0169cef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpiod-2.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 115.0 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
c6b51959d24461d55fbafc1a6d1accd0904bb1de76182f7479b2bc473d86cfc8
|
|
BLAKE2b-256 checksum How to use checksums |
466b43f99cb8c3929463e2a75cc24516b20cb96f1aa8342ad77a42bdf838a45f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | gpiod-2.5.0-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 113.2 kB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
204f57f8cda854f7e67d9a677d5147126f193ba2a5eb0e444ce808c126329b9b
|
|
BLAKE2b-256 checksum How to use checksums |
9faadc4f381de470469130306fb0de71fe80e6074e0c7ff96a27db0949393df6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp312-cp312-musllinux_1_2_aarch64.whl
| Download URL | gpiod-2.5.0-cp312-cp312-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 113.3 kB |
| Tags | CPython 3.12 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
738496d086e709d842e899925a372dc187af4a09c128a7930140cc6630fece93
|
|
BLAKE2b-256 checksum How to use checksums |
a433870d0c5ef644500ffe325b402dd12b2f430e12b3d265e218f4095aa98717
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpiod-2.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 114.5 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3210dc420833d6ea7ce99f3f368287168cc3edd643bf3b7726155c16a712e1cd
|
|
BLAKE2b-256 checksum How to use checksums |
778a16397b75e476c55d6d498ba4923a9410dda2dcb418f9b82b152a099efa2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpiod-2.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 114.9 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
514d6132654d3c7208d86974c65fab077b623e30ac02ce8224bfd5202c00785c
|
|
BLAKE2b-256 checksum How to use checksums |
31589b5cf24fcbc084c9b3fa7c2a301297a9f503003f900d106ca7cc30ccd918
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | gpiod-2.5.0-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 112.9 kB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
26e2a98902222c1444d05d2f0a67a40c064514210eaf997f49ace93144a516c9
|
|
BLAKE2b-256 checksum How to use checksums |
b7b33817ecb7415f284b7d2f51bcc545eabf490b6f103f13914290ba2b6c916f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp311-cp311-musllinux_1_2_aarch64.whl
| Download URL | gpiod-2.5.0-cp311-cp311-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 113.3 kB |
| Tags | CPython 3.11 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
471daff511e4df27e6f2b4e812c8f2a3ee9b7dd376e22d720c0fe8da07b757e7
|
|
BLAKE2b-256 checksum How to use checksums |
4b9ab5e9a741bcff50be3b61306501fc15d1e760983eb287820c500d93e6fae2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpiod-2.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 114.7 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
58c0945700df37a595eaad7016775b2ac5877246be78013c03e139ec5d64f4b1
|
|
BLAKE2b-256 checksum How to use checksums |
43ec207ed0d0a34f62ae0bdb3af2e18b1cad07cd4d2d2d71071c723b44450676
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpiod-2.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 115.2 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
52cd6b973a80c5db29f34f9a54205e88e91e40132fb8a85bccfa06634cb77deb
|
|
BLAKE2b-256 checksum How to use checksums |
080635e0b6b70b7b855ee06086e06a32a3dc73c69d9d653243a4c58be6f16b9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | gpiod-2.5.0-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 111.1 kB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
8d271979fec092a4a88c3dd8f466b305e79e0d4761cf7506d301acb90a13b977
|
|
BLAKE2b-256 checksum How to use checksums |
f612bbdef746ea09ae79a1a2386cfabb271603402382c44211795a2fe19775fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp310-cp310-musllinux_1_2_aarch64.whl
| Download URL | gpiod-2.5.0-cp310-cp310-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 111.5 kB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 |
|
SHA-256 checksum How to use checksums |
3fff416aaf6f342ce19d2a47dd815a79e84fefbef3f5885b580eecee0e179315
|
|
BLAKE2b-256 checksum How to use checksums |
a2cb76042bda43894242c6db90d28401716b89e19a970fd0ba2f9ad22c9f1b4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | gpiod-2.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 112.9 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
f08ae18beb94b40b653bcf1d4c1eb1b087a31fdbd778bfecb251e00c43df441f
|
|
BLAKE2b-256 checksum How to use checksums |
046ebd53008671bff9e19168cb39b9fd8f4bcd3147a1a72438bbdf48c3981922
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / gpiod-2.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
| Download URL | gpiod-2.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 113.5 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
3ae4fb4aeaf7ae8c7c333f57582ee4041953f78110be467d6ac92733d7cfd0b9
|
|
BLAKE2b-256 checksum How to use checksums |
16be35f1c553b5bd07c71868c7cdd0a17718e955cb43105baea9b54f4e74c8f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|