Update documentation Include own copy of BigRational, as including this from github.com seems to cause issues when hosted online
1.9 KiB
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:
- weighted inclusive Gregory STV (e.g. Scottish STV)
- unweighted inclusive Gregory STV
- Wright STV
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.
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
.