ErisPulse 1.1.15__tar.gz → 1.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. {erispulse-1.1.15 → erispulse-1.2.0}/PKG-INFO +78 -45
  2. erispulse-1.2.0/README.md +155 -0
  3. {erispulse-1.1.15 → erispulse-1.2.0}/devs/test_adapter.py +4 -7
  4. erispulse-1.2.0/docs/ADAPTERS.md +348 -0
  5. {erispulse-1.1.15 → erispulse-1.2.0}/docs/CHANGELOG.md +16 -0
  6. {erispulse-1.1.15 → erispulse-1.2.0}/docs/DEVELOPMENT.md +20 -1
  7. {erispulse-1.1.15 → erispulse-1.2.0}/docs/ForAIDocs/ErisPulseDevelop.md +421 -675
  8. {erispulse-1.1.15 → erispulse-1.2.0}/docs/REFERENCE.md +5 -534
  9. {erispulse-1.1.15 → erispulse-1.2.0}/docs/quick-start.md +2 -3
  10. {erispulse-1.1.15 → erispulse-1.2.0}/pyproject.toml +5 -5
  11. erispulse-1.2.0/src/ErisPulse/__init__.py +306 -0
  12. {erispulse-1.1.15 → erispulse-1.2.0}/src/ErisPulse/__main__.py +20 -22
  13. {erispulse-1.1.15 → erispulse-1.2.0}/src/ErisPulse/adapter.py +0 -125
  14. {erispulse-1.1.15 → erispulse-1.2.0}/src/ErisPulse/db.py +0 -60
  15. {erispulse-1.1.15 → erispulse-1.2.0}/src/ErisPulse/logger.py +7 -241
  16. {erispulse-1.1.15 → erispulse-1.2.0}/src/ErisPulse/mods.py +0 -77
  17. {erispulse-1.1.15 → erispulse-1.2.0}/src/ErisPulse/raiserr.py +8 -104
  18. erispulse-1.1.15/README.md +0 -122
  19. erispulse-1.1.15/docs/ADAPTERS.md +0 -125
  20. erispulse-1.1.15/src/ErisPulse/__init__.py +0 -226
  21. {erispulse-1.1.15 → erispulse-1.2.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  22. {erispulse-1.1.15 → erispulse-1.2.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  23. {erispulse-1.1.15 → erispulse-1.2.0}/.github/assets/erispulse_logo.png +0 -0
  24. {erispulse-1.1.15 → erispulse-1.2.0}/.github/config/notify.json +0 -0
  25. {erispulse-1.1.15 → erispulse-1.2.0}/.github/tools/merge_md.py +0 -0
  26. {erispulse-1.1.15 → erispulse-1.2.0}/.github/tools/update-api-docs.py +0 -0
  27. {erispulse-1.1.15 → erispulse-1.2.0}/.github/workflows/notifications.yml +0 -0
  28. {erispulse-1.1.15 → erispulse-1.2.0}/.github/workflows/pypi-publish.yml +0 -0
  29. {erispulse-1.1.15 → erispulse-1.2.0}/.github/workflows/send-email/action.yml +0 -0
  30. {erispulse-1.1.15 → erispulse-1.2.0}/.github/workflows/send-email/send_mail.py +0 -0
  31. {erispulse-1.1.15 → erispulse-1.2.0}/.github/workflows/send-email/send_mail_old.py +0 -0
  32. {erispulse-1.1.15 → erispulse-1.2.0}/.gitignore +0 -0
  33. {erispulse-1.1.15 → erispulse-1.2.0}/.python-version +0 -0
  34. {erispulse-1.1.15 → erispulse-1.2.0}/LICENSE +0 -0
  35. {erispulse-1.1.15 → erispulse-1.2.0}/devs/test.py +0 -0
  36. {erispulse-1.1.15 → erispulse-1.2.0}/devs/test_files/test.docx +0 -0
  37. {erispulse-1.1.15 → erispulse-1.2.0}/devs/test_files/test.jpg +0 -0
  38. {erispulse-1.1.15 → erispulse-1.2.0}/devs/test_files/test.mp4 +0 -0
  39. {erispulse-1.1.15 → erispulse-1.2.0}/docs/AI-Module-Generation.md +0 -0
  40. {erispulse-1.1.15 → erispulse-1.2.0}/docs/CLI.md +0 -0
  41. {erispulse-1.1.15 → erispulse-1.2.0}/docs/ORIGIN.md +0 -0
  42. {erispulse-1.1.15 → erispulse-1.2.0}/gitc/cd_branch.sh +0 -0
  43. {erispulse-1.1.15 → erispulse-1.2.0}/gitc/commit.sh +0 -0
  44. {erispulse-1.1.15 → erispulse-1.2.0}/gitc/create_branch.sh +0 -0
  45. {erispulse-1.1.15 → erispulse-1.2.0}/gitc/create_pr.sh +0 -0
  46. {erispulse-1.1.15 → erispulse-1.2.0}/gitc/merge_dev.sh +0 -0
  47. {erispulse-1.1.15 → erispulse-1.2.0}/gitc/usage.md +0 -0
  48. {erispulse-1.1.15 → erispulse-1.2.0}/src/ErisPulse/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse
3
- Version: 1.1.15
3
+ Version: 1.2.0
4
4
  Summary: ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。
5
5
  Author-email: "艾莉丝·格雷拉特(WSu2059)" <wsu2059@qq.com>, runoneall <runoobsteve@gmail.com>
6
6
  License: MIT License
@@ -31,61 +31,68 @@ Classifier: License :: OSI Approved :: MIT License
31
31
  Classifier: Operating System :: OS Independent
32
32
  Classifier: Programming Language :: Python :: 3
33
33
  Classifier: Programming Language :: Python :: 3 :: Only
34
- Classifier: Programming Language :: Python :: 3.9
35
34
  Classifier: Programming Language :: Python :: 3.10
36
35
  Classifier: Programming Language :: Python :: 3.11
37
36
  Classifier: Programming Language :: Python :: 3.12
38
37
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
39
- Requires-Python: >=3.9
38
+ Requires-Python: >=3.10
40
39
  Requires-Dist: aiohttp
40
+ Requires-Dist: importlib>=1.0.4
41
41
  Requires-Dist: watchdog
42
42
  Description-Content-Type: text/markdown
43
43
 
44
- ![](./.github/assets/erispulse_logo.png)
45
- **ErisPulse** 是基于 [Framer](https://github.com/FramerOrg/Framer) 构建的异步机器人开发框架。
44
+ # ErisPulse - 异步机器人开发框架
45
+
46
+ ![ErisPulse Logo](.github/assets/erispulse_logo.png)
46
47
 
47
48
  [![FramerOrg](https://img.shields.io/badge/合作伙伴-FramerOrg-blue?style=flat-square)](https://github.com/FramerOrg)
48
49
  [![License](https://img.shields.io/github/license/ErisPulse/ErisPulse?style=flat-square)](https://github.com/ErisPulse/ErisPulse/blob/main/LICENSE)
49
-
50
50
  [![Python Versions](https://img.shields.io/pypi/pyversions/ErisPulse?style=flat-square)](https://pypi.org/project/ErisPulse/)
51
51
 
52
- > 文档站:
53
-
52
+ > 文档站:
54
53
  [![Docs-Main](https://img.shields.io/badge/docs-main_site-blue?style=flat-square)](https://www.erisdev.com/docs.html)
55
54
  [![Docs-CF Pages](https://img.shields.io/badge/docs-cloudflare-blue?style=flat-square)](https://erispulse.pages.dev/docs.html)
56
55
  [![Docs-GitHub](https://img.shields.io/badge/docs-github-blue?style=flat-square)](https://erispulse.github.io/docs.html)
57
56
  [![Docs-Netlify](https://img.shields.io/badge/docs-netlify-blue?style=flat-square)](https://erispulse.netlify.app/docs.htm)
58
57
 
59
- - [GitHub 社区讨论](https://github.com/ErisPulse/ErisPulse/discussions)
60
58
 
61
- ### 框架选型指南
62
- | 需求 | 推荐框架 | 理由 |
63
- |-------------------|----------------|-----------------------------|
64
- | 轻量化/底层模块化 | [Framer](https://github.com/FramerOrg/Framer) | 高度解耦的模块化设计 |
65
- | 全功能机器人开发 | ErisPulse | 开箱即用的完整解决方案 |
59
+ ## 核心特性
66
60
 
67
- ## 核心特性
68
- - ⚡ 完全异步架构设计(async/await)
69
- - 🧩 模块化插件系统
70
- - 🔁 支持python热重载
71
- - 🛑 统一的错误管理
72
- - 🛠️ 灵活的配置管理
61
+ | 特性 | 描述 |
62
+ |------|------|
63
+ | **异步架构** | 完全基于 async/await 的异步设计 |
64
+ | **模块化系统** | 灵活的插件和模块管理 |
65
+ | **热重载** | 开发时自动重载,无需重启 |
66
+ | **错误管理** | 统一的错误处理和报告系统 |
67
+ | **配置管理** | 灵活的配置存储和访问 |
73
68
 
74
- ## 📦 安装
69
+ ---
75
70
 
76
- ```bash
77
- pip install ErisPulse --upgrade
78
- ```
71
+ ## 快速开始
72
+
73
+ ### 框架选型指南
74
+
75
+ | 需求 | 推荐框架 | 理由 |
76
+ |------|---------|------|
77
+ | 轻量化/底层模块化 | [Framer](https://github.com/FramerOrg/Framer) | 高度解耦的模块化设计 |
78
+ | 全功能机器人开发 | ErisPulse | 开箱即用的完整解决方案 |
79
79
 
80
80
  ---
81
81
 
82
- ## 开发者快速入门
82
+ ## 安装指南
83
+
84
+ 我们全面采用 [`uv`](https://github.com/astral-sh/uv) 作为 Python 工具链,提供更快速可靠的安装体验。
85
+
86
+ > ℹ️ **uv** 是由 Astral 开发的新一代 Python 包管理工具,比传统 pip 快 10-100 倍,并具有更好的依赖解析能力。
83
87
 
84
- ErisPulse SDK 支持使用 [`uv`](https://github.com/astral-sh/uv) 进行完整的开发环境管理。你可以**无需手动安装 Python**,直接通过 `uv` 下载 Python、创建虚拟环境并开始开发。
88
+ ### 1. 安装 uv
85
89
 
86
- ### 安装 `uv`
90
+ #### 通用方法 (pip):
91
+ ```bash
92
+ pip install uv
93
+ ```
87
94
 
88
- #### macOS / Linux:
95
+ #### macOS/Linux:
89
96
  ```bash
90
97
  curl -LsSf https://astral.sh/uv/install.sh | sh
91
98
  ```
@@ -95,11 +102,24 @@ curl -LsSf https://astral.sh/uv/install.sh | sh
95
102
  powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
96
103
  ```
97
104
 
98
- 验证是否安装成功:
105
+ 验证安装:
99
106
  ```bash
100
107
  uv --version
101
108
  ```
102
109
 
110
+ ### 2. 安装 ErisPulse
111
+
112
+ ```bash
113
+ uv python install 3.12 # 安装 Python 3.12
114
+ uv venv # 创建虚拟环境
115
+ source .venv/bin/activate # 激活环境 (Windows: .venv\Scripts\activate)
116
+ uv pip install ErisPulse --upgrade # 安装框架
117
+ ```
118
+
119
+ ---
120
+
121
+ ## 测试与开发
122
+
103
123
  ### 克隆项目并进入目录
104
124
 
105
125
  ```bash
@@ -107,18 +127,19 @@ git clone https://github.com/ErisPulse/ErisPulse.git
107
127
  cd ErisPulse
108
128
  ```
109
129
 
110
- ### 使用 `uv` 自动下载 Python 并创建虚拟环境
130
+ ### 使用 `uv` 同步项目环境
111
131
 
112
132
  ```bash
113
- uv python install 3.12 # 自动下载并安装 Python 3.12
114
- uv venv # 创建默认 .venv 虚拟环境
115
- source .venv/bin/activate
133
+ uv sync
134
+
135
+ # 启动虚拟环境
136
+ source .venv/bin/activate
116
137
  # Windows: .venv\Scripts\activate
117
138
  ```
118
139
 
119
- > 如果你切换分支或需要不同 Python 版本,只需替换 `3.12` 为其他版本即可。
140
+ > `ErisPulse` 目前正在使用 `python3.13` 进行开发(所以您同步环境时会自动安装 `3.13`),但也可以使用其他版本(版本不应低于 `3.10`)。
120
141
 
121
- ### 安装依赖并开始开发
142
+ ### 安装依赖并开始
122
143
 
123
144
  ```bash
124
145
  uv pip install -e .
@@ -142,24 +163,36 @@ python -c "from ErisPulse import sdk; sdk.init()"
142
163
  uv run devs/test.py
143
164
  ```
144
165
 
145
- 测试脚本提供以下功能:
146
- - 日志功能测试
147
- - 环境配置测试
166
+ 测试功能包括:
167
+ - 日志系统测试
168
+ - 环境配置测试
148
169
  - 错误管理测试
149
170
  - 工具函数测试
150
171
  - 适配器功能测试
151
- - 版本信息查看
152
-
153
- ### 开始开发
154
-
155
- 你可以通过 CLI 工具进行模块调试、热重载开发等操作:
156
172
 
173
+ ### 开发模式 (热重载)
157
174
  ```bash
158
175
  epsdk run your_script.py --reload
159
176
  ```
160
177
 
161
178
  ---
162
179
 
163
- ## 🤝 贡献
180
+ ## 🤝 贡献指南
181
+
182
+ 我们欢迎各种形式的贡献,包括但不限于:
183
+
184
+ 1. **报告问题**
185
+ 在 [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues) 提交bug报告
186
+
187
+ 2. **功能请求**
188
+ 通过 [社区讨论](https://github.com/ErisPulse/ErisPulse/discussions) 提出新想法
189
+
190
+ 3. **代码贡献**
191
+ 提交 Pull Request 前请阅读我们的 [开发指南](docs/DEVELOPMENT.md)
192
+
193
+ 4. **文档改进**
194
+ 帮助完善文档和示例代码
195
+
196
+ ---
164
197
 
165
- 欢迎任何形式的贡献!无论是报告 bug、提出新功能请求,还是直接提交代码,都非常感谢。
198
+ [加入社区讨论 →](https://github.com/ErisPulse/ErisPulse/discussions)
@@ -0,0 +1,155 @@
1
+ # ErisPulse - 异步机器人开发框架
2
+
3
+ ![ErisPulse Logo](.github/assets/erispulse_logo.png)
4
+
5
+ [![FramerOrg](https://img.shields.io/badge/合作伙伴-FramerOrg-blue?style=flat-square)](https://github.com/FramerOrg)
6
+ [![License](https://img.shields.io/github/license/ErisPulse/ErisPulse?style=flat-square)](https://github.com/ErisPulse/ErisPulse/blob/main/LICENSE)
7
+ [![Python Versions](https://img.shields.io/pypi/pyversions/ErisPulse?style=flat-square)](https://pypi.org/project/ErisPulse/)
8
+
9
+ > 文档站:
10
+ [![Docs-Main](https://img.shields.io/badge/docs-main_site-blue?style=flat-square)](https://www.erisdev.com/docs.html)
11
+ [![Docs-CF Pages](https://img.shields.io/badge/docs-cloudflare-blue?style=flat-square)](https://erispulse.pages.dev/docs.html)
12
+ [![Docs-GitHub](https://img.shields.io/badge/docs-github-blue?style=flat-square)](https://erispulse.github.io/docs.html)
13
+ [![Docs-Netlify](https://img.shields.io/badge/docs-netlify-blue?style=flat-square)](https://erispulse.netlify.app/docs.htm)
14
+
15
+
16
+ ## 核心特性
17
+
18
+ | 特性 | 描述 |
19
+ |------|------|
20
+ | **异步架构** | 完全基于 async/await 的异步设计 |
21
+ | **模块化系统** | 灵活的插件和模块管理 |
22
+ | **热重载** | 开发时自动重载,无需重启 |
23
+ | **错误管理** | 统一的错误处理和报告系统 |
24
+ | **配置管理** | 灵活的配置存储和访问 |
25
+
26
+ ---
27
+
28
+ ## 快速开始
29
+
30
+ ### 框架选型指南
31
+
32
+ | 需求 | 推荐框架 | 理由 |
33
+ |------|---------|------|
34
+ | 轻量化/底层模块化 | [Framer](https://github.com/FramerOrg/Framer) | 高度解耦的模块化设计 |
35
+ | 全功能机器人开发 | ErisPulse | 开箱即用的完整解决方案 |
36
+
37
+ ---
38
+
39
+ ## 安装指南
40
+
41
+ 我们全面采用 [`uv`](https://github.com/astral-sh/uv) 作为 Python 工具链,提供更快速可靠的安装体验。
42
+
43
+ > ℹ️ **uv** 是由 Astral 开发的新一代 Python 包管理工具,比传统 pip 快 10-100 倍,并具有更好的依赖解析能力。
44
+
45
+ ### 1. 安装 uv
46
+
47
+ #### 通用方法 (pip):
48
+ ```bash
49
+ pip install uv
50
+ ```
51
+
52
+ #### macOS/Linux:
53
+ ```bash
54
+ curl -LsSf https://astral.sh/uv/install.sh | sh
55
+ ```
56
+
57
+ #### Windows (PowerShell):
58
+ ```powershell
59
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
60
+ ```
61
+
62
+ 验证安装:
63
+ ```bash
64
+ uv --version
65
+ ```
66
+
67
+ ### 2. 安装 ErisPulse
68
+
69
+ ```bash
70
+ uv python install 3.12 # 安装 Python 3.12
71
+ uv venv # 创建虚拟环境
72
+ source .venv/bin/activate # 激活环境 (Windows: .venv\Scripts\activate)
73
+ uv pip install ErisPulse --upgrade # 安装框架
74
+ ```
75
+
76
+ ---
77
+
78
+ ## 测试与开发
79
+
80
+ ### 克隆项目并进入目录
81
+
82
+ ```bash
83
+ git clone https://github.com/ErisPulse/ErisPulse.git
84
+ cd ErisPulse
85
+ ```
86
+
87
+ ### 使用 `uv` 同步项目环境
88
+
89
+ ```bash
90
+ uv sync
91
+
92
+ # 启动虚拟环境
93
+ source .venv/bin/activate
94
+ # Windows: .venv\Scripts\activate
95
+ ```
96
+
97
+ > `ErisPulse` 目前正在使用 `python3.13` 进行开发(所以您同步环境时会自动安装 `3.13`),但也可以使用其他版本(版本不应低于 `3.10`)。
98
+
99
+ ### 安装依赖并开始
100
+
101
+ ```bash
102
+ uv pip install -e .
103
+ ```
104
+
105
+ 这将以“开发模式”安装 SDK,所有本地修改都会立即生效。
106
+
107
+ ### 验证安装
108
+
109
+ 运行以下命令确认 SDK 正常加载:
110
+
111
+ ```bash
112
+ python -c "from ErisPulse import sdk; sdk.init()"
113
+ ```
114
+
115
+ ### 运行测试
116
+
117
+ 我们提供了一个交互式测试脚本,可以帮助您快速验证SDK功能:
118
+
119
+ ```bash
120
+ uv run devs/test.py
121
+ ```
122
+
123
+ 测试功能包括:
124
+ - 日志系统测试
125
+ - 环境配置测试
126
+ - 错误管理测试
127
+ - 工具函数测试
128
+ - 适配器功能测试
129
+
130
+ ### 开发模式 (热重载)
131
+ ```bash
132
+ epsdk run your_script.py --reload
133
+ ```
134
+
135
+ ---
136
+
137
+ ## 🤝 贡献指南
138
+
139
+ 我们欢迎各种形式的贡献,包括但不限于:
140
+
141
+ 1. **报告问题**
142
+ 在 [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues) 提交bug报告
143
+
144
+ 2. **功能请求**
145
+ 通过 [社区讨论](https://github.com/ErisPulse/ErisPulse/discussions) 提出新想法
146
+
147
+ 3. **代码贡献**
148
+ 提交 Pull Request 前请阅读我们的 [开发指南](docs/DEVELOPMENT.md)
149
+
150
+ 4. **文档改进**
151
+ 帮助完善文档和示例代码
152
+
153
+ ---
154
+
155
+ [加入社区讨论 →](https://github.com/ErisPulse/ErisPulse/discussions)
@@ -93,9 +93,6 @@ async def yunhu_test(startup: bool):
93
93
  if TEST_VIDEO_PATH.exists():
94
94
  with open(TEST_VIDEO_PATH, "rb") as f:
95
95
  await yunhu.Send.To("user", YUNHU_USER_ID).Video(f.read())
96
- if TEST_DOCUMENT_PATH.exists():
97
- with open(TEST_DOCUMENT_PATH, "rb") as f:
98
- await yunhu.Send.To("user", YUNHU_USER_ID).Document(f.read())
99
96
  if YUNHU_GROUP_ID:
100
97
  await yunhu.Send.To("group", YUNHU_GROUP_ID).Text("【启动通知】SDK已启动 - 云湖群聊文本消息")
101
98
  if TEST_IMAGE_PATH.exists():
@@ -104,9 +101,6 @@ async def yunhu_test(startup: bool):
104
101
  if TEST_VIDEO_PATH.exists():
105
102
  with open(TEST_VIDEO_PATH, "rb") as f:
106
103
  await yunhu.Send.To("group", YUNHU_GROUP_ID).Video(f.read())
107
- if TEST_DOCUMENT_PATH.exists():
108
- with open(TEST_DOCUMENT_PATH, "rb") as f:
109
- await yunhu.Send.To("group", YUNHU_GROUP_ID).Document(f.read())
110
104
  else:
111
105
  await yunhu.Send.To("user", YUNHU_USER_ID).Text("【关闭通知】SDK已关闭")
112
106
  if YUNHU_GROUP_ID:
@@ -115,7 +109,9 @@ async def yunhu_test(startup: bool):
115
109
  async def main():
116
110
  sdk.init()
117
111
  try:
112
+ sdk.logger.set_output_file("test.log")
118
113
  await sdk.adapter.startup()
114
+ await asyncio.sleep(1)
119
115
  await telegram_test(True)
120
116
  await qq_test(True)
121
117
  await yunhu_test(True)
@@ -127,7 +123,8 @@ async def main():
127
123
  await qq_test(False)
128
124
  await yunhu_test(False)
129
125
  except Exception as e:
130
- sdk.logger.error(f"测试过程中发生错误: {e}")
126
+ sdk.logger.error(f"测试过程中发生错误: {str(e)}")
127
+ raise # 重新抛出异常以便调试
131
128
 
132
129
  if __name__ == "__main__":
133
130
  asyncio.run(main())