Dies ist ein (spartanisches) README fuer das Programm zu Auswertung der Turnierdaten. Die vollständige Dokumentation findet sich auf Nuclino unter:
https://app.nuclino.com/mswr/Task-board/Turniergrafik-Programm-Dokumentation-7ec03150-ca38-4f98-947d-15d38f079cb8
Es wird empfohlen, dieses Programm in einer virtuellen Umgebung auszuführen. Dies setzt mindestens Python 3.10 voraus, funktioniert aber auch mit neueren Versionen. Je nachdem, welche Version in den Paketquellen verfügbar ist, wird eine andere installiert, was aber für die Funktion des Programms unerheblich ist. Die benötigten Python-Pakete werden isoliert vom System-Python in einer virtuellen Umgebung (venv) installiert.
sudo apt install python3-pip python3-venv python3-dev mariadb-server libmariadb-devpython3 -m venv venv
source venv/bin/activate
pip install -r requirements_pip.txtStattdessen kann auch nur das Kommando pip install -r requirements_pip.txt
verwendet werden, um die benötigten Python-Pakete zu installieren.
Dann wird das Programm in der aktuellen Umgebung installiert, was aber
zu Konflikten mit anderen Python-Projekten und dem System-Python
führen kann. Daher wird die Verwendung einer virtuellen Umgebung
empfohlen, um die Abhängigkeiten isoliert zu halten.
Alternativ kann das Programm auch mit Conda (Link für alle Betriebssysteme) installiert werden. Nach der Installation von Miniconda (empfohlen) oder Anaconda wird eine Conda-Umgebung mit den notwendigen Paketen erstellt.
# Installieren von Miniconda in Linux (falls noch nicht installiert)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh | bash
# Erstelle eine Conda-Umgebung namens 'turniergrafik' mit den notwendigen Paketen
conda env create -f environment.yml
# Aktiviere die Conda-Umgebung
conda activate turniergrafikDas Programm wurde mit Python 3.11 entwickelt und getestet. Mit Conda wird empfohlen, eine Python-Version ab 3.11 zu verwenden, um Kompatibilitätsprobleme zu vermeiden.
Die Installation dieser Version kann je nach Betriebssystem unterschiedlich aussehen. Für die meisten Linux-Distributionen kann Python über den Paketmanager installiert werden. Für Windows und macOS kann es von der offiziellen Python-Website heruntergeladen und installiert werden.
Minimal sollte Python 3.10 installiert sein, was mit venv getestet ist. Falls diese Version nicht verfügbar ist, kann auch eine neuere Version installiert werden, da das Programm auch mit neueren Python-Versionen kompatibel ist. Es muss jedoch mindestens Python 3.10 verwenden werden, um sicherzustellen, dass das Programm ordnungsgemäß funktioniert.
Die Abhängigkeiten des Programms sind in der Datei requirements_pip.txt
(für pip) und requirements_conda.txt (für conda) aufgelistet.
Diese Dateien enthalten alle benötigten Pakete, die für die korrekte
Ausführung des Programms erforderlich sind. Sie können die Abhängigkeiten
mit dem folgenden Befehl installieren:
# Für pip
pip install -r requirements_pip.txt
# Für conda
conda install --file requirements_conda.txtDas Programm ist so konzipiert, dass es die Daten der letzten Jahre
automatisch aus dem 'archiv'-Ordner im Programmordner lädt. Dieser Ordner
sollte die Daten der letzten Jahre enthalten, die in der Datei
archiv.zip gepackt sind. Diese Datei kann aus dem Repository
geladen werden, oder sie kann bei Bedarf angefordert werden.
# Entpacken der archiv.zip-Datei in den Programmordner
unzip archiv.zip -d archiv/
# archiv.zip neu packen, falls neue Daten hinzugefügt wurden
zip -r archiv.zip archiv/-> Vor dem (allerersten) Start bzw. im Falle dessen, dass kein 'archiv'-Ordner im Programmordner liegt: Die gepackte Datei 'archiv.tar.xz' direkt in den Programmordner entpacken! Ansonsten muessen alle Daten der letzten Jahre neu geladen werden. Diese Datei liegt aktuell nicht im Repository, da sie zu gross ist. Sie kann aber bei Bedarf angefordert werden.
-> Zum Starten des Programms einfach die Datei 'turniergrafik.py' ausführen. Dies kann entweder durch einen Doppelklick auf die Datei oder durch Eingabe des Befehls in einem Terminal geschehen:
python3 turniergrafik.pyWICHTIG! Falls eine virtuelle Umgebung verwendet wird, muss diese zuerst vor dem jeweils Start des Programms aktiviert werden. Wenn ein neues Terminal geöffnet wird, muss die virtuelle Umgebung doch erneut aktiviert werden, da sie nur für die Dauer des Terminalfensters aktiv bleibt.
source venv/bin/activateAnalog, falls Conda zur Installation benutzt wurde, muss vor (jedem) ersten Start die entsprechende Environment geladen werden:
conda activate turniergrafikDas Programm kann mit verschiedenen Kommandozeilenargumenten gestartet werden,
um bestimmte Funktionen auszuführen oder das Verhalten des Programms zu ändern.
Wenn keine Argumente angegeben werden, wird das Programm mit den Einstellungen
aus der Konfigurationsdatei config.py gestartet und versucht, die
Turniergrafiken für den in der Konfiguration angegebenen Zeitraum zu erzeugen.
Wenn Argumente angegeben werden, haben diese Vorrang vor den
Einstellungen in der Konfigurationsdatei. Das Programm wird dann mit den
angegebenen Argumenten gestartet und versucht, die Turniergrafiken
für den angegebenen Zeitraum zu erzeugen. Wenn die Argumente nicht korrekt
sind oder nicht den erwarteten Werten entsprechen, wird eine Fehlermeldung
ausgegeben und das Programm wird beendet. Die Argumente können verwendet werden,
um den Zeitraum für die Turniergrafiken zu ändern oder um die zu betrachteten
Spieler zu ändern. Es ist wichtig, die Argumente korrekt anzugeben,
um sicherzustellen, dass das Programm die gewünschten Ergebnisse liefert.
python turniergrafik.py -h
usage: turniergrafik.py [-h] [-v] [-q QUOTIENT] [-p PARAMS] [-c CITIES] [-d DAYS] [-t TOURNAMENTS]
[-u USERS]
options:
-h, --help show this help message and exit
-v, --verbose increase output verbosity
-q QUOTIENT, --quotient QUOTIENT
calculate quotients etc (enter 2 players for quotient calculation)
-p PARAMS, --params PARAMS
Set params
-c CITIES, --cities CITIES
Set cities
-d DAYS, --days DAYS Set days
-t TOURNAMENTS, --tournaments TOURNAMENTS
Set tournaments
-u USERS, --users USERS
Set users
-l LONGTERM, --longterm LONGTERM
Week count for longterm graphics (left side)
-m MINWEEKS, --minweeks minweeks
Minimum weeks for longterm graphics (right side)
-w WEEKS, --weeks weeks
Week counts for shortterm graphics (right side),
comma separated list of integers-h/--help Zeigt die Hilfe an und beendet das Programm.
-v/--verbose Zeigt mehr (Debug)-Output bei der Ausführung an. Im Code erkennbar durch if verbose: print(x)
-q/--quotient Namen von zwei Spielern, fuer die Quoten, Differenzen und Summen in separaten Dateien ausgegeben werden sollen [Bsp: -q MSwr-MOS-Mix,MSwr-EZ-MOS]
-p/--params Parameter, die ausgewertet werden sollen, getrennt durch Kommas [Bsp: -p Sd1,Sd24,RR24]
-c/--cities Städtenamen als ID, Kürzel oder ganzer Name [Bsp: -c BER,4,Zürich]
-d/--days Tage, die ausgewertet werden sollen (Sa = Samstag, So = Sonntag) [Bsp: -d Sa,So]
-t/--tournaments Start- und Enddatum (einschließlich!) der auszuwertenden Turniere [Bsp: -t 03.01.2023,08.08.2025]
-u/--user Namen der Spieler, die betrachtet werden sollen [Bsp: -u MSwr-MOS-Mix,MSwr-EZ-MOS,MSwr-GFS-MOS]
Konfigurationen koennen, wie gehabt, in der 'config.py' geaendert werden. Die genauere Dokumentation der Konfigurationsmoeglichkeiten findet sich auf Nuclino unter:
https://app.nuclino.com/mswr/Task-board/Turniergrafik-Programm-Dokumentation-7ec03150-ca38-4f98-947d-15d38f079cb8#c6b2e