使用python创建cli应用程序的框架

cli-app的Python项目详细描述


python cli应用程序

Framework for creating CLI apps using Python

这个库的目的是通过提供表示应用程序及其命令的抽象类来加速构建cli应用程序。它使用argparse来定义和解析命令行参数。

概念

应用程序

“应用程序”是应用程序的主要入口点。它将一个或多个命令组合在一起

命令

“命令”是应用程序可以执行的单个操作。它由命令行上的位置参数标识。以git为例。git将是app提供不同的command,例如addcommitmergecheckout等。

示例

git.py

#!/usr/bin/env python3fromcli_appimportAppfromcommands.checkoutimportCheckoutfromcommands.mergeimportMergeclassGit(App):"""Git - fast, scalable, distributed revision control system"""defregister_commands(self):self.add_command('checkout',Checkout)# make the Checkout command available through `git.py checkout …`self.add_command('merge',Merge)# make the Merge command available through `git.py merge …`if__name__=='__main__':app=Git()app.run()

命令/checkout.py

fromcli_appimportCommandclassCheckout(Command):"""Switch branches or restore working tree files"""@staticmethoddefregister_arguments(parser):parser.add_argument('ref',type=str,help='The ref (branch name, tag, commit sha) to checkout')defrun(self):# Do whatever needs to be done to checkout given refprint('Checking out %s'%self.app.args.ref)

命令/merge.py

fromcli_appimportCommandclassMerge(Command):"""Join two or more development histories together"""@staticmethoddefregister_arguments(parser):parser.add_argument('branch',type=str,help='The branch to merge into the currently checked-out branch')defrun(self):# Do whatever needs to be done to merge given branchprint('Merging %s into current branch'%self.app.args.branch)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么会导致程序在它似乎拥有的监视器上被阻止?   java Android studio设置视图的背景色   java我可以保存一个文本文件而不给用户修改它的能力吗?   pdfbox PDFBOX2。0:java堆堆栈错误   java是维护和操作AllowList的有效方法   JAVAsql。SQLException:找不到适合jdbc的驱动程序:mysql://localhost:3306/asd性爱   如何使用java。lang.NullPointerException:void 安卓。支持v7。应用程序。ActionBar。setElevation(float)“”在空对象引用上'   java调试空指针异常   java正则表达式,以按令牌的特定匹配项拆分,同时忽略其他匹配项   java为JPanel设置边框上的笔划   并发@Schedule方法的java行为   如何在Java中使用泛型与语言运算符和泛型类扩展数   java Rhino Javascript如何为异常堆栈跟踪标记字符串源   运行可执行jar时发生java错误,无法找到或加载主类