dgs.utils.timer.DifferenceTimers

class dgs.utils.timer.DifferenceTimers(names: list[str] | None = None)[source]

Object to store the information of multiple DifferenceTimer objects.

Methods

__init__(names: list[str] | None = None) None[source]
add(name: str, prev_time: float, now: float | None = None) float[source]

Add a new time difference to the timer with the given name. Creates a new timer if it does not exist yet.

Parameters:
  • name – The name of the timer.

  • prev_time – The previous time in seconds. This value is used to compute the time difference in seconds relative to now.

  • now – The current time in seconds.

Returns:

The difference between now and the previous value in seconds.

add_multiple(prev_times: dict[str, float]) dict[str, float][source]

Add a bunch of new time differences to the respective timers. Creates new timers if they do not exist yet.

Parameters:

prev_times – A dict mapping the name of the timer to the previous time in seconds.

Returns:

A dict containing the time differences in seconds for each of the named timers.

clear() None.  Remove all items from D.
copy()
classmethod fromkeys(iterable, value=None)
get(k[, d]) D[k] if k in D, else d.  d defaults to None.
get_avgs() dict[str, float][source]

Return the average times for all timers.

get_last() dict[str, float][source]

Return the last time difference for all timers.

get_sums() dict[str, float][source]

Return the summed-up times for all timers.

items() a set-like object providing a view on D's items
keys() a set-like object providing a view on D's keys
pop(k[, d]) v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair

as a 2-tuple; but raise KeyError if D is empty.

print(prepend: str, hms: bool = False) str[source]

Generate a string for printing, containing average and total time for all timers.

setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D
update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values

Attributes

data