All Projects → wroberts → Pytimeparse

wroberts / Pytimeparse

Licence: mit
A small Python module to parse various kinds of time expressions.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pytimeparse

When
A natural language date/time parser with pluggable rules
Stars: ✭ 1,113 (+470.77%)
Mutual labels:  parser, time
Thepiratebay
💀 The Pirate Bay node.js client
Stars: ✭ 191 (-2.05%)
Mutual labels:  parser
Snapdragon
snapdragon is an extremely pluggable, powerful and easy-to-use parser-renderer factory.
Stars: ✭ 180 (-7.69%)
Mutual labels:  parser
Rufus Scheduler
scheduler for Ruby (at, in, cron and every jobs)
Stars: ✭ 2,223 (+1040%)
Mutual labels:  time
Atldotnet
Fully managed, portable and easy-to-use C# library to read and edit audio data and metadata (tags) from various audio formats, playlists and CUE sheets
Stars: ✭ 180 (-7.69%)
Mutual labels:  parser
Readability
Readability is Elixir library for extracting and curating articles.
Stars: ✭ 188 (-3.59%)
Mutual labels:  parser
Java Binary Block Parser
most comfortable and dynamic way to process bit data in Java and Android
Stars: ✭ 180 (-7.69%)
Mutual labels:  parser
Device Detector Js
A precise user agent parser and device detector written in TypeScript
Stars: ✭ 193 (-1.03%)
Mutual labels:  parser
Getjs
A tool to fastly get all javascript sources/files
Stars: ✭ 190 (-2.56%)
Mutual labels:  parser
M3u8parser
A light weight M3U8 parser. Support X-Key & X-Session-Key.
Stars: ✭ 187 (-4.1%)
Mutual labels:  parser
Dpicker
A framework-agnostic minimal date picker
Stars: ✭ 187 (-4.1%)
Mutual labels:  time
Curl Trace Parser
Parser for output from Curl --trace option
Stars: ✭ 183 (-6.15%)
Mutual labels:  parser
Modeltime
Modeltime unlocks time series forecast models and machine learning in one framework
Stars: ✭ 189 (-3.08%)
Mutual labels:  time
Date
A date and time library based on the C++11/14/17 <chrono> header
Stars: ✭ 2,389 (+1125.13%)
Mutual labels:  time
Swiftparsec
A parser combinator library written in the Swift programming language.
Stars: ✭ 192 (-1.54%)
Mutual labels:  parser
Pornhub Api
Unofficial API for PornHub.com in Python
Stars: ✭ 181 (-7.18%)
Mutual labels:  parser
Flora Sql Parser
Parse SQL (select) statements into abstract syntax tree (AST) and convert ASTs back to SQL.
Stars: ✭ 186 (-4.62%)
Mutual labels:  parser
React Native Modal Datetime Picker
A React-Native datetime-picker for Android and iOS
Stars: ✭ 2,412 (+1136.92%)
Mutual labels:  time
Diagon
Interactive ASCII art diagram generators. 🌟
Stars: ✭ 189 (-3.08%)
Mutual labels:  parser
Sdk
Library for using Grafana' structures in Go programs and client for Grafana REST API.
Stars: ✭ 193 (-1.03%)
Mutual labels:  parser

===================================== 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 Version

Copyright (c) 2014 Will Roberts [email protected]

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 <http://stackoverflow.com/questions/4628122/how-to-construct-a-timedelta-object-from-a-simple-string>_.

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 <http://stackoverflow.com/questions/538666/python-format-timedelta-to-string>_::

>>> 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 .
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].