Coverage for src\zapy\cli.py: 0%
25 statements
« prev ^ index » next coverage.py v7.3.4, created at 2023-12-20 14:17 -0500
« prev ^ index » next coverage.py v7.3.4, created at 2023-12-20 14:17 -0500
1import sys
2import textwrap
3import argparse
6class ZapyCLI:
8 def __init__(self):
9 parser = argparse.ArgumentParser(
10 description='Zapy CLI',
11 usage=textwrap.dedent('''\
12 zapy <command> [<args>]
13 The most commonly used git commands are:
14 start_server Start the zapy service
15 connection Read or create connection config
16 ''')
17 )
18 parser.add_argument('command', help='Subcommand to run')
19 # parse_args defaults to [1:] for args, but you need to
20 # exclude the rest of the args too, or validation will fail
21 args = parser.parse_args(sys.argv[1:2])
22 if not hasattr(self, args.command):
23 print('Unrecognized command')
24 parser.print_help()
25 exit(1)
26 # use dispatch pattern to invoke method with same name
27 getattr(self, args.command)()
28 exit(0)
30 def start_server(self):
31 parser = argparse.ArgumentParser(description='Start the zapy service')
32 args = parser.parse_args(sys.argv[2:])
33 from zapy.api.bootstrapper import start_server
35 start_server()
37 def connection(self):
38 parser = argparse.ArgumentParser(description='Read or create connection')
39 args = parser.parse_args(sys.argv[2:])
40 from zapy.api import connection
42 conn_config = connection.load_server_config()
44 print(conn_config.model_dump_json())