"""
"""
import numpy as np


def load_bacco_mahs(fname, lgm_min=10.75, **kwargs):
    """Load BACCO mass accretion history data

    Parameters
    ----------
    fname : string

    Returns
    -------
    halo_ids : ndarray of shape (n_halos, )
        Integer array storing unique identifier of each halo

    log_mahs : ndarray of shape (n_halos, n_times)
        Base-10 log of mass of main progenitor history

    tarr : ndarray of shape (n_times, )
        Age of the universe in Gyr

    lgm_min : float
        Minimum halo mass used by the fitter.
        Typically this corresponds to ~100x particle mass

    """
    import deepdish as dd

    _mah = dd.io.load(fname)

    n_halos = _mah["mah"].shape[0]
    halo_ids = np.arange(n_halos)
    tarr = _mah["age"]

    lgmcut = lgm_min - 1.0
    mcut = 10**lgmcut

    mah = 1e10 * _mah["mah"]
    mah = np.where(mah < mcut, mcut, mah)
    log_mahs = np.log10(mah)
    log_mahs = np.maximum.accumulate(log_mahs, axis=1)

    return halo_ids, log_mahs, tarr, lgm_min
