Migrated from https://git2.unturf.com/python/ago.git
| .hgignore | ||
| ago.py | ||
| README.rst | ||
| setup.py | ||
| test_ago.py | ||
What are human readable timedeltas? | ago.py
===============================================
ago.py makes customizable human readable timedeltas, for example:
Testing past::
Russell commented 1 year, 127 days, 16 hours ago
You replied 1 year, 127 days ago
Testing future::
Program will shutdown in 2 days, 3 hours, 27 minutes
Job will run 2 days, 3 hours from now
How to install
===================
There are a number of ways to install this package::
easy_install ago
pip install ago
or specify *ago* under the *setup_requires* list within your
*setuptools*-compatible project's *setup.py* file.
How to use
==================
The ago module comes with three functions:
#. human
#. delta2human
#. delta2dict
You really only need to worry about *human*.
Here are all the available arguments and defaults::
human(date_time, precision=2, past_tense='{} ago', future_tense='in {}'):
date_time
datetime object to make into human readable, required
precision
control how verbose the output should look, optional
past_tense
format string used when d is a past datetime, optional
future_tense
format string used when d is a future datetime, optional
Here is an example on how to use *human*::
from ago import human, delta2human, delta2dict
from datetime import datetime
from datetime import timedelta
# pretend this was stored in database
db_date = datetime(
year = 2010,
month=5,
day=4,
hour=6,
minute=54,
second=33,
microsecond=4000
)
# to find out how long ago, use the human function
print 'Created ' + human( db_date )
# optionally pass a precision
print 'Created ' + human( db_date, 3 )
print 'Created ' + human( db_date, 6 )
We also support future dates and times::
PRESENT = datetime.now()
PAST = present - timedelta( 492, 58711, 45 ) # days, secs, ms
FUTURE = present + timedelta( 2, 12447, 963 ) # days, secs, ms
print human( FUTURE )
Now we will document how to use delta2human and delta2dict::
# subtract two datetime objects for a timedelta object
delta = PRESENT - db_date
# display a human readable timedelta from a timedelta
print 'Created ' + delta2human( delta )
# create a dictionary out of the timedelta
print delta2dict( delta )
Example past_tense and future_tense keyword arguments::
output1 = human( PAST,
past_tense = 'titanic sunk {0} ago',
future_tense = 'titanic will sink in {0} from now'
)
output2 = human( FUTURE,
past_tense = 'titanic sunk {0} ago',
future_tense = 'titanic will sink in {0} from now'
)
print output1
# titanic sunk 1 year, 127 days ago
print output2
# titanic will sink in 2 days, 3 hours from now
Need more examples?
==========================
You should look at test_ago.py
How do I thank you?
==========================
You should follow me on twitter http://twitter.com/russellbal
License
=========================
Public Domain
Public Revision Control
==============================
https://bitbucket.org/russellballestrini/ago