This document describes the current stable version of Celery (5.5). For development docs, go here.
celery.utils.time
¶
Utilities related to dates, times, intervals, and timezones.
- class celery.utils.time.LocalTimezone[source]¶
Local time implementation. Provided in _Zone to the app when enable_utc is disabled. Otherwise, _Zone provides a UTC ZoneInfo instance as the timezone implementation for the application.
Note
Used only when the
enable_utc
setting is disabled.
- celery.utils.time.adjust_timestamp(ts: float, offset: int, here: ~typing.Callable[[...], float] = <function utcoffset>) float [source]¶
Adjust timestamp based on provided utcoffset.
- celery.utils.time.delta_resolution(dt: datetime, delta: timedelta) datetime [source]¶
Round a
datetime
to the resolution of timedelta.If the
timedelta
is in days, thedatetime
will be rounded to the nearest days, if thetimedelta
is in hours thedatetime
will be rounded to the nearest hour, and so on until seconds, which will just return the originaldatetime
.
- class celery.utils.time.ffwd(year=None, month=None, weeks=0, weekday=None, day=None, hour=None, minute=None, second=None, microsecond=None, **kwargs: Any)[source]¶
Version of
dateutil.relativedelta
that only supports addition.
- celery.utils.time.get_exponential_backoff_interval(factor: int, retries: int, maximum: int, full_jitter: bool = False) int [source]¶
Calculate the exponential backoff wait time.
- celery.utils.time.humanize_seconds(secs: int, prefix: str = '', sep: str = '', now: str = 'now', microseconds: bool = False) str [source]¶
Show seconds in human form.
For example, 60 becomes “1 minute”, and 7200 becomes “2 hours”.
- celery.utils.time.is_naive(dt: datetime) bool [source]¶
Return True if
datetime
is naive, meaning it doesn’t have timezone info set.
- celery.utils.time.localize(dt: datetime, tz: tzinfo) datetime [source]¶
Convert aware
datetime
to another timezone.Using a ZoneInfo timezone will give the most flexibility in terms of ambiguous DST handling.
- celery.utils.time.make_aware(dt: datetime, tz: tzinfo) datetime [source]¶
Set timezone for a
datetime
object.
- celery.utils.time.maybe_iso8601(dt: datetime | str | None) None | datetime [source]¶
Either
datetime | str -> datetime
orNone -> None
.
- celery.utils.time.maybe_make_aware(dt: datetime, tz: tzinfo | None = None, naive_as_utc: bool = True) datetime [source]¶
Convert dt to aware datetime, do nothing if dt is already aware.
- celery.utils.time.maybe_timedelta(delta: int) timedelta [source]¶
Convert integer to timedelta, if argument is an integer.
- celery.utils.time.rate(r: str) float [source]¶
Convert rate string (“100/m”, “2/h” or “0.5/s”) to seconds.
- celery.utils.time.remaining(start: datetime, ends_in: timedelta, now: Callable | None = None, relative: bool = False) timedelta [source]¶
Calculate the remaining time for a start date and a timedelta.
For example, “how many seconds left for 30 seconds after start?”
- Parameters:
start (datetime) – Starting date.
ends_in (timedelta) – The end delta.
relative (bool) – If enabled the end time will be calculated using
delta_resolution()
(i.e., rounded to the resolution of ends_in).now (Callable) – Function returning the current time and date. Defaults to
datetime.now(timezone.utc)()
.
- Returns:
Remaining time.
- Return type: