[DONE] Convert the criteria classes to use interfaces. Then, instead of subclassing these in the voting methods, they would implement them. This will make zope.interface a dependency.
[DONE] Copy multi-doctest file test suite code from txULS/soom to here.
[DONE] Add a new docs/methods directory and a file for each voting method.
[IN PROGRESS] Finish implementing the single-winner voting methods.
Implement the Multi-winner voting methods.
Implement the proxy and random voting methods.
Do research on distance-based voting:
- in particular, defining a metric space for candidates based on a set of preferences
- then taking the square root of the sum of the squares, getting the n-dimensional distance
[IN PROGRESS] Add doctests for each voting method.
Add a make target that tests the source dist:
- create a temp dir
- untar the dist there
- run the unit tests and doctests against that directory
- Change uppercase doc files to lower case (with the exceptions of the standard ones like README, TODO, etc.)
- Updated the sphinx configuration file to use ballotbox.meta
- Add sidebar links in the generated docs
- Autogenerate ReST files for API docs
- the logic that drives this should go in ballotbox.util.docs
- add a make target that imports and calls the appropriate functions to generate the API docs