Skip to main content

hodoku-py

Python 3.11+ PyPI License: GPL-3.0 CI Nightly Coverage

A pure Python port of HoDoKu — Sudoku solver, hint engine, puzzle generator, and difficulty rater minus the GUI.

hodoku-py has full fidelity with HoDoKu 2.2.0: exact same solution path and score across all tested puzzles, in pure python (well, a couple small bits in c).

Nightly parity test results — head-to-head comparison against HoDoKu across thousands of puzzles.

Status

Core solver complete through all techniques. Public API (Solver.solve, get_hint, rate) implemented. Puzzle generator implemented with symmetric and pattern-based generation.

Layer Techniques Status
Singles Full House, Naked Single, Hidden Single ✅
Intersections + Subsets Locked Candidates 1&2, Naked/Hidden Pair/Triple/Quad ✅
Single-digit patterns Skyscraper, 2-String Kite, Empty Rectangle ✅
Wings XY-Wing, XYZ-Wing, W-Wing ✅
Coloring Simple Colors, Multi-Colors 1&2 ✅
Uniqueness UT1–6, Hidden Rectangle, BUG+1 ✅
Fish X-Wing through Whale; Finned/Sashimi, Franken, Mutant variants ✅
Chains X-Chain, XY-Chain, Remote Pair, DNL, CNL, AIC, Grouped Nice Loops/AIC ✅
ALS ALS-XZ, ALS-XY-Wing, ALS-XY-Chain, Death Blossom ✅
Forcing chains/nets Contradiction + Verity ✅
Misc Sue de Coq ✅
Templates Template Set/Delete ✅
Public API Solver.solve, get_hint, rate, find_all_steps, SolverConfig ✅
Generator Puzzle generation ✅

See docs/ROADMAP.md for full details and known gaps.

Requirements

  • Python 3.11+
  • (optional) C build tools (build-essential, xcode, or MSVC) to build native extensions that accelerate large Mutant fish searches and the backtracking solver used for generation/uniqueness checking. Both are optional with pure Python fallbacks. To build: python setup.py build_ext --inplace (add --compiler=mingw32 on Windows with MinGW). See Implementation notes for details.

Installation

pip (recommended)

pip install hodoku-py

from source

pip install -e .

Testing

Install test dependencies

pip install -e ".[test]"

Unit tests

pytest -m unit -v

reglib — HoDoKu's built-in regression suite (~2 min, ~1100 tests)

Each test reconstructs a fixed pencilmark board and asserts that one specific technique fires with the expected eliminations.

pytest tests/reglib/ -q

# Single technique by code
pytest tests/reglib/ -k "0901" -v

# Technique family
pytest tests/reglib/ --reglib-section 09 -v

parity — head-to-head HoDoKu comparison (requires Java JRE installation)

Comparison of full solution solve path against HoDoKu.jar via Py4J.

pip install .[test-parity]
pytest tests/parity/ --puzzle-file exemplars-1.0 -v
pytest tests/parity/ --puzzle-file top1465 --puzzle-count 50 --puzzle-seed 7 -v

Puzzle files are plain text (one puzzle per line) sourced from tests/testdata/.

The full parity suite runs nightly. Latest results.

Project structure

src/hodoku/
├── core/          # Grid, CellSet, SolutionStep, enums, scoring
├── solver/        # One file per technique family + central dispatcher
│   ├── step_finder.py   # SudokuStepFinder — routes get_step() calls
│   ├── solver.py        # SudokuSolver — solve loop and difficulty rating
│   ├── simple.py        # Singles, locked candidates, subsets
│   ├── fish.py          # Basic, finned/sashimi, Franken, Mutant fish
│   ├── _fish_accel.c    # optional C accelerator for Mutant fish
│   ├── single_digit.py  # Skyscraper, 2-String Kite, Empty Rectangle
│   ├── uniqueness.py    # Uniqueness Tests 1–6, BUG+1
│   ├── wings.py         # XY-Wing, XYZ-Wing, W-Wing
│   ├── coloring.py      # Simple Colors, Multi-Colors
│   ├── chains.py        # X-Chain, XY-Chain, Nice Loop / AIC families
│   ├── tabling.py       # Forcing Chains/Nets
│   ├── als.py           # ALS-XZ, ALS-XY-Wing, ALS-XY-Chain, Death Blossom
│   ├── misc.py          # Sue de Coq
│   └── templates.py     # Template Set/Delete
└── generator/     # Backtracking solver, uniqueness checker, puzzle generation
    ├── generator.py     # SudokuGenerator — backtracking solver + puzzle generation
    ├── _gen_accel.c      # optional C accelerator for backtracking solver
    └── pattern.py       # GeneratorPattern for pattern-constrained generation

hodoku/            # Bundled HoDoKu 2.2.0 JAR (for validation)
docs/              # Architecture, roadmap, specs
tests/
├── reglib/        # Technique-isolation regression suite (pure Python)
├── parity/        # Head-to-head parity suite (requires Java + py4j)
├── generator/     # Generator unit, integration, and parity tests
└── testdata/      # Puzzle files for parity testing

Validation approach

Every technique is validated by solving the puzzle and comparing the solution with HoDoKu's in detail — same list of techniques, eliminations, and placements, in the same order. See docs/ARCHITECTURE.md for internals and porting notes.

Implementation notes

C accelerators

CPython is ~50-100x slower than Java JIT for tight bitwise loops, so two optional C extensions accelerate the most performance-sensitive code paths:

  • Fish cover search (solver/_fish_accel.c): The Mutant and Franken variants of the largest Fish (Squirmbag, Whale, Leviathan) have enormous search spaces. The cover DFS is implemented in C.
  • Backtracking solver (generator/_gen_accel.c): The backtracking solver used for uniqueness checking and puzzle generation runs ~10x faster with the C accelerator.

Both are built via python setup.py build_ext --inplace and have pure Python fallbacks.

Quick demo

from hodoku import Solver, Generator, DifficultyType, SolverConfig

# Solve a puzzle
solver = Solver()
result = solver.solve(
    "530070000600195000098000060800060003400803001700020006060000280000419005000080079"
)
print(f"Difficulty: {result.level.name} (score {result.score})")
print(f"Solved in {len(result.steps)} steps")
# Difficulty: EASY (score 204)
# Solved in 51 steps

# Generate a puzzle
gen = Generator()
puzzle = gen.generate(difficulty=DifficultyType.HARD)
print(puzzle)  # 81-char string, 0s for empty cells

# Custom solver configuration
from hodoku.config import StepSearchConfig, FishSearchConfig, FishType
cfg = SolverConfig(
    solve_search=StepSearchConfig(
        fish=FishSearchConfig(fish_type=FishType.BASIC_FRANKEN_MUTANT),
    ),
)
solver = Solver(config=cfg)

Why?

Good question. I was curious whether one could use Claude Code to port a complex code base from java to python. Turns out one could.

License

HoDoKu is GPL-3.0. This port carries the same license.

Metadata

Release files for hodoku-py 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hodoku-py 0.2.1
File Size Uploaded
hodoku_py-0.2.1.tar.gz 119.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for hodoku-py 0.2.1
File
hodoku_py-0.2.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
hodoku_py-0.2.1-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details
hodoku_py-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
hodoku_py-0.2.1-cp313-cp313-musllinux_1_2_i686.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-32 Details
hodoku_py-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
hodoku_py-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.13 CPython 3.13 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details
hodoku_py-0.2.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
hodoku_py-0.2.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
hodoku_py-0.2.1-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
hodoku_py-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
hodoku_py-0.2.1-cp312-cp312-musllinux_1_2_i686.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-32 Details
hodoku_py-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
hodoku_py-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 Details
hodoku_py-0.2.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
hodoku_py-0.2.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
hodoku_py-0.2.1-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
hodoku_py-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
hodoku_py-0.2.1-cp311-cp311-musllinux_1_2_i686.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-32 Details
hodoku_py-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
hodoku_py-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details
hodoku_py-0.2.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 3.4 MB

Release files / hodoku_py-0.2.1.tar.gz

Download URL hodoku_py-0.2.1.tar.gz
Size 119.9 kB
Tags Source
SHA-256 checksum
How to use checksums
63b3a862760de0760535ac4dcdbcda13b04ea4422791ab7878bdcab0051d6d0b
BLAKE2b-256 checksum
How to use checksums
779f1284328b3fc57850238c1305fcb5132c9211ac8e383f857016bcdfffb03c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp313-cp313-win_amd64.whl

Download URL hodoku_py-0.2.1-cp313-cp313-win_amd64.whl
Size 119.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
59573c6373875d7169175e804b9378f4295061956a0ba11cd6704dcd8727d3b9
BLAKE2b-256 checksum
How to use checksums
863d5cc8a3f6e5bc96712223219b9f49f716f240840f4626d499deab9ec88bea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp313-cp313-win32.whl

Download URL hodoku_py-0.2.1-cp313-cp313-win32.whl
Size 119.6 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
ae5ed03f18bf138b91eafdae1f7a96201d3809474091e429dc2a54fe34a4ab0e
BLAKE2b-256 checksum
How to use checksums
a250f9340d897f7e007e4cee68234c8932eeed15e7d7c2fdf8a9761639cf20a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL hodoku_py-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Size 178.8 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
825414806ce62e1e46f8d61a9eed486cc94b43556fa8eae675e08014ccceb0d0
BLAKE2b-256 checksum
How to use checksums
a2adce61b176e0b91884719f921745723efce5363ea6291c3d3ef029f886fc70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp313-cp313-musllinux_1_2_i686.whl

Download URL hodoku_py-0.2.1-cp313-cp313-musllinux_1_2_i686.whl
Size 179.5 kB
Tags CPython 3.13 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
8022b36e8feb91864a93055e6fd318943d76c96aca295450e544163474087a67
BLAKE2b-256 checksum
How to use checksums
04fcd2e960e7858a5f07de1bd4e881833c8ca33a7c9684f30a975ea7c2c9b245
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL hodoku_py-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 178.3 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ff76055f98fadb2acb91f08ca8753fd49db4d946d8b876d94d0743b35239022c
BLAKE2b-256 checksum
How to use checksums
61c6f695ae02a972ca5902b97a7204eb9525a23e9309829dd723a9438712ad0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL hodoku_py-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 178.3 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
0ebae27cdac6fe2fc1eed213399dfba037dc18c7b7101be17387724460cefb2e
BLAKE2b-256 checksum
How to use checksums
3a8ec09ba682e7e0d34caf40a2da5e1795de8d56eb4e87ccbdfb66c3e72348bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL hodoku_py-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
Size 133.8 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
204bfde1ee49afc72602c63bfc5f0c3a6041c417b45fcfa8de4eac0a9d25f7c2
BLAKE2b-256 checksum
How to use checksums
c154af98c6e6479a3ec5924db5338958eb88d67645ef4c0fe1c54db3d60611b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp312-cp312-win_amd64.whl

Download URL hodoku_py-0.2.1-cp312-cp312-win_amd64.whl
Size 119.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
213ad1b3b124ef25c81cf96ac7ed22f8b5c7b2816e18b38774263db50ed33e5c
BLAKE2b-256 checksum
How to use checksums
2ff1d36575f30f394de7c85f5b405bb61774a58d13a7cff97f008e2b5ce053dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp312-cp312-win32.whl

Download URL hodoku_py-0.2.1-cp312-cp312-win32.whl
Size 119.6 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
d6ce212787e7a966b719ffbf267b4d40690f6531c50f69f659db05a12ae7c998
BLAKE2b-256 checksum
How to use checksums
515961cd3701f75ce08ace716796773cb3153c2c795b8f9415f982567fea177e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL hodoku_py-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Size 178.7 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
93064f23443a3828a388d416969eb4cb057e7a429a7f021ae4115e3286f9e979
BLAKE2b-256 checksum
How to use checksums
89fa548233af8cd2f9a21b7f3343da84bdb584149b00c78646fc474a2b188f1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp312-cp312-musllinux_1_2_i686.whl

Download URL hodoku_py-0.2.1-cp312-cp312-musllinux_1_2_i686.whl
Size 179.4 kB
Tags CPython 3.12 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
f56ad4065c435b3a55a2f0401e6d6495ac7d3c7b405e4ff3eef25ed98637adfb
BLAKE2b-256 checksum
How to use checksums
2440ea5ff24fe66a50d65cb5978601d40d8d2008526569ca24641d1aa67a4d6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL hodoku_py-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 178.4 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
7f1303b6b5dc33c779b8ad00dfd1099af2abfde2b5e253da8658b48057330d3c
BLAKE2b-256 checksum
How to use checksums
78e19e087d1ba406c83d1d33fc08e62b41c4a5b9d47c7e90055c59d29eb119db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL hodoku_py-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 178.4 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
ea15db5e10ddbfae6d604015540c4e2ca7b3c0d68ce84dd10056ffb3a496a3ef
BLAKE2b-256 checksum
How to use checksums
79c589a3f2298fc64da6762a441a77da8d7ad7bb47b94cf5acafdcd7df52fea4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL hodoku_py-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Size 133.8 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d0d4995284949e69e5ec348128af10b75b7ddda6c03e5ebd588feeed51d8eaeb
BLAKE2b-256 checksum
How to use checksums
03f81d9cc7ac6923594a7a0a4cb34a017b5a7ebf1f98f022b7acb4410aa84782
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp311-cp311-win_amd64.whl

Download URL hodoku_py-0.2.1-cp311-cp311-win_amd64.whl
Size 119.6 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
5e103703c200c12f1dc1a5ea205592dd30c9a4b8184169a203b396e0a95c7935
BLAKE2b-256 checksum
How to use checksums
5785228d9c176e914a1f525bea1e908d87cccddbfdc1be45eeb2c34f6d1dd555
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp311-cp311-win32.whl

Download URL hodoku_py-0.2.1-cp311-cp311-win32.whl
Size 119.6 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
0ef2e9d399a349c12a2c5d21d9b1fb3c58426a7b914c1e48ae6c6cf55e7cc267
BLAKE2b-256 checksum
How to use checksums
98c0f8a99ea7361457a4e0083f5f4c5c0e7c3a568f03dd0429c619bb6954751a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL hodoku_py-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Size 178.0 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
b38e47ef18f638727832a8833f8a1f8c44866cdcfc867805186919a375f61ce6
BLAKE2b-256 checksum
How to use checksums
1acb05aa1a7386721d98928d7ca29b35497bdb7c8bd3ad6beb2903af7da68198
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp311-cp311-musllinux_1_2_i686.whl

Download URL hodoku_py-0.2.1-cp311-cp311-musllinux_1_2_i686.whl
Size 178.9 kB
Tags CPython 3.11 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
ba215d164719ded5bb024281d2abc6a519098e9f9a4e6852e51b4f1fb0edba68
BLAKE2b-256 checksum
How to use checksums
b91ff53f26caca85245d5fd9fee56238600532b602ab2736430166169c9da8dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL hodoku_py-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 177.5 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
81546a335672f319431c9119e8cc7082cbdada0fa3c7cbf288ffa4744bc52d33
BLAKE2b-256 checksum
How to use checksums
08636b0bfdc2643942c18719a4f9d97ba98db87c377c09de9b075e2237f4410b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL hodoku_py-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 177.5 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
568357c4551b0c0ca6974f7fa8de4d810dda5c822599cd19aae04ac3d39e450c
BLAKE2b-256 checksum
How to use checksums
29281db2b09c02b8dcfba6c88148c586a8ce2060dc4109f4de790cdddd202608
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release files / hodoku_py-0.2.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL hodoku_py-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Size 133.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4a900ad087134cd63cb7dd0e5f352d7015d0f587edd577196a4d8ba930ad3e77
BLAKE2b-256 checksum
How to use checksums
b3cf2127abe48dc5e5f1896302c72de4a3617ae7a416aebe690d8ab4e2411f7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

22 release files

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page