daankoning / debater.py

A simple library to keep track of your progress and history in competitive debating.
https://debaterpy.readthedocs.io/en/stable/
MIT License
0 stars 0 forks source link
debate debating debating-tournaments

debater.py

.. image:: https://badge.fury.io/py/debaterpy.svg? :target: https://pypi.org/project/debaterpy/

.. image:: https://badgen.net/github/license/daankoning/debater.py? :target: https://github.com/daankoning/debater.py/blob/main/LICENSE

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

A simple library to keep track of your progress and history in competitive debating.

The library is largely meant to interface with DebaterJSON <https://github.com/daankoning/DebaterJSON>_ and as such provides a significant number of functions and classes to analyse and manipulate these records.

Installation


Because the package is available on PyPi simply run the following command to install it: ::

pip install debaterpy

Usage


Instantiating objects is really simple, assuming you have a valid DebaterJSON string loaded in data it only takes two lines of code to generate an object from them.

import debaterpy record = debaterpy.Record.from_json(data)

In fact, this method should cover the vast majority of use cases for generating records. In case more control over record creation (e.g. for generating test data or fetching a record from an external source) most classes are standard python dataclasses and as such offer fine programmatic control.

Having a Record object in memory it is incredibly simple to do even relatively complex manipulations. For example, in order to get a speaker's average speaks in rounds where their team won, do:

winning_speeches = debaterpy.get_all_speeches( record, lambda tournament, round, speech: tournament.format == "BP" and round.result == 3 ) winning_speaks = [speech.speak for speech in winning_speeches] sum(winning_speaks)/len(winning_speaks) 78.88888888888889

Documentation


The documentation lives in the docs directory as well as on ReadTheDocs <https://debaterpy.readthedocs.io>_.