Kitchen.iterutils Module

Functions to manipulate iterables

New in version Kitchen:: 0.2.1a1

Module author: Toshio Kuratomi <>

Module author: Luke Macken <>

kitchen.iterutils.isiterable(obj, include_string=False)

Check whether an object is an iterable

  • obj – Object to test whether it is an iterable
  • include_string – If True and obj is a byte str or unicode string this function will return True. If set to False, byte str and unicode strings will cause this function to return False. Default False.

True if obj is iterable, otherwise False.

kitchen.iterutils.iterate(obj, include_string=False)

Generator that can be used to iterate over anything

  • obj – The object to iterate over
  • include_string – if True, treat strings as iterables. Otherwise treat them as a single scalar value. Default False

This function will create an iterator out of any scalar or iterable. It is useful for making a value given to you an iterable before operating on it. Iterables have their items returned. scalars are transformed into iterables. A string is treated as a scalar value unless the include_string parameter is set to True. Example usage:

>>> list(iterate(None))
>>> list(iterate([None]))
>>> list(iterate([1, 2, 3]))
[1, 2, 3]
>>> list(iterate(set([1, 2, 3])))
[1, 2, 3]
>>> list(iterate(dict(a='1', b='2')))
['a', 'b']
>>> list(iterate(1))
>>> list(iterate(iter([1, 2, 3])))
[1, 2, 3]
>>> list(iterate('abc'))
>>> list(iterate('abc', include_string=True))
['a', 'b', 'c']