LICENSE
MANIFEST.in
README.md
pyproject.toml
src/puzzlekit/__init__.py
src/puzzlekit.egg-info/PKG-INFO
src/puzzlekit.egg-info/SOURCES.txt
src/puzzlekit.egg-info/dependency_links.txt
src/puzzlekit.egg-info/requires.txt
src/puzzlekit.egg-info/top_level.txt
src/puzzlekit/core/__init__.py
src/puzzlekit/core/direction.py
src/puzzlekit/core/docs_template.py
src/puzzlekit/core/grid.py
src/puzzlekit/core/position.py
src/puzzlekit/core/regionsgrid.py
src/puzzlekit/core/result.py
src/puzzlekit/core/solver.py
src/puzzlekit/formats/__init__.py
src/puzzlekit/formats/base.py
src/puzzlekit/formats/debug.py
src/puzzlekit/formats/penpa_converter.py
src/puzzlekit/formats/penpa_template.py
src/puzzlekit/formats/puzzle_types.py
src/puzzlekit/formats/puzzlink_converter.py
src/puzzlekit/formats/utils.py
src/puzzlekit/parsers/__init__.py
src/puzzlekit/parsers/common.py
src/puzzlekit/parsers/registry.py
src/puzzlekit/solvers/__init__.py
src/puzzlekit/solvers/abc_end_view.py
src/puzzlekit/solvers/akari.py
src/puzzlekit/solvers/aqre.py
src/puzzlekit/solvers/balance_loop.py
src/puzzlekit/solvers/battleship.py
src/puzzlekit/solvers/binairo.py
src/puzzlekit/solvers/bosanowa.py
src/puzzlekit/solvers/bricks.py
src/puzzlekit/solvers/buraitoraito.py
src/puzzlekit/solvers/butterfly_sudoku.py
src/puzzlekit/solvers/canal_view.py
src/puzzlekit/solvers/castle_wall.py
src/puzzlekit/solvers/cave.py
src/puzzlekit/solvers/clueless_1_sudoku.py
src/puzzlekit/solvers/clueless_2_sudoku.py
src/puzzlekit/solvers/cojun.py
src/puzzlekit/solvers/country_road.py
src/puzzlekit/solvers/creek.py
src/puzzlekit/solvers/detour.py
src/puzzlekit/solvers/diff_neighbors.py
src/puzzlekit/solvers/dominos.py
src/puzzlekit/solvers/dotchi_loop.py
src/puzzlekit/solvers/double_back.py
src/puzzlekit/solvers/entry_exit.py
src/puzzlekit/solvers/eulero.py
src/puzzlekit/solvers/even_odd_sudoku.py
src/puzzlekit/solvers/fobidoshi.py
src/puzzlekit/solvers/fuzuli.py
src/puzzlekit/solvers/gappy.py
src/puzzlekit/solvers/gattai_8_sudoku.py
src/puzzlekit/solvers/geradeweg.py
src/puzzlekit/solvers/grand_tour.py
src/puzzlekit/solvers/hakoiri.py
src/puzzlekit/solvers/hakyuu.py
src/puzzlekit/solvers/heyawake.py
src/puzzlekit/solvers/hidoku.py
src/puzzlekit/solvers/hitori.py
src/puzzlekit/solvers/jigsaw_sudoku.py
src/puzzlekit/solvers/juosan.py
src/puzzlekit/solvers/kakkuru.py
src/puzzlekit/solvers/kakurasu.py
src/puzzlekit/solvers/kakuro.py
src/puzzlekit/solvers/ken_ken.py
src/puzzlekit/solvers/killer_sudoku.py
src/puzzlekit/solvers/koburin.py
src/puzzlekit/solvers/kuromasu.py
src/puzzlekit/solvers/kuroshuto.py
src/puzzlekit/solvers/kurotto.py
src/puzzlekit/solvers/linesweeper.py
src/puzzlekit/solvers/lits.py
src/puzzlekit/solvers/magnetic.py
src/puzzlekit/solvers/makaro.py
src/puzzlekit/solvers/masyu.py
src/puzzlekit/solvers/mathrax.py
src/puzzlekit/solvers/mejilink.py
src/puzzlekit/solvers/mid_loop.py
src/puzzlekit/solvers/minesweeper.py
src/puzzlekit/solvers/moon_sun.py
src/puzzlekit/solvers/mosaic.py
src/puzzlekit/solvers/munraito.py
src/puzzlekit/solvers/nanro.py
src/puzzlekit/solvers/nawabari.py
src/puzzlekit/solvers/nondango.py
src/puzzlekit/solvers/nonogram.py
src/puzzlekit/solvers/norinori.py
src/puzzlekit/solvers/number_cross.py
src/puzzlekit/solvers/nurikabe.py
src/puzzlekit/solvers/nurimisaki.py
src/puzzlekit/solvers/one_to_x.py
src/puzzlekit/solvers/paint_area.py
src/puzzlekit/solvers/patchwork.py
src/puzzlekit/solvers/pfeilzahlen.py
src/puzzlekit/solvers/pills.py
src/puzzlekit/solvers/pipes.py
src/puzzlekit/solvers/putteria.py
src/puzzlekit/solvers/regional_yajilin.py
src/puzzlekit/solvers/renban.py
src/puzzlekit/solvers/samurai_sudoku.py
src/puzzlekit/solvers/shikaku.py
src/puzzlekit/solvers/shimaguni.py
src/puzzlekit/solvers/shingoki.py
src/puzzlekit/solvers/shirokuro.py
src/puzzlekit/solvers/shogun_sudoku.py
src/puzzlekit/solvers/shugaku.py
src/puzzlekit/solvers/simple_loop.py
src/puzzlekit/solvers/skyscraper.py
src/puzzlekit/solvers/slitherlink.py
src/puzzlekit/solvers/slitherlink_duality.py
src/puzzlekit/solvers/snake.py
src/puzzlekit/solvers/sohei_sudoku.py
src/puzzlekit/solvers/square_o.py
src/puzzlekit/solvers/starbattle.py
src/puzzlekit/solvers/stitches.py
src/puzzlekit/solvers/str8t.py
src/puzzlekit/solvers/sudoku.py
src/puzzlekit/solvers/suguru.py
src/puzzlekit/solvers/sumo_sudoku.py
src/puzzlekit/solvers/tatamibari.py
src/puzzlekit/solvers/tenner_grid.py
src/puzzlekit/solvers/tent.py
src/puzzlekit/solvers/terra_x.py
src/puzzlekit/solvers/thermometer.py
src/puzzlekit/solvers/tile_paint.py
src/puzzlekit/solvers/trinairo.py
src/puzzlekit/solvers/usoone.py
src/puzzlekit/solvers/windmill_sudoku.py
src/puzzlekit/solvers/yajikabe.py
src/puzzlekit/solvers/yajilin.py
src/puzzlekit/solvers/yin_yang.py
src/puzzlekit/utils/__init__.py
src/puzzlekit/utils/file_loader.py
src/puzzlekit/utils/name_utils.py
src/puzzlekit/utils/ortools_utils.py
src/puzzlekit/utils/puzzle_math.py
src/puzzlekit/verifiers/__init__.py
src/puzzlekit/verifiers/common.py
src/puzzlekit/viz/__init__.py
src/puzzlekit/viz/base.py
src/puzzlekit/viz/drawers.py
tests/__init__.py
tests/metadata_test_utils.py
tests/test_abc_end_view.py
tests/test_akari.py
tests/test_balance_loop.py
tests/test_battleship.py
tests/test_binairo.py
tests/test_bosanowa.py
tests/test_bricks.py
tests/test_buraitoraito.py
tests/test_butterfly_sudoku.py
tests/test_castle_wall.py
tests/test_cave.py
tests/test_clueless_1_sudoku.py
tests/test_clueless_2_sudoku.py
tests/test_country_road.py
tests/test_creek.py
tests/test_detour.py
tests/test_diff_neighbors.py
tests/test_dominos.py
tests/test_dotchi_loop.py
tests/test_double_back.py
tests/test_entry_exit.py
tests/test_eulero.py
tests/test_even_odd_sudoku.py
tests/test_fobidoshi.py
tests/test_fuzuli.py
tests/test_gappy.py
tests/test_gattai_8_sudoku.py
tests/test_grand_tour.py
tests/test_grid.py
tests/test_hakoiri.py
tests/test_hakyuu.py
tests/test_heyawake.py
tests/test_hidoku.py
tests/test_hitori.py
tests/test_jigsaw_sudoku.py
tests/test_juosan.py
tests/test_kakkuru.py
tests/test_kakurasu.py
tests/test_kakuro.py
tests/test_ken_ken.py
tests/test_killer_sudoku.py
tests/test_koburin.py
tests/test_kuromasu.py
tests/test_kuroshuto.py
tests/test_linesweeper.py
tests/test_lits.py
tests/test_magnetic.py
tests/test_makaro.py
tests/test_masyu.py
tests/test_mathrax.py
tests/test_minesweeper.py
tests/test_moon_sun.py
tests/test_mosaic.py
tests/test_munraito.py
tests/test_nawabari.py
tests/test_nondango.py
tests/test_nonogram.py
tests/test_norinori.py
tests/test_number_cross.py
tests/test_one_to_x.py
tests/test_paint_area.py
tests/test_patchwork.py
tests/test_pfeilzahlen.py
tests/test_pills.py
tests/test_putteria.py
tests/test_regional_yajilin.py
tests/test_renban.py
tests/test_samurai_sudoku.py
tests/test_shikaku.py
tests/test_shingoki.py
tests/test_shogun_sudoku.py
tests/test_simple_loop.py
tests/test_skyscraper.py
tests/test_slitherlink.py
tests/test_snake.py
tests/test_sohei_sudoku.py
tests/test_square_o.py
tests/test_starbattle.py
tests/test_stitches.py
tests/test_str8t.py
tests/test_sudoku.py
tests/test_suguru.py
tests/test_sumo_sudoku.py
tests/test_tenner_grid.py
tests/test_tent.py
tests/test_terra_x.py
tests/test_thermometer.py
tests/test_tile_paint.py
tests/test_trinairo.py
tests/test_windmill_sudoku.py
tests/test_yajikabe.py
tests/test_yajilin.py
tests/test_yin_yang.py
tests/__pycache__/__init__.cpython-310.pyc
tests/__pycache__/metadata_test_utils.cpython-310.pyc
tests/__pycache__/test_abc_end_view.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_akari.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_balance_loop.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_battleship.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_binairo.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_bosanowa.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_bricks.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_buraitoraito.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_butterfly_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_castle_wall.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_cave.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_clueless_1_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_clueless_2_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_country_road.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_creek.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_detour.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_diff_neighbors.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_dominos.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_dotchi_loop.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_double_back.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_entry_exit.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_eulero.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_even_odd_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_fobidoshi.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_fuzuli.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_gappy.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_gattai_8_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_grand_tour.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_grid.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_hakoiri.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_hakyuu.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_heyawake.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_hidoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_hitori.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_jigsaw_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_juosan.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_kakkuru.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_kakurasu.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_kakuro.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_ken_ken.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_killer_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_koburin.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_kuromasu.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_kuroshuto.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_linesweeper.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_lits.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_magnetic.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_makaro.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_masyu.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_mathrax.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_minesweeper.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_moon_sun.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_mosaic.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_munraito.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_nawabari.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_nondango.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_nonogram.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_norinori.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_number_cross.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_one_to_x.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_paint_area.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_patchwork.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_pfeilzahlen.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_pills.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_putteria.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_regional_yajilin.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_renban.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_samurai_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_shikaku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_shingoki.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_shogun_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_simple_loop.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_skyscraper.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_slitherlink.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_snake.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_sohei_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_square_o.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_starbattle.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_stitches.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_str8t.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_suguru.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_sumo_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_tenner_grid.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_tent.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_terra_x.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_thermometer.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_tile_paint.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_trinairo.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_windmill_sudoku.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_yajikabe.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_yajilin.cpython-310-pytest-9.0.2.pyc
tests/__pycache__/test_yin_yang.cpython-310-pytest-9.0.2.pyc
tests/formats/conftest.py
tests/formats/test_cross_format.py
tests/formats/test_roundtrip.py
tests/formats/__pycache__/conftest.cpython-310-pytest-9.0.2.pyc
tests/formats/__pycache__/test_cross_format.cpython-310-pytest-9.0.2.pyc
tests/formats/__pycache__/test_roundtrip.cpython-310-pytest-9.0.2.pyc