Module paroxython.cli
Command line interface for the main functionalities of Paroxython.
Usage
paroxython [--version] [--help] COMMAND [ARGS...]
Commands
tag Tag one Python file and output the table of its taxa or labels. collect Walk a directory, tag its Python files and make a JSON database of the results. recommend Read and execute a pipeline of commands and report the learning costs.
Type paroxython COMMAND --help
for more information on a specific command.
Expand source code Browse GitHub
#! /usr/bin/env python
import sys
from importlib import import_module
import regex # type: ignore
from docopt import docopt # type: ignore
from . import PAROXYTHON_VERSION
from .goodies import print_exit
if sys.version_info < (3, 8): # pragma: no cover
print_exit(f"Paroxython requires Python 3.8 or later to run.\nThis version is {sys.version}.")
def main():
doc = regex.sub(r"(?m)^ *```.*\n", "", __doc__) # suppress Markdown code delimiters
args = docopt(doc, version=f"paroxython version {PAROXYTHON_VERSION}", options_first=True)
if not args.get("COMMAND"): # pragma: no cover
print_exit(doc)
command_name = args["COMMAND"].lower()
command_args = [command_name] + args["ARGS"]
if command_name not in ("tag", "recommend", "collect"):
print_exit(f"{command_name} is not a valid command. Type 'paroxython --help'.")
command = import_module(f"paroxython.cli_{command_name}", "cli_wrapper")
command.__doc__ = regex.sub(r"(?m)^ *```.*\n", "", command.__doc__)
command.cli_wrapper(docopt(command.__doc__, argv=command_args))
if __name__ == "__main__":
main()
Functions
def main()
-
Expand source code Browse GitHub
def main(): doc = regex.sub(r"(?m)^ *```.*\n", "", __doc__) # suppress Markdown code delimiters args = docopt(doc, version=f"paroxython version {PAROXYTHON_VERSION}", options_first=True) if not args.get("COMMAND"): # pragma: no cover print_exit(doc) command_name = args["COMMAND"].lower() command_args = [command_name] + args["ARGS"] if command_name not in ("tag", "recommend", "collect"): print_exit(f"{command_name} is not a valid command. Type 'paroxython --help'.") command = import_module(f"paroxython.cli_{command_name}", "cli_wrapper") command.__doc__ = regex.sub(r"(?m)^ *```.*\n", "", command.__doc__) command.cli_wrapper(docopt(command.__doc__, argv=command_args))