RETIRED, further work has moved to Debian project infrastructure
Go to file
Will Roberts ee203778a9 .gitignore /.coverage 2015-03-24 13:31:11 +01:00
pytimeparse bump VERSION to 1.1.4 2015-02-18 17:05:56 +01:00
.gitignore .gitignore /.coverage 2015-03-24 13:31:11 +01:00
.travis.yml don't support py2.6 2015-02-18 17:04:18 +01:00
MANIFEST.in more detailed setup.py and include VERSION file 2015-02-18 13:17:13 +01:00
README.rst README: add pypip.in badge for latest version 2015-03-24 12:53:31 +01:00
setup.py setup: remove py2.6 from classifiers 2015-02-18 17:09:16 +01:00

README.rst

pytimeparse: time expression parser

Travis CI build status

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 .