Skip to main content

pencil-puzzles for Python

Generate, solve, rate and check pencil puzzles such as sudoku and nurikabe. Generated puzzles have exactly one solution and a difficulty from easy to expert, set by the hardest solving technique they need.

Requires CPython 3.10 or newer on Windows, macOS or Linux:

pip install pencil-puzzles
import pencil_puzzles as pp

g = pp.generate("sudoku", (9, 9), difficulty="medium", seed=42)
print(g.puzzle.givens)
print(g.rating.level, g.rating.techniques)

assert pp.solve(g.puzzle) == g.solution
assert pp.rate(g.puzzle) == g.rating
assert pp.check(g.puzzle, g.solution) == []
print(pp.hint(g.puzzle))          # the first step a solver would take

same = pp.Puzzle.from_id(g.puzzle.id)

The same arguments and package version always give the same puzzle. To save or share a puzzle, use its ID. Every operation takes limits=pp.Limits(work=..., attempts=...) and cancel=pp.CancellationToken(); running out of a limit raises an error. Cancellation can come from another thread, and Ctrl-C raises KeyboardInterrupt.

All public names are listed in docs/design/python-api.md.

Building

pip install maturin
maturin build --release
pip install target/wheels/pencil_puzzles-*.whl
python -m unittest discover -s python/tests

Metadata

Release files for pencil-puzzles 0.2.0

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

Source distribution (sdist)

Source distribution for pencil-puzzles 0.2.0
File Size Uploaded Provenance Actions
pencil_puzzles-0.2.0.tar.gz 271.7 kB With provenance Details for pencil_puzzles-0.2.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pencil-puzzles 0.2.0
File Interpreter ABI Platform Actions
pencil_puzzles-0.2.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for pencil_puzzles-0.2.0-cp310-abi3-win_amd64.whl
pencil_puzzles-0.2.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for pencil_puzzles-0.2.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pencil_puzzles-0.2.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for pencil_puzzles-0.2.0-cp310-abi3-macosx_11_0_arm64.whl

Total release size: 4.2 MB

Release files / pencil_puzzles-0.2.0.tar.gz

Download URL pencil_puzzles-0.2.0.tar.gz
Size 271.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3c36862d9f1643ce4d51a901c213317671701fb122f88a6756db26b89646aaeb
BLAKE2b-256 checksum
How to use checksums
fba95db1d02138680924e8d19e3a0ef24a98973b1704bb9fcbc6eee38f45fc5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 6, 2026.

Transparency log

Release files / pencil_puzzles-0.2.0-cp310-abi3-win_amd64.whl

Download URL pencil_puzzles-0.2.0-cp310-abi3-win_amd64.whl
Size 1.3 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
11e78184d49a9f5cf712f3d971c61dd43c0e1d1d23c167518f2039d3408dfb79
BLAKE2b-256 checksum
How to use checksums
406b2238f9f4bfd864c3522896d25840bf607c50a713d542f6843077ac00fec0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 6, 2026.

Transparency log

Release files / pencil_puzzles-0.2.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pencil_puzzles-0.2.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
5c4778c10c05805a9ffc3ea37f29d64032e439dc4a3aeab299c915e7ef5bde4a
BLAKE2b-256 checksum
How to use checksums
442858f19e9d1ca97441218b1447cbcc0d135b5cff941b048d16dd6d2f336c57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 6, 2026.

Transparency log

Release files / pencil_puzzles-0.2.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL pencil_puzzles-0.2.0-cp310-abi3-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
abdc8ba15c640ca56c4e656903e55d24b0fa2dbf134ddfd90bddc3620283cf39
BLAKE2b-256 checksum
How to use checksums
a38ef00e6139c4f0cc8a9e3d12cc343f5a30de49b99363004c7798dece788424
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 6, 2026.

Transparency log

Security for pencil-puzzles 0.2.0

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.

Full provenance

All 4 files in this release have been uploaded with provenance metadata.

Select from 4 files

Attestation for pencil_puzzles-0.2.0.tar.gz

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 Nov 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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