Skip to main content

Cyclesport results and timing toolkit

Project description

metarace

A collection of Python modules to assist with cycle race timekeeping and official result preparation. Version 2 of Metarace is a re-write for Python 3 which removes static pyGTK/GLib dependencies.

Application-level modules are not contained in the library, they are available separately:

  • roadmeet : Timing and results for UCI Part 2 Road Races, UCI Part 5 Cyclo-Cross, criterium, road handicap and ad-hoc time trial events.
  • tagreg : Transponder id management.
  • ttstart : Time Trial starter console.

Work in Progress

  • include grapheme support in strops
  • re-write report library for better sectioning
  • overhaul PDF text rendering
  • replace xls export with xlsx
  • module documentation
  • sample scripts

Module Overview

metarace: Base Library

  • shared configuration, default files and resources
  • tempfile-backed file writer
  • meet folder locking

jsonconfig: Configuration Options

Schema defined dictionary-like configuration with JSON export and import.

riderdb: CSV-backed Competitor Information

Store details for competitors, teams, and categories.

tod: Time of Day

Represent timing measurements, calculations for short intervals (<24 hours) and aggregate times.

timy: Alge Timy Chronometer

Read time of day measurements from an attached Alge Timy in PC-TIMER mode.

decoder: Transponder Decoders

Read transponder and timing information from Race Result and Chronelec devices:

  • rrs : Race Result System Decoder (passive and active)
  • rru : Race Result USB Timing Box (active)
  • thbc : Chronelec (Tag Heuer) Protime/Elite RC and LS

strops: Common String Manipulations

Commonly used functions for formatting competitor names, rankings and user inputs.

telegraph: Interprocess Communication

MQTT-backed pub/sub message exchange service.

unt4: Legacy Timing Protocol

Swiss Timing UNT4 protocol wrapper, for legacy devices and DHI communications.

countback: Accumulate and Compare Count of Places

Represent a countback of places and allow for simple placing comparisons.

htlib: HTML Generation

Functional primitives for HTML generation.

report: Report Generation

Create sectioned reports and save to PDF, HTML, XLS and JSON.

export: Result Export and Mirroring

Mirror export files to a remote host using rsync over ssh, rsync TCP daemon or by running a local script.

eventdb: CSV Event List

Store details for multple events within a meet.

Requirements

System requirements:

  • Python >= 3.9
  • Cairo
  • Pango
  • Rsvg
  • Python gi
  • Python gi-cairo
  • tex-gyre (optional, recommended)
  • evince (optional, recommended)
  • fonts-noto (optional)
  • mosquitto (optional)
  • libreoffice (optional)

Python packages:

  • pyserial: Serial port interface
  • python-dateutil: Generic date/time string parser
  • xlwt: XLS file writer
  • paho-mqtt: MQTT interface
  • grapheme: Unicode grapheme support

Installation

Check that your python version is at least 3.9 before installing. This library will not work with python versions less than 3.9.

Debian 11+

Install system requirements with apt:

$ sudo apt install python3-venv python3-pip python3-cairo python3-gi python3-gi-cairo
$ sudo apt install gir1.2-rsvg-2.0 gir1.2-pango-1.0
$ sudo apt install python3-serial python3-paho-mqtt python3-dateutil python3-xlwt

Optionally add fonts, PDF viewer and MQTT broker:

$ sudo apt install tex-gyre fonts-noto evince mosquitto

Create a virtualenv for metarace and associated packages:

$ python3 -m venv --system-site-packages venv

Activate the virtualenv and install packages with pip:

$ source ./venv/bin/activate
(venv) $ pip3 install metarace

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

metarace-2.1.5.tar.gz (94.0 kB view details)

Uploaded Source

Built Distribution

metarace-2.1.5-py3-none-any.whl (103.9 kB view details)

Uploaded Python 3

File details

Details for the file metarace-2.1.5.tar.gz.

File metadata

  • Download URL: metarace-2.1.5.tar.gz
  • Upload date:
  • Size: 94.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for metarace-2.1.5.tar.gz
Algorithm Hash digest
SHA256 46df05c683dc50d7659fbe4ad6e03e1797e4407896bf9008b8051ab063e7f2c2
MD5 59a9f58348eb4cfa549fd0fe57eb7ce2
BLAKE2b-256 b5bed6d4162760c3523c87007edfa4800f97cd83b25bf8dfe81f0412ed16fea5

See more details on using hashes here.

File details

Details for the file metarace-2.1.5-py3-none-any.whl.

File metadata

  • Download URL: metarace-2.1.5-py3-none-any.whl
  • Upload date:
  • Size: 103.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for metarace-2.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 edfa1c2184c14ae0b4ed6af3fca252298c397712dca86aba196cfa1b20e1c814
MD5 1f6e458adfe353a73af150e684c59d79
BLAKE2b-256 5d30edccb5651d937f3b19a83635836460da65a7d9be259f68e83d2b4c747de5

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