plastid.util.services.lists module

Tools for manipulating lists

Methods

flatten_nested_lists_to_generator()
Flatten nested lists, from left-to-right and top-to-bottom, into a generator
flatten_nested_lists_to_list()
Flatten nested lists, from left-to-right and top-to-bottom, into a list
parse_list()
Parse string representation of list into a list of parsed data (e.g. a list of numbers, a list of strings, et c)
plastid.util.services.lists.flatten_nested_lists_to_generator(l)[source]

Flatten a tree of nested lists into a generator, from left-to-right and top-to-bottom.

Parameters:
l : list

A tree as a list of lists

Yields:
object

Next item in flattened list

plastid.util.services.lists.flatten_nested_lists_to_list(inp)[source]

Flatten a tree of lists into a single list of items, from left-to-right and top-to-bottom.

Parameters:
inp : list

A tree as a list of lists

Returns:
list

flattened list

Notes

Tuples and other sequences will not be flattened. They will remain in their native types

plastid.util.services.lists.parse_list(inp)[source]

Restore non-nested lists of Python primitives from string representation of list Additionally parses numpy.nan, numpy.inf, and -numpy.inf to correct values

Parameters:
inp : str

String representation of list data

Returns:
list
Raises:
AssertionError

if String does not represent a list

Notes

Complex types like nested lists or tuples will not be processed, and may not be parsed correctly.