timeutils

Time related utilities and helper functions.

class oslo_utils.timeutils.Split(elapsed, length)

A immutable stopwatch split.

See: http://en.wikipedia.org/wiki/Stopwatch for what this is/represents.

elapsed

Duration from stopwatch start.

length

Seconds from last split (or the elapsed time if no prior split).

class oslo_utils.timeutils.StopWatch(duration=None)

A simple timer/stopwatch helper class.

Inspired by: apache-commons-lang java stopwatch.

Not thread-safe (when a single watch is mutated by multiple threads at the same time). Thread-safe when used by a single thread (not shared) or when operations are performed in a thread-safe manner on these objects by wrapping those operations with locks.

It will try to use time.monotonic and then attempt to use the monotonic pypi library and then fallback to using the non-monotonic time.time.

elapsed(maximum=None)

Returns how many seconds have elapsed.

expired()

Returns if the watch has expired (ie, duration provided elapsed).

leftover(return_none=False)

Returns how many seconds are left until the watch expires.

Parameters:return_none (boolean) – when True instead of raising a RuntimeError when no duration has been set this call will return None instead.
restart()

Restarts the watch from a started/stopped state.

resume()

Resumes the watch from a stopped state.

split()

Captures a split/elapsed since start time (and doesn’t stop).

splits

Accessor to all/any splits that have been captured.

start()

Starts the watch (if not already started).

NOTE(harlowja): resets any splits previously captured (if any).

stop()

Stops the watch.

oslo_utils.timeutils.advance_time_delta(timedelta)

Advance overridden time using a datetime.timedelta.

See oslo_utils.fixture.TimeFixture.

oslo_utils.timeutils.advance_time_seconds(seconds)

Advance overridden time by seconds.

See oslo_utils.fixture.TimeFixture.

oslo_utils.timeutils.clear_time_override()

Remove the overridden time.

See oslo_utils.fixture.TimeFixture.

oslo_utils.timeutils.delta_seconds(before, after)

Return the difference between two timing objects.

Compute the difference in seconds between two date, time, or datetime objects (as a float, to microsecond resolution).

oslo_utils.timeutils.is_newer_than(after, seconds)

Return True if after is newer than seconds.

oslo_utils.timeutils.is_older_than(before, seconds)

Return True if before is older than seconds.

oslo_utils.timeutils.is_soon(dt, window)

Determines if time is going to happen in the next window seconds.

Parameters:
  • dt – the time
  • window – minimum seconds to remain to consider the time not soon
Returns:

True if expiration is within the given duration

oslo_utils.timeutils.iso8601_from_timestamp(timestamp, microsecond=False)

Returns an iso8601 formatted date from timestamp.

Deprecated since version >: 1.5.0 Use datetime.datetime.utcfromtimestamp() and datetime.datetime.isoformat() instead.

oslo_utils.timeutils.isotime(at=None, subsecond=False)

Stringify time in ISO 8601 format.

Deprecated since version >: 1.5.0 Use utcnow() and datetime.datetime.isoformat() instead.

oslo_utils.timeutils.marshall_now(now=None)

Make an rpc-safe datetime with microseconds.

oslo_utils.timeutils.normalize_time(timestamp)

Normalize time in arbitrary timezone to UTC naive object.

oslo_utils.timeutils.parse_isotime(timestr)

Parse time from ISO 8601 format.

oslo_utils.timeutils.parse_strtime(timestr, fmt='%Y-%m-%dT%H:%M:%S.%f')

Turn a formatted time back into a datetime.

oslo_utils.timeutils.set_time_override(override_time=None)

Overrides utils.utcnow.

Make it return a constant time or a list thereof, one at a time.

See oslo_utils.fixture.TimeFixture.

Parameters:override_time – datetime instance or list thereof. If not given, defaults to the current UTC time.
oslo_utils.timeutils.strtime(at=None, fmt='%Y-%m-%dT%H:%M:%S.%f')

Returns formatted utcnow.

Deprecated since version >: 1.5.0 Use utcnow(), datetime.datetime.isoformat() or datetime.strftime() instead.

strtime() => utcnow().isoformat() strtime(fmt=...) => utcnow().strftime(fmt) strtime(at) => at.isoformat() strtime(at, fmt) => at.strftime(fmt)

oslo_utils.timeutils.total_seconds(delta)

Return the total seconds of datetime.timedelta object.

Compute total seconds of datetime.timedelta, datetime.timedelta doesn’t have method total_seconds in Python2.6, calculate it manually.

oslo_utils.timeutils.unmarshall_time(tyme)

Unmarshall a datetime dict.

oslo_utils.timeutils.utcnow(with_timezone=False)

Overridable version of utils.utcnow that can return a TZ-aware datetime.

See oslo_utils.fixture.TimeFixture.

oslo_utils.timeutils.utcnow_ts(microsecond=False)

Timestamp version of our utcnow function.

See oslo_utils.fixture.TimeFixture.