import logging import os from argparse import ArgumentParser from ast import arg from pathlib import Path from project_manager.logging import CustomFormatter from project_manager.manager import ProjectManager def run(): parser = ArgumentParser() parser.add_argument( "task", nargs="?", default="show", choices=("show", "setup", "lint", "format", "test"), ) parser.add_argument("-p", "--path", default=os.getcwd()) parser.add_argument("-v", "--verbose", action="count", default=1) parser.add_argument("-q", "--quiet", action="store_true") args = parser.parse_args() logging_level = logging.WARNING if args.verbose > 2: logging_level = logging.TRACE elif args.verbose > 1: logging_level = logging.DEBUG elif args.verbose > 0: logging_level = logging.INFO if args.quiet: logging_level = logging.CRITICAL if logging_level <= logging.INFO: logging.getLogger(">").setLevel(logging.CRITICAL) stdout_handler = logging.StreamHandler() stdout_handler.setFormatter(CustomFormatter("%(message)s")) logging.basicConfig( level=logging_level, format="%(message)s", handlers=[stdout_handler], ) basepath = Path(args.path) manager = ProjectManager(basepath) manager.run_command(args.task) if __name__ == "__main__": run()