Skip to content
/ delta Public

human friendly context aware duration parsing library

License

Notifications You must be signed in to change notification settings

rlgomes/delta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

delta

Build Status Coverage Status

Human friendly context aware duration parsing library that can translate expressions such as '1 hour' to a timedelta object. The context aware notion comes from the ability to parse a duration of months or years but taking into account the current date (ie context) from where to start calculating the delta.

installation

from pypi

pip install delta

from source

pip install -e git+git://github.com/rlgomes/delta.git#egg=delta

usage

syntax

delta only exports a single parse() function that accepts a duration string and returns the timedelta object that duration represents. The duration expression consists of a number followed by a unit and separated by a comma, space or 'and' keyword. So the following are valid duration expression:

1 year 2 months and 3 weeks
2 months, 3 weeks and 12 days
1y 2m 3w 4d
3.5 years and 2.7 days

Units include:

  • y, year, years
  • m, month, months
  • w, week, weeks
  • d, day, days
  • h, hour, hours
  • min, minute, minutes
  • s, second, seconds
  • ms, millis, millisecond, milliseconds

code sample

import delta

tdelta = delta.parse('1 day')

Context aware parsing that can calculate months and years based on the datetime object provided as context:

import delta
from datetime import datetime

tdelta = delta.parse('2 months', context=datetime(2016, 1, 1))

The above delta calculated will take into account that the context is set to the first day of 2016 which means 2 months is 31 days from January and 29 days from February.

tests

Tests can be run using tox.

pip install tox
tox

About

human friendly context aware duration parsing library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages