RETIRED, further work has moved to Debian project infrastructure
Go to file
Thomas Goirand 8a1ba11411 Uploading to unstable
Change-Id: I691fadf263a0fda2aec04fb6405e02c4a2255ee6
2016-10-04 14:28:19 +02:00
debian Uploading to unstable 2016-10-04 14:28:19 +02:00
pytimeparse pytimeparse/VERSION 1.1.5 2015-07-01 15:35:36 +02:00
.gitignore .gitignore /.coverage 2015-03-24 13:31:11 +01:00
.gitreview Add a .gitreview file 2016-09-20 10:07:41 +02:00
.travis.yml .travis.yml: add coveralls integration 2015-03-24 13:31:58 +01:00
MANIFEST.in more detailed setup.py and include VERSION file 2015-02-18 13:17:13 +01:00
README.rst README: add coveralls badge 2015-03-24 13:32:09 +01:00
setup.py Remove future usage 2015-06-25 12:15:05 +02:00

pytimeparse: time expression parser

Travis CI build status

Test code coverage

Latest Version

Copyright (c) 2014 Will Roberts <wildwilhelm@gmail.com>

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

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

The single function pytimeparse.timeparse.timeparse defined in the library (also available as pytimeparse.parse) 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. Give the user more flexibility over which characters to use as separators between fields in a time expression (e.g., + might be useful).
  2. Internationalisation?
  3. Wow, https://github.com/bear/parsedatetime .