import argparse from typing import Protocol import requests from renderer import Renderer parser = argparse.ArgumentParser(description="Prints the status of server nodes and their GPUs.") parser.add_argument( "-s", "--server", type=str, default="deimos", help="The name of the server to query." ) parser.add_argument( "-p", "--port", type=str, default="8091", help="The port of the server to query.", ) parser.add_argument( "-t", "--protocol", type=str, default="http", choices=("http", "https"), help="The protocol to use for the query.", ) parser.add_argument( "-c", "--compact", action="store_true", help="Flag; if set, a compact overview will be displayed." ) parser.add_argument( "-f", "--filter", type=str, nargs="*", default=None, help="The node names of nodes to filter for." ) args = parser.parse_args() response = requests.get(f"{args.protocol}://{args.server}:{args.port}/api/clients/") if not args.compact: renderer = Renderer( columns=1, progress_bar_width=50, use_space_lines=True, node_names=args.filter ) else: renderer = Renderer( columns=2, progress_bar_width=40, use_space_lines=False, node_names=args.filter, display_power=False, ) print(renderer.render_info_dict(response.json()))