This document describes the current stable version of Celery (3.1). For development docs, go here.



Utilities for functions.

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

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

Parameters:limit – 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]
update(*args, **kwargs)[source]
celery.utils.functional.is_list(l, scalars=(<class '_abcoll.Mapping'>, <type 'basestring'>), iters=(<class '_abcoll.Iterable'>, ))

Return true if the object is iterable (but not if object is a mapping or string).

celery.utils.functional.maybe_list(l, scalars=(<class '_abcoll.Mapping'>, <type 'basestring'>))

Return list of one element if l is a scalar.

celery.utils.functional.memoize(maxsize=None, keyfun=None, Cache=<class celery.utils.functional.LRUCache at 0x03AF6420>)[source]
class celery.utils.functional.mlazy(fun, *args, **kwargs)[source]

Memoized lazy evaluation.

The function is only evaluated once, every subsequent access will return the same value.


Set to to True after the object has been evaluated.

evaluated = False
celery.utils.functional.noop(*args, **kwargs)[source]

No operation.

Takes any arguments/keyword arguments and does nothing.

celery.utils.functional.first(predicate, it)[source]

Return the first element in iterable that predicate Gives a True value for.

If predicate is None it will return the first item that is not None.


Return a function that with a list of instances, finds the first instance that gives a value for the given method.

The list can also contain lazy instances (lazy.)

celery.utils.functional.chunks(it, n)[source]

Split an iterator into chunks with n elements each.


# n == 2 >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 2) >>> list(x) [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10]]

# n == 3 >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 3) >>> list(x) [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10]]

celery.utils.functional.padlist(container, size, default=None)[source]

Pad list with default elements.


>>> first, last, city = padlist(['George', 'Costanza', 'NYC'], 3)
('George', 'Costanza', 'NYC')
>>> first, last, city = padlist(['George', 'Costanza'], 3)
('George', 'Costanza', None)
>>> first, last, city, planet = padlist(
...     ['George', 'Costanza', 'NYC'], 4, default='Earth',
... )
('George', 'Costanza', 'NYC', 'Earth')

Like operator.itemgetter() but return None on missing attributes instead of raising AttributeError.


Return all unique elements in it, preserving order.


Regen takes any iterable, and if the object is an generator it will cache the evaluated list on first access, so that the generator can be “consumed” multiple times.

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

Remove all keys from dict d whose value is None

class celery.utils.functional.lazy(fun, *args, **kwargs)

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__().

Evaluates if the value is a lazy instance.

Previous topic


Next topic


This Page