import re from datetime import date def parse_training_date(raw_date: str) -> date: patterns = [ r"^(?P[0-9]{2})\.(?P[0-9]{2})\.(?P[0-9]{4})*", r"^(?P[0-9]{4})\-(?P[0-9]{2})\-(?P[0-9]{2})*", r"^(?P[0-9]{4})\.(?P[0-9]{2})\.(?P[0-9]{2})*", r"^(?P[0-9]{2})\.(?P[0-9]{2})\.(?P[0-9]{4})*", ] for pattern in patterns: match = re.match(pattern, raw_date) if match: day = int(match.group("day")) month = int(match.group("month")) year = int(match.group("year")) return date(year, month, day) raise ValueError(f"Не удалось найти дату в строке: {raw_date}")