Source code for openbases.cli.badges

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

import requests
import argparse
import sys
import os

[docs]def get_parser(): from openbases.main.defaults import BADGE_STYLES, BADGE_COLORS parser = argparse.ArgumentParser(description="OpenBases Python Badges", formatter_class=argparse.RawTextHelpFormatter, add_help=False) # Global Options parser.add_argument('--version', dest="version", help="show openbases python version", default=False, action='store_true') subparsers = parser.add_subparsers(help='description', title='actions', description='actions for openbases', dest="command", metavar='general usage') view = subparsers.add_parser("view", help="view options for style, labels, etc.") view.add_argument('choice', nargs="?", default="labels", choices=['labels', 'styles', 'colors']) create = subparsers.add_parser("create", help="extract values from a paper.md") create.add_argument('--cache', dest="longCache", help="enable long cache for badge. Default False", default=False, action='store_true') create.add_argument('names', nargs="*", help="label followed by name") create.add_argument("--link", dest="link", default=None, type=str, help='badge link, defaults to openbases.github.io') create.add_argument('--style', default="flat", choices=BADGE_STYLES, dest="style") create.add_argument('--color', default=None, choices=BADGE_COLORS, dest="color") create.add_argument('--fmt', default="markdown", choices=["markdown", "svg"], dest="format") 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 version(): '''version prints the version, both for the user and help output ''' import openbases return openbases.__version__
[docs]def main(main=None): parser = get_parser() subparsers = get_subparsers(parser) def help(return_code=0): '''print help, including the software version and exit ''' v = version() print("\nOpen Bases Badges Python [v%s]\n" %(v)) parser.print_help() sys.exit(return_code) try: # We capture all primary arguments, and take secondary to pass on args, options = parser.parse_known_args() except: sys.exit(0) # If the user wants the version if args.version is True: print(version()) sys.exit(0) # Does the user want help for a subcommand? if args.command == 'create': from .create import main elif args.command == 'view': from .view import main else: help() # Pass on to the correct parser if args.command is not None: main(args=args, options=options)
if __name__ == '__main__': main()