summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-01-25 14:42:18 +0800
committer苏向夜 <fu050409@163.com>2024-01-25 14:42:18 +0800
commit3c3e121bc845573a2d2408c0db6be6f841fd8efc (patch)
treed268e590c28889a72570486c58444edcce81b9b3 /src
parent9ac667f1b923dd55137e346ab8281c6bae0f9713 (diff)
downloadinfini-3c3e121bc845573a2d2408c0db6be6f841fd8efc.tar.gz
infini-3c3e121bc845573a2d2408c0db6be6f841fd8efc.zip
:recycle: refactor(infini): restore pdm project and work for infini version 2
Diffstat (limited to 'src')
-rw-r--r--src/infini/__main__.py71
-rw-r--r--src/infini/const/__init__.py7
-rw-r--r--src/infini/const/templates.py40
-rw-r--r--src/infini/exceptions.py2
4 files changed, 1 insertions, 119 deletions
diff --git a/src/infini/__main__.py b/src/infini/__main__.py
deleted file mode 100644
index 9a8cd58c..00000000
--- a/src/infini/__main__.py
+++ /dev/null
@@ -1,71 +0,0 @@
-"""__main__
-
-这是 infini 的主要入口点。它处理命令行参数,并根据这些参数执行相应的操作。
-例如,它可以创建新的规则包,或者测试现有的规则包。
-如果你想了解更多关于如何使用 infini 的信息,你可以运行 `infini --help`。
-"""
-
-from pathlib import Path
-from .utils.cli import parse_args
-from .const import templates
-from .logging import logger
-from .register import register
-
-import os
-import importlib
-import sys
-
-
-def main():
- args = parse_args()
-
- if args.gui:
- logger.critical("选项[--gui]尚未被支持!")
- sys.exit(1)
-
- path = (
- Path(args.path).resolve()
- if hasattr(args, "path")
- else Path(os.getcwd()).resolve()
- )
-
- if args.operate == "new":
- if path.exists() and not args.force:
- logger.error("指定的文件夹已经存在!")
- sys.exit(1)
-
- path.mkdir(parents=True, exist_ok=True)
- (path / "handler.py").write_text(templates.HANDLER, encoding="utf-8")
- (path / "event.py").write_text(templates.EVENT, encoding="utf-8")
- (path / "tests.py").write_text(templates.TEST, encoding="utf-8")
-
- logger.success("Infini 规则包模板已创建!")
-
- if args.operate == "test":
- exceptions = []
-
- logger.info(f"开始测试规则包: {path.name}...")
- logger.info("初始化规则包中...")
-
- try:
- register.register(path)
- except Exception as error:
- if args.verbose:
- logger.exception(error)
- logger.critical(f"初始化规则包时出现异常: {error}")
- exceptions.append(error)
-
- try:
- errors = importlib.import_module(f"{path.name}.tests").test()
- exceptions.extend(errors)
- except Exception as error:
- if args.verbose:
- logger.exception(error)
- logger.critical(f"测试规则包时出现异常: {error}")
- exceptions.append(error)
-
- logger.info(f"测试规则包 {path.name} 出现 {len(exceptions)} 个异常, 测试完成.")
-
-
-if __name__ == "__main__":
- main()
diff --git a/src/infini/const/__init__.py b/src/infini/const/__init__.py
deleted file mode 100644
index 8ad332fc..00000000
--- a/src/infini/const/__init__.py
+++ /dev/null
@@ -1,7 +0,0 @@
-"""Infini 常量模块
-
-templates
- HANDLE
- EVENT
- TEST
-"""
diff --git a/src/infini/const/templates.py b/src/infini/const/templates.py
deleted file mode 100644
index d0be9e30..00000000
--- a/src/infini/const/templates.py
+++ /dev/null
@@ -1,40 +0,0 @@
-HANDLER = """from infini import Handler, MessageEvent
-from infini.matcher import MatcherEvent
-from infini.event import InfiniEvent
-from .event import MyEvent
-
-
-class MyHandler(Handler):
- \"\"\"自设业务函数\"\"\"
-
- name: str = "example_handler"
- priority: int = 0 # 业务函数权重
-
- def process(self, event: MatcherEvent) -> InfiniEvent:
- \"\"\"声明规则包检定方式\"\"\"
- plain_text = event.get_plain_text()
- return MyEvent("rule.example_event", plain_text=plain_text)
-
-"""
-
-EVENT = """from infini import MessageEvent
-
-
-class MyEvent(MessageEvent):
- \"\"\"自定义消息事件\"\"\"
- name = "example_event"
- output = "捕获到输入: {plain_text}"
-"""
-
-TEST = """from infini.matcher import matcher, MatcherEvent
-
-
-def test():
- event = MatcherEvent("rule.example_handler", string="测试")
- try:
- result = matcher.run(event)
- assert result == "捕获到输入: 测试"
- except Exception as error:
- return error
- return []
-"""
diff --git a/src/infini/exceptions.py b/src/infini/exceptions.py
index 61c93f63..2038efcd 100644
--- a/src/infini/exceptions.py
+++ b/src/infini/exceptions.py
@@ -1,7 +1,7 @@
"""Infini 异常处理模块
此模块定义了 Infini 项目中所有的自定义异常类。
-规则包作者后续实现的每个异常类都应该继承自 RulePackageException。
+规则包作者后续实现的每个异常类都应该继承自 InfiniException。
"""