def get_function_pars(fn):
    """Extract the parameters of a pyLikelihood function object
    (value, scale, bounds).

    Parameters
    ----------

    fn : pyLikelihood.Function

    Returns
    -------

    pars : list

    """

    pars = []
    par_names = pyLike.StringVector()
    fn.getParamNames(par_names)

    for pname in par_names:

        par = fn.getParam(pname)
        bounds = par.getBounds()
        perr = par.error() if par.isFree() else np.nan
        pars += [dict(name=pname,
                      value=par.getValue(),
                      error=perr,
                      min=bounds[0],
                      max=bounds[1],
                      free=par.isFree(),
                      scale=par.getScale())]

    return pars
Extract the parameters of a pyLikelihood function object
    (value, scale, bounds).

    Parameters
    ----------

    fn : pyLikelihood.Function

    Returns
    -------

    pars : list