Kitchen.iterutils Module

Functions to manipulate iterables

New in version Kitchen:: 0.2.1a1

Module author: Toshio Kuratomi <toshio@fedoraproject.org>

Module author: Luke Macken <lmacken@redhat.com>

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

Check whether an object is an iterable

Parameters:
  • 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.
Returns:

True if obj is iterable, otherwise False.

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

Generator that can be used to iterate over anything

Parameters:
  • 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))
[None]
>>> list(iterate([None]))
[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))
[1]
>>> list(iterate(iter([1, 2, 3])))
[1, 2, 3]
>>> list(iterate('abc'))
['abc']
>>> list(iterate('abc', include_string=True))
['a', 'b', 'c']

Previous topic

Kitchen.collections

Next topic

Helpers for versioning software

This Page