Cliff框架介绍

1 cliff简介    Cliff(CommandLine Interface Formulation Framework),即命令行接口制定框架。可定义多级命令、输出格式以及其他一些扩展来创建命令行相关项目。Cliff框架中定义的主程序处理参数解析,并调用子命令来完成工作。    Cliff借助Python的优势能够动态的装载代码,允许主程序中用到的子命令分布式的实现,并向用户提供统一
摘要由CSDN通过智能技术生成


1 cliff简介

    Cliff(CommandLine Interface Formulation Framework),即命令行接口制定框架。可定义多级命令、输出格式以及其他一些扩展来创建命令行相关项目。Cliff框架中定义的主程序处理参数解析,并调用子命令来完成工作。

    Cliff借助Python的优势能够动态的装载代码,允许主程序中用到的子命令分布式的实现,并向用户提供统一的命令行界面,方便开发者组织源码。Neutron提供了命令行模式、交互式模式,正是基于cliff架构实现的。

cliff框架中包括了最基本的四类对象

1     theapplication

Cliff.app.App是cliff框架的主程序,负责参数解析、配置logging、设置I/O流等。

2      theCommandManager

cliff.commandmanager.CommandManager 用于加载子命令,默认是通过setuptools entry points机制实现。

3      theCommand

cliff.command.Command 可通过继承该类实现相应的子命令供主程序调用。

4      theInteractive Application

主程序调用cliff.interactive.InteractiveApp实例向用户提供command-shell模式,用户可输入多个命令。

cliff objects之间的关系

    Cliff.app.App类中,初始化函数包括定义self.commandmanager,它是cliff.commandmanager.CommandManager的实例,self.interactive-app-factory,它是cliff.interactive.InteractiveApp的实例。run()函数是主程序入口函数。

输出格式

   List命令提供的输出格式:csv, table, value, yaml, json, HTML,使用方法是在命令后面输入:-f 输出格式;Show命令提供的输出格式:table,shell, value, yaml, json, HTML,下面举例介绍各种格式的特点,HTML格式需要安装cliff-tablib,这里不做演示。

  Csv格式:

(.venv)$ cliffdemo files -f csv

"Name","Size"

"build",136

"cliffdemo.log",2690

"Makefile",5569

"source",408

 Table格式:

(.venv)$ cliffdemo files

+---------------+------+

|      Name     | Size |

+---------------+------+

| build         |  136 |

| cliffdemo.log | 2546 |

| Makefile      | 5569 |

| source        |  408 |

+---------------+------+

  Value格式

(.venv)$ cliffdemo files

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值