Utilities - kombu.utils


Internal utilities.

class kombu.utils.EqualityDict[source]
kombu.utils.say(m, *fargs, **fkwargs)[source]

Generate a unique id, having - hopefully - a very small chance of collision.

For now this is provided by uuid.uuid4().

kombu.utils.fxrange(start=1.0, stop=None, step=1.0, repeatlast=False)[source]
kombu.utils.fxrangemax(start=1.0, stop=None, step=1.0, max=100.0)[source]
kombu.utils.retry_over_time(fun, catch, args=[], kwargs={}, errback=None, max_retries=None, interval_start=2, interval_step=2, interval_max=30, callback=None)[source]

Retry the function over and over until max retries is exceeded.

For each retry we sleep a for a while before we try again, this interval is increased for every retry until the max seconds is reached.

  • fun – The function to try
  • catch – Exceptions to catch, can be either tuple or a single exception class.
  • args – Positional arguments passed on to the function.
  • kwargs – Keyword arguments passed on to the function.
  • errback – Callback for when an exception in catch is raised. The callback must take two arguments: exc and interval, where exc is the exception instance, and interval is the time in seconds to sleep next..
  • max_retries – Maximum number of retries before we give up. If this is not set, we will retry forever.
  • interval_start – How long (in seconds) we start sleeping between retries.
  • interval_step – By how much the interval is increased for each retry.
  • interval_max – Maximum number of seconds to sleep between retries.
kombu.utils.emergency_dump_state(state, open_file=<built-in function open>, dump=None)[source]
class kombu.utils.cached_property(fget=None, fset=None, fdel=None, doc=None)[source]

Property descriptor that caches the return value of the get function.


def connection(self):
    return Connection()

@connection.setter  # Prepares stored value
def connection(self, value):
    if value is None:
        raise TypeError('Connection must be a connection')
    return value

def connection(self, value):
    # Additional action to do at del(self.attr)
    if value is not None:
        print('Connection {0!r} deleted'.format(value)
kombu.utils.reprkwargs(kwargs, sep=', ', fmt='{0}={1}')[source]
kombu.utils.reprcall(name, args=(), kwargs={}, sep=', ')[source]
kombu.utils.nested(*args, **kwds)[source]

Combine multiple context managers into a single nested context manager.


Get object fileno, or None if not defined.