Skip to content

Releases: ArcletProject/Alconna

Alconna 1.6.0

18 Feb 14:29
Compare
Choose a tag to compare
  1. 改进 shorcut
  2. 改进 Alconna.add,加入subcommand的添加
  3. 修复 bugs
  4. 移动 Args.from_string_listarclet-alconna-tools
  5. 合并 arparmacomponents.behavior
  6. 合并 partsspecial
  7. 移动 Formatterformatter.py
  8. 移动 ActionHandlercore.py
  9. 移除 AlconnGroup 类,但保留通过 | 组合命令的行为
  10. 移除 analysis.base

Full Changelog: 1.5.0...1.6.0

Alconna 1.5.1

18 Jan 16:40
Compare
Choose a tag to compare

Alconna 1.5.0 ~ 1.5.1:

  1. 加入 HeadResult, 表示头部匹配的结果
  2. 加入 SubAnalyser, 负责部分原 Analyser 的部分功能
  3. Arparma.header_match 现在返回 HeadResult 类型
  4. 新增 DataCollectionContainer 类, 负责原 Analyser 的数据操作
  5. 因为 [2], 现在支持子命令嵌套
  6. 部分 api 改动:
    • Analyser.process -> Analyser.container.build
    • Analyser.analyser -> Analyser.process
    • analyse_subcommand -> analyse_param
  7. 新增 Analyser.config 方法以配置如 preprocessor, filter_out 之类的参数
  8. Arparma.update 移动到 ArparmaBehavior.update
  9. Arparma.query 现在不一定返回 Mapping 类型
  10. 新增 output_manager.set 方法以新增输出行为
  11. 修改 output_manager.get 方法从构建输出行为到只获取输出行为
  12. 新增 output_manager.capture 上下文管理器以提供输出捕获功能
  13. set_default 可以细化至更新 subcmd.opt.args.arg 的值
  14. 修复 bug

Alconna 1.4.1

04 Dec 09:28
Compare
Choose a tag to compare

修复 help text的bug

Alconna 1.4.0

04 Dec 08:42
Compare
Choose a tag to compare
  1. 改进字符串分割过程,以运行更细粒度的分隔控制
  2. 加入ArparmaExecutor,以绑定一个响应函数
  3. behaviors与formatter的配置移至Namespace, 原Alconna.config仅用于配置解析器类型
  4. Alconna构建时不再允许废弃的kwargs参数传入
  5. 'Arpamar' -> 'Arparma'
  6. 改进 Args 构建, 加入 Arg 类 替代原先的 ArgUnit,并保留参数名后缀传入
  7. 可变参数与键值参数需要通过 alconna.typing.MultiVaralconna.typing.KeyWordVar 显式声明,
    并提供 alconna.typing.Kw 来进行缩写 (如 Kw @ int)
  8. 修复可能存在的内存泄漏问题
  9. 原先的 ArgFlag 'H','O','A' 变回 '/','?','!'
  10. Args.separators 移除,分割任务转移给 Arg.separators
  11. set_default 现在可以传入 factory 参数, 并且必须传入关键字参数

Alconna 1.3.1 - 1.3.2

15 Oct 05:09
Compare
Choose a tag to compare
  1. 添加通过"+"以组合字符串与选项或者子命令等隐式构建命令的方法
  2. 允许自定义内建选项的名称,比如改"--help"为"帮助"
  3. Arpamar.find 现在可以用 query_path 了
  4. Arpamar.query 现在返回的是MappingProxyType, 若需要修改path的值请用Arpamar.update
  5. 修复 bugs
  6. 调整lang config
  7. 修改 help text 的 bug
  8. 调整 completion 样式

Alconna 1.3.0

19 Sep 07:33
Compare
Choose a tag to compare
  1. 修复 bugs
  2. 调整 Alconna的构造样式, 将header、command、options等合并; 兼容旧版写法到1.4
  3. 原先的builtins迁移至arclet-alconna-tools, 只保留set_default、store_value与version
  4. set_default可以附加一个 arg 名
  5. 调整repr样式
  6. 取消 shortcut的expiration
  7. 新增命名空间配置,并将原先部分全局配置划为命名空间下的配置
  8. 允许.parse传入参数interrupt(bool)以在参数缺失的情况下可后续自行加参数

Alconna 1.2.x

25 Aug 05:32
Compare
Choose a tag to compare

Alconna 1.2.0:

  1. 修复 bugs
  2. 加入 ArgField, 可填入 alias, default_factory#50
  3. 命令管理器可以获取原始的命令数据 #52
  4. 加入命令补全功能, 暂由--comp|-cp触发 #53
  5. 加入 CommandMeta, 并取代help_textis_raise_exception
  6. meta 新增 hide, 可以在命令管理器获取所有帮助时跳过该命令 #51

Alconna 1.1.x

14 Jul 04:40
Compare
Choose a tag to compare

Alconna 1.1.2:

  1. 修复 bugs
  2. BasePattern 加入 to 方法

Alconna 1.1.1:

  1. Arpamar 泛型支持, 可通过Arpamar[type]指定原指令的类型
  2. Alconna 可通过 | 进行组合, 返回命令组
alc = Alconna("{place1}在哪里") | Alconna("哪里有{place1}")
alc.parse("食物在哪里")
alc.parse("哪里有食物")

Alconna 1.1.0:

  1. AlconnaDuplication -> Duplication
  2. Duplication 现在支持写入参数名或头部名称, 如
command = Alconna("test", Args["foo", int]) + Option("bar", Args["bar", str])

class Demo(Duplication):
    foo: int
    bar: str
  1. Arpamar 在执行行为器时可以通过抛出 OutBoundsBehave 使解析失败
  2. 修复bugs

Alconna 1.0.0

25 Jun 10:20
Compare
Choose a tag to compare

日志

  1. lang迁移到新增的config中,并为config加入了如全局分隔、开启缓存等选项
  2. 压缩代码量并规范化
  3. --help 选项允许在命令任何部位生效, 并且会根据当前命令选择是否展示选项的帮助信息
  4. Args name 的flag附加现在不需要以|分隔
  5. Args name 允许用#...为单个Arg提供注释, 其会展示在帮助信息内
  6. Args 允许传入 Callable[[A], B] 作为表达, 会自动解析输入类型与输出类型
  7. 完善了测试代码, 位于测试文件夹内, 通过入口文件可执行全部测试
  8. 加入一个类似beartypechecker
  9. 命令头部允许使用非str类型, 即可以Alconna(int)
  10. 解析器增加预处理器选项, 允许在分划数据单元前进行转化处理
  11. 性能提升, 理想情况最快约为 20w msg/s
  12. 删除Alconna.set_action
  13. 重构 ObjectPattern
  14. 增加 datetime的 BasePattern, 支持传入时间戳或日期文字
  15. Analyser 的字段修改, next_data -> popitem, reduce_data -> pushback
  16. output_send 合并到 output_manager
  17. Option 添加参数priority, 仅在需要选项重载时安排优先级
  18. 修复bugs

Alconna 0.9.x

01 May 01:29
Compare
Choose a tag to compare

Alconna 0.9.0:

  1. 将 HelpAction 与 HelpTextFormatter 作为 help 模块
  2. 语言配置组件的增强. 现在以语言种类标识符作为父级, 以支持多语言.
  3. 为 manager 新增一个记录命令输入的 LruCache. 解析器可以使用这个缓存来避免重复解析. 目前缓存上限为 100.
  4. 新增 --shortcut 内置选项, 为命令提供临时快捷命令的创建与删除.
  5. 修改 manager 中的 shortcut, 并支持持久化
  6. 部分性能优化, 以大致抵消因缓存计算而带来的性能损耗.
  7. 部分 api 名称变更:
  • pattern -> pattern_gen
  • handle_message -> process_message
  1. Args 新增 add_argument 方法, 以添加参数.

Alconna 0.9.1:

  1. 增添 dest, 其作为选项在 Arpamar 中的实际名称.
  2. 增加内建 Argument 方法, 类似于 add_argument, 以便捷创建 Option + Args 的组合.
  3. 修复 bug

Alconna 0.9.2:

  1. 增强 Arpamar 的功能, 使其更类似于一种接口. 其中的修改有: #42
  • get() 变为 query()
  • has() 变为 find()
  • set() 变为 update()
  • update() 变为 execute()
  • 增加 get_duplication()
  • 增加 source, origin 属性
  1. 项目结构调整
  2. ArgAction 的执行现在交给 ActionHandler 来处理. #40
  3. split 以及 separator 现在需要传入 Set[str] 类型. #39
  4. 修复 bug.

Alconna 0.9.3:

  1. 合并 ArgPatternTypePatternBasePattern, 并将诸多分散特性(如 anti, any) 移动到 BasePattern 中. #34
  2. 取消 Analyser 中有关 arg_handler 的部分
  3. AnyStrAnyDigitAnyFloat 等现在不被公开.
  4. AnyParam 重写为由 BasePattern 实现, 并改名为 AnyOne.
  5. alconna.types 变为 alconna.typing.
  6. 修复 bug.

Alconna 0.9.4:

  1. 修改 Args 的构造方法, 取消使用 slice 传入参数. 请从 Args[foo:int, bar:str:default] 修改为 Args[foo, int][bar, str, default].
  2. Option 与 Subcommand 现支持 requires 参数, 该参数允许解析该节点时判断 require 的字段是否存在. #44
  3. Option 与 Subcommand 的 requires 可以通过 name 传入, 用空格分隔. 该特性要求 Option 中传入别名时不能用空格.
  4. 允许同名的 Option 与 Subcommand 在同一个命令中, 应保证能用 require 参数来区分.
  5. 允许简单的选项重载, 如 Option("foo", Args.bar[int]) 可以与 Option("foo") 一起使用.
  6. BasePattern 增加 validator 属性, 负责对匹配结果进行验证. #47
  7. Args 支持 Annotated 的传入, 如 Args.bar[Annotated[int, lambda x: x > 0]], 或使用 arclet.alconna.typing.Bind
  8. 加入 AlconnaGroup 类, 用于组合多个 Alconna 对象. 其解析行为与 Alconna 相同. #46
  9. 取消不能构建多个重名的 Alconna 对象, 以 AlconnaGroup 代替. (暂定)
  10. 删除 arclet.alconna.components.visitor, 修改 Formatter 的传入参数.
  11. 增加 Alconna.config 类方法, 用于设置全局配置.
  12. 移出 arclet.alconna.builtin.commandline, 独立为一个模块 alconna-cli.
  13. ObjectPattern 移动到 arclet.alconna.builtin.pattern 模块.
  14. 修复 bug.