human
Here's a good function header given the following:
I wrote the below code

    def run_dev_server(application):
        app_pkg = tmpdir.mkdir('testsuite_app')
        appfile = app_pkg.join('__init__.py')
        appfile.write('\n\n'.join(('kwargs    =    dict(port=5001)', textwrap.dedent(application))))
        monkeypatch.delitem(sys.modules, 'testsuite_app', raising=False)
        monkeypatch.syspath_prepend(str(tmpdir))
        import testsuite_app
        port = testsuite_app.kwargs['port']
        if testsuite_app.kwargs.get('ssl_context', None):
            url_base = 'https://localhost:{0}'.format(port)
        else:
            url_base = 'http://localhost:{0}'.format(port)
        info = _ServerInfo(subprocess, 'localhost:{0}'.format(port), url_base, port)
        def preparefunc(cwd):
            args = [sys.executable, __file__, str(tmpdir)]
            return (info.request_pid, args)
        subprocess.ensure('dev_server', preparefunc, restart=True)
        def teardown():
            pid = info.last_pid
            os.killpg(os.getpgid(pid), signal.SIGTERM)
        request.addfinalizer(teardown)
        return info
    return run_dev_server

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

@pytest.fixture
def dev_server(tmpdir, subprocess, request, monkeypatch):