RETIRED, further work has moved to Debian project infrastructure
Go to file
Will Roberts b7285cd25c bump VERSION to 1.1.4 2015-02-18 17:05:56 +01:00
pytimeparse bump VERSION to 1.1.4 2015-02-18 17:05:56 +01:00
.gitignore .gitignore /build/ 2015-02-18 16:34:13 +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 add travis badge to README 2015-02-18 17:04:25 +01:00
setup.py don't support py2.6 2015-02-18 17:04:18 +01:00

README.rst

pytimeparse: time expression parser

image

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 .