refactor: update depdendency versions
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import logging
|
||||
import sys
|
||||
from argparse import ArgumentParser
|
||||
from pathlib import Path
|
||||
from typing import Self
|
||||
|
||||
from .common.logging_custom import CustomFormatter
|
||||
from .manager import ProjectManager
|
||||
|
||||
|
||||
class ProjectManagerRunner:
|
||||
def __init__(self, path: Path, task: str, verbose: int = 0):
|
||||
self._path = path
|
||||
self._task = task
|
||||
self._verbose = verbose
|
||||
|
||||
@classmethod
|
||||
def _setup_logging(cls, verbose: int):
|
||||
logging_level = logging.WARNING
|
||||
if verbose > 2:
|
||||
logging_level = logging.TRACE
|
||||
elif verbose > 1:
|
||||
logging_level = logging.DEBUG
|
||||
elif verbose > 0:
|
||||
logging_level = logging.INFO
|
||||
if verbose < 0:
|
||||
logging_level = logging.CRITICAL
|
||||
|
||||
stdout_handler = logging.StreamHandler()
|
||||
stdout_handler.setFormatter(CustomFormatter("%(message)s"))
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging_level,
|
||||
format="%(message)s",
|
||||
handlers=[stdout_handler],
|
||||
)
|
||||
|
||||
def run(self):
|
||||
self._setup_logging(self._verbose)
|
||||
manager = ProjectManager(self._path)
|
||||
result = manager.run_task(self._task)
|
||||
if result["failed"] > 0:
|
||||
sys.exit(1)
|
||||
|
||||
@classmethod
|
||||
def from_args(cls) -> Self:
|
||||
parser = ArgumentParser()
|
||||
parser.add_argument(
|
||||
"task",
|
||||
nargs="?",
|
||||
default="show",
|
||||
)
|
||||
parser.add_argument("-p", "--path", type=Path, default=Path.cwd())
|
||||
parser.add_argument("-v", "--verbose", action="count", default=1)
|
||||
parser.add_argument("-q", "--quiet", action="store_true")
|
||||
args = parser.parse_args()
|
||||
verbose = -1 if args.quiet else args.verbose
|
||||
return cls(args.path, args.task, verbose)
|
||||
Reference in New Issue
Block a user