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']