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.clues)
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 seed 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.3.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 pencil-puzzles 0.3.1
File Size Uploaded Provenance Actions
pencil_puzzles-0.3.1.tar.gz 282.0 kB With provenance Details for pencil_puzzles-0.3.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pencil-puzzles 0.3.1
File Interpreter ABI Platform Actions
pencil_puzzles-0.3.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for pencil_puzzles-0.3.1-cp310-abi3-win_amd64.whl
pencil_puzzles-0.3.1-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.3.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
pencil_puzzles-0.3.1-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for pencil_puzzles-0.3.1-cp310-abi3-macosx_11_0_arm64.whl

Total release size: 4.2 MB

Release files / pencil_puzzles-0.3.1.tar.gz

Download URL pencil_puzzles-0.3.1.tar.gz
Size 282.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4fad32886a6293a30b7b0b2baf634eb346ddf20113cac275328b5dc4fc75f63f
BLAKE2b-256 checksum
How to use checksums
9f91ecae213f6193bedfef025840f28423e683281768f2732ff3494f06ec368d
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 8, 2026.

Transparency log

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

Download URL pencil_puzzles-0.3.1-cp310-abi3-win_amd64.whl
Size 1.3 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
daa846d6fdbd5dc3c682ac9ff050ae304f1a22ea612cbd748af1055f9a1fb0f3
BLAKE2b-256 checksum
How to use checksums
d737e5fc49675f06a77da444145647260102852fe5f43760865fa6b70e85cc46
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 8, 2026.

Transparency log

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

Download URL pencil_puzzles-0.3.1-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
dcca93be514fe79d34cca554d8cfd45da20695f7ae05e0fe76b090850a4842ec
BLAKE2b-256 checksum
How to use checksums
2b7802d5270edb5a85298094555faef94decad8da540f29504d8ae8ba5b4a995
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 8, 2026.

Transparency log

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

Download URL pencil_puzzles-0.3.1-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
60504b656a430c7cde7dd203529fe85d549472f7b84aa5f2ae160d85f4113438
BLAKE2b-256 checksum
How to use checksums
cbf00b1e70219cb5a48f081533839aa5e621832781ee68ede64f095c3f050564
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 8, 2026.

Transparency log

Security for pencil-puzzles 0.3.1

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.3.1.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 8, 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