Skip to main content

Time expression parser.

Project description

Pipeline status https://badge.fury.io/py/pytimeparse2.svg

This is a pytimeparse based project with the aim of optimizing functionality and providing stable support.

Copyright (c) 2021 Sergey Klyuykov <onegreyonewhite@mail.ru>

Licensed under the MIT License (see source file pytimeparse2.py for details).

A small Python library to parse various kinds of time expressions, inspired by this StackOverflow question.

The single function pytimeparse2.parse defined in the library parses time expressions like the following:

  • 32m

  • 2h32m

  • 3d2h32m

  • 1w3d2h32m

  • 1w 3d 2h 32m

  • 1 w 3 d 2 h 32 m

  • 4:13

  • 4:13:02

  • 4:13:02.266

  • 2:04:13:02.266

  • 2 days, 4:13:02 (uptime format)

  • 2 days, 4:13:02.266

  • 5hr34m56s

  • 5 hours, 34 minutes, 56 seconds

  • 5 hrs, 34 mins, 56 secs

  • 2 days, 5 hours, 34 minutes, 56 seconds

  • 1.2 m

  • 1.2 min

  • 1.2 mins

  • 1.2 minute

  • 1.2 minutes

  • 172 hours

  • 172 hr

  • 172 h

  • 172 hrs

  • 172 hour

  • 1.24 days

  • 5 d

  • 5 day

  • 5 days

  • 5.6 wk

  • 5.6 week

  • 5.6 weeks

It returns the time as a number of seconds (an integer value if possible, otherwise a floating-point number):

>>> from pytimeparse import parse
>>> parse('1.2 minutes')
72

A number of seconds can be converted back into a string using the datetime module in the standard library, as noted in this other StackOverflow question:

>>> from pytimeparse import parse
>>> import datetime
>>> parse('1 day, 14:20:16')
138016
>>> str(datetime.timedelta(seconds=138016))
'1 day, 14:20:16'

Future work

  1. Speed up with Cython for some python versions.

  2. Use github actions for testing and releasing.

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

pytimeparse2-1.3.1.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

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

pytimeparse2-1.3.1-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file pytimeparse2-1.3.1.tar.gz.

File metadata

  • Download URL: pytimeparse2-1.3.1.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for pytimeparse2-1.3.1.tar.gz
Algorithm Hash digest
SHA256 197652648f58dd2e58064cd74ae35561f4f9a7bfdc807deee69f138fb3fa6bcf
MD5 f5984a055a1ad2136deba12d6dd8e75a
BLAKE2b-256 1bbd33c32d76a1dc55bfa087df56a20cc674b24884a0ad68ec4df198ca05fe93

See more details on using hashes here.

File details

Details for the file pytimeparse2-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: pytimeparse2-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for pytimeparse2-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f888f066dd218b95c430ad5e920e4363686008c9e286f9a9a5d95e6a5c2193fd
MD5 844906fdd9a1c1831b2d14661b131120
BLAKE2b-256 c2fec522453f459e8392acfc5e4bca78587815fc483e67d0883d395ddcc56cde

See more details on using hashes here.

Supported by

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