Return a list of 'sparkline' strings for a given list of input numbers.

    The list of input numbers may contain None values, too, for which the
    resulting sparkline will contain a blank character (a space).

    Examples:

        sparklines([3, 1, 4, 1, 5, 9, 2, 6])
        -> ['▃▁▄▁▄█▂▅']
        sparklines([3, 1, 4, 1, 5, 9, 2, 6], num_lines=2)
        -> [
            '     █ ▂',
            '▅▁▆▁██▃█'
        ]

def sparklines(numbers=[], num_lines=1, emph=None, verbose=False,
        minimum=None, maximum=None, wrap=None):
    """
    Return a list of 'sparkline' strings for a given list of input numbers.

    The list of input numbers may contain None values, too, for which the
    resulting sparkline will contain a blank character (a space).

    Examples:

        sparklines([3, 1, 4, 1, 5, 9, 2, 6])
        -> ['▃▁▄▁▄█▂▅']
        sparklines([3, 1, 4, 1, 5, 9, 2, 6], num_lines=2)
        -> [
            '     █ ▂',
            '▅▁▆▁██▃█'
        ]
    """

    assert num_lines > 0

    if len(numbers) == 0:
        return ['']

    # raise warning for negative numbers
    _check_negatives(numbers)

    values = scale_values(numbers, num_lines=num_lines, minimum=minimum, maximum=maximum)

    # find values to be highlighted
    emphasized = _check_emphasis(numbers, emph) if emph else {}

    point_index = 0
    subgraphs = []
    for subgraph_values in batch(wrap, values):
        multi_values = []
        for i in range(num_lines):
            multi_values.append([
                min(v, 8) if not v is None else None
                for v in subgraph_values
            ])
            subgraph_values = [max(0, v-8) if not v is None else None for v in subgraph_values]
        multi_values.reverse()
        lines = []
        for subgraph_values in multi_values:
            if HAVE_TERMCOLOR and emphasized:
                tc = termcolor.colored
                res = [tc(blocks[int(v)], emphasized.get(point_index + i, 'white')) if not v is None else ' ' for (i, v) in enumerate(subgraph_values)]
            else:
                res = [blocks[int(v)] if not v is None else ' ' for v in subgraph_values]
            lines.append(''.join(res))
        subgraphs.append(lines)
        point_index += len(subgraph_values)

    return list_join('', subgraphs)