==== TODO ==== Implementation -------------- [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 Testing ------- [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 Documentation ------------- * 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