Name | aika JSON |
Version |
0.1.0
JSON |
| download |
home_page | |
Summary | Date- and time-range parsing utilities for multiple languages |
upload_time | 2023-08-23 21:06:34 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.8 |
license | LGPL 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"
}