Changeset - 24ffe239e3d7
[Not reviewed]
beta
0 1 0
Marcin Kuzminski - 13 years ago 2013-02-18 10:28:53
marcin@python-works.com
fix dateutil import
1 file changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/utils2.py
Show inline comments
 
@@ -349,50 +349,50 @@ def engine_from_config(configuration, pr
 
    return engine
 

	
 

	
 
def age(prevdate):
 
    """
 
    turns a datetime into an age string.
 

	
 
    :param prevdate: datetime object
 
    :rtype: unicode
 
    :returns: unicode words describing age
 
    """
 
    now = datetime.datetime.now()
 
    now = now.replace(microsecond=0)
 
    order = ['year', 'month', 'day', 'hour', 'minute', 'second']
 
    deltas = {}
 
    future = False
 

	
 
    if prevdate > now:
 
        now, prevdate = prevdate, now
 
        future = True
 

	
 
    # Get date parts deltas
 
    for part in order:
 
        if future:
 
            import dateutil
 
            d = dateutil.relativedelta.relativedelta(now, prevdate)
 
            from dateutil import relativedelta
 
            d = relativedelta.relativedelta(now, prevdate)
 
            deltas[part] = getattr(d, part + 's')
 
        else:
 
            deltas[part] = getattr(now, part) - getattr(prevdate, part)
 

	
 
    # Fix negative offsets (there is 1 second between 10:59:59 and 11:00:00,
 
    # not 1 hour, -59 minutes and -59 seconds)
 
    for num, length in [(5, 60), (4, 60), (3, 24)]:  # seconds, minutes, hours
 
        part = order[num]
 
        carry_part = order[num - 1]
 

	
 
        if deltas[part] < 0:
 
            deltas[part] += length
 
            deltas[carry_part] -= 1
 

	
 
    # Same thing for days except that the increment depends on the (variable)
 
    # number of days in the month
 
    month_lengths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
 
    if deltas['day'] < 0:
 
        if prevdate.month == 2 and (prevdate.year % 4 == 0 and
 
            (prevdate.year % 100 != 0 or prevdate.year % 400 == 0)):
 
            deltas['day'] += 29
 
        else:
 
            deltas['day'] += month_lengths[prevdate.month - 1]
 

	
0 comments (0 inline, 0 general)