Source code for canvascli.cli

# -*- coding: utf-8 -*-
"""Console script for canvascli."""

# Standard library imports
import sys

# Local imports
from canvascli.parser import ArgumentParserError, CommandParserHandler


[docs]def main(commands_list=None, print_help=True): """ Main entry fucntion. `commands_list` and `print_help` are useful for debugging and testing. """ parser = CommandParserHandler() if print_help: parser.print_help() counter = 0 while True: if commands_list: data = commands_list.pop(0) else: data = input('\nEnter command: ') # pragma: no cover raw_args = data.strip().split(' ') raw_args = [arg.strip() for arg in raw_args if arg.strip()] if raw_args: # Accept lower case commands raw_args = [raw_args[0].upper()] + raw_args[1:] try: namespace = parser.parse_args(raw_args) args = vars(namespace) # Convert to dictionary canvas_method = args.pop('func', None) args.pop('help', None) if canvas_method: canvas_method(**args) except ArgumentParserError as error: print(' ' + error.message.capitalize() + '. ' + parser.HELP) except SystemExit: return 0 except Exception as error: print(' ' + str(error)) counter += 1 parser.print_canvas()
if __name__ == "__main__": sys.exit(main()) # pragma: no cover