Skip to main content

Implementation of all the tools necessary to explore and analyse participatory budgeting elections

Project description

Pabutools: PB as easy as ABC

PyPI Status Build badge codecov

Overview

The pabutools are a complete set of tools to work with participatory budgeting instances.

Participatory budgeting (PB) is a democratic tool used to allocate a given amount of money to a collection of projects based on a group of individuals' preferences over the projects. It has been invented in Brazil in the late 80's and is now a widely implemented. See the Wikipedia page for more details.

In this library, we provide tools that

  • handle PB instances of different kinds,
  • compute voting rules to determine the outcome of the elections,
  • analyse outcomes, and
  • provide full support for the instances taken from the pabulib library of PB data.

Installation

The package can be installed from PyPI using:

pip3 install pabutools

Documentation

The complete documentation is available here. It includes

Development

We are more than happy to receive help with the development of the package. If you want to contribute, here are some elements to take into account.

First, install the development dependencies by running the following command:

pip install -e ".[dev]"

You can run the unit tests with the following:

python -m unittest

The doc is generated using sphinx. We use the numpy style guide. The napoleon extension for Sphinx is used and the HTML style is defined by the Book Sphinx Theme.

To generate the doc, first move inside the docs-source folder and run the following:

make clean 
make html

This will generate the documentation locally (in the folder docs-source/build). If you want the documentation to also be updated when pushing, run:

make github

After having pushed, the documentation will automatically be updated.

Note that a large part of the documentation is done by hand (to ensure proper display and correct ordering). This means that if you create new class of functions that should appear in the documentation, you may have to add they yourself using to autodoc directives (take inspiration from the files in docs-source/source).

If you want to help, check the todos.txt file, several todos are described there.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pabutools-1.1.9.tar.gz (100.2 kB view details)

Uploaded Source

Built Distribution

pabutools-1.1.9-py3-none-any.whl (133.8 kB view details)

Uploaded Python 3

File details

Details for the file pabutools-1.1.9.tar.gz.

File metadata

  • Download URL: pabutools-1.1.9.tar.gz
  • Upload date:
  • Size: 100.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pabutools-1.1.9.tar.gz
Algorithm Hash digest
SHA256 95eae8a79799f2a498e61d4802c2870f77837c1ee6be3990181cdf45174f2cbe
MD5 853f1dbfc0573370818e014e4707b022
BLAKE2b-256 8327c1a2684b21c49abbb91abf873c362a75c134125b89bc1331548085e6b728

See more details on using hashes here.

File details

Details for the file pabutools-1.1.9-py3-none-any.whl.

File metadata

  • Download URL: pabutools-1.1.9-py3-none-any.whl
  • Upload date:
  • Size: 133.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pabutools-1.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 c3bf6733f564bffe2f94659042b3539add12fc5598cca8867d9c177ff6c18eab
MD5 5a0717bf4c42bb869042d5c04d2f1060
BLAKE2b-256 b6a1c5dde29a89e7bd19e6bb3d69f6658b7248e6df3ada8fe4ad71db59d4c54d

See more details on using hashes here.

Supported by

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