使用argparse轻松定义命令行和子命令。

easycli的Python项目详细描述


easycli

PyPIBuild StatusCoverage Status

argparse上python应用程序的命令行接口 包括子分析器。

安装

pip install easycli

快速启动

quickstart.py

fromeasycliimportRoot,SubCommand,Argument__version__='0.1.0'DEFAULT_TCP_PORT=8585DEFAULT_HOST='WPP.local'classSubCommand1(SubCommand):__command__='sub-command1'__aliases__=['s1','sc1']__arguments__=[Argument('-V','--version',action='store_true',help='Show programmer\'s version'),Argument('-p','--port',type=int,default=DEFAULT_TCP_PORT,help=f'TCP port, default: {DEFAULT_TCP_PORT}'),Argument('-H','--host',default=DEFAULT_HOST,help=f'Hostname, default: {DEFAULT_HOST}')]def__call__(self,args):print('Sub command 1, args:',args)classExample(Root):__help__='easycli example'__completion__=True__arguments__=[Argument('-V','--version',action='store_true',help='Show version'),SubCommand1,]def__call__(self,args):ifargs.version:print(__version__)returnreturnsuper().__call__(args)if__name__=='__main__':Example().main()
$ python quickstart.py
usage: quickstart.py [-h][-V]{sub-command1,completion} ...

easycli example

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         Show version

Sub commands:
  {sub-command1,completion}
    sub-command1
    completion          Bash auto completion using argcomplete python package.

bash自动完成

$ python quickstart.py completion
usage: quickstart.py completion [-h]{install,uninstall} ...

optional arguments:
  -h, --help           show this help message and exit

Sub commands:
  {install,uninstall}
    install            Enables the autocompletion.
    uninstall          Disables the autocompletion.

进度条

fromeasycliimportProgressBarsteps=100withProgressBar(steps)aspb:foriinrange(steps):# Do what you want herepb.increment()

examples/progressbar.py

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

推荐PyPI第三方库


热门话题
多线程重新构造使用线程池和BlockingQueue的I/O密集型Java web服务   java SWT CTabFolder检查CTAB是否存在   java如何防止具体类的实例化?   java如何将子域定向到正确的JBoss应用程序?   java Android外部文件出现不一致   java FileSystemNotFoundException:未安装提供程序“jndi”   显示jframe上的java隐藏单选按钮   java CXF客户端TCP连接在每个请求之间关闭   Hadoop查询、日期、循环、BASH或Java   java从长类型到十进制类型对象的转换类型错误   java为什么不在用户消息中提供用户提供的数据?有可能的威胁/攻击吗?   使用作用域存储MediaStore的应用程序中的java共享意图问题   java我可以通过将成员指针传递给方法并在方法中分配来初始化它吗?   java如何在一个包含正负值的数组中找到最大的负值?   java有比较二叉树路径的简单方法吗?   java Swagger(ui)不显示操作   java KairosDB缺失值的线性插值   用于此特定求和的java循环