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.3.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.3.0
File Size Uploaded Provenance Actions
pencil_puzzles-0.3.0.tar.gz 282.1 kB With provenance Details for pencil_puzzles-0.3.0.tar.gz

Built distributions (wheels)

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

Total release size: 4.2 MB

Release files / pencil_puzzles-0.3.0.tar.gz

Download URL pencil_puzzles-0.3.0.tar.gz
Size 282.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e6b85ed3e95baad60a7348ed5ed82196f2192af13d343598f53218591c7376e3
BLAKE2b-256 checksum
How to use checksums
959d925edcb7d4f3e03d80db20192ffc0ca50f1c26259926ac4cd94b001a669e
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.0-cp310-abi3-win_amd64.whl

Download URL pencil_puzzles-0.3.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
2ff2c3fd4c6a318fce536b37e08cd76fa80a90e2bd10ec8d8d96a53fd5b4a717
BLAKE2b-256 checksum
How to use checksums
a5fedf037839083c583b313786586c3c97a32ec2b44bfe1de3bb832432d45ead
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.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pencil_puzzles-0.3.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
434150b73ff42f414fc82f4d6d057141cd9d28f7965f8778d1b977af0de47f8b
BLAKE2b-256 checksum
How to use checksums
f1d65ecd72a3230a4489452bf5005e954fc9b205ee6dfa9ef6df63f7d17009df
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.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL pencil_puzzles-0.3.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
1d4635ae2a069102d9858f31827154d6527f5de0254bbacac819cdf26c1ece99
BLAKE2b-256 checksum
How to use checksums
34240b8310f8b3130e01e737f6620aec617c4c8acbfd24c091d93e1371486bc2
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.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.3.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 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