Source code for openschemas.cli

#!/usr/bin/env python3

# Copyright (c) 2018, Vanessa Sochat All rights reserved.
# See the LICENSE in the main repository at:
#    https://www.github.com/openschemas/openschemas-python

import argparse
import sys
import os

[docs]def get_parser(): parser = argparse.ArgumentParser(description="openschemas") parser.add_argument("--version", dest='version', help='print the version and exit', default=False, action="store_true") subparsers = parser.add_subparsers(help='description', title='actions', description='actions for openschemas', dest="command", metavar='general usage') validate = subparsers.add_parser("validate", help="validate a specification") validate.add_argument("--basic", dest='basic', help='use the basic validator, without extra checks and loading', default=False, action="store_true") validate.add_argument('--criteria', nargs='?', help="define custom entry criteria (critera.yml)", default=None, type=str) validate.add_argument('--infile', nargs='?', help="input file to validate", default=None, type=str) return parser
[docs]def get_subparsers(parser): '''get_subparser will get a dictionary of subparsers, to help with printing help ''' actions = [action for action in parser._actions if isinstance(action, argparse._SubParsersAction)] subparsers = dict() for action in actions: # get all subparsers and print help for choice, subparser in action.choices.items(): subparsers[choice] = subparser return subparsers
[docs]def main(): '''entrypoint for openschemas executable ''' from openschemas.main import Client parser = get_parser() subparsers = get_subparsers(parser) try: args = parser.parse_args() except: parser.print_help() sys.exit(0) if args.version is True: print(Client.version()) sys.exit(0) if args.command == "validate": from .validate import main main(args) else: parser.print_help()
if __name__ == '__main__': main()