0

对于我的玩具项目mpu,我想要以下命令:

# Creates a Python project based on a template
$ mpu init

# Checks a Python project for style 
$ mpu stylecheck

所以假设我有一个命令run_init(),一个命令run_stylecheck()和一个argparse.ArgumentParser名为的对象parser

def run_init():
    print('init is executed')

def run_stylecheck():
    print('stylecheck is executed')

def get_parser(parser=None):
    """Get parser for packaging part."""
    from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
    if parser is None:
        parser = ArgumentParser(description=__doc__,
                                formatter_class=ArgumentDefaultsHelpFormatter)
    subparsers = parser.add_subparsers(dest='subparser_name')
    pkg_init_parser = subparsers.add_parser('init')
    return parser

get_parser().parse_args()

如何将这两个命令添加到它?

限制

请不要建议sys.argv手动解析的解决方案,也不要click。第一个不是一个选项,因为它太难扩展,第二个不是一个选项,因为我特别不想使用外部依赖项 - 尽管click很棒。

https://stackoverflow.com/a/27529806/562769我认为这也不是一个选项,因为这将是很多不同的命令,并且提供解析器对象的子模块不会调用该对象。

4

0 回答 0