aika


Nameaika JSON
Version 0.1.0 PyPI version JSON
download
home_page
SummaryDate- and time-range parsing utilities for multiple languages
upload_time2023-08-23 21:06:34
maintainer
docs_urlNone
author
requires_python>=3.8
licenseLGPL 3, EUPL 1.2
keywords open data public transport routing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```python
from aika import DaterangeExpression

dr = DaterangeExpression()
print("Range: ", dr.parse("Sat - Tue"))
print("Single:", dr.parse_single("1. Juli"))
```
```python
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
  <br>**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).

```python
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")
```
```python
(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,
```python
locale.setlocale(locale.LC_ALL, "de_DE.UTF-8")
```

you will need to generate the German locales.
```shell
apt-get update
apt-get install --yes tzdata locales
locale-gen de_DE.UTF-8
```


## Setup

Acquire source code and install development sandbox.
```shell
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:
```shell
source .venv/bin/activate
poe check
```


## Etymology

Aika means "time" in the Finnish language.


## Acknowledgements

- [Michael Phelps] for conceiving [arbitrary-dateparser].
- [Robin Wilson] and contributors for conceiving and maintaining [DateRangeParser].


[arbitrary-dateparser]: https://pypi.org/project/arbitrary-dateparser/
[DateRangeParser]: https://pypi.org/project/DateRangeParser/
[DWIM]: https://en.wikipedia.org/wiki/DWIM
[Michael Phelps]: https://github.com/nottheswimmer
[Robin Wilson]: https://github.com/robintw

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "aika",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "open data,public transport,routing",
    "author": "",
    "author_email": "Andreas Motl <andreas.motl@panodata.org>, Richard Pobering <richard.pobering@panodata.org>",
    "download_url": "https://files.pythonhosted.org/packages/34/42/2c2f88ea9d41f85c87056825bf8481d1d93d4cff5ba11b78cf9a7538febd/aika-0.1.0.tar.gz",
    "platform": null,
    "description": "# Aika\n\n\n## About\n\nAika provides date- and time-range parsing utilities for multiple languages.\nIt is based on [arbitrary-dateparser] and [DateRangeParser], and aims for\n[DWIM]-like convenience and usefulness.\n\nCurrently, it supports English and German, and welcomes contributions for\nother languages.\n\n\n## Usage\n\n```python\nfrom aika import DaterangeExpression\n\ndr = DaterangeExpression()\nprint(\"Range: \", dr.parse(\"Sat - Tue\"))\nprint(\"Single:\", dr.parse_single(\"1. Juli\"))\n```\n```python\nRange:  (datetime(2023, 8, 26, 0, 0), datetime(2023, 8, 29, 23, 59, 59, 999999))\nSingle: datetime(2023, 7, 1, 0, 0)\n```\n\n\n### Example Expressions\n\nAika understands all types of date-/time-range expressions like provided by the\npackages it is based upon, and works with single dates too. This section enumerates\na few examples.\n\n#### arbitrary-dateparser \u00bb English\n\n- now\n- today\n- last week to next friday\n- tomorrow - next week\n- next month\n- december\n- July to December\n- jul 1 to jul 7\n- Sat - Tue\n- in March\n- 2024-08-20\n\n#### arbitrary-dateparser \u00bb German\n\n- jetzt\n- heute\n- letzte woche bis n\u00e4chsten freitag\n- morgen - n\u00e4chste woche\n- n\u00e4chster monat\n- dezember\n- Juli-Dezember\n- jul 1 to jul 7\n- von Samstag bis Dienstag\n- im M\u00e4rz\n- 20\\. August 2024\n- 20.8.2024\n- 20.08.2024\n\n#### DateRangeParser \u00bb English\n\n- 1st july\n- March 2024\n- July to December\n- 27th-29th June 2010\n- 30 May to 9th Aug\n- 3rd Jan 1980 -- 2nd Jan 2013\n- Wed 23 Jan -> Sat 16 February 2013\n- Tuesday 29 May - Sat 2 June 2012\n- From 1 to 9 Jul\n- jul 1 to jul 9\n- 14th July 1988\n- Jan 2011 - Mar 2014 \n- 07:00 Tue 7th June - 17th July 3:30pm\n  <br>**Caveat**: Times will currently be ignored.\n\n#### DateRangeParser \u00bb German\n\n- 1\\. Juli\n- 1\\. bis 7. Juli\n- M\u00e4rz 2024\n- Juli bis Dezember\n- Vom 3. M\u00e4rz bis zum 9. M\u00e4rz 2024\n\n\n## Advanced Usage\n\nBy specifying `default_start_time` and `default_end_time` arguments, the\ndaterange boundaries will snap to the given times when they otherwise would be\n\"beginning of day\" (00:00) or \"end of day\" (23:59).\n\n```python\nimport datetime as dt\nfrom aika import DaterangeExpression\n\ndr = DaterangeExpression(\n    default_start_time=dt.time(hour=9),\n    default_end_time=dt.time(hour=17),\n)\ndr.parse(\"Sat - Tue\")\n```\n```python\n(datetime(2023, 8, 26, 9, 0), datetime(2023, 8, 29, 17, 0))\n```\n\n\n## Troubleshooting\n\nIf you see an error message like `locale.Error: unsupported locale setting` for\ncode like this,\n```python\nlocale.setlocale(locale.LC_ALL, \"de_DE.UTF-8\")\n```\n\nyou will need to generate the German locales.\n```shell\napt-get update\napt-get install --yes tzdata locales\nlocale-gen de_DE.UTF-8\n```\n\n\n## Setup\n\nAcquire source code and install development sandbox.\n```shell\ngit clone https://github.com/panodata/aika\ncd aika\npython3 -m venv .venv\nsource .venv/bin/activate\npip install --editable='.[develop,docs,test]'\n```\n\nRun linters and software tests:\n```shell\nsource .venv/bin/activate\npoe check\n```\n\n\n## Etymology\n\nAika means \"time\" in the Finnish language.\n\n\n## Acknowledgements\n\n- [Michael Phelps] for conceiving [arbitrary-dateparser].\n- [Robin Wilson] and contributors for conceiving and maintaining [DateRangeParser].\n\n\n[arbitrary-dateparser]: https://pypi.org/project/arbitrary-dateparser/\n[DateRangeParser]: https://pypi.org/project/DateRangeParser/\n[DWIM]: https://en.wikipedia.org/wiki/DWIM\n[Michael Phelps]: https://github.com/nottheswimmer\n[Robin Wilson]: https://github.com/robintw\n",
    "bugtrack_url": null,
    "license": "LGPL 3, EUPL 1.2",
    "summary": "Date- and time-range parsing utilities for multiple languages",
    "version": "0.1.0",
    "project_urls": {
        "changelog": "https://github.com/panodata/aika/blob/main/CHANGES.md",
        "documentation": "https://github.com/panodata/aika",
        "homepage": "https://github.com/panodata/aika",
        "repository": "https://github.com/panodata/aika"
    },
    "split_keywords": [
        "open data",
        "public transport",
        "routing"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9da6d19c6b039fe47eb7fdd85971b18279f60e4b4041f7ddcb956032f9debd64",
                "md5": "8df3be110db3f6c472d3d7a38a15a7e1",
                "sha256": "296f89cde5820d5bb152b9eda10e9717651c13b46e8eef8cb7598b1068237448"
            },
            "downloads": -1,
            "filename": "aika-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8df3be110db3f6c472d3d7a38a15a7e1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 14506,
            "upload_time": "2023-08-23T21:06:32",
            "upload_time_iso_8601": "2023-08-23T21:06:32.005772Z",
            "url": "https://files.pythonhosted.org/packages/9d/a6/d19c6b039fe47eb7fdd85971b18279f60e4b4041f7ddcb956032f9debd64/aika-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "34422c2f88ea9d41f85c87056825bf8481d1d93d4cff5ba11b78cf9a7538febd",
                "md5": "82f04c46940abf1dcd4f9ba2e41472c2",
                "sha256": "3b9b5d879865aaecd0222abeffb0fdec1da6915eaaf84a5614f58a4077e448e5"
            },
            "downloads": -1,
            "filename": "aika-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "82f04c46940abf1dcd4f9ba2e41472c2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 17261,
            "upload_time": "2023-08-23T21:06:34",
            "upload_time_iso_8601": "2023-08-23T21:06:34.255877Z",
            "url": "https://files.pythonhosted.org/packages/34/42/2c2f88ea9d41f85c87056825bf8481d1d93d4cff5ba11b78cf9a7538febd/aika-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-23 21:06:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "panodata",
    "github_project": "aika",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "aika"
}
        
Elapsed time: 1.95826s