Skip to main content

OpenVoiceOS's multilingual text parsing and formatting library

Project description

ovos-date-parser

ovos-date-parser is a comprehensive library for multilingual date and time parsing, extraction, and formatting, designed to handle a range of human-readable date, time, and duration expressions.

Features

  • Date and Time Extraction: Extract specific dates and times from natural language phrases in various languages.
  • Duration Parsing: Parse phrases that indicate a span of time, such as "two hours and fifteen minutes."
  • Friendly Time Formatting: Format time for human-friendly output, supporting both 12-hour and 24-hour formats.
  • Relative Time Descriptions: Generate relative descriptions (e.g., "tomorrow," "in three days") for given dates.
  • Multilingual Support: Includes extraction and formatting methods for multiple languages, such as English, Spanish, French, German, and more.

Installation

pip install ovos-date-parser

Usage

Date and Time Extraction

Extract specific dates and times from a phrase. This function identifies date-related terms in natural language and returns both the datetime object and any remaining text.

from ovos_date_parser import extract_datetime

result = extract_datetime("Meet me next Friday at 3pm", lang="en")
print(result)  # (datetime object, "at 3pm")

Duration Extraction

Identify duration phrases in text and convert them into a timedelta object. This can parse common human-friendly duration expressions like "30 minutes" or "two and a half hours."

from ovos_date_parser import extract_duration

duration, remainder = extract_duration("It will take about 2 hours and 30 minutes", lang="en")
print(duration)  # timedelta object
print(remainder)  # "about"

Formatting Time

Generate a natural-sounding time format suitable for voice or display in different languages, allowing customization for speech or written text.

from ovos_date_parser import nice_time
from datetime import datetime

dt = datetime.now()
formatted_time = nice_time(dt, lang="en", speech=True, use_24hour=False)
print(formatted_time)  # "three o'clock"

Relative Time Descriptions

Create relative phrases for describing dates and times in relation to the current moment or a reference datetime.

from ovos_date_parser import nice_relative_time
from datetime import datetime, timedelta

relative_time = nice_relative_time(datetime.now() + timedelta(days=1), datetime.now(), lang="en")
print(relative_time)  # "tomorrow"

Languages Supported

ovos-date-parser supports a wide array of languages, each with its own set of methods for handling natural language time expressions.

Parse

Language extract_duration extract_datetime
az
ca
cs
da
de
en
es
eu
fa
fr
hu
it
nl
pl
pt
ru
sv
uk

Format

Language nice_date
nice_date_time
nice_day
nice_weekday
nice_month
nice_year
get_date_strings
nice_time nice_relative_time nice_duration
az
ca
cs
da
de
en
es
eu
fa
fr
hu
it
nl
pl
pt
ru
sv
sl
uk

Related Projects

License

This project is licensed under the Apache 2.0 License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ovos-date-parser-0.0.2a1.tar.gz (118.5 kB view details)

Uploaded Source

Built Distribution

ovos_date_parser-0.0.2a1-py3-none-any.whl (164.0 kB view details)

Uploaded Python 3

File details

Details for the file ovos-date-parser-0.0.2a1.tar.gz.

File metadata

  • Download URL: ovos-date-parser-0.0.2a1.tar.gz
  • Upload date:
  • Size: 118.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for ovos-date-parser-0.0.2a1.tar.gz
Algorithm Hash digest
SHA256 0ace16b66215b3bc3d90339170a2d104f7d7ede703c1f488d19b8c66c1111be5
MD5 f7fabdd7955a9f680476f38634a33a9f
BLAKE2b-256 3fb3fd8a83b32aedfef4372300869f046aed6207aaef0c470de495efa47a76c8

See more details on using hashes here.

File details

Details for the file ovos_date_parser-0.0.2a1-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_date_parser-0.0.2a1-py3-none-any.whl
Algorithm Hash digest
SHA256 2c4e73f094a28ec5f3a12a10d34f596c3679b385cb0a308d5155cbc04f1d288e
MD5 27da184a19bc7571c9c846f540d2fbff
BLAKE2b-256 7c7e140380d30c4742073ecf6f4d3a20d1f892c5884442af5d775c0375749e09

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page