human
I wrote the below code

    def wrapper(func):
        doc = source.__doc__.split('\n')
        for (line, text) in enumerate(doc[:(-2)]):
            if ((text.strip() == 'Parameters') and (doc[(line + 1)].strip() == '----------')):
                parameter_block = line
                break
        else:
            raise ValueError('Cannot    copy    function    docstring:    no    parameter    block    found.    To    simply    copy    the    docstring,    use    the    @copy_doc    decorator    instead.')
        for (line, text) in enumerate(doc[parameter_block:], parameter_block):
            if (':' in text):
                first_parameter = line
                parameter_indentation = (len(text) - len(text.lstrip('    ')))
                break
        else:
            raise ValueError('Cannot    copy    function    docstring:    no    parameters    found.    To    simply    copy    the    docstring,    use    the    @copy_doc    decorator    instead.')
        for (line, text) in enumerate(doc[(first_parameter + 1):], (first_parameter + 1)):
            if (len(text.strip()) == 0):
                continue
            line_indentation = (len(text) - len(text.lstrip('    ')))
            if (line_indentation <= parameter_indentation):
                first_parameter_end = line
                if (':' not in text):
                    first_parameter = parameter_block
                break
        else:
            first_parameter_end = line
            first_parameter = parameter_block
        doc = (('\n'.join(doc[:first_parameter]) + '\n') + '\n'.join(doc[first_parameter_end:]))
        if (func.__doc__ is not None):
            doc += func.__doc__
        func.__doc__ = doc
        return func
    return wrapper

What's a good function header?

Here's a good function header?
assistant
#Here's a good function header.

def copy_function_doc_to_method_doc(source):