def METHOD_NAME(entrypoint: str):
    """Given a function name in the form of a setuptools entry point, try to
    dynamically load and return it
    Args:
        entrypoint: setuptools-style entrypoint in the form
            module.submodule:function
    Returns:
        function: function loaded from entrypoint
    Raises:
        InvalidExtFunctionError: If the module or function did not exist
    """
    logger = _getlogger()
    try:
        module, funcname = entrypoint.split(":")
    except ValueError as e:
        msg = "Expected entrypoint in the form module.submodule:function"
        logger.exception(msg)
        raise exceptions.InvalidExtFunctionError(msg) from e
    try:
        imported = importlib.import_module(module)
    except ImportError as e:
        msg = "Error importing module {}".format(module)
        logger.exception(msg)
        raise exceptions.InvalidExtFunctionError(msg) from e
    try:
        function = getattr(imported, funcname)
    except AttributeError as e:
        msg = "No function named {} in {}".format(funcname, module)
        logger.exception(msg)
        raise exceptions.InvalidExtFunctionError(msg) from e
    return function