def separate_configs_by_pv(config_lines):
    """
    Take in a pre-parsed pragma such as::

        [{'title': 'pv', 'tag': 'a'},
         {'title': 'io', 'tag': 'io_for_a'},
         {'title': 'pv', 'tag': 'b'},
         {'title': 'io', 'tag': 'io_for_a'},
         ]

    Which was generated from::

        pv: a
        io: io_for_a
        pv: b
        io: io_for_b

    And yield the following::

        ('a', [{'title': 'io', 'tag': 'io_for_a'}])
        ('b', [{'title': 'io', 'tag': 'io_for_b'}])
    """
    pv, config = None, None
    for line in config_lines:
        if line['title'] == 'pv':
            if config is not None:
                yield pv, config
            pv = line['tag']
            config = []
        if config is not None:
            config.append(line)
    if config is not None:
        yield pv, config
