没有项目描述

clifier的Python项目详细描述


夹子

Clifier是一个简单的小脚本,用于生成Argparse命令和子parser 从yaml配置文件。

所有参数和参数的名称与argparser模块中的相同, 所以你不需要知道新的词汇。

使用clifier时,不需要为用户创建单独的文档- 您可以将config.yaml文件用作doc。

安装

要安装夹子-请使用pip:

pip install clifier 

示例

在文件夹clifier/examples中,您可以找到带有配置文件的示例cli。 把它复制到你的本地环境并测试

yaml配置的简单示例:

parser:
  prog: 'Clifier Example'
  description: Example for Clifier

commands:
   - keys: ['-v', '--version']
     help: "show Clifier Example version"
     action: show_version()
     default: True

subparsers:
  play:
    - keys: ['game']
      help: Write a name of the gave, what you want to play

    - keys: ['-c', '--count']
      help: Put number how much times you want to play
      default: 2

  sleep:
    - keys: ['-t', '--time']
      help: Put how much second you want to sleep

配置文件中的节

“解析器”部分

用于定义等于argparse.argumentparser()的args的args init方法,例如:

- prog
- description
- usage
- epilog and etc 

to know more, look at official Argparse documentation:
https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser

“命令”部分
commands properties equal to add_argument method
https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser.add_argument 

“subparsers”部分
name of subparser section element - it's a name, what equals to 
add_parser() argument "name" of object what returned by 
add_subparser_method

https://docs.python.org/3.6/library/argparse.html#argparse.ArgumentParser.add_subparsers

it's a Subparser name and it's not showed as argument in parser

在代码中使用剪贴画

使用cli准备变量,变量的路径为配置文件:

config_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "cli.yaml")

初始化剪贴簿

cli = clifier.Clifier(config_path, prog_version="0.0.1")

并获得类似standart argparse parser的解析器

parser = cli.create_parser()
args = parser.parse_args()

就这样!

添加自定义操作

您可以使用add_actions()方法将自定义argparser操作添加到剪贴符中:

cli = clifier.Clifier(config_path)
cli.add_actions((your_custom_action_1, your_custom_action_2)

要在Cli中使用这些操作,请在命令行配置文件中使用“action”属性定义它们,例如:

从剪贴符中的框定义的自定义操作

显示版本

方法创建命令-v,--version以显示程序版本 用法:

1. provide arg prog_version to Clifier() or define "version" param in config

    example in config.yaml:

    parser:
       prog: 'your prog name'
       version: "0.0.1"

    or 

    cli = clifier.Clifier(config_path, prog_version="0.0.1")

2. define -v, --version command in cli config:

    commands:
       - keys: ['-v', '--version']
         help: "show Clifier Example version"
         action: show_version()
         default: True
检查路径操作

此动作检查存在或不由用户提供给命令行的文件路径。

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

推荐PyPI第三方库


热门话题
java希望直接扫描要上传到网页的文档   java JavaFX使对象可见,但不使用(忽略)点击   java LibGdx奇怪的纹理行为   java JavaFx ComboBox在第一次单击时未获得正确的值   api WebDav服务器库最好使用Java   java在Android中维护应用程序状态   java保存在Android中拖放RecyclerView后所做的更改我已经阅读了所有内容   无法读取项目中所需库tomcatembedwebsocket的java存档,或者该存档不是有效的ZIP文件   c#类在系统中有哪些关联?如何在UML中最好地表示它们?   java如何使用bazaar访问两台计算机上的同一文件夹   Java易失性与缓存一致性   java如何解决http11。校长:例外?   java liferaymavenplugin从maven Liferay 6.2.5(6.2 ga6)部署war   安卓的jar for java在哪里。木卫一。文件   java邻接矩阵中BFS的顺序是什么?   虚拟机如何从java启动linux虚拟机?   向DefaultListModel添加元素时java JList未更新   java JMSListener批注无法与REST服务一起使用   java DirectoryStream返回路径的顺序是什么?文件名,上次修改,文件大小?   java DropWizard Hibernate doc想说什么?