Skip to main content

durations_nlp

CircleCI codecov Downloads

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 , or and

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

durations_nlp-1.0.1.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

durations_nlp-1.0.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file durations_nlp-1.0.1.tar.gz.

File metadata

  • Download URL: durations_nlp-1.0.1.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

Hashes for durations_nlp-1.0.1.tar.gz
Algorithm Hash digest
SHA256 25a87a372ddabf5fb45ed1da8fc711a53a0236c2954dc9c51590cee35dbf3136
MD5 813457420833eea0bb5d6280defb6161
BLAKE2b-256 a182b07a77f35f4e96216b95eac3b474b4ecb724f89be8a57128497a7f6eaecd

See more details on using hashes here.

File details

Details for the file durations_nlp-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: durations_nlp-1.0.1-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

Hashes for durations_nlp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 91b411a2d92986c63c125c81b91181aed9ba70f5c9efded9401387783631f022
MD5 98bf74af0901f20fd6fd348e033aaa2b
BLAKE2b-256 670b393d5c30135849cc94993ddbb2a191e16cc38ff37e41cdf0d209ef6f991e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

1.0.0

2 files

0.4.1

2 files

0.4.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page