Parses opening hours from various human-readable strings into a standard JSON format
Project description
Python Opening Hours parser
This library parses opening hours from various human-readable strings such as "Mon- Fri 9:00am - 5:30pm" into a more standard JSON format that can be processed more easily.
The format
opening_hours = [
{
"day": "monday",
"opens": "9:00",
"closes": "17:00"
},
//..
]
Installation
pip install jsonify-opening-hours
Usage
The simplest example is just printing the JSON for an opening hours string:
from parse_opening_hours import OpeningHours
print(OpeningHours.parse("Mon- Fri 9:00am - 5:30pm").json())
This should give you the below output:
[
{'day': 'monday', 'opens': '9:00', 'closes': '17:30'},
{'day': 'tuesday', 'opens': '9:00', 'closes': '17:30'},
{'day': 'wednesday', 'opens': '9:00', 'closes': '17:30'},
{'day': 'thursday', 'opens': '9:00', 'closes': '17:30'},
{'day': 'friday', 'opens': '9:00', 'closes': '17:30'}
]
This has been tested using Python 3.8.5
Environment variables
Setting the environment variable OH_DEBUG to a value of Y will set the root logging level to debug and will cause log entries to appear in stdout for debugging purposes
Troubleshooting
Assumptions
When specifying a time without AM or PM indicators, you may get an error that reads TypeError: Cannot convert a time of unknown type (AM, PM or 24H) without assuming its type.. To resolve this, pass assume_type=TimeType.AM when calling the parse() function. This will use AM in place of an unknown AM or PM designation. In cases like the string "9-5", if the second value in the range (in this case the 5 is smaller than the first (i.e. the 9) then it will be converted to PM automatically
Tests and Coverage
run pytet and generate coverage database pipenv run pytest --cov=./
show coverage report: pipenv run coverage report
Build and Release
This is pretty much here so I can copy-paste the commands to make a new release.
build: python setup.py sdist bdist_wheel
check: twine check dist/*
upload: twine upload dist/*
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jsonify-opening-hours-0.3.1.tar.gz.
File metadata
- Download URL: jsonify-opening-hours-0.3.1.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75a97e0eb519b24f3e59a7063ecf1ad465bb220d973a62d991b2601f6487ab80
|
|
| MD5 |
2108388b2d2da288c67239e0c2ba10c0
|
|
| BLAKE2b-256 |
643e0559171008c8a0aa47abb96d6dcc3bbf28e49069efa724919d6328722661
|
File details
Details for the file jsonify_opening_hours-0.3.1-py3-none-any.whl.
File metadata
- Download URL: jsonify_opening_hours-0.3.1-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e6e5270dbea813b02f2135d170666886ffb203cbe7a5a57140934488377f3d8
|
|
| MD5 |
3394bcc160b21cfc84f66a8a490192e6
|
|
| BLAKE2b-256 |
89efa932465d6628074e0bbb74b5d0bd8274552b7b7497e0c4b79c841848762e
|