calgebra — алгебра множеств для календарей в Python — видео, канал «Zen of Python» ▶ видео

calgebra — алгебра множеств для календарей в Python



Есть задача: найти время, когда вся команда свободна, с учётом Google Calendar, .ics файлов и рабочих часов. Обычно это превращается в ад из циклов и условий. Новый проект решает это через операторы множеств — как будто пишешь SQL, но для временных интервалов.

Как это работает
from calgebra import day, time_of_day, HOUR

# Рабочие часы
work_hours = day("weekday") & time_of_day(start=9*HOUR, duration=8*HOUR)

# Календари команды
team = alice | bob | charlie

# Свободное время для встречи от 2 часов
free = (work_hours - team).filter(hours >= 2)

Операторы: | (объединение), & (пересечение), - (разность), ~ (дополнение). Ленивые вычисления — выражение выполняется только при слайсинге.

➡️ Чем отличается от аналогов

🔘icalendar / ics.py — только парсят .ics, calgebra добавляет запросы и композицию
🔘gcsa — CRUD для Google Calendar, calgebra даёт set-операции поверх
🔘dateutil.rrule — генерирует повторения, но не умеет пересекать/вычитать таймлайны

➡️ Фичи

🔘Поддержка RFC 5545 (повторяющиеся события)
🔘Фильтры по длительности, метаданным, кастомным атрибутам
🔘Импорт/экспорт .ics через file_to_timeline и timeline_to_file
🔘Интеграция с Google Calendar
🔘Type hints для IDE и агентов

➡️ Кому пригодится

Разработчикам scheduling-фич, интеграций с календарями, систем проверки availability. Автор отмечает, что API удобен для ИИ-агентов благодаря композируемости и типизации.

📎 Код на GitHub, на видео демо работы ИИ-агента с calgebra

@zen_of_python
Просмотры: 25
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти