def iter_nautilus(method):
    """ Iterate NAUTILUS method either interactively, or using given preferences if given

    Parameters
    ----------

    method : instance of NAUTILUS subclass
       Fully initialized NAUTILUS method instance

    """
    solution = None
    while method.current_iter:
        preference_class = init_nautilus(method)
        pref = preference_class(method, None)
        default = ",".join(map(str, pref.default_input()))
        while method.current_iter:
            method.print_current_iteration()

            pref_input = _prompt_wrapper(
                u"Preferences: ",
                default=default,
                validator=VectorValidator(method, pref),
            )

            cmd = _check_cmd(pref_input)
            if cmd:
                solution = method.zh
                break
            pref = preference_class(
                method, np.fromstring(pref_input, dtype=np.float, sep=",")
            )
            default = ",".join(map(str, pref.pref_input))
            solution, _ = method.next_iteration(pref)
        if cmd and list(cmd)[0] == "c":
            break
    return solution
Iterate NAUTILUS method either interactively, or using given preferences if given

    Parameters
    ----------

    method : instance of NAUTILUS subclass
       Fully initialized NAUTILUS method instance