Python/JavaScript framework for counting various preferential voting elections
This repository has been archived on 2021-05-25. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
RunasSudo 5812b252d8
Correct some bugs and add additional test cases
Fix describing election with only --ties prompt
Return JS number from SHARandom
2021-01-12 03:51:57 +11:00
docs Implement Meek STV 2021-01-08 19:16:56 +11:00
html Display number of candidates/seats in JS report. 2021-01-11 03:01:51 +11:00
pyRCV2 Correct some bugs and add additional test cases 2021-01-12 03:51:57 +11:00
tests Correct some bugs and add additional test cases 2021-01-12 03:51:57 +11:00
.coveragerc Add test coverage reporting 2021-01-12 03:15:58 +11:00
.gitignore Add test coverage reporting 2021-01-12 03:15:58 +11:00
build.sh Begin implementation of tie handling 2020-12-23 22:37:48 +11:00
COPYING Initial commit 2020-10-17 18:45:12 +11:00
README.md Add printable reports 2021-01-10 18:42:47 +11:00
requirements.txt Add test coverage reporting 2021-01-12 03:15:58 +11:00

pyRCV2

pyRCV2 is an application for counting various preferential voting elections.

pyRCV2 may be used in a number of different ways:

  • as an online web application, no installation or special software required, at https://yingtongli.me/rcv/
  • as a standalone Python command line application
  • as a library within another Python application

Features

pyRCV2 accepts data in the BLT file format, and can count votes using:

pyRCV2 is highly customisable, including options for:

  • different quotas and quota rules (e.g. exact Droop, Hare) or progressively reducing quota
  • calculations using fixed-point arithmetic or exact rational numbers
  • different tie breaking rules (backwards, random, manual) with auditable deterministic random number generation
  • extensible API for other counting methods

Online usage

After preparing the BLT file, head to https://yingtongli.me/rcv/. Select the BLT file, and click Count. pyRCV2 will count the election and display the results in a count sheet. See here for more detailed instructions.

By clicking Show advanced options, you can customise the options used for the count. A detailed explanation of the various options can be found here.

Once the count is complete, you can click Print result to generate a printable result report.

Command line usage

pyRCV2 may also be invoked as a command line application. Run python -m pyRCV2 --help to view help.

For example, run python -m pyRCV2 stv path/to/blt_file.blt --ties backwards --ties random --random-seed foobar.