Skip to main content

Date- and time-range parsing utilities for multiple languages

Project description

Aika

About

Aika provides date- and time-range parsing utilities for multiple languages. It is based on arbitrary-dateparser and DateRangeParser, and aims for DWIM-like convenience and usefulness.

Currently, it supports English and German, and welcomes contributions for other languages.

Usage

from aika import DaterangeExpression

dr = DaterangeExpression()
print("Range: ", dr.parse("Sat - Tue"))
print("Single:", dr.parse_single("1. Juli"))
Range:  (datetime(2023, 8, 26, 0, 0), datetime(2023, 8, 29, 23, 59, 59, 999999))
Single: datetime(2023, 7, 1, 0, 0)

Example Expressions

Aika understands all types of date-/time-range expressions like provided by the packages it is based upon, and works with single dates too. This section enumerates a few examples.

arbitrary-dateparser » English

  • now
  • today
  • last week to next friday
  • tomorrow - next week
  • next month
  • december
  • July to December
  • jul 1 to jul 7
  • Sat - Tue
  • in March
  • 2024-08-20

arbitrary-dateparser » German

  • jetzt
  • heute
  • letzte woche bis nächsten freitag
  • morgen - nächste woche
  • nächster monat
  • dezember
  • Juli-Dezember
  • jul 1 to jul 7
  • von Samstag bis Dienstag
  • im März
  • 20. August 2024
  • 20.8.2024
  • 20.08.2024

DateRangeParser » English

  • 1st july
  • March 2024
  • July to December
  • 27th-29th June 2010
  • 30 May to 9th Aug
  • 3rd Jan 1980 -- 2nd Jan 2013
  • Wed 23 Jan -> Sat 16 February 2013
  • Tuesday 29 May - Sat 2 June 2012
  • From 1 to 9 Jul
  • jul 1 to jul 9
  • 14th July 1988
  • Jan 2011 - Mar 2014
  • 07:00 Tue 7th June - 17th July 3:30pm
    Caveat: Times will currently be ignored.

DateRangeParser » German

  • 1. Juli
  • 1. bis 7. Juli
  • März 2024
  • Juli bis Dezember
  • Vom 3. März bis zum 9. März 2024

Advanced Usage

By specifying default_start_time and default_end_time arguments, the daterange boundaries will snap to the given times when they otherwise would be "beginning of day" (00:00) or "end of day" (23:59).

import datetime as dt
from aika import DaterangeExpression

dr = DaterangeExpression(
    default_start_time=dt.time(hour=9),
    default_end_time=dt.time(hour=17),
)
dr.parse("Sat - Tue")
(datetime(2023, 8, 26, 9, 0), datetime(2023, 8, 29, 17, 0))

Troubleshooting

If you see an error message like locale.Error: unsupported locale setting for code like this,

locale.setlocale(locale.LC_ALL, "de_DE.UTF-8")

you will need to generate the German locales.

apt-get update
apt-get install --yes tzdata locales
locale-gen de_DE.UTF-8

Setup

Acquire source code and install development sandbox.

git clone https://github.com/panodata/aika
cd aika
python3 -m venv .venv
source .venv/bin/activate
pip install --editable='.[develop,docs,test]'

Run linters and software tests:

source .venv/bin/activate
poe check

Etymology

Aika means "time" in the Finnish language.

Acknowledgements

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

aika-0.1.0.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

aika-0.1.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file aika-0.1.0.tar.gz.

File metadata

  • Download URL: aika-0.1.0.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/65.6.3 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.16

File hashes

Hashes for aika-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3b9b5d879865aaecd0222abeffb0fdec1da6915eaaf84a5614f58a4077e448e5
MD5 82f04c46940abf1dcd4f9ba2e41472c2
BLAKE2b-256 34422c2f88ea9d41f85c87056825bf8481d1d93d4cff5ba11b78cf9a7538febd

See more details on using hashes here.

File details

Details for the file aika-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aika-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/65.6.3 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.16

File hashes

Hashes for aika-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 296f89cde5820d5bb152b9eda10e9717651c13b46e8eef8cb7598b1068237448
MD5 8df3be110db3f6c472d3d7a38a15a7e1
BLAKE2b-256 9da6d19c6b039fe47eb7fdd85971b18279f60e4b4041f7ddcb956032f9debd64

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