Способ хранения относительных дат в строковой форме

У меня есть планировщик, который будет запускать задачу T , а некоторые из параметров T очень зависят от даты. Например, если во вторник выполняется T , некоторые из параметров будут следующими:

param1 = datetime('Monday at 1pm')
param2 = datetime('Tuesday at 1am')

Параметры могут меняться в зависимости от того, когда выполняется T . Так, например, если он выполняется в воскресенье, параметры могут быть:

param1 = datetime('Saturday at 12pm')
param2 = datetime('Sunday at 12pm')

И так далее. Идея заключается в том, что даты относятся к тому, когда выполняется T , но я не могу использовать timedelta </​​code>, потому что я точно не знаю, когда задача будет запущена, поэтому Я хочу сохранить абсолютный контроль над датами.

Теперь в коде, который будет запускаться T , есть небольшой пакет json, который задает параметры. Я нахожусь в процессе написания крошечного языка сценариев, который позволил бы мне указать относительную дату. Это будет выглядеть примерно так:

date1: { 
    'type': 'datetime', 
    'source': 'composite', 
    'value': '(Yn)-(Mn)-(Dn)-(Hn)-(Nn)'
}

Строка value будет проанализирована и основана на том, что находится в скобках, параметры будут скомпилированы. Так, например, если value имеет значение (Y: n) - (M: n) - (D: -1) - (H: 18) - (N: 00) , он будет строить дату с текущим годом, текущим месяцем, предыдущим днем, 18:00.

Я пытаюсь изобрести колесо с некоторыми из этого материала. Существуют ли библиотеки, которые облегчат мою жизнь?


EDIT: Похож на Относительная дельта от Date-Utils делает именно то, что я описывал выше!

1
nl ja de
@ire_and_curses: Это вроде как: потому что у меня много разных типов задач, вместо многих повторяющихся задач у меня есть обычная регулярная задача, которая увольняет отличные задания. Но это не проблема: мне нужно иметь возможность точно указать время в параметрах. Задача может выполняться с небольшим джиттером.
добавлено автор Goro, источник
Я не могу использовать timedelta </​​code> ... - разве планировщик не знает, когда он захочет запустить задачу?
добавлено автор ire_and_curses, источник

1 ответы

For human readable date/time parsing, you may use parsedatetime

Я бы сохранил «удобочитаемую» строку как есть и оценил ее при необходимости.

3
добавлено
Это похоже на мощную библиотеку, но она не очень хорошо документирована :(
добавлено автор Goro, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

Django
Django
1 931 участник(ов)

Полезная информация и правила: https://github.com/django-ru/faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

django_jobs
django_jobs
916 участник(ов)

Поиск и предложения работы (Django) Правила: https://t.me/django_jobs/4 Вакансии с тегом #job улетают в канал @django_jobs_board Вопросы к @amureki Основной чат @pydjango

Django
Django
733 участник(ов)

Веб-фреймворк для перфекционистов с дедлайнами. Наша группа на vk: https://vk.com/django_framework В Discord: https://discord.me/django_framework по всем вопросам @MechanisM

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community

django flood
django flood
71 участник(ов)

Флудилка джангистов Пока без правил