Package: metarace
metaraceA 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 Progressinclude grapheme support in stropsre-write report library for better sectioningoverhaul PDF text renderingreplace xls export with xlsxmodule documentationsample scriptsModule Overviewmetarace: Base Libraryshared configuration, default files and resourcestempfile-backed file writermeet folder lockingjsonconfig: Configuration OptionsSchema defined dictionary-like
configuration with JSON export and import.riderdb: CSV-backed Competitor InformationStore details for competitors, teams, and categories.tod: Time of DayRepresent timing measurements, calculations for
short intervals (<24 hours) and aggregate times.timy: Alge Timy ChronometerRead time of day measurements from an attached Alge Timy
in PC-TIMER mode.decoder: Transponder DecodersRead 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 LSstrops: Common String ManipulationsCommonly used functions for formatting competitor names,
rankings and user inputs.telegraph: Interprocess CommunicationMQTT-backed pub/sub message exchange service.unt4: Legacy Timing ProtocolSwiss Timing UNT4 protocol wrapper, for legacy devices
and DHI communications.countback: Accumulate and Compare Count of PlacesRepresent a countback of places and allow for simple
placing comparisons.htlib: HTML GenerationFunctional primitives for HTML generation.report: Report GenerationCreate sectioned reports and save to PDF, HTML, XLS and JSON.export: Result Export and MirroringMirror export files to a remote host using rsync over ssh,
rsync TCP daemon or by running a local script.eventdb: CSV Event ListStore details for multple events within a meet.RequirementsSystem requirements:Python >= 3.9CairoPangoRsvgPython giPython gi-cairotex-gyre (optional, recommended)evince (optional, recommended)fonts-noto (optional)mosquitto (optional)libreoffice (optional)Python packages:pyserial: Serial port interfacepython-dateutil: Generic date/time string parserxlwt: XLS file writerpaho-mqtt: MQTT interfacegrapheme: Unicode grapheme supportInstallationCheck 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-xlwtOptionally add fonts, PDF viewer and MQTT broker:$ sudo apt install tex-gyre fonts-noto evince mosquittoCreate a virtualenv for metarace and associated packages:$ python3 -m venv --system-site-packages venvActivate the virtualenv and install packages with pip:$ source ./venv/bin/activate
(venv) $ pip3 install metarace