from core.models.orm_models.Operator import Operator from core.models.manage.session_management import get_session import pprint NAME = 'operator' def register(subparsers): parser = subparsers.add_parser(NAME) subs = parser.add_subparsers(title='subcommands', dest='subcommand') subs.add_parser('list') show_parser = subs.add_parser('show') show_parser.add_argument('--id', '-i', type=int, required=True) return parser def handle(arguments, main_parser): if arguments.subcommand is None: main_parser.parse_args(['operator', '--help']) return session = get_session() if arguments.subcommand == 'list': operators = session.query(Operator).all() pprint.pp([{ 'id': o.id, 'name': o.name, 'public_key': o.public_key, } for o in operators]) elif arguments.subcommand == 'show': operator = session.get(Operator, arguments.id) if operator is not None: pprint.pp({ 'id': operator.id, 'name': operator.name, 'public_key': operator.public_key, }) else: main_parser.error('the following argument should be a valid reference: --id/-i')