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
andobj
is a bytebytes
orstr
string this function will returnTrue
. If set toFalse
, bytebytes
andstr
strings will cause this function to returnFalse
. DefaultFalse
.
- Returns
True
ifobj
is 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_string
parameter 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']