Skip to main content

pref_voting is a Python packaging that contains tools to reason about election profiles and margin graphs, and implementations of a variety of preferential 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.

Profiles and Voting Methods

A profile (of linear orders over the candidates) is created by initializing a Profile class object. This needs a list of rankings (each ranking is a tuple of numbers), the number of candidates, and a list giving the number of each ranking in the profile:

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 
from pref_voting.profiles import Profile
from pref_voting.voting_methods import *

prof = Profile(rankings, num_cands, rcounts=rcounts)
print(f"{split_cycle.name} winners:  {split_cycle(prof)}")
split_cycle.display(prof)

Versions

  • v0.1.10 (2022-08-09): Initial release
  • v0.1.13 (2022-11-05): Minor updates and bug fixes
  • v0.1.14 (2022-12-19): Add plurality_scores to ProfileWithTies; add generate ceots function; bug fixes
  • v0.1.23 (2022-12-27): Add instant_runoff_for_truncated_linear_orders and functions to truncate overvotes in a ProfileWithTies, add smith_irv_put, document analysis functions
  • v0.1.25 (2023-1-11): Add condorcet_irv, condorcet_irv_put; Update documentation; add axioms.py; add display and equality to Ranking class; fix enumerate ceots functions

Questions?

Feel free to send me an email if you have questions about the project.

License

MIT

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

pref_voting-0.1.25.tar.gz (76.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pref_voting-0.1.25-py3-none-any.whl (82.2 kB view details)

Uploaded Python 3

File details

Details for the file pref_voting-0.1.25.tar.gz.

File metadata

  • Download URL: pref_voting-0.1.25.tar.gz
  • Upload date:
  • Size: 76.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.15 Darwin/19.6.0

File hashes

Hashes for pref_voting-0.1.25.tar.gz
Algorithm Hash digest
SHA256 dc6bc07cf61956292be374d51069af612bad4598be06a84473b4ff211e05fc83
MD5 3705c8fb4e63e97799fd510450a1c745
BLAKE2b-256 07c2a78449695b1632189d9542bee75a6208a9ed09e058d92481011647384ecf

See more details on using hashes here.

File details

Details for the file pref_voting-0.1.25-py3-none-any.whl.

File metadata

  • Download URL: pref_voting-0.1.25-py3-none-any.whl
  • Upload date:
  • Size: 82.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.15 Darwin/19.6.0

File hashes

Hashes for pref_voting-0.1.25-py3-none-any.whl
Algorithm Hash digest
SHA256 b6a96533e306106bdc0860b5fc1585a1718ae61c2a32f51ec4df53dbc3c2126b
MD5 c1c04115018a88c337b709fe488fd8fc
BLAKE2b-256 21cf3276789d70917521b7aaecfdfcbea9447f1b9428b75c39246b856f092e25

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page