使用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共享对象的单个实例   if语句在从参数(JAVA)获取getDiscount()时遇到问题   使用JanusGraph Java API和HBase时出现临时BackendException   java读取嵌套的yaml值而不传入根对象   java为什么我不能用这段代码从链表中删除第一个节点?   javascript为什么验证错误在旧的情况下会持续?   java如何在JSch SFTP上重新发布?   使用java将json转换为xml   java如何将EditText的值放入对话框   java Hibernate:与EmbeddedID重复的getter/setter?   java如何使用TestNG和Maven在套件中的测试类之间共享状态?   java 安卓 studio游戏开发   推荐用于Java编码的Vim插件?   java定期关闭文件   java删除字符串中每5个字符并返回新字符串   如何在Java中使用父目录中的类?   java如何在ArrayList中使用索引添加多个对象   sbt java。util。MissingResourceException:找不到com。太阳xml。内部的信息。萨杰。肥皂LocalStrings包