A pure Python module for election quotas, voting measures, and apportionment methods.
The voting
package works in Python 2.7, 3.5, 3.6 and 3.7. It is available on
pypi and can be installed using pip.
pip install voting
- voting
- apportionment
- adams
- dhondt
- hagenbach_bischoff
- hamilton
- huntington_hill
- jefferson
- sainte_lague
- vinton
- webster
- diversity
- berger_parker
- general
- gini_simpson
- golosov
- inverse_simpson
- laakso_taagepera
- renyi
- shannon
- simpson
- proportion
- adjusted_loosemore_hanby
- dhondt
- gallagher
- grofman
- least_square
- lijphart
- loosemore_hanby
- rae
- regression
- rose
- sainte_lague
- quota
- droop
- hagenbach_bischoff
- hare
- imperiali
- apportionment
Apportioning seats using the Huntington-Hill method.
from voting import apportionment
votes = [2560, 3315, 995, 5012]
seats = 20
assignments = apportionment.huntington_hill(votes, seats)
Calculating the effective number of parties using Golosov's measure.
from voting import diversity
parties = [750, 150, 50, 50]
effective_parties = diversity.golosov(parties)
Measuring the disproportionality of democratic representation using the Sainte-Lague measure.
from voting import proportion
votes = [750, 150, 50, 50]
seats = [80, 16, 2, 2]
disproportionality = proportion.sainte_lague(votes, seats)
Determining the Droop quota
from voting import quota
votes = 1000
seats = 20
election_quota = quota.droop(votes, seats)