U
     5i'                  	   @   s   d dl Z d dlZd dlmZ d dlmZmZ d dlmZm	Z	 e	ddde	dd	de	d
dde	ddde	ddde	ddddZ
dZdddZdddZdS )    N)avoid_wrapping)is_awareutc)gettextngettext_lazyz%(num)d yearz%(num)d yearsnumz%(num)d monthz%(num)d monthsz%(num)d weekz%(num)d weeksz%(num)d dayz%(num)d daysz%(num)d hourz%(num)d hoursz%(num)d minutez%(num)d minutes)yearmonthweekdayhourminute))i3r   )i ' r	   )i:	 r
   )iQ r   )i  r   )<   r   F   c                 C   s  |dkrt }|dkrtdt| tjs<t| j| j| j} |r`t|tjs`t|j|j|j}|pztjt| rvt	nd}|r||  } }||  }t
| j|j}|dkrt
| jr|d8 }nt
|jr|d7 }|t|8 }|jd d d |j }|dkrt|d ddi S ttD ]&\}\}	}
||	 }|dkr  q\q t|d ddi S g }d}|ttk r||k rt| \}	}
||	 }|dkrq|t||
 d|i  ||	| 8 }|d7 }|d7 }qdtd	|S )
a  
    Take two datetime objects and return the time between d and now as a nicely
    formatted string, e.g. "10 minutes". If d occurs after now, return
    "0 minutes".

    Units used are years, months, weeks, days, hours, and minutes.
    Seconds and microseconds are ignored. Up to `depth` adjacent units will be
    displayed.  For example, "2 weeks, 3 days" and "1 year, 3 months" are
    possible outputs, but "2 weeks, 3 hours" and "1 year, 5 days" are not.

    `time_strings` is an optional dict of strings to replace the default
    TIME_STRINGS dict.

    `depth` is an optional integer to control the number of adjacent time
    units returned.

    Adapted from
    https://web.archive.org/web/20060617175230/http://blog.natbat.co.uk/archive/2003/Jun/14/time_since
    Nr   zdepth must be greater than 0.      r   r   r   z, )TIME_STRINGS
ValueError
isinstancedatetimer   r	   r   nowr   r   calendarleapdaysisleap	timedeltadayssecondsr   	enumerateTIMESINCE_CHUNKSlenappendr   join)dr   reversedtime_stringsdepthdeltar   Zsinceir   namecountresultZcurrent_depth r+   :/tmp/pip-unpacked-wheel-gcyiijx6/django/utils/timesince.py	timesince   sN    





r-   c                 C   s   t | |d||dS )zV
    Like timesince, but return a string measuring the time until the given time.
    T)r#   r$   r%   )r-   )r"   r   r$   r%   r+   r+   r,   	timeuntila   s    r.   )NFNr   )NNr   )r   r   Zdjango.utils.htmlr   Zdjango.utils.timezoner   r   Zdjango.utils.translationr   r   r   r   r-   r.   r+   r+   r+   r,   <module>   s   





	

F