Я изучаю, как реализовать удобное для пользователя текстовое представление правил повторения, аналогичное методам toText()
и fromText()
rrule.js; однако, я хотел бы реализовать его в здании Python на dateutil.rrule.Выполнение отношения эквивалентности для правил повторения (rrules)
Тестирование таких методов, проверяющих, что они являются «обратными» друг друга, то есть вызовом одного из результатов другого и проверкой того, что результат эквивалентен исходному входу. Это подводит меня к вопросу: что это значит для двух объектов rrule
?
Последняя версия dateutil.rrule
, 2.6.0, как представляется, не имеет __eq__
метод для rrule
класса (см source code). Эквивалентность также не кажется столь же тривиальной, как эквивалентность всех атрибутов, потому что иногда другой параметр freq
может по-прежнему приводить к одинаковым рецидивам. (Например, freq=DAILY
и freq=WEEKLY
приводит к тому же времени повторения, если выбрано byweekday=FR
, см. Скриншоты ниже от rrule.js demo).
Кто-нибудь знает о реализации отношения эквивалентности для rrules? (Это не должно быть в Python).
Действительно, в rrule.js 'rrule', похоже, не может быть точно восстановлен из его строкового представления, поскольку последний опускает время начала (параметр' dtstart'). Возможно, будет достаточно реализовать только преобразование «rule => text_version». –