From 5df7fe62028ec8d83f90c11b1a6f39fc5a9e5dca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Setni=C4=8Dka?= <setnicka@seznam.cz> Date: Sun, 21 Feb 2021 23:29:53 +0100 Subject: [PATCH] =?UTF-8?q?Funkce=20na=20normalizaci=20ro=C4=8Dn=C3=ADku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Normalizujeme na rok školní docházky. Nutné pro jednoznačné řazení výsledkovek. --- mo/util.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/mo/util.py b/mo/util.py index 7021284e..aaf520c6 100644 --- a/mo/util.py +++ b/mo/util.py @@ -184,3 +184,25 @@ def unlink_if_exists(name: str): os.unlink(name) except FileNotFoundError: pass + + +def normalize_grade(grade: str) -> int: + """Pokusí se převést třídu ve formátu 7 nebo 3/4 na číslo odpovídající + třídě na základní škole (maturitní ročník gymnázia je tedy 9+4 = 13). + * Základní škola: nic + * Gymnázia: /8, /6 nebo /4 + * Nerozpoznané ročníky a chyby při převodu: -1""" + try: + parts = grade.split('/') + if len(parts) == 1: + return int(parts[0]) + if len(parts) > 2: + return -1 + year = int(parts[0]) + school_type = int(parts[1]) + if school_type in (8, 6, 4): + return year + 13 - school_type + else: + return -1 + except ValueError: + return -1 -- GitLab