Python dateutil.rrule非常慢

时间:2009-08-26 19:03:11

标签: python calendar icalendar python-dateutil

我正在使用python dateutil模块来支持重复事件的日历应用程序。我非常喜欢使用rrulestr()函数解析ical rrules的能力。此外,使用rrule.between()获取给定时间间隔内的日期非常快。

但是,只要我尝试执行任何其他操作(即:list slices,before(),after(),...),一切都开始爬行。似乎dateutil尝试计算每个日期,即使我想要的是使用rrule.before(datetime.max)得到最后一个日期。

有没有办法避免这些不必要的计算?

1 个答案:

答案 0 :(得分:4)

我的猜测可能不是。 datetime.max之前的最后一个日期意味着你必须计算直到datetime.max的所有重复,并且这将合理地是很多重复。有可能为一些简单的重复添加快捷方式。例如,如果每年都在同一天,那么您实际上并不需要计算中间的重复。但是,如果你有必要的每一件事,例如,如果你有最大的重复,等等。但我想dateutil没有这些快捷方式。可靠地实施可能非常复杂。

请问为什么你需要在datetime.max之前找到最后一次重复?毕竟,未来将近八千年......: - )