diff --git a/mo/util.py b/mo/util.py index 7021284e21d63b3c613075e0dd375508a1859d06..aaf520c6d5d01c2eef81b4bd87e12957ec2e4a14 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