Вступить в клуб →
сложнаяpythonPostgreSQL в эксплуатации: репликация, бэкапы, HA

Какие бэкапы оставить по схеме «дневные плюс недельные»

Бэкапы делаются не чаще раза в день. Политика хранения: последние keep_daily бэкапов и по одному бэкапу на каждую из последних keep_weekly недель.

Напишите backups_to_keep(dates, keep_daily, keep_weekly).

  • dates — список дат бэкапов строками "ГГГГ-ММ-ДД", в произвольном порядке, без повторов.
  • Дневные: сохраняются keep_daily самых свежих бэкапов.
  • Недельные: бэкапы группируются по ISO-неделе — паре (ISO-год, номер недели) из date.isocalendar(). Берутся keep_weekly самых свежих недель, в которых есть бэкапы, и в каждой сохраняется самый свежий бэкап этой недели.
  • Верните отсортированный по возрастанию список дат, которые сохраняются хотя бы по одному правилу. Для пустого dates — пустой список.

заготовка решения

def backups_to_keep(dates, keep_daily, keep_weekly):
    # ваш код
    return None

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела