Я соглашаюсь, распределяя Ваш код, поскольку яйцо является отличным способом сохранить организованным. Что могло быть более организовано, чем однофайловое, содержащее весь код и метаданные, в которых Вы будете когда-либо нуждаться. Изменение способа, которым работает компилятор байт-кода, только собирается вызвать беспорядок.
, Если Вам действительно не нравится местоположение тех pyc файлов, альтернатива должна работать от папки только для чтения. Так как Python не будет в состоянии записать, никакие pyc файлы никогда не делаются. Хит Вы, которые взятие - то, что каждый файл Python должен будет быть перекомпилирован, как только это загружается, независимо от того, изменили ли Вы его или нет. Это означает, что Ваше время запуска будет намного хуже.
Я бы посоветовал хранить сведения о первом происшествии в одной таблице (запланированные задачи), а затем сведения о повторном возникновении (повторяющиеся задачи) в другой.
Тогда у меня может возникнуть соблазн обновить таблица запланированных задач со следующим событием после завершения каждой задачи.
Что касается макета таблицы, приблизительный набросок будет следующим:
[ScehduledTasks]
TaskId (первичный ключ)
Описание, детали и т.д ...
Дата и время начала
Дата и время окончания
[RecurringTasks]
TaskId (внешний ключ)
Частота : ежедневно, еженедельно, ежемесячно или ежегодно.
DayNo : в какой день запускать (1-7 для еженедельно, 1-31 для ежемесячно, 1-365 для ежегодного)
Интервал : каждые x недель, месяцев и т. Д.
WeekOfMonth : первая, вторая, третья и т. Д. Если заполнено, то DayNo указывает день недели.
MonthOfYear : 1-12.
EndDatetime : дата последнего выполнения
событий : количество раз, которое необходимо выполнить. Если это и предыдущее значение равны нулю, то работать будет вечно.
Очевидно, что некоторые поля будут пустыми в зависимости от того, как была настроена задача, но я думаю, что вышесказанное охватывает все, что вам нужно для эмуляции задач в Outlook.