Log data about the valence band maximum or conduction band minimum.

    Args:
        bs (:obj:`~pymatgen.electronic_structure.bandstructure.BandStructureSymmLine`):
            The band structure.
        edge_data (dict): The :obj:`dict` from ``bs.get_vbm()`` or
            ``bs.get_cbm()``

def _log_band_edge_information(bs, edge_data):
    """Log data about the valence band maximum or conduction band minimum.

    Args:
        bs (:obj:`~pymatgen.electronic_structure.bandstructure.BandStructureSymmLine`):
            The band structure.
        edge_data (dict): The :obj:`dict` from ``bs.get_vbm()`` or
            ``bs.get_cbm()``
    """
    if bs.is_spin_polarized:
        spins = edge_data['band_index'].keys()
        b_indices = [', '.join([str(i+1) for i in
                                edge_data['band_index'][spin]])
                     + '({})'.format(spin.name.capitalize()) for spin in spins]
        b_indices = ', '.join(b_indices)
    else:
        b_indices = ', '.join([str(i+1) for i in
                               edge_data['band_index'][Spin.up]])

    kpoint = edge_data['kpoint']
    kpoint_str = kpt_str.format(k=kpoint.frac_coords)
    k_indices = ', '.join(map(str, edge_data['kpoint_index']))

    if kpoint.label:
        k_loc = kpoint.label
    else:
        branch = bs.get_branch(edge_data['kpoint_index'][0])[0]
        k_loc = 'between {}'.format(branch['name'])

    logging.info('  Energy: {:.3f} eV'.format(edge_data['energy']))
    logging.info('  k-point: {}'.format(kpoint_str))
    logging.info('  k-point location: {}'.format(k_loc))
    logging.info('  k-point indices: {}'.format(k_indices))
    logging.info('  Band indices: {}'.format(b_indices))