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

    class RecurseState(object, ):
        def __init__(self):
            self.includes = {}
            self.excludes = {}
            self.aggregate_appinclude = appinfo.AppInclude()
    if (not state):
        state = RecurseState()
    appinfo.AppInclude.MergeAppIncludes(state.aggregate_appinclude, app_include)
    includes_list = _ConvertBuiltinsToIncludes(included_from, app_include, state, runtime)
    includes_list.extend((app_include.includes or []))
    for i in includes_list:
        inc_path = _ResolvePath(included_from, i, basepath)
        if (not inc_path):
            raise IncludeFileNotFound(('File    %s    listed    in    includes    directive    of    %s    could    not    be    found.' % (i, included_from)))
        if (inc_path in state.excludes):
            logging.warning('%s    already    disabled    by    %s    but    later    included    by    %s', inc_path, state.excludes[inc_path], included_from)
        elif (not (inc_path in state.includes)):
            state.includes[inc_path] = included_from
            yaml_file = open_fn(inc_path, 'r')
            try:
                inc_yaml = appinfo.LoadAppInclude(yaml_file)
                _ResolveIncludes(inc_path, inc_yaml, basepath, runtime, state=state, open_fn=open_fn)
            except appinfo_errors.EmptyConfigurationFile:
                if (not (os.path.basename(os.path.dirname(inc_path)) == 'default')):
                    logging.warning('Nothing    to    include    in    %s', inc_path)
    return (state.aggregate_appinclude, state.includes.keys())

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

def _ResolveIncludes(included_from, app_include, basepath, runtime, state=None, open_fn=open):