Metadata-Version: 2.4
Name: pyrcv
Version: 1.2.4
Summary: Python API for adjudicating single transferable vote elections.  Also contains basic web server to adjudicate results in CSV format.
Home-page: https://github.com/chrisroat/pyrcv
Author: Chris Roat
Author-email: chris.roat@gmail.com
License: GNU General Public License v3
Project-URL: Bug Tracker, https://github.com/chrisroat/pyrcv/issues
Project-URL: Production Server, https://www.pyrcv.org
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Other Audience
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: click>=8
Requires-Dist: icontract>=2.6
Requires-Dist: numpy>=1.21
Requires-Dist: pandas>=1.5
Requires-Dist: plotly>=5.13
Dynamic: license-file

=====
pyrcv
=====


.. image:: https://img.shields.io/pypi/v/pyrcv.svg
        :target: https://pypi.python.org/pypi/pyrcv
        :alt: PyPi Status

.. image:: https://github.com/chrisroat/pyrcv/actions/workflows/ci.yml/badge.svg
        :target: https://github.com/chrisroat/pyrcv/actions/workflows/ci.yml
        :alt: Test Status

.. image:: https://readthedocs.org/projects/pyrcv/badge/?version=latest
        :target: https://pyrcv.readthedocs.io/en/latest/?version=latest
        :alt: Documentation Status


Python project for adjudicating ranked choice voting elections using the
single transferable vote (STV) method.  For more information on ranked
choice voting, visit the `FairVote website on RCV`_.

The project also contains a small flask server for adjudicating and visualizing
election results from a CSV file.  It is automatically deployed at at `pyrcv.org`_

* Free software: GNU General Public License v3
* Documentation: https://pyrcv.readthedocs.io.


Features
--------

* General standards and APIs for voting data and vote tabulation.
* Tabulation of ranked-choice elections using the single-transferable-vote (STV) method.
* Support for both single-winner and multi-winner contests.
* Generation of Sankey diagram showing the flow of vote counts through the
  rounds of a multi-round election.
* Parser for converting Google Form based election output to voting data standard format.
* Web server which processes CSV data output from a Google Form based election, and
  displays winners and a Sankey diagram.


Credits
-------

Inspired by FairVote_ and CalRCV_.  FairVote's examples were extremely helpful for
development and correctness-testing.

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _FairVote website on RCV: https://fairvote.org/our-reforms/ranked-choice-voting/
.. _pyrcv.org: https://www.pyrcv.org
.. _FairVote: https://fairvote.org/
.. _CalRCV: https://www.calrcv.org/
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
