pref_voting is a Python package that contains tools to reason about elections and margin graphs, and implementations of voting methods.
Project description
pref_voting
Installation
With pip package manager:
pip install pref_voting
Documentation
Online documentation is available at https://pref-voting.readthedocs.io.
Example Usage
A profile (of linear orders over the candidates) is created by initializing a Profile
class object. Simply provide a list of rankings (each ranking is a tuple of numbers) and a list giving the number of voters with each ranking:
from pref_voting.profiles import Profile
rankings = [
(0, 1, 2, 3),
(2, 3, 1, 0),
(3, 1, 2, 0),
(1, 2, 0, 3),
(1, 3, 2, 0)]
rcounts = [5, 3, 2, 4, 3]
prof = Profile(rankings, rcounts=rcounts)
The function generate_profile
is used to generate a profile for a given number of candidates and voters:
from pref_voting.generate_profiles import generate_profile
# generate a profile using the Impartial Culture probability model
prof = generate_profile(3, 4) # prof is a Profile object
# generate a profile using the Impartial Anonymous Culture probability model
prof = generate_profile(3, 4, probmod = "IAC") # prof is a Profile object
To use one of the many voting methods, import the function from pref_voting.voting_methods
and apply it to the profile:
from pref_voting.generate_profiles import generate_profile
from pref_voting.voting_methods import *
prof = generate_profile(3, 4)
split_cycle(prof) # returns the sorted list of winning candidates
split_cycle.display(prof) # display the winning candidates
Questions?
Feel free to send an email if you have questions about the project.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pref_voting-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 364c6b4ddb3dda514cd9e094f8e96df19f9604c0d210fa889b9a6a55e0a6c082 |
|
MD5 | 210c5de1eadf97983fb962ddc3792f6e |
|
BLAKE2b-256 | 3da7ea9b9faa4d5ac86078a89efe20d3adddaaaecc42c5f5da8e9a3c5e8503f5 |