From 7a5f8667cacc589e069d82e1b8db5469e28ae3bc Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Fri, 15 Dec 2023 10:33:39 +0800 Subject: :bug: 修订异常Merge的问题 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/infini/__init__.py | 8 ++---- src/infini/cli.py | 45 ----------------------------- src/infini/event.py | 2 +- src/infini/exceptions.py | 2 +- src/infini/logging.py | 6 ++-- src/infini/manager.py | 18 ------------ src/infini/rule.py | 75 ------------------------------------------------ 7 files changed, 7 insertions(+), 149 deletions(-) delete mode 100644 src/infini/cli.py delete mode 100644 src/infini/manager.py delete mode 100644 src/infini/rule.py (limited to 'src') diff --git a/src/infini/__init__.py b/src/infini/__init__.py index 9c88b4f9..5f6d1105 100644 --- a/src/infini/__init__.py +++ b/src/infini/__init__.py @@ -1,6 +1,4 @@ -from infini.cli import Cli -from infini.rule import Rule, Result, Dice -from infini.typing import Config as ConfigTyping -from infini.event import Event +from infini.handler import Handler, Result +from infini.event import MessageEvent -__all__ = ["Rule", "Cli", "Result", "Dice", "Event", "ConfigTyping"] +__all__ = ["Handler", "Result", "MessageEvent"] diff --git a/src/infini/cli.py b/src/infini/cli.py deleted file mode 100644 index e372b4b4..00000000 --- a/src/infini/cli.py +++ /dev/null @@ -1,45 +0,0 @@ -from pathlib import Path -from .consts import templates -from .logging import logger - -import argparse -import os -import sys -import importlib - - -class Cli: - def parse_args(self, argv: list[str] | None = None): - parser = argparse.ArgumentParser(description="HydroRoll 命令行工具") - - parser.add_argument("--new", action="store_true", help="创建一个 HydroRoll 规则包模板") - parser.add_argument("--run", action="store_true", help="运行 HydroRoll 规则包") - parser.add_argument("--gui", action="store_true", help="显示弹窗") - parser.add_argument("--path", help="指定路径") - - args = parser.parse_args(argv if argv else sys.argv[1:]) - - if args.gui: - logger.critical("选项[--gui]尚未被支持!") - sys.exit(1) - - path = Path(args.path).resolve() if args.path else Path(os.getcwd()).resolve() - if args.new and args.run: - logger.error("无法确定的指令要求: 你同时指定了new与run指令。") - sys.exit(1) - - if args.new: - if path.exists(): - logger.error("指定的文件夹已经存在!") - sys.exit(1) - - path.mkdir(parents=True, exist_ok=True) - (path / "rule.py").write_text(templates.RULE, encoding="utf-8") - (path / "event.py").write_text(templates.EVENT, encoding="utf-8") - (path / "dice.py").write_text(templates.DICE, encoding="utf-8") - - logger.success("HydroRoll 规则包模板已创建!") - - if args.run: - sys.path.append(str(path)) - importlib.import_module("event") diff --git a/src/infini/event.py b/src/infini/event.py index 0363ac96..a83c4042 100644 --- a/src/infini/event.py +++ b/src/infini/event.py @@ -56,4 +56,4 @@ class MatcherEvent: return f"" -events = Events() \ No newline at end of file +events = Events() diff --git a/src/infini/exceptions.py b/src/infini/exceptions.py index e7c87b36..2c181b48 100644 --- a/src/infini/exceptions.py +++ b/src/infini/exceptions.py @@ -15,4 +15,4 @@ class UnknownMatcherEvent(EventError): class UnknownMessageEvent(EventError): - """未知的给出实现""" \ No newline at end of file + """未知的给出实现""" diff --git a/src/infini/logging.py b/src/infini/logging.py index 3c3d2b02..3882f828 100644 --- a/src/infini/logging.py +++ b/src/infini/logging.py @@ -11,9 +11,7 @@ from .settings import DEBUG __all__ = ["logger", "error_or_exception"] -logger = multilogger( - name="Infini", payload="Core", level="DEBUG" if DEBUG else "INFO" -) +logger = multilogger(name="Infini", payload="Core", level="DEBUG" if DEBUG else "INFO") current_path = Path(__file__).resolve().parent LOG_PATH = current_path / "logs" if not LOG_PATH.exists(): @@ -30,4 +28,4 @@ def error_or_exception(message: str, exception: Exception, verbose: bool = True) logger.exception(exception) logger.critical(message) else: - logger.critical(f"{message} {exception!r}") \ No newline at end of file + logger.critical(f"{message} {exception!r}") diff --git a/src/infini/manager.py b/src/infini/manager.py deleted file mode 100644 index 42e79563..00000000 --- a/src/infini/manager.py +++ /dev/null @@ -1,18 +0,0 @@ -from .event import Events, events -from .logging import logger -from .typing import Dict - - -class Manager: - """事件处理单元""" - - events: Events - - def __init__(self, _events: Events = None) -> None: - self.events = _events if _events else events - - def roll(self): - ... - - -manager = Manager() diff --git a/src/infini/rule.py b/src/infini/rule.py deleted file mode 100644 index a1f04151..00000000 --- a/src/infini/rule.py +++ /dev/null @@ -1,75 +0,0 @@ -from abc import ABCMeta, abstractmethod -from enum import Enum -from .exceptions import HydroError -from .typing import Dict - -__all__ = ["RuleLoadType", "Result", "Dice", "Rule"] - - -class RuleLoadType(Enum): - """The Type Of Rules To Be Loaded""" - - DIR = "dir" - NAME = "name" - FILE = "file" - CLASS = "class" - - -class Result(metaclass=ABCMeta): - """规则检定结果基类""" - - event: str - status: bool - exception: HydroError | None = None - - def __init__(self, event: str, status: bool, exception: HydroError | None) -> None: - self.event = event - self.status = status - self.exception = exception - - def ok(self): - """规则执行期间是否产生异常""" - return isinstance(self.exception, HydroError) - - -class Dice(metaclass=ABCMeta): - """掷骰基类""" - - roll_string: str - db: str - outcome: int - - def __repr__(self) -> str: - return f'' - - def __str__(self) -> str: - return self.db.upper() - - def __int__(self) -> int: - return self.outcome - - @abstractmethod - def parse(self) -> "Dice": - """解析传入的掷骰字符串`roll_string`,返回一个`Dice`对象""" - raise NotImplementedError - - @abstractmethod - def roll(self) -> int: - """掷骰方法,返回掷骰结果""" - raise NotImplementedError - - -class Rule(metaclass=ABCMeta): - """规则基类""" - - name: str - dices: Dict[str, str] = {} - priority: int = 0 - - @abstractmethod - def __init__(self) -> None: - raise NotImplementedError - - @abstractmethod - def check(self, dice: Dice) -> Result: - raise NotImplementedError -- cgit v1.2.3-70-g09d2 From 4bfd1f0d62a6fefb63959f896d44d4ed5be078b4 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Fri, 15 Dec 2023 10:43:08 +0800 Subject: :fire: 清理无用的类型声明 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/infini/typing.py | 33 --------------------------------- 1 file changed, 33 deletions(-) (limited to 'src') diff --git a/src/infini/typing.py b/src/infini/typing.py index 333a763b..df495707 100644 --- a/src/infini/typing.py +++ b/src/infini/typing.py @@ -1,4 +1,3 @@ -from pydantic import BaseModel from typing import ( Dict as Dict, TYPE_CHECKING as TYPE_CHECKING, @@ -7,35 +6,3 @@ from typing import ( NoReturn as NoReturn, Awaitable as Awaitable, ) - - -class Config(BaseModel): - rule_dir: list = [] - rules: list = [] - - -class DiceConfig(BaseModel): - sides: int - counts: int - init_dice_pool: int - - -class PlayerCard(BaseModel): - name: str - traits: list - - -class Bonus(BaseModel): - level: int - cost: int - - -class WikiPage(BaseModel): - title: str - content: str - tags: list = [] - - -class WikiModel: - class Setting(BaseModel): - desc: str -- cgit v1.2.3-70-g09d2 From 6ea87f9809339ca55b9454e5004dcfc1086eb69c Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Fri, 15 Dec 2023 10:43:35 +0800 Subject: :bug: 修复日志路径问题 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/infini/logging.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/infini/logging.py b/src/infini/logging.py index 3882f828..d9b4ecc1 100644 --- a/src/infini/logging.py +++ b/src/infini/logging.py @@ -12,8 +12,9 @@ from .settings import DEBUG __all__ = ["logger", "error_or_exception"] logger = multilogger(name="Infini", payload="Core", level="DEBUG" if DEBUG else "INFO") -current_path = Path(__file__).resolve().parent -LOG_PATH = current_path / "logs" +CURRENT_PATH = Path(__file__).resolve().parent +DATA_PATH = Path.home() / ".infini" +LOG_PATH = DATA_PATH / "logs" if not LOG_PATH.exists(): LOG_PATH.mkdir(parents=True, exist_ok=True) logger.add( -- cgit v1.2.3-70-g09d2 From 6e5183486c1ad7a8bac128851dff7758cb1c3cd2 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Fri, 15 Dec 2023 11:08:08 +0800 Subject: :sparkles: 新增__init__.py入口模块 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .pdm-python | 1 - src/infini/__init__.py | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 .pdm-python (limited to 'src') diff --git a/.pdm-python b/.pdm-python deleted file mode 100644 index 71fb9b87..00000000 --- a/.pdm-python +++ /dev/null @@ -1 +0,0 @@ -D:/GitProject/HydroRoll-Team/infini/.venv/Scripts/python.exe \ No newline at end of file diff --git a/src/infini/__init__.py b/src/infini/__init__.py index 5f6d1105..d572bda8 100644 --- a/src/infini/__init__.py +++ b/src/infini/__init__.py @@ -1,4 +1,5 @@ from infini.handler import Handler, Result from infini.event import MessageEvent +from infini.matcher import matcher -__all__ = ["Handler", "Result", "MessageEvent"] +__all__ = ["Handler", "Result", "MessageEvent", "matcher"] -- cgit v1.2.3-70-g09d2