def iter_feasible_configurations(cur):
    """Iterate over all of the sets of feasible configurations in the cache.

    Args:
        cur (:class:`sqlite3.Cursor`): An sqlite3 cursor. This function
            is meant to be run within a :obj:`with` statement.

    Yields:
        dict[tuple(int): number]: The feasible_configurations.

    """
    select = \
        """
        SELECT num_variables, feasible_configurations, energies
        FROM feasible_configurations
        """
    for num_variables, feasible_configurations, energies in cur.execute(select):
        configs = json.loads(feasible_configurations)
        energies = json.loads(energies)

        yield {_decode_config(config, num_variables): energy
               for config, energy in zip(configs, energies)}
Iterate over all of the sets of feasible configurations in the cache.

    Args:
        cur (:class:`sqlite3.Cursor`): An sqlite3 cursor. This function
            is meant to be run within a :obj:`with` statement.

    Yields:
        dict[tuple(int): number]: The feasible_configurations.