def summarize_results()

in experimenter/manifesttool/fetch.py [0:0]


def summarize_results(results: list[FetchResult], file: TextIO) -> (int, int, int):
    """Print out a summary of the results to the given file.

    Returns:
        A 3-tuple of the number of successes, the number of cache hits, and the
        number of failures.
    """
    successes = []
    failures = []
    cached = []

    for result in results:
        if result.exc:
            failures.append(result)
        elif result.cached:
            cached.append(result)
        else:
            successes.append(result)

    if file == sys.stdout:
        print("\n\n")

    print("SUMMARY:\n", file=file)

    if failures:
        print("FAILURES:\n", file=file)
        for result in failures:
            print(result, file=file)

    if successes:
        print("SUCCESS:\n", file=file)
        for result in successes:
            print(result, file=file)

        print(file=file)

    if cached:
        print("CACHED:\n", file=file)
        for result in cached:
            print(result, file=file)

    return (len(successes), len(cached), len(failures))