def METHOD_NAME(f):
    """
    Ensure the docstring of `f` is in accordance with the numpy standard
    Currently, only the Parameters section of the docstring is checked.
    Parameters
    ----------
    f : function, method, class
    Returns
    -------
    repr : string
        A string represntation
    """
    doc = getdoc(f)
    if doc is None:
        if error_on_none:
            raise ValueError('no docstring for %s' % format(f))
    else:
        with warnings.catch_warnings():
            warnings.simplefilter('error')
            parsed = NumpyDocString(doc)
        param_names = {e[0] for e in parsed['Parameters']}
        if isbuiltin(f):
            # You can't get the arglist from a builtin, which
            # is how cython functions turn up
            # but you can, hackily, get the number of arguments it wants
            # by parseing the error hen you supply too many
            import re
            try:
                f(*list(range(100)))
            except TypeError as e:
                m = re.search('takes at most (\d+) positional arguments', str(e))
                if not m:
                    return
                n_args = int(m.group(1))
            if len(param_names) != n_args:
                raise ValueError("In %s, number of arguments, %d, doesn't "
                    " match the length of the Parameters in the "
                    "docstring, %d" % (format(f), n_args, len(param_names)))
            return
        args = set(getargs(get_function_code(f)).args)
        if 'self' in args:
            args.remove('self')
        if 'cls' in args:
            args.remove('cls')
        if args != param_names:
            raise ValueError("In %s, arguments %s don't "
                "match Parameters list %s" % (format(f),
                    list(args), list(param_names)))