from typing import Callable
import inspect


def get_param_names(func: Callable, include_self=False) -> list:
    """Returns list of parameter names.

    Parameters
    ----------
    func : Callable
        Callable to look up parameter names for.

    Returns
    -------
    list
        List of parameter names.
    """
    params = list(inspect.signature(func).parameters.keys())
    if "self" in params:
        params.remove("self")
    return params