From d880900b5702188422cdda92a68181cd14067afc Mon Sep 17 00:00:00 2001 From: tamservo Date: Fri, 21 Jul 2023 02:29:57 +0100 Subject: [PATCH] adding main.py which calls the RobottasSignalr code. --- main.py | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..12ac3e7 --- /dev/null +++ b/main.py @@ -0,0 +1,60 @@ +import argparse +import sys +from RobottasSignalr import SignalRClient, messages_from_raw + + +def save(args): + mode = 'a' if args.append else 'w' + client = SignalRClient(args.file, filemode=mode, debug=args.debug, + timeout=args.timeout) + client.start() + + +def convert(args): + with open(args.input, 'r') as infile: + messages = infile.readlines() + data, ec = messages_from_raw(messages) + with open(args.output, 'w') as outfile: + for elem in data: + outfile.write(str(elem)+'\n') + print(f"Completed with {ec} error(s)") + + +parser = argparse.ArgumentParser( + prog="python -m fastf1.livetiming", + description="Save live timing data during a session", + formatter_class=argparse.ArgumentDefaultsHelpFormatter +) + +subparsers = parser.add_subparsers() + +rec_parser = subparsers.add_parser( + 'save', help='Save live timing data' +) +conv_parser = subparsers.add_parser( + 'extract', help='Extract messages from saved debug-mode data' +) + +rec_parser.add_argument('file', type=str, help='Output file name') +rec_parser.add_argument('--append', action='store_true', default=False, + help="Append to output file. By default the file is " + "overwritten if it exists already.") +rec_parser.add_argument('--debug', action='store_true', default=False, + help='Enable debug mode: save full SignalR message, ' + 'not just the data.') +rec_parser.add_argument('--timeout', type=int, default=60, + help='Timeout in seconds after which the client will ' + 'automatically exit if no data is received.') +rec_parser.set_defaults(func=save) + +conv_parser.add_argument("input", type=str, help='Input file name') +conv_parser.add_argument("output", type=str, help='Output file name') +conv_parser.set_defaults(func=convert) + +if not len(sys.argv) > 1: + # user did not provide any arguments + parser.print_help() + parser.exit(1) + +args = parser.parse_args() +args.func(args) # call function associated with subparser \ No newline at end of file