def METHOD_NAME(cls):
    """
    Get the default parameters and state variables from the arguments to
    the ``__init__`` method.  This uses the decorators
    :py:func:`default_parameters` and :py:func:`default_initial_values` to
    determine the parameters and state variables respectively.
    If only one is specified, the other is assumed to be the remaining
    arguments.
    If neither are specified, it is assumed that all default arguments are
    parameters.
    """
    if not inspect.isclass(cls):
        raise TypeError(f"{cls} is not a class")
    if not hasattr(cls, "__init__"):
        raise AttributeError(f"No __init__ found in {cls}")
    init = getattr(cls, "__init__")
    while hasattr(init, "_method"):
        init = getattr(init, "_method")
    params = None
    if hasattr(init, "_parameters"):
        params = getattr(init, "_parameters")
    svars = None
    if hasattr(init, "_state_variables"):
        svars = getattr(init, "_state_variables")
    if params is None and svars is None:
        cls.default_parameters = get_dict_from_init(init)
        cls.default_initial_values = {}
    elif params is None:
        cls.default_parameters = get_dict_from_init(init, skip=svars)
        cls.default_initial_values = get_dict_from_init(init, include=svars)
    elif svars is None:
        cls.default_parameters = get_dict_from_init(init, include=params)
        cls.default_initial_values = get_dict_from_init(init, skip=params)
    else:
        cls.default_parameters = get_dict_from_init(init, include=params)
        cls.default_initial_values = get_dict_from_init(init, include=svars)
    return cls