Kitchen.iterutils Module¶
Functions to manipulate iterables
Added 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
Trueandobjis a bytebytesorstrstring this function will returnTrue. If set toFalse, bytebytesandstrstrings will cause this function to returnFalse. DefaultFalse.
- Returns:
Trueifobjis iterable, otherwiseFalse.
- 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. DefaultFalse
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_stringparameter is set toTrue. 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']