A python durations parsing library.
Project description
durations_nlp
A python durations parsing library, providing a straight-forward API to parse duration string representations such as 1d
, 1 day 2 hours
or 2 days 3h 26m 52s
and convert them to numeric values.
What and Why
It's easier and more straight forward to read a duration expressed in natural language (at least for a human), as an expression rather than an amount. When writing configuration files for example:
interval: 3 hours
is easier to understand for a human than
interval: 10800 # seconds
Installation
durations_nlp
can be installed via pip:
$ pip install durations_nlp
Usage
To parse a duration string representation, just instantiate a Duration object and let it work for you. A Duration representation is composed of as many <value><scale>
pairs as you need to express it:
- A value is an integer amount.
- A scale is a duration unit in it's short or long form (both singular and plural).
- Duration pairs can be separated with sep characters and expressions such as
,
orand
Example Input
1d
2 days
2 days and 4 hours
4M, 22d and 6hours
Scales Reference
- Century:
c
,century
,centuries
- Decade:
D
,decade
,decades
- Year:
y
,year
,Year
- Month:
M
,month
,months
- Week:
w
,week
,weeks
- Day:
d
,day
,days
- Hour:
h
,hour
,hours
- Minute:
m
,minute
,minutes
- Second:
s
,second
,seconds
- Millisecond:
ms
,millisecond
,milliseconds
Usage Example
from durations_nlp import Duration
one_hour = "1hour"
one_hour_duration = Duration(one_hour)
one_hour_duration.to_seconds()
# >>> 3600.0
one_hour_duration.to_minutes()
# >>> 60.0
# You can even compose durations in their short
# and long variations
two_days_three_hours = "2 days, 3h"
two_days_three_hours_duration = Duration(two_days_three_hours)
two_days_three_hours_duration.to_seconds()
# >>> 183600.0
two_days_three_hours_duration.to_hours()
# >>> 51.0
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
File details
Details for the file durations_nlp-1.0.0.tar.gz
.
File metadata
- Download URL: durations_nlp-1.0.0.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.9 CPython/3.8.4 Linux/4.15.0-1077-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d08866fead45b237a10b7fce88bb4b494515f5dab58089165967e0a9f1705c88 |
|
MD5 | ff0beea154a2ce9a26b2eadd64a4453f |
|
BLAKE2b-256 | d18b3e95dda3e2f888ccf5ce9cde742aa75f29edeb42ea8eaf7a982a3d03d44c |
File details
Details for the file durations_nlp-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: durations_nlp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.9 CPython/3.8.4 Linux/4.15.0-1077-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e57933a82def8ef7cc08d6d76aac26d68c1419d6091e2760c6828ecb21afa06b |
|
MD5 | 454a8a5afca5c7db24731c01d081344d |
|
BLAKE2b-256 | adf56b41ecb5d6cf9c088c4a4266109ba2439133f143d817e95f6451dea04f37 |