Skip to content

Releases: ArcletProject/Alconna

Alconna 0.8.x

02 Apr 06:28
Compare
Choose a tag to compare

Alconna 0.8.0:

  1. Optionalias现在需要传入List[str],而不是str。
  2. help_text内置两个预选板块UsageExample, 编写规则为"xxx Usage:xxx; Example:xxx;"
  3. 加入TypePattern, 作用为简单的类型转换器, 其可以设置前置转换器, 即可以str -> Path -> bytes#34
  4. 加入命令的模糊匹配, 在Alconna中传入is_fuzzy_match参数, 可以设置是否模糊匹配。
  5. AlconnaString参数规则修改, 现在<xx>表示必选, [xx]表示可选, &xx表示action的值。
  6. ArgparseHelpTextFormatter相关格式修改

Alconna 0.8.1-0.8.2:

  1. 修改了一些docstring
  2. 修改参数前缀, 现需要以后缀形式传入, 以';'为开头, 并用'|'分割。 #35
  3. 参数前缀现通过单个大写字母表示, 具体对应如下:
  • 'S' <= '*'
  • 'W' <= '**'
  • 'O' <= '?'
  • 'K' <= '@'
  • 'H' <= '_'
  • 'F' <= '#'
  • 'A' <= '!'
  1. 参数标识符现增加数字, 以表示指定长度的可变参数, 如'foo;S'表示能接收任意长度的可变参数, 'foo;3'表示接收长度为3的可变参数。 #35
  2. Args现在允许传入分隔符, 通过Args.separate(xx)Args / xx设置
  3. 加入pattern装饰器函数, 用以便捷的创建ArgPattern对象 #35
  4. 加入delegate装饰器函数, 用以便捷的创建Alconna对象
  5. 修复bug

Alconna 0.8.3:

  1. 命令头的正则支持格式修改, 由原来的f"{表达式}"改为"{名称:类型或表达式}"
  2. 加入语言文件配置, 可以通过Alconna.load_config_file加载自定义的语言文件, 格式为json
  3. 为选项与子命令的匹配也加入了模糊匹配
  4. 选项与子命令的separator可以传入空字符串, Alconna会据此自动分割 #35
  5. 部分API修改, 暂时去除from_dict方法
  6. 修复了一些bug

Alconna 0.7.x

01 Mar 02:40
Compare
Choose a tag to compare

Alconna 0.7.0

  1. 依据 #21 进行了相关调整, 不兼容0.7以下
  2. 以下多个组件或模块进行了修改, 具体内容请查看 更新日志
  • Alconna
  • TemplateCommand
  • Subcommand
  • Arpamar
  • ArgAction
  • AlconnaDecorate
  • alconna.analyser
  1. 增加alconna.analysis,

Alconna 0.7.1:

  1. 增加alconna.builtin.construct.AlconnaFire,为AlconnaFire-like方法. #22
    其会尝试根据传入的对象生成Alconna
  2. 增加 UnionArg, 其传入的列表中可以包含ArgPatternType与实际值. 为choice的改进
  3. Args支持传入Union[...]格式的参数
  4. 增加 ObjectPattern, 其会尝试从对象中生成ArgPattern, 并在解析成功后创建实例
  5. action现支持传入异步函数 #23
  6. AlconnaString现在会读取locals的值

Alconna 0.7.2:

  1. 改进AlconnaFire方法, 其可通过AlconnaFire.instance获取目标对象的可能实例 #27
  2. 加入SequenceArgMappingArg, 其对应解析列表、元组、集合与字典
  3. Subcommand在其Args未解析时抛出异常
  4. Arpamar现在可以获取subcommands与error_info
  5. 增强Format #25
  6. 修改help—action相关

Alconna 0.7.3:

  1. 优化结构
  2. 增加AlconnaFire的Config, 用来约束AlconnaFire的参数 #27
  3. AlconnaFire现在可以解析子命令, 通过Config传入get_subcommand=True来启用 #26
  4. 更好的parameter-helptext
  5. 新增Args构造方法a = Args.xxx[value, default]
  6. util.chain_filter重新归并到Analyser.handle_message
  7. 增加Force类, 用以标记arg类型不需要进行转换; 或者在key前面加上"#"
  8. 支持传入键值对参数与可变键值对参数, 分别用"@""**""标记
  9. 支持将参数设为可选(即未解析成功时不报错而是跳过), 用"?"标记
  10. Arpamar可以通过XXX.opt.arg1XXX.sub.sub_opt.arg2等方式获取参数值
  11. 修复bug

Alconna 0.7.4 ~ 0.7.4.3

  1. 修复BUG
  2. 加入Alconna.local_args
  3. 增加_key前缀, 用以隐藏参数注解

Alconna 0.7.5

  1. 内部类型改进, MessageChain -> DataCollection #29
  2. 加入ArpamarBehavior, 用以解析后的预处理, 并提供三个预制的behavior: #30
  • set_default: 当某个选项未被输入时, 使用该行为添加一个默认值
  • exclusion: 当指定的两个选项同时出现时报错
  • cool_down: 限制命令调用频率
  1. 加入NodeVisitorHelpFormatter, 并将原先给CommandNode的help生成转移给Formatter #24
  2. 加入AlconnaMessageProxy, 用作对外适配接口

Alconna 0.7.6

  1. 增加对Graia系的原生支持, 位于arclet.alconna.graia; 请用pip install arclet-alconna[graia]获取
  2. header现在可支持非文字类元素与文字混用的解析, 原来的方式请改用元组(非文本元素, 文本)
  3. 增加Alconna/@ 运算符的支持, 作用为重置命名空间
  4. 增加Alconna+ 运算符的支持, 作用为增加选项
  5. Args 可直接传入 str, 即Args["foo":"foo"] -> Args["foo"]
  6. Format中的format slot可以直接写入类型, 如"{name: str}"

Alconna 0.7.7

  1. 加入Argparser风格的HelpFormatter
  2. 加入AlconnaDuplication, 旨在提供更好的解析结果使用
  3. option的name与alias现在会根据长度自动倒换
  4. 修复Bug

Alconna 0.6.x

13 Feb 12:28
Compare
Choose a tag to compare

Alconna 0.6.0:

  1. 加入click-like构造方法,具体内容在alconna/decorate里 #13
  2. 加入命令行功能,目前功能为便捷式编写Alconna与便捷查看docstring #16
  3. 性能优化, 包含正则参数解析的速度提升大约10%
  4. Option支持重复输入,此时多个解析结果会以列表形式存放

Alconna 0.6.1:

  1. 性能优化加强, 现在纯字符串匹配可以跑到60000msg/s (与之相对, 匹配其他消息元素可以跑到10w msg/s, re出来挨打)
  2. commandline增加一个analysis功能,可以把命令转为命令格式
  3. 修复Bug

Alconna 0.6.2:

1.修复几个Bug
2.加入from_dict与to_dict,暂时无法支持保存action #17
3.命令行功能加入using

Alconna 0.6.3:

  1. 修复命令行的Bug
  2. 加入变长参数的支持, 可以在参数名前面添加一个*来表示变长参数

Alconna 0.6.4:

  1. 加入快捷指令功能, 可以用一段特殊的字符串来表示命令 #18
  2. 加入arg-choice, 可以指定参数的可选值
  3. 修改docstring, 使其变得更加可读
  4. 加入commandManager.broadcast功能, 可以广播命令

Alconna 0.6.5:

  1. 可以自定义all_command_help
  2. 加入anti-arg, 用以反向检查参数 #20
  3. 修复一些bug

Alconna 0.5.x

11 Jan 14:11
d170c2f
Compare
Choose a tag to compare

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

02 Jan 04:02
4914397
Compare
Choose a tag to compare

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

18 Dec 05:42
3133617
Compare
Choose a tag to compare

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

17 Dec 14:10
79ec008
Compare
Choose a tag to compare

0.2.1: 内置Help功能
0.2.2: 微调

Alconna 0.1.x

14 Dec 14:40
152e4f3
Compare
Choose a tag to compare

0.1.1 Alconna基础功能
0.1.2 Arpamar结构简化+支持Graia v5形式的消息链
0.1.3 取消Letoderea的依赖,AlconnaParser改回Cesloi内