in mapillary_tools/commands/__main__.py [0:0]
def main():
parser = argparse.ArgumentParser(
"mapillary_tool",
)
parser.add_argument(
"--version",
help="show the version of mapillary tools and exit",
action="version",
version=f"mapillary_tools version {VERSION}",
)
parser.add_argument(
"--verbose",
help="show verbose",
action="store_true",
default=False,
required=False,
)
parser.set_defaults(func=lambda _: parser.print_help())
all_commands = [module.Command() for module in mapillary_tools_commands]
subparsers = parser.add_subparsers(
description="please choose one of the available subcommands",
)
for command in all_commands:
cmd_parser = subparsers.add_parser(
command.name, help=command.help, conflict_handler="resolve"
)
add_general_arguments(cmd_parser, command.name)
command.add_basic_arguments(cmd_parser)
cmd_parser.set_defaults(func=command.run)
args = parser.parse_args()
log_level = logging.DEBUG if args.verbose else logging.INFO
configure_logger(LOG, sys.stderr)
LOG.setLevel(log_level)
argvars = vars(args)
params = {k: v for k, v in argvars.items() if v is not None and not callable(v)}
for k, v in params.items():
LOG.debug(f"CLI param: {k}: {v}")
try:
args.func(argvars)
except exceptions.MapillaryUserError as exc:
LOG.error(f"{exc.__class__.__name__}: {exc}")
sys.exit(exc.exit_code)