Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wroberts/pytimeparse
A small Python module to parse various kinds of time expressions.
https://github.com/wroberts/pytimeparse
parser python python-2 python-3 time
Last synced: 23 days ago
JSON representation
A small Python module to parse various kinds of time expressions.
- Host: GitHub
- URL: https://github.com/wroberts/pytimeparse
- Owner: wroberts
- License: mit
- Created: 2014-02-01T12:12:16.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2021-11-18T21:44:26.000Z (almost 3 years ago)
- Last Synced: 2024-05-15T12:51:30.694Z (6 months ago)
- Topics: parser, python, python-2, python-3, time
- Language: Python
- Size: 43.9 KB
- Stars: 280
- Watchers: 8
- Forks: 37
- Open Issues: 14
-
Metadata Files:
- Readme: README.rst
- License: LICENSE.rst
Awesome Lists containing this project
- starred-awesome - pytimeparse - A small Python module to parse various kinds of time expressions. (Python)
README
=====================================
pytimeparse: time expression parser
=====================================.. image:: https://travis-ci.org/wroberts/pytimeparse.svg?branch=master
:target: https://travis-ci.org/wroberts/pytimeparse
:alt: Travis CI build status.. image:: https://coveralls.io/repos/wroberts/pytimeparse/badge.svg
:target: https://coveralls.io/r/wroberts/pytimeparse
:alt: Test code coverage.. image:: https://img.shields.io/pypi/v/pytimeparse.svg
:target: https://pypi.python.org/pypi/pytimeparse/
:alt: Latest VersionCopyright (c) 2014 Will Roberts
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')
72A 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 .