Skip to main content

Proton-compliant match scorer library.

Project description

LibProton

CircleCI

This is a library which simplifies the task of creating Proton compliant scoring scripts.

It supports Python 3.7+.

Install

Install from PyPI:

pip install libproton

API

The following is a complete and minimal Proton compliant scorer, and shows the expected usage of the library.

#!/usr/bin/env python

import libproton

class Scorer:
    def __init__(self, teams_data, arena_data):
        self._teams_data = teams_data
        self._arena_data = arena_data

    def calculate_scores(self):
        """Main scoring entry point.

           Expected to return a mapping of TLA -> score for each team in
           the input data. Errors either in the input or otherwise should
           be handled by raising exceptions.
        """
        scores = {}
        for tla in self._teams_data.keys():
            scores[tla] = 4
        return scores

    def validate(self, extra_data):
        """An optional additional method to validate the scoresheet.

           If this method is implemented it will be called with the value
           of the ``other`` key from the input. If the key is not present
           then this method will still be called (with ``None``).

           If there are validation errors the this method should raise
           an exception about them.
        """
        pass

if __name__ == '__main__:
    libproton.main(Scorer)

Tests

Run ./script/test.

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

libproton-3.3.tar.gz (7.1 kB view hashes)

Uploaded Source

Built Distribution

libproton-3.3-py2.py3-none-any.whl (8.8 kB view hashes)

Uploaded Python 2 Python 3

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