Ńň Ý?Hc@stdZddklZddkZdgZd„Zd„Zd„Zd„Zd d ed „Z d ed „Z dS( sDate/Time Helpersi˙˙˙˙(tdatetimeNtdistance_of_time_in_wordscCsSxL|D]D\}}}||djo$||cd8<||c|7>> distance_of_time_in_words(86399, round=True, granularity='day') '1 day' >>> distance_of_time_in_words(86399, granularity='day') 'less than 1 day' >>> distance_of_time_in_words(86399) '23 hours, 59 minutes and 59 seconds' >>> distance_of_time_in_words(datetime(2008,3,21, 16,34), ... datetime(2008,2,6,9,45)) '1 month, 15 days, 6 hours and 49 minutes' >>> distance_of_time_in_words(datetime(2008,3,21, 16,34), ... datetime(2008,2,6,9,45), granularity='decade') 'less than 1 decade' >>> distance_of_time_in_words(datetime(2008,3,21, 16,34), ... datetime(2008,2,6,9,45), granularity='second') '1 month, 15 days, 6 hours and 49 minutes' RtdecadeRtmonthtdaythourtminuteRi i iii<s&Please provide a valid granularity: %ss0 iidiiiiiitcentrys less than 1 s, i˙˙˙˙s and N(t Exceptiont isinstancetintRt fromtimestampttimeR tgetattrRRtNoneRRtindextappendRtlentjoin(t from_timetto_timeR troundt granularitiestgranularity_sizeR Rtfieldt delta_yearRt month_carrytreturn_stringstgRtitg_ptdelta_p((s3/usr/lib/python2.6/site-packages/webhelpers/date.pyR&sŠ'     &$   -           cCst|tiƒ||ƒS(sź Return approximate-time-distance string for ``from_time`` till now. See ``distance_of_time_in_words`` -- same here, but ``to_time`` is fixed to ``datetime.now()``. (RRtnow(R'R R)((s3/usr/lib/python2.6/site-packages/webhelpers/date.pyttime_ago_in_wordsÄs( t__doc__RR t__all__RR RRRRR5(((s3/usr/lib/python2.6/site-packages/webhelpers/date.pyts      