def track_info()

in esrally/track/loader.py [0:0]


def track_info(cfg: types.Config):
    def format_task(t, indent="", num="", suffix=""):
        msg = f"{indent}{num}{str(t)}"
        if t.clients > 1:
            msg += f" ({t.clients} clients)"
        msg += suffix
        return msg

    def challenge_info(c):
        if not c.auto_generated:
            msg = f"Challenge [{c.name}]"
            if c.default:
                msg += " (run by default)"
            console.println(msg, underline="=", overline="=")
            if c.description:
                console.println(f"\n{c.description}")

        console.println("\nSchedule:", underline="-")
        console.println("")
        for num, task in enumerate(c.schedule, start=1):
            if task.nested:
                console.println(format_task(task, suffix=":", num=f"{num}. "))
                for leaf_num, leaf_task in enumerate(task, start=1):
                    console.println(format_task(leaf_task, indent="\t", num=f"{num}.{leaf_num} "))
            else:
                console.println(format_task(task, num=f"{num}. "))

    t = load_track(cfg)
    console.println(f"Showing details for track [{t.name}]:\n")
    console.println(f"* Description: {t.description}")
    if t.number_of_documents:
        console.println(f"* Documents: {convert.number_to_human_string(t.number_of_documents)}")
        console.println(f"* Compressed Size: {convert.bytes_to_human_string(t.compressed_size_in_bytes)}")
        console.println(f"* Uncompressed Size: {convert.bytes_to_human_string(t.uncompressed_size_in_bytes)}")
    console.println("")

    if t.selected_challenge:
        challenge_info(t.selected_challenge)
    else:
        for challenge in t.challenges:
            challenge_info(challenge)
            console.println("")