- 修复多层节点情况下无法返回返回值
- 在有返回值时由__call__中返回的值会包含节点信息
- 提供一个默认的返回config的main而不是提示没有注册main
- 允许main返回任意值,这个值会在调用__call__时返回
- 增加方法
with_schema
用于在实例化后注册一个schema,支持json字符串,dict和pydantic的类三种形式,注意,pydantic的类不支持嵌套,不支持Union,不支持Optional,但可以将with_schema
作为装饰器使用,且节点将会使用被装饰的类名小写作为节点名,类docstring作为description
- 移除对python 3.10 以下版本的支持
- 移除setup.py和setup.cfg
- 现在展示子命令时展示的时子命令docstring的第一行而不再展示全部.
- 修复了boolean型参数必须使用命令行设置无效的问题
- 修复了
boolean
型参数必须使用命令行设置为True否则一定被false覆盖的问题 - 修复了
boolean
型参数的const
定义需要取值类型为string的bug
EntryPoint
类可以直接在实例化时通过参数定义其description
,epilog
,usage
,name
等属性.这样我们就可以直接实例化EntryPoint
构造节点而不用继承了.这一特性适合用在构造非叶子节点时.- 与其对应的,
.regist_sub
方法现在可以添加参数用于在实例化节点时放入参数
- 解决自定义解析的配置文件不受``控制的问题
- 解决打印出奇怪字符的问题
- schema字段现在支持
title
和$comment
字段了 - schema中定义的
title
字段可以用于定义命令行的缩写
- 可以使用
@regist_config_file_parser(config_file_name)
来注册如何解析特定命名的配置文件
- 可以通过设置
load_all_config_file = True
来按设定顺序读取全部预设的配置文件位置
- 可以通过设置字段
config_file_only_get_need
来控制从配置文档中读取数据时是全量读取还是根据schema的定义读取.默认为True
- 默认新增一个命令行flag
--config/-c
来指定一个路径用于读取配置文件,其行为和默认位置配置文件一致.
- 修复了每一级子命令都会打印epilog的bug
array
类型的参数现在也可以被作为命令行中的noflag字段了.它的输入行为使用nargs="+"
的形式
- 修复了
array
类型无法设置enum
的问题
verify_schema
被设置为False时不会抛出警告- 对环境变量的解析不会再有
None
- 环境变量不会再解析默认值
- 中间节点的的
--help
命令会在底部展示子命令的简介.简介内容为子命令的docstring
- array类型的协议定义无法解析item的问题
- array类型可以设置默认值
- 实现了如下基本功能
default_config_file_paths字段
可以读取yaml格式的配置文件
- 实现了如下基本功能
- 根据子类的名字构造命令
- 入口节点可以通过方法
regist_sub
和regist_subcmd
注册子节点 - 根据子类的docstring,
epilog字段
和description字段
自动构造,命令行说明. - 根据子类的
schema字段
和env_prefix字段
自动构造环境变量的读取规则. - 根据子类的
default_config_file_paths字段
自动按顺序读取json格式配置文件中的参数. - 根据
schema字段
校验配置 - 根据
schema字段
构造命令行参数 - 使用装饰器
as_main
注册获取到配置后执行的函数