"""Étape de comparaison de l'agenda réel avec l'agenda théorique.""" from __future__ import annotations from pronote_sync.models.diff import AgendaDiff from pronote_sync.models.pronote import PronoteData from pronote_sync.sync.diff import AgendaComparator def compare_step(comparator: AgendaComparator | None, data: PronoteData) -> AgendaDiff: """Compare l'agenda ou retourne un diff vide si la comparaison est désactivée. :param comparator: Comparateur configuré, ou ``None`` sans agenda théorique. :param data: Données Pronote normalisées. :return: Diff d'agenda pour la date cible. :rtype: AgendaDiff """ if comparator is None: return AgendaDiff(target_date=data.target_date) return comparator.compare(data.lessons, data.target_date)