Перейти к содержанию

Обновления

Модуль работы со списком обновлений.

WeekUpdatesT = list[dict[str, list[dict[str, Any]]]] module-attribute

UpdateData

Bases: TypedDict

Что представляет собой запись об обновлении расписания.

start_time: int instance-attribute

end_time: int instance-attribute

updates: WeekUpdatesT instance-attribute

compact_updates(updates: list[UpdateData]) -> UpdateData

Упаковывает несколько записей об обновлениях в одну.

Используется чтобы совместить несколько записей об изменениях. Например чтобы показать все изменения в расписании за неделю. Или использовать при получении обновлений расписания для пользователя.

Правила совмещения:

  • Если урока ранее не было -> добавляем урок.
  • Если Урок A, сменился на B, а после снова на A -> удаляем урок.
  • Если A -> B, B -> C, то A => C.
  • Иначе добавить запись.