<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _log_effective_mass_data(data, is_spin_polarized, mass_type='m_e'):
 """Log data about the effective masses and their directions. Args: data (dict):
 The effective mass data. Formatted as a :obj:`dict` with the keys: 'effective_mass' (:obj:`float`) The effective mass in units of electron rest mass, :math:`m_0`. 'energies' (:obj:`numpy.ndarray`) Band eigenvalues in eV. 'band_id' (:obj:`int`) The index of the band, 'spin' (:obj:`~pymatgen.electronic_structure.core.Spin`) The spin channel 'start_kpoint' (:obj:`int`) The index of the k-point at which the band extrema occurs 'end_kpoint' (:obj:`int`) The k-point towards which the data has been sampled. is_spin_polarized (bool):
 Whether the system is spin polarized. """

    s = ' ({})'.format(data['spin'].name) if is_spin_polarized else ''

    # add 1 to band id to be consistent with VASP
    band_str = 'band {}{}'.format(data['band_id'] + 1, s)

    start_kpoint = data['start_kpoint']
    end_kpoint = data['end_kpoint']
    eff_mass = data['effective_mass']

    kpoint_str = kpt_str.format(k=start_kpoint.frac_coords)
    if start_kpoint.label:
        kpoint_str += ' ({})'.format(start_kpoint.label)
    kpoint_str += ' -> '
    kpoint_str += kpt_str.format(k=end_kpoint.frac_coords)
    if end_kpoint.label:
        kpoint_str += ' ({})'.format(end_kpoint.label)

    logging.info('  {}: {:.3f} | {} | {}'.format(mass_type, eff_mass,
                                                 band_str, kpoint_str))