Releases: ArcletProject/Alconna
Alconna 0.8.x
Alconna 0.8.0:
Option
的alias
现在需要传入List[str],而不是str。help_text
内置两个预选板块Usage
和Example
, 编写规则为"xxx Usage:xxx; Example:xxx;"
。- 加入
TypePattern
, 作用为简单的类型转换器, 其可以设置前置转换器, 即可以str -> Path -> bytes
。 #34 - 加入命令的模糊匹配, 在
Alconna
中传入is_fuzzy_match
参数, 可以设置是否模糊匹配。 AlconnaString
参数规则修改, 现在<xx>
表示必选,[xx]
表示可选,&xx
表示action的值。ArgparseHelpTextFormatter
相关格式修改
Alconna 0.8.1-0.8.2:
- 修改了一些docstring
- 修改参数前缀, 现需要以后缀形式传入, 以
';'
为开头, 并用'|'
分割。 #35 - 参数前缀现通过单个大写字母表示, 具体对应如下:
'S'
<='*'
'W'
<='**'
'O'
<='?'
'K'
<='@'
'H'
<='_'
'F'
<='#'
'A'
<='!'
- 参数标识符现增加数字, 以表示指定长度的可变参数, 如
'foo;S'
表示能接收任意长度的可变参数,'foo;3'
表示接收长度为3的可变参数。 #35 Args
现在允许传入分隔符, 通过Args.separate(xx)
或Args / xx
设置- 加入
pattern
装饰器函数, 用以便捷的创建ArgPattern
对象 #35 - 加入
delegate
装饰器函数, 用以便捷的创建Alconna
对象 - 修复bug
Alconna 0.8.3:
- 命令头的正则支持格式修改, 由原来的
f"{表达式}"
改为"{名称:类型或表达式}"
- 加入语言文件配置, 可以通过
Alconna.load_config_file
加载自定义的语言文件, 格式为json
- 为选项与子命令的匹配也加入了模糊匹配
- 选项与子命令的
separator
可以传入空字符串,Alconna
会据此自动分割 #35 - 部分API修改, 暂时去除
from_dict
方法 - 修复了一些bug
Alconna 0.7.x
Alconna 0.7.0
Alconna
TemplateCommand
Subcommand
Arpamar
ArgAction
AlconnaDecorate
alconna.analyser
- 增加
alconna.analysis
,
Alconna 0.7.1:
- 增加
alconna.builtin.construct.AlconnaFire
,为Alconna
的Fire-like
方法. #22
其会尝试根据传入的对象生成Alconna
- 增加
UnionArg
, 其传入的列表中可以包含ArgPattern
、Type
与实际值. 为choice
的改进 Args
支持传入Union[...]
格式的参数- 增加
ObjectPattern
, 其会尝试从对象中生成ArgPattern
, 并在解析成功后创建实例 action
现支持传入异步函数 #23AlconnaString
现在会读取locals
的值
Alconna 0.7.2:
- 改进
AlconnaFire
方法, 其可通过AlconnaFire.instance
获取目标对象的可能实例 #27 - 加入
SequenceArg
与MappingArg
, 其对应解析列表、元组、集合与字典 - Subcommand在其Args未解析时抛出异常
- Arpamar现在可以获取subcommands与error_info
- 增强Format #25
- 修改help—action相关
Alconna 0.7.3:
- 优化结构
- 增加
AlconnaFire
的Config, 用来约束AlconnaFire
的参数 #27 AlconnaFire
现在可以解析子命令, 通过Config传入get_subcommand=True
来启用 #26- 更好的parameter-helptext
- 新增Args构造方法
a = Args.xxx[value, default]
util.chain_filter
重新归并到Analyser.handle_message
里- 增加
Force
类, 用以标记arg类型不需要进行转换; 或者在key前面加上"#"
- 支持传入键值对参数与可变键值对参数, 分别用
"@"
和"**""
标记 - 支持将参数设为可选(即未解析成功时不报错而是跳过), 用
"?"
标记 Arpamar
可以通过XXX.opt.arg1
、XXX.sub.sub_opt.arg2
等方式获取参数值- 修复bug
Alconna 0.7.4 ~ 0.7.4.3
- 修复BUG
- 加入
Alconna.local_args
- 增加
_
key前缀, 用以隐藏参数注解
Alconna 0.7.5
set_default
: 当某个选项未被输入时, 使用该行为添加一个默认值exclusion
: 当指定的两个选项同时出现时报错cool_down
: 限制命令调用频率
- 加入
NodeVisitor
与HelpFormatter
, 并将原先给CommandNode的help生成转移给Formatter #24 - 加入
AlconnaMessageProxy
, 用作对外适配接口
Alconna 0.7.6
- 增加对
Graia
系的原生支持, 位于arclet.alconna.graia
; 请用pip install arclet-alconna[graia]
获取 - header现在可支持非文字类元素与文字混用的解析, 原来的方式请改用
元组(非文本元素, 文本)
- 增加
Alconna
对/
与@
运算符的支持, 作用为重置命名空间 - 增加
Alconna
对+
运算符的支持, 作用为增加选项 Args
可直接传入str
, 即Args["foo":"foo"]
->Args["foo"]
Format
中的format slot可以直接写入类型, 如"{name: str}"
Alconna 0.7.7
- 加入
Argparser
风格的HelpFormatter - 加入
AlconnaDuplication
, 旨在提供更好的解析结果使用 - option的name与alias现在会根据长度自动倒换
- 修复Bug
Alconna 0.6.x
Alconna 0.6.0:
- 加入click-like构造方法,具体内容在alconna/decorate里 #13
- 加入命令行功能,目前功能为便捷式编写Alconna与便捷查看docstring #16
- 性能优化, 包含正则参数解析的速度提升大约10%
- Option支持重复输入,此时多个解析结果会以列表形式存放
Alconna 0.6.1:
- 性能优化加强, 现在纯字符串匹配可以跑到60000msg/s (与之相对, 匹配其他消息元素可以跑到10w msg/s, re出来挨打)
- commandline增加一个
analysis
功能,可以把命令转为命令格式 - 修复Bug
Alconna 0.6.2:
1.修复几个Bug
2.加入from_dict与to_dict,暂时无法支持保存action #17
3.命令行功能加入using
Alconna 0.6.3:
- 修复命令行的Bug
- 加入变长参数的支持, 可以在参数名前面添加一个
*
来表示变长参数
Alconna 0.6.4:
- 加入快捷指令功能, 可以用一段特殊的字符串来表示命令 #18
- 加入arg-choice, 可以指定参数的可选值
- 修改docstring, 使其变得更加可读
- 加入commandManager.broadcast功能, 可以广播命令
Alconna 0.6.5:
- 可以自定义all_command_help
- 加入anti-arg, 用以反向检查参数 #20
- 修复一些bug
Alconna 0.5.x
Alconna 0.5.1: 优化整体结构;完善了action相关;修改参数默认值的bug
Alconna 0.5.2: 紧急修复Action无法返回值的bug
Alconna 0.5.3: 增加自定义消息元素过滤;headers支持传入消息元素
Alconna 0.5.4: 优化结构;Arpamar 现可直接以XXX.name方式获取参数
Alconna 0.5.5: from_sting可以传入option了;修复bug
Alconna 0.5.6: 修复Bug; 增加了Email的参数匹配
Alconna 0.5.7: 修复非ArgPattern修饰的参数无法解析消息元素的Bug
Alconna 0.5.8: 加入有序匹配模式与命令缓存, 能使性能大大提升
Alconna 0.5.9: help选项可用传入一自定义函数已达到直接发送帮助说明的效果;规范format方法;from_string现在可以用#加入帮助说明;加入commandManager,帮助管理所有命令;支持解析原始消息链
Alconna 0.4.x
Alconna 0.4.1:加入 AnyParam类型 (单次泛匹配)与AllParam类型 (全部泛匹配);修改部分逻辑
Alconna 0.4.2:加入AnyFloat预制正则; Args构造支持传入元组; 增加两种简易构造Alconna的形式; 修复Bug
Alconna 0.4.3:加入Action (暂时只针对Option); Args解析出来的结果 (如bool值, int值) 会转为指定的类型
Alconna 0.3.x
Alconna 0.3.1: 加入Args类、main_argument -> main_args, 砍掉了Default
Alconna 0.3.2: 取消了pydantic的依赖,结构优化,加入Option的alias功能
Alconna 0.3.3: 修改Args内部构造、加入Pattern (仍向下兼容), 并为两个引入魔术方法;修改exception
Alconna 0.3.4: 参数传入改进,代码审核改进
Alconna 0.2.x
0.2.1: 内置Help功能
0.2.2: 微调
Alconna 0.1.x
0.1.1 Alconna基础功能
0.1.2 Arpamar结构简化+支持Graia v5形式的消息链
0.1.3 取消Letoderea的依赖,AlconnaParser改回Cesloi内