<commit_before>Doku
====

Doku is a general sudoku library. It can be used to solve classic sudoku
puzzles as well as sudoku variants.

A simple cli is provided to work with sudoku puzzles on the command line
as well as provide hooks into the problem solving process.

Solver
------
The Sudoku puzzle solver uses the Dancing Links technique to implement
Knuth's Algorithm X.

**Warning:** The current dlx technique was implmented as a learning exercise. There
is probably a more optimal solution. This means that the internals of this
library are in flux and should not be considered production ready.

References
----------
- http://www-cs-faculty.stanford.edu/~knuth/preprints.html
- http://en.wikipedia.org/wiki/Dancing_Links
- http://en.wikipedia.org/wiki/Knuth's_Algorithm_X
- http://www.ocf.berkeley.edu/~jchu/publicportal/sudoku/sudoku.paper.html
- http://www.ocf.berkeley.edu/~jchu/publicportal/sudoku/0011047.pdf
- http://en.wikipedia.org/wiki/Exact_cover
- http://buzzard.ups.edu/talks/beezer-2010-stellenbosch-sudoku.pdf
<commit_msg>Added instructions to the readme<commit_after>Doku
====

Doku is a general sudoku library. It can be used to solve classic sudoku
puzzles as well as sudoku variants.

A simple cli is provided to work with sudoku puzzles on the command line
as well as provide hooks into the problem solving process.

The Sudoku puzzle solver uses the Dancing Links technique to implement
Knuth's Algorithm X.

**Warning:** The current dlx technique was implmented as a learning exercise. There
is probably a more optimal solution. This means that the internals of this
library are in flux and should not be considered production ready.

Install
-------

Quick:

    pip install git+git://github.com/collinwat/doku.git


Manual:

    git clone git://github.com/collinwat/doku.git

    cd doku

    [sudo] python setup.py develop

Usage
-----

Overview:

    doku

Solve a puzzle:

    doku solve .3...1....4...3.

References
----------
- http://www-cs-faculty.stanford.edu/~knuth/preprints.html
- http://en.wikipedia.org/wiki/Dancing_Links
- http://en.wikipedia.org/wiki/Knuth's_Algorithm_X
- http://www.ocf.berkeley.edu/~jchu/publicportal/sudoku/sudoku.paper.html
- http://www.ocf.berkeley.edu/~jchu/publicportal/sudoku/0011047.pdf
- http://en.wikipedia.org/wiki/Exact_cover
- http://buzzard.ups.edu/talks/beezer-2010-stellenbosch-sudoku.pdf

{'fraction_non_alphanumeric': 0.1114394259181089, 'fraction_numerical': 0.010975094976783452, 'mean_word_length': 3.6379647749510764, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3331770', 'n_tokens_mistral': 797, 'n_tokens_neox': 746, 'n_words': 235}