async def METHOD_NAME(context, path, signing_formats, **kwargs):
    """Call the appropriate signing function per format, for a single file.
    Args:
        context (Context): the signing context
        path (str): the source file to sign
        signing_formats (list): the formats to sign with
    Returns:
        list: the list of paths generated. This will be a list of one, unless
            there are detached sigfiles.
    """
    output = path
    # Loop through the formats and sign one by one.
    for fmt in signing_formats:
        signing_func = _get_signing_function_from_format(fmt)
        try:
            size = os.path.getsize(output)
        except OSError:
            size = "??"
        log.info("sign(): Signing %s bytes in %s with %s...", size, output, fmt)
        output = await signing_func(context, output, fmt, **kwargs)
    # We want to return a list
    if not isinstance(output, (tuple, list)):
        output = [output]
    return output