def _generate_func_api():
    """Auto detect all available interfaces and generate a function-based
       API from them
    """
    from importlib import import_module
    from .interface.base import update_docstring_with_parameters
    from .interface.base import get_interface_groups
    from .interface.base import get_api_name
    from .interface.base import alter_interface_docs_for_api
    for grp_name, grp_descr, interfaces in get_interface_groups():
        for intfspec in interfaces:
            mod = import_module(intfspec[0], package='reproman')
            intf = getattr(mod, intfspec[1])
            spec = getattr(intf, '_params_', dict())
            update_docstring_with_parameters(intf.__call__, spec, prefix=
                alter_interface_docs_for_api(intf.__doc__), suffix=
                alter_interface_docs_for_api(intf.__call__.__doc__))
            globals()[get_api_name(intfspec)] = intf.__call__
