A simple library to keep track of your progress and history in competitive debating.
The library is largely meant to interface with DebaterJSON and as such provides a significant number of functions and classes to analyse and manipulate these records.
Because the package is available on PyPi simply run the following command to install it:
pip install debaterpy
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
The documentation lives in the docs
directory as well as on ReadTheDocs.