Releases: ArcletProject/Alconna
Releases · ArcletProject/Alconna
Alconna 1.8.5
Full Changelog: v1.8.4...v1.8.5
Alconna 1.8.4
新增
-
command_manager.update
上下文方法,用于修改 Alconna 对象后更新与其绑定的其他组件from arclet.alconna import Args, Alconna, Option, command_manager alc = Alconna("test") with command_manager.update(alc): alc.prefixes = ["!"] alc.add(Option("foo", Args["bar", int])) # 解析器等将同步更新
Full Changelog: v1.8.3...v1.8.4
Alconna 1.8.3
Alconna 1.8.2
Alconna 1.8.1
破坏性改动
- 删除
ContextVal
表达式
新增
Namespace
与CommandMeta
新增context_style
属性,用于指定命令插值的格式,不填入则默认不启用插值:from dataclasses import dataclass from arclet.alconna import Alconna, Args, CommandMeta alc = Alconna("test", Args["foo", str], meta=CommandMeta(context_style="bracket")) @dataclass class User: id: str @dataclass class Session: user: User arp = alc.parse( "test {session.user.id}", {"session": Session(user=User(id="123"))} ) assert arp.query[str]("foo") == "123"
改进
- 命令插值的结果现在受类型约束
Full Changelog: v1.8.0...v1.8.1
Alconna 1.8.0
此版本为 v1.x 与 v2.0 之间的过渡版本
破坏性改动
用户侧
Args.__init__
不再接受**kwargs
参数Alconna.parse
不再接受duplication
参数;请直接使用Duplication(Arparma)
fuzzy_threshold
参数移至Namespace
开发侧
NEPattern
依赖升级至 0.6.x- 移除兼容名称
Arpamar
与DataCollectionContainer
新增
-
Alconna.parse
新增ctx: dict[str, Any]
参数,用于传入上下文.- 用户可以通过
$argv.overrides
参数来覆盖 Argv 的属性
- 用户可以通过
-
Arparma
新增context
参数,与Alconna.parse
的ctx
参数对应- 当触发快捷指令后,用户可以通过
$shortcut.trigger
,$shortcut.args
,$shortcut.rest
来获取快捷指令的信息
- 当触发快捷指令后,用户可以通过
-
新增
ContextVal
表达式,可以依据用户传入的指定键从ctx
中获取值ContextVal
默认格式为$(KEY)
, 其中KEY
为ctx
中的键- 使用
ContextVal(style="bracket")
可以将ContextVal
的格式改为{KEY}
- 指定键支持 eval 表达式,如
$(session.user.id)
,$(session.user.name[1:])
ContextVal
支持只允许指定的键,如ContextVal("session", "event")
from dataclasses import dataclass from arclet.alconna import Alconna, Args, ContextVal alc = Alconna("test", Args["foo", ContextVal(style="bracket")]) @dataclass class User: id: str @dataclass class Session: user: User arp = alc.parse( "test {session.user.id}", {"session": Session(user=User(id="123"))} ) assert arp.query[str]("foo") == "123"
改进
Subcommand
可以设置别名了Alconna
的前缀可以在最尾端塞分隔符
修复
- 修复类型提示错误
Full Changelog: v1.7.44...v1.8.0
Alconna 1.7.44
Alconna 1.7.43
Alconna 1.7.42
改进
- 设置了 completion 的 Arg 在输出文本中会显示其名字
修复
- 修复
Alconna.__call__
接受 sys.argv[1:] 时没有处理引号包裹的参数的 bug
Full Changelog: v1.7.41...v1.7.42
Alconna 1.7.41
改进
Args
现在可以设置多个 MultiVar 参数- 可以通过
config.remainder
配置字符来设置多个多参数之间的分隔符