Recognize date and time in russian text and return datetime.datetime.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
rutimeparser
.gitignore
.style.yapf
LICENSE
MANIFEST.in
README.md
README.rst
deploy.sh
manual_test.py
setup.py
test_strings
tests.py

README.md

RuTimeParser

Данный модуль содержит базовый класс и упрощающие работу с ним функции для извлечения даты и времени из текста на русском языке.

Установка

sudo pip3 install rutimeparser

Использование

Примеры ниже приведены для 2 апреля 2017 года.

Извлечение даты и времени:

>>> from rutimeparser import parse
>>> parse('завтра')
datetime.date(2017, 4, 3)
>>> parse('завтра утром')
datetime.datetime(2017, 4, 3, 9, 0)
>>> parse('Напомни мне завтра утром составить список дел.')
datetime.datetime(2017, 4, 3, 9, 0)

Извлечение текста, не относящегося к дате и времени:

>>> from rutimeparser import get_clear_text, get_last_clear_text
>>> get_clear_text('Напомни мне завтра утром составить список дел.')
'напомни мне составить список дел'
>>> get_last_clear_text('Напомни мне завтра утром составить список дел.')
'составить список дел'

Неявные ситуации

  • утром - в 09:00
  • днём - в 15:00
  • вечером - в 21:00
  • ночью - в 03:00
  • на следующей неделе - на следующей неделе в понедельник.
  • через неделю - ровно через 7 суток.
  • через неделю утром - через 7 дней утром.
  • в следующем месяце - 1 число следующего месяца.

Больше примеров в tests.py

API reference

Параметры rutimeparser.parse:

  • words (str, list, tuple) -- Строка с текстом или список слов. Параметр является необязательным, т.к. может быть передан непосредственно в метод parse.
  • tz (str) -- Название часового пояса. Если не указано, возвращается наивное время.
  • now (datetime.datetime) -- От какого момента считать текущее время
  • allowed_results (list, tuple) -- Список объектов, которые могут быть возвращены методом parse. Возможные значения -- datetime, date, time, None.
  • default_time (datetime.time) -- Время по умолчанию. Используется только в том случае, если из текста удалось получить только date, но необходимо вернуть datetime. По умолчанию 09:00.
  • default_datetime (datetime.datetime) -- Дата и время по умолчанию. Возвращается методом parse, если в тексте не удалось найти значение, подходящее под allowed_results. По умолчанию равен значению параметра now.

TODO

  • Перейти на pymorphy
  • Добавить поддержку AM/PM (например, "в два часа дня")