This document is for Kombu's development version, which can be significantly different from previous releases. Get the stable docs here: 4.5.

Functional-style Utilities - kombu.utils.functional

Functional Utilities.

class kombu.utils.functional.LRUCache(limit=None)[source]

LRU Cache implementation using a doubly linked list to track access.


limit (int) – The maximum number of keys to keep in the cache. When a new key is inserted and the limit has been exceeded, the Least Recently Used key will be discarded from the cache.

incr(key, delta=1)[source]
popitem() → (k, v), remove and return some (key, value) pair[source]

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

update([E, ]**F) → None. Update D from mapping/iterable E and F.[source]

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

kombu.utils.functional.memoize(maxsize=None, keyfun=None, Cache=<class 'kombu.utils.functional.LRUCache'>)[source]

Decorator to cache function return value.

class kombu.utils.functional.lazy(fun, *args, **kwargs)[source]

Holds lazy evaluation.

Evaluated when called or if the evaluate() method is called. The function is re-evaluated on every call.

Overloaded operations that will evaluate the promise:

__str__(), __repr__(), __cmp__().


Evaluate value only if value is a lazy instance.

kombu.utils.functional.is_list(l, scalars=(<class ''>, <class 'str'>), iters=(<class ''>, ))[source]

Return true if the object is iterable.


Returns false if object is a mapping or string.

kombu.utils.functional.maybe_list(l, scalars=(<class ''>, <class 'str'>))[source]

Return list of one element if l is a scalar.

kombu.utils.functional.dictfilter(d=None, **kw)[source]

Remove all keys from dict d whose value is None.