Celery 1.0.6 (stable) documentation

This Page

Time and Date Utilities - celery.utils.timeutils

celery.utils.timeutils.delta_resolution(dt, delta)

Round a datetime to the resolution of a timedelta.

If the timedelta is in days, the datetime will be rounded to the nearest days, if the timedelta is in hours the datetime will be rounded to the nearest hour, and so on until seconds which will just return the original datetime.

Examples:

>>> now = datetime.now()
>>> now
datetime.datetime(2010, 3, 30, 11, 50, 58, 41065)
>>> delta_resolution(now, timedelta(days=2))
datetime.datetime(2010, 3, 30, 0, 0)
>>> delta_resolution(now, timedelta(hours=2))
datetime.datetime(2010, 3, 30, 11, 0)
>>> delta_resolution(now, timedelta(minutes=2))
datetime.datetime(2010, 3, 30, 11, 50)
>>> delta_resolution(now, timedelta(seconds=2))
datetime.datetime(2010, 3, 30, 11, 50, 58, 41065)
celery.utils.timeutils.rate(rate)

Parses rate strings, such as "100/m" or "2/h" and converts them to seconds.

celery.utils.timeutils.remaining(start, ends_in, now=None, relative=True)

Calculate the remaining time for a start date and a timedelta.

E.g. “how many seconds left for 30 seconds after start?”

Parameters:
  • start – Start datetime.datetime.
  • ends_in – The end delta as a datetime.timedelta.
  • relative

    If set to False, the end time will be calculated using delta_resolution() (i.e. rounded to the resolution

    of ends_in).
  • now – The current time, defaults to datetime.now().

Examples:

>>> remaining(datetime.now(), ends_in=timedelta(seconds=30))
'0:0:29.999948'

>>> str(remaining(datetime.now() - timedelta(minutes=29),
        ends_in=timedelta(hours=2)))
'1:30:59.999938'

>>> str(remaining(datetime.now() - timedelta(minutes=29),
        ends_in=timedelta(hours=2),
        relative=False))
'1:11:18.458437'
celery.utils.timeutils.timedelta_seconds(delta)

Convert datetime.timedelta to seconds.

Doesn’t account for negative values.

celery.utils.timeutils.weekday(name)

Return the position of a weekday (0 - 7, where 0 is Sunday).

>>> weekday("sunday")
0
>>> weekday("sun")
0
>>> weekday("mon")
1