Z-Hunt[rs]
This repository contains a Rust port of the Z-Hunt algorithm, which is designed to predict the propensity of DNA to adopt a left-handed Z-DNA conformation. Unlike the original implementation, this version is intended to be used as a standalone Python library.
This Rust port prioritizes a full compatibility with the original C algorithm while providing a more convenient API. See Compatibility for details.
Installation
The library can be installed from PyPI using pip:
pip install zhuntrs
Wheels are built and tested for CPython 3.10–3.15 on Linux, Windows, and macOS (x86-64), including the supported free-threaded builds of Python 3.14 and 3.15.
Usage
Here is a simple example of how to use the library in Python:
import zhuntrs
# Only A, T, G, C, and N are accepted (case-insensitive)
sequence = "nATGCGCGCGGCATGC".encode("ASCII")
mindn, maxdn = 3, 6 # Minimum and maximum window lengths, in dinucleotides
threshold = 1_000 # Windows with a ZH-score below this threshold will not be reported
# Validate and freeze the parameters, then predict any number of sequences
engine = zhuntrs.Engine(mindn, maxdn, threshold)
prediction: zhuntrs.Prediction = engine.predict(sequence)
assert len(prediction) == 3 # Number of reported windows
# Zero-based starts and exclusive ends of the locally optimal windows
assert prediction.start == (0, 1, 2)
assert prediction.end == (10, 11, 10)
# Scores, sequences, and anti/syn conformations of those windows
assert [int(score) for score in prediction.zhscore] == [2220, 1057, 3428]
assert prediction.sequence == ('NATGCGCGCG', 'ATGCGCGCGG', 'TGCGCGCG')
assert prediction.conformation == ('ASASASASAS', 'SASASASASA', 'ASASASAS')
Prediction is a Python extension class with read-only start, end, zhscore,
sequence, and conformation columns. Each column is an immutable tuple constructed once;
repeated attribute access returns the same tuple without copying its contents.
The original implementation treats sequences as circular. Enable this with
zhuntrs.Engine(mindn, maxdn, threshold, wrap=True).
The engine supports streaming predictions for large sequences. It reads and validates the entire sequence, then scores it in chunks so results can be processed incrementally:
slice_size = 512 # Start positions per chunk (default: 1024)
for batch in engine.stream(sequence, chunk=slice_size):
assert isinstance(batch, zhuntrs.Prediction)
# Filtering can produce an empty prediction chunk
assert 0 <= len(batch) <= slice_size
assert len(batch.start) == len(batch.end) == len(batch.zhscore)
assert len(batch.sequence) == len(batch.conformation) == len(batch)
...
Concatenating the streamed results is equivalent to calling engine.predict on the entire sequence.
An engine can be shared between threads, including on free-threaded Python. Multiple threads can also consume one iterator; its calls are serialized so each chunk is returned once.
Engines and predictions support pickling:
import pickle
restored = pickle.loads(pickle.dumps(engine))
assert restored == engine
assert restored.predict(sequence) == engine.predict(sequence)
assert pickle.loads(pickle.dumps(prediction)) == prediction
The wheel includes type stubs for engines, predictions, and prediction iterators.
Compatibility
Compatibility tests compare this port against the C reference using human mtDNA, a random 1 kb sequence, and subsequences of human chrY and HSV-1. Scores agree within 1e-12, with identical selected windows and conformations.
The original Z-Hunt C implementation is sensitive to compiler settings, as floating-point optimizations can affect rounding. To keep the reference results consistent, they were generated using GCC with -Og and without fast-math flags (see the reference-generation script). This provides a stable baseline for compatibility testing.
The bundled C reference (MIT license) includes one small change from the original: it preserves N bases and assigns an energy of 4.26 kcal/mol to any dinucleotide containing N. The rest of the algorithm remains unchanged.
Why not use dynamic programming?
The original Z-Hunt algorithm evaluates all 2^n AS/SA conformations for a window of n dinucleotides, making the search exponential in time. The same minimum-energy problem can be solved using dynamic programming (DP) in O(n) time, a substantial improvement.
The catch is floating-point arithmetic. As the original brute-force algorithm adds and subtracts energies, small rounding errors accumulate. These can make conformations with mathematically identical energies appear slightly different, affecting which one is selected. A DP approach avoids this numerical drift but may therefore choose a different conformation, even when both have the same theoretical energy.
As a result, dynamic programming does not always reproduce the original Z-Hunt output. Although it finds the minimum energy more accurately, it cannot serve as a drop-in replacement when exact compatibility matters.
For now, this library retains the original brute-force search. The goal is to provide a convenient API for Z-Hunt while keeping its results consistent with the C implementation. A DP-based alternative may be added in the future.
Development
Use Pixi to install the pinned development environment and run checks:
pixi run --locked rs-ci # Rust formatting, compilation, Clippy, and tests
pixi run --locked py-ci # Build the extension and check Python bindings and typing
pixi run --locked ci # The full CI suite
The default environment uses free-threaded Python 3.15. Named environments py-3-10
through py-3-15, plus py-3-14t and py-3-15t, support the wheel matrix on Linux,
macOS, and Windows.
The CI pipeline publishes to PyPI after checks and tests pass. To publish a new version,
update the version in Cargo.toml, then create and push the matching tag (for example, v0.0.7).
Metadata
Release files for zhuntrs 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zhuntrs-0.0.7.tar.gz | 1.6 MB | Details |
Built distributions (wheels)
Total release size: 7.8 MB
Release files / zhuntrs-0.0.7.tar.gz
| Download URL | zhuntrs-0.0.7.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f81f49caf90d610211e27dfc1bc37bdf0d4d222662c166c12e944bae9d669220
|
|
BLAKE2b-256 checksum How to use checksums |
984c0c55724c81f76f83e48bba4a3fba4631d58aa4da2637aa488bf6bb8b3f75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp315-cp315t-win_amd64.whl
| Download URL | zhuntrs-0.0.7-cp315-cp315t-win_amd64.whl |
|---|---|
| Size | 172.0 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4fb48af951e831e289c2d9a30b8f78b02d6e0d8cb54373f7a5821f9cf702c5af
|
|
BLAKE2b-256 checksum How to use checksums |
e911f9acdb3f26eea47eb04f336ee0b66d381430acdf41d7ad7a6d0fa333d8a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 316.3 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b55f66e7be750b7e60252a1cfc3b413b2c2a62b351e65ae85184e08dce17d81e
|
|
BLAKE2b-256 checksum How to use checksums |
6c22a226b07319a2bd0e2eb04c62c60e900babbb7fb0a6ce0235d9218581bd45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp315-cp315t-macosx_10_12_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp315-cp315t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 283.0 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
ae2c9e82492397b7f4562a80e61f2455bc584967f1c3bff2ad3f2e894f556fd1
|
|
BLAKE2b-256 checksum How to use checksums |
fd86bc8f1767852449a3cb9bfea1db2ff8e0ec9f76d28e427a209c63d3852823
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp315-cp315-win_amd64.whl
| Download URL | zhuntrs-0.0.7-cp315-cp315-win_amd64.whl |
|---|---|
| Size | 171.8 kB |
| Tags | CPython 3.15 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e30b43cbe07bcea1d4fcc299f7fd6625c641a1628417dfa8ef4a8aa1a6f6032f
|
|
BLAKE2b-256 checksum How to use checksums |
f7d45fe5547e46f4d3b5c8b3e6db2f934892a35e35b4c3b1116858214376918e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 316.3 kB |
| Tags | CPython 3.15 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
2b051c3dbe9e372d3654651e2948ad685bf7f9ece661b2a55af667bc080c49ce
|
|
BLAKE2b-256 checksum How to use checksums |
39c34311acdbdc8b8d2d7397f0a3308097d73985bede1b098b29c3606f52eded
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp315-cp315-macosx_10_12_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp315-cp315-macosx_10_12_x86_64.whl |
|---|---|
| Size | 283.1 kB |
| Tags | CPython 3.15 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
221187a720c43c057c46abf6fb386270a13d928de6aaae03ec5aa7deb36c1775
|
|
BLAKE2b-256 checksum How to use checksums |
9138aed752aa45541df6fbdff6ffadeac3abdd2c1f6956eb46ff4a7e6e35d605
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp314-cp314t-win_amd64.whl
| Download URL | zhuntrs-0.0.7-cp314-cp314t-win_amd64.whl |
|---|---|
| Size | 171.3 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bb14943c4c2d960435f125c7fe2a9df66fc5520ecfb8d253c5593d986c6f4764
|
|
BLAKE2b-256 checksum How to use checksums |
7121a94d45aeea5d47cfc29785d2460a20563dc6c6efc71f000787bb5943a676
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 315.9 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d426dfbd9c3e560d6aa9f2af0cbc3e1a90186067c8d16d29a7553ca25a5674f6
|
|
BLAKE2b-256 checksum How to use checksums |
184e7689ea77d6e0c121f5ff1d696a1763ecaa2fb60a34c87bc441b9371babaf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp314-cp314t-macosx_10_12_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp314-cp314t-macosx_10_12_x86_64.whl |
|---|---|
| Size | 282.3 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
d1e01767324904190d92f2691919fab679a77c885f4e3a83c26bc1516f536580
|
|
BLAKE2b-256 checksum How to use checksums |
93a17d33a988fc2912d2592c5f8fa90f4ea0f11180628309a746544d4b99f700
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp314-cp314-win_amd64.whl
| Download URL | zhuntrs-0.0.7-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 171.7 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
bb1ac298e9cd87eccc03de4e0f2ce8246d7d030c8724b9dc47d553f321c09bd4
|
|
BLAKE2b-256 checksum How to use checksums |
12c4acb86354be2d796832006ffc7b0c0886d997d0edd3d84d5399eca85077a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 316.0 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ba002c013971c592a4a5c66c9c9a9b00326b368f95cd8bbef611c311673a082e
|
|
BLAKE2b-256 checksum How to use checksums |
3fcb72b999ecce0bf2e87edcdcf13d3e6905fd6f1f7f3b2323a1c82723179131
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 282.5 kB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
634d4f50964e1fc688c565bb9ba16eec66419ff01191f127b8a035b4397440b6
|
|
BLAKE2b-256 checksum How to use checksums |
d896470ab36d95235f529fa19741c2bd279b54854628aadae6c4eaeac41c7d56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp313-cp313-win_amd64.whl
| Download URL | zhuntrs-0.0.7-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 172.3 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ac74c8d7b760008de8e80f5cbfdb70e6822efc33e8f76b1138a27971aa4dbd26
|
|
BLAKE2b-256 checksum How to use checksums |
66854ce5f9828004d06b8984a6a5513d4b8ed26a59fa139f8fe4853660176ecc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 314.4 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
bf6990538b0c5bd2b1a73070c783744cf70205095692c477e505279ae9f28eb1
|
|
BLAKE2b-256 checksum How to use checksums |
7439543dd8cca1cb1f319d171710b7490b82f268bd95f6ab9b70cc5fa049e286
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 281.0 kB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
200c005510ef71d1b395a1475c1a300b9258407a1cfa3d2ff93f45dc4d766c47
|
|
BLAKE2b-256 checksum How to use checksums |
b97239d18f6b4ef507f39ad961b19a384a9e364cba2fce2d44968e34385db853
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp312-cp312-win_amd64.whl
| Download URL | zhuntrs-0.0.7-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 172.4 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
69a340d0697f551ae71ad21989602bfb63e09bc6a05da8ff1b7f1d83d6ffc6c4
|
|
BLAKE2b-256 checksum How to use checksums |
d4715b1bef681c5a05071661c29c893454786cb65534fe54a46b0ed218f21e1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 314.9 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cdad0d054f9eb2b0afa56c9437e93a279e69b3dede6a49c936340295336e3ebd
|
|
BLAKE2b-256 checksum How to use checksums |
bc10cf0274775d94f0078f08962e38681543854543fc85039087265fc91c80f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 281.5 kB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
5a3779ff838ae97cd9c9df820100d1c4834c725b5e0cca5193c82ef7c090077c
|
|
BLAKE2b-256 checksum How to use checksums |
362d3e41fb841c0c7cd67bce74ed1c53502586dd4c2bdb450fed0b9d2866a650
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp311-cp311-win_amd64.whl
| Download URL | zhuntrs-0.0.7-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 175.8 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
401345d9227f0b399c48b0a65b2a189e73d1d9d0c828069c5df289881b52399c
|
|
BLAKE2b-256 checksum How to use checksums |
642141a311dbacd0f775f4bf01539e0f6af0d3b8359861ac9557e1091ea593f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 318.1 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c1e8cb9ea4373171cec35bc76f620e542c07da3400df1c0c74bb282ccdfb9bd2
|
|
BLAKE2b-256 checksum How to use checksums |
03cc7e16d8112055245f216b1b01699e425adad04e1419719abfdf89676fc898
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 283.3 kB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
aad64666204bc7da88ce912eef9bed3850937db7f0047acb992bfb28023c5c8c
|
|
BLAKE2b-256 checksum How to use checksums |
a8a926a136acd004b3d71a05288e5b7d8cad691008173debadf2b40cd9c253c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp310-cp310-win_amd64.whl
| Download URL | zhuntrs-0.0.7-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 175.9 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
924d7527be12c885a9cc168d23724721c7b07f305917c23e2949cf4958d349d7
|
|
BLAKE2b-256 checksum How to use checksums |
d16e5fedc365e92c2448efa74b749a3c1188781683d76a4807f1d60e83f5864c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 318.4 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
5c46ddfceac14b3ec20084cb4c295fb585ce13c3e8294b48f84b9f3eafe6b744
|
|
BLAKE2b-256 checksum How to use checksums |
2d1395613210d788f4a84195a3aa6299f57c3e770b5d6a61a3f906263b951634
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / zhuntrs-0.0.7-cp310-cp310-macosx_10_12_x86_64.whl
| Download URL | zhuntrs-0.0.7-cp310-cp310-macosx_10_12_x86_64.whl |
|---|---|
| Size | 282.6 kB |
| Tags | CPython 3.10 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
2990fdd64a49f2f076e30c2434ad40771ebee2534077b5457f8a2a9d0c1ea0c6
|
|
BLAKE2b-256 checksum How to use checksums |
4d371cd8e0d4bc2c5d3fbef52b99a545973b92db7d0d2bc91353779155058db6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|