ErisPulse 2.4.5.dev3__tar.gz → 2.4.6.dev1__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 (132) hide show
  1. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/PKG-INFO +151 -61
  2. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/README.md +150 -60
  3. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/pyproject.toml +1 -1
  4. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/base.py +9 -9
  5. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/cli.py +61 -54
  6. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/cli.pyi +2 -0
  7. erispulse-2.4.6.dev1/src/ErisPulse/CLI/commands/create.py +584 -0
  8. erispulse-2.4.6.dev1/src/ErisPulse/CLI/commands/create.pyi +43 -0
  9. erispulse-2.4.6.dev1/src/ErisPulse/CLI/commands/init.py +378 -0
  10. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/init.pyi +7 -33
  11. erispulse-2.4.6.dev1/src/ErisPulse/CLI/commands/install.py +303 -0
  12. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/install.pyi +2 -2
  13. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/list.py +54 -60
  14. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/list.pyi +0 -13
  15. erispulse-2.4.6.dev1/src/ErisPulse/CLI/commands/list_remote.py +84 -0
  16. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/list_remote.pyi +2 -7
  17. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/run.py +45 -29
  18. erispulse-2.4.6.dev1/src/ErisPulse/CLI/commands/self_update.py +219 -0
  19. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/self_update.pyi +6 -15
  20. erispulse-2.4.6.dev1/src/ErisPulse/CLI/commands/uninstall.py +84 -0
  21. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/uninstall.pyi +2 -4
  22. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/upgrade.py +8 -20
  23. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/console.py +25 -23
  24. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/registry.py +17 -17
  25. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/utils/__init__.py +3 -1
  26. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/utils/__init__.pyi +1 -0
  27. erispulse-2.4.6.dev1/src/ErisPulse/CLI/utils/display.py +207 -0
  28. erispulse-2.4.6.dev1/src/ErisPulse/CLI/utils/display.pyi +45 -0
  29. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/utils/package_manager.py +226 -110
  30. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/utils/package_manager.pyi +1 -1
  31. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Bases/__init__.py +5 -4
  32. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Bases/__init__.pyi +2 -2
  33. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Bases/adapter.py +274 -26
  34. erispulse-2.4.6.dev1/src/ErisPulse/Core/Bases/adapter.pyi +354 -0
  35. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Bases/storage.py +5 -4
  36. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/__init__.py +4 -6
  37. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/base.py +17 -7
  38. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/base.pyi +3 -2
  39. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/command.py +47 -11
  40. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/meta.py +2 -2
  41. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/request.py +2 -1
  42. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/request.pyi +2 -1
  43. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/wrapper.py +145 -13
  44. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/wrapper.pyi +58 -0
  45. erispulse-2.4.6.dev1/src/ErisPulse/Core/__init__.py +47 -0
  46. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/__init__.pyi +3 -4
  47. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/adapter.py +45 -5
  48. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/config.py +46 -294
  49. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/config.pyi +2 -79
  50. erispulse-2.4.6.dev1/src/ErisPulse/Core/lifecycle.py +377 -0
  51. erispulse-2.4.6.dev1/src/ErisPulse/Core/lifecycle.pyi +226 -0
  52. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/logger.py +54 -35
  53. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/logger.pyi +7 -6
  54. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/module.py +29 -7
  55. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/router.py +156 -47
  56. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/storage.py +4 -2
  57. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/__init__.py +2 -3
  58. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/__init__.pyi +1 -1
  59. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/__main__.py +5 -2
  60. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/adapter.py +23 -26
  61. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/bases/__init__.py +1 -3
  62. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/bases/finder.py +10 -2
  63. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/module.py +23 -26
  64. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/adapter.py +10 -2
  65. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/bases/__init__.py +1 -3
  66. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/module.py +33 -15
  67. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/runtime/__init__.py +15 -16
  68. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/runtime/exceptions.py +33 -20
  69. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/runtime/frame_config.py +63 -58
  70. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/sdk.py +267 -204
  71. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/sdk.pyi +0 -28
  72. erispulse-2.4.5.dev3/src/ErisPulse/CLI/commands/init.py +0 -493
  73. erispulse-2.4.5.dev3/src/ErisPulse/CLI/commands/install.py +0 -405
  74. erispulse-2.4.5.dev3/src/ErisPulse/CLI/commands/list_remote.py +0 -101
  75. erispulse-2.4.5.dev3/src/ErisPulse/CLI/commands/self_update.py +0 -227
  76. erispulse-2.4.5.dev3/src/ErisPulse/CLI/commands/uninstall.py +0 -120
  77. erispulse-2.4.5.dev3/src/ErisPulse/Core/Bases/adapter.pyi +0 -182
  78. erispulse-2.4.5.dev3/src/ErisPulse/Core/__init__.py +0 -58
  79. erispulse-2.4.5.dev3/src/ErisPulse/Core/lifecycle.py +0 -212
  80. erispulse-2.4.5.dev3/src/ErisPulse/Core/lifecycle.pyi +0 -99
  81. erispulse-2.4.5.dev3/src/ErisPulse/Core/metrics.py +0 -489
  82. erispulse-2.4.5.dev3/src/ErisPulse/Core/metrics.pyi +0 -302
  83. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/.gitignore +0 -0
  84. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/LICENSE +0 -0
  85. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/__init__.py +0 -0
  86. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/__init__.pyi +0 -0
  87. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/base.pyi +0 -0
  88. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/__init__.py +0 -0
  89. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/__init__.pyi +0 -0
  90. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/run.pyi +0 -0
  91. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/commands/upgrade.pyi +0 -0
  92. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/console.pyi +0 -0
  93. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/CLI/registry.pyi +0 -0
  94. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Bases/manager.py +0 -0
  95. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Bases/manager.pyi +0 -0
  96. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Bases/module.py +0 -0
  97. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Bases/module.pyi +0 -0
  98. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Bases/storage.pyi +0 -0
  99. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/__init__.pyi +0 -0
  100. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/command.pyi +0 -0
  101. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/message.py +0 -0
  102. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/message.pyi +0 -0
  103. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/message_builder.py +0 -0
  104. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/message_builder.pyi +0 -0
  105. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/meta.pyi +0 -0
  106. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/notice.py +0 -0
  107. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/notice.pyi +0 -0
  108. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/session_type.py +0 -0
  109. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/Event/session_type.pyi +0 -0
  110. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/adapter.pyi +0 -0
  111. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/module.pyi +0 -0
  112. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/router.pyi +0 -0
  113. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/Core/storage.pyi +0 -0
  114. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/__main__.pyi +0 -0
  115. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/__init__.py +0 -0
  116. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/__init__.pyi +0 -0
  117. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/adapter.pyi +0 -0
  118. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/bases/__init__.pyi +0 -0
  119. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/bases/finder.pyi +0 -0
  120. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/finders/module.pyi +0 -0
  121. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/__init__.py +0 -0
  122. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/__init__.pyi +0 -0
  123. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/adapter.pyi +0 -0
  124. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/bases/__init__.pyi +0 -0
  125. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/bases/loader.py +0 -0
  126. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/bases/loader.pyi +0 -0
  127. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/module.pyi +0 -0
  128. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/strategy.py +0 -0
  129. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/loaders/strategy.pyi +0 -0
  130. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/runtime/__init__.pyi +0 -0
  131. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/runtime/exceptions.pyi +0 -0
  132. {erispulse-2.4.5.dev3 → erispulse-2.4.6.dev1}/src/ErisPulse/runtime/frame_config.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse
3
- Version: 2.4.5.dev3
3
+ Version: 2.4.6.dev1
4
4
  Summary: ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。
5
5
  Author-email: ErisDev <erisdev@88.com>
6
6
  Maintainer-email: "艾莉丝·格雷拉特(WSu2059)" <wsu2059@qq.com>
@@ -70,28 +70,36 @@ Requires-Dist: pytest-xdist>=3.0.0; extra == 'test'
70
70
  Requires-Dist: pytest>=7.0.0; extra == 'test'
71
71
  Description-Content-Type: text/markdown
72
72
 
73
- <div align="center">
74
-
75
- [English](README.en.md) | [简体中文](README.md) | [繁體中文](README.zh-TW.md)
76
-
77
- </div>
78
-
79
73
  <table>
80
74
  <tr>
81
75
  <td width="35%" valign="middle" align="center">
82
- <img src=".github/assets/erispulse_logo_hp.png" width="280" alt="ErisPulse" />
76
+
77
+ <img src=".github/assets/mascot-hero.png" width="320" alt="ErisPulse" />
78
+
83
79
  </td>
84
- <td width="65%" valign="middle">
80
+ <td valign="middle">
81
+
82
+ [English](README.en.md) | **简体中文** | [繁體中文](README.zh-TW.md)
85
83
 
86
84
  # ErisPulse
87
85
 
88
86
  **事件驱动的多平台机器人开发框架**
89
87
 
88
+ 基于 OneBot12 标准接口,一次编写,多平台部署。灵活的插件系统、热重载支持和完整的开发者工具链,适用于从简单聊天机器人到复杂自动化系统的各种场景。
89
+
90
+ > 支持 Vibe Coding 工作流,让 AI 直接生成可用模块 — [查看](docs/zh-CN/ai-support/README.md)
91
+
90
92
  [![PyPI](https://img.shields.io/pypi/v/ErisPulse?style=flat-square)](https://pypi.org/project/ErisPulse/)
91
- [![Docker](https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker&logoColor=white)](https://hub.docker.com/r/erispulse/erispulse)
92
93
  [![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white)](https://pypi.org/project/ErisPulse/)
94
+ [![Docker](https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker&logoColor=white)](https://hub.docker.com/r/erispulse/erispulse)
95
+ [![License](https://img.shields.io/github/license/ErisPulse/ErisPulse?style=flat-square)](https://github.com/ErisPulse/ErisPulse/blob/main/LICENSE)
96
+ [![Stars](https://img.shields.io/github/stars/ErisPulse/ErisPulse?style=flat-square)](https://github.com/ErisPulse/ErisPulse)
97
+ [![Downloads](https://img.shields.io/pypi/dm/ErisPulse?style=flat-square)](https://pypi.org/project/ErisPulse/)
93
98
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
94
- [![Socket Badge](https://socket.dev/api/badge/pypi/package/ErisPulse/latest)](https://socket.dev/pypi/package/ErisPulse)
99
+
100
+ [![文档](https://img.shields.io/badge/文档-erisdev.com-0a0a0a?style=flat-square)](https://www.erisdev.com)
101
+ [![模块市场](https://img.shields.io/badge/模块市场-erisdev.com-0a0a0a?style=flat-square)](https://www.erisdev.com/#market)
102
+ [![讨论](https://img.shields.io/badge/GitHub-Discussions-0a0a0a?style=flat-square&logo=github)](https://github.com/ErisPulse/ErisPulse/discussions)
95
103
 
96
104
  </td>
97
105
  </tr>
@@ -99,19 +107,65 @@ Description-Content-Type: text/markdown
99
107
 
100
108
  ---
101
109
 
102
- ## 简介
110
+ <div align="center">
111
+
112
+ ### 核心特性
113
+
114
+ </div>
115
+
116
+ <table>
117
+ <tr>
118
+ <td width="50%" align="center" valign="top">
119
+ <br/>
120
+
121
+ ### 事件驱动架构
122
+
123
+ 基于 OneBot12 标准的清晰事件模型,让消息处理逻辑更加直观和高效
124
+
125
+ </td>
126
+ <td width="50%" align="center" valign="top">
127
+ <br/>
103
128
 
104
- ErisPulse 是一个基于 Python 的事件驱动型多平台机器人开发框架。通过统一的 OneBot12 标准接口,您可以一次编写代码,同时在云湖、Telegram、OneBot 等多个平台部署相同功能的机器人。框架提供灵活的模块(`插件`)系统、热重载支持和完整的开发者工具链,适用于从简单聊天机器人到复杂自动化系统的各种场景。
129
+ ### 跨平台兼容
105
130
 
106
- ## 核心特性
131
+ 插件模块编写一次即可在所有平台使用,无需为不同平台重复开发
132
+
133
+ </td>
134
+ </tr>
135
+ <tr>
136
+ <td width="50%" align="center" valign="top">
137
+ <br/>
138
+
139
+ ### 模块化设计
140
+
141
+ 灵活的插件系统,易于扩展和集成,支持热插拔模块管理
142
+
143
+ </td>
144
+ <td width="50%" align="center" valign="top">
145
+ <br/>
146
+
147
+ ### 热重载支持
148
+
149
+ 开发时无需重启即可重新加载代码,大幅提升开发迭代效率
150
+
151
+ </td>
152
+ </tr>
153
+ </table>
154
+
155
+ ---
156
+
157
+ ### 支持的适配器
158
+
159
+ <div align="center">
160
+
161
+ <table>
162
+ <tr>
163
+ <td width="35%" valign="middle" align="center">
107
164
 
108
- - **事件驱动架构** - 基于 OneBot12 标准的清晰事件模型
109
- - **跨平台兼容** - 插件模块编写一次即可在所有平台使用
110
- - **模块化设计** - 灵活的插件系统,易于扩展和集成
111
- - **热重载支持** - 开发时无需重启即可重新加载代码
112
- - **完整工具链** - 提供 CLI 工具、包管理和自动化脚本
165
+ <img src=".github/assets/adapter-showcase.png" width="320" alt="支持的适配器" />
113
166
 
114
- ## 支持的适配器
167
+ </td>
168
+ <td valign="middle">
115
169
 
116
170
  欢迎您贡献适配器!
117
171
 
@@ -129,11 +183,19 @@ ErisPulse 是一个基于 Python 的事件驱动型多平台机器人开发框
129
183
  | [云湖用户](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) | 基于云湖用户协议的接入适配器 |
130
184
  | [花枫咖啡馆](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
131
185
 
132
- 查看 [适配器详情介绍](docs/zh-CN/platform-guide/README.md)
186
+ 查看 [适配器详情维护文档](docs/zh-CN/platform-guide/README.md)
187
+
188
+ </td>
189
+ </tr>
190
+ </table>
191
+
192
+ </div>
193
+
194
+ ---
133
195
 
134
- ## 快速开始
196
+ ### 快速开始
135
197
 
136
- ### 使用 Docker (推荐)
198
+ #### 使用 Docker (推荐)
137
199
 
138
200
  ```bash
139
201
  docker pull erispulse/erispulse:latest
@@ -214,7 +276,7 @@ docker pull erispulse/erispulse:dev
214
276
 
215
277
  </details>
216
278
 
217
- ### 1Panel 应用商店
279
+ #### 1Panel 应用商店
218
280
 
219
281
  通过 [1Panel](https://1panel.cn) 应用商店一键安装 ErisPulse,详见 [ErisPulse-1Panel](https://github.com/ErisPulse/ErisPulse-1Panel)。
220
282
 
@@ -222,23 +284,47 @@ docker pull erispulse/erispulse:dev
222
284
  bash <(curl -sL https://get-1panel.erisdev.com/install.sh)
223
285
  ```
224
286
 
225
- ### 使用 pip 安装
287
+ #### 使用 pip 安装
226
288
 
227
289
  ```bash
228
290
  pip install ErisPulse
229
-
230
- # 国内镜像
231
- pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ErisPulse
232
-
233
- # 使用 uv 安装
234
- uv pip install ErisPulse
235
291
  ```
236
292
 
237
- ![安装演示](.github/assets/docs/install_pip.gif)
293
+ <img src=".github/assets/docs/install_pip.gif" width="480" alt="安装演示" />
238
294
 
239
295
  > 如果您的 Python 版本低于 3.10,可以使用一键安装脚本自动配置环境。详见 [安装脚本说明](scripts/install/)。
240
296
 
241
- ### 初始化项目
297
+ #### 运行效果
298
+
299
+ 同一段代码,多个平台响应:
300
+
301
+ <table>
302
+ <tr>
303
+ <td align="center" width="33%">
304
+
305
+ **Kook**
306
+
307
+ <img src=".github/assets/demo-kook.png" alt="Kook 演示" />
308
+
309
+ </td>
310
+ <td align="center" width="33%">
311
+
312
+ **QQ**
313
+
314
+ <img src=".github/assets/demo-qq.png" alt="QQ 演示" />
315
+
316
+ </td>
317
+ <td align="center" width="33%">
318
+
319
+ **云湖**
320
+
321
+ <img src=".github/assets/demo-yunhu.png" alt="云湖 演示" />
322
+
323
+ </td>
324
+ </tr>
325
+ </table>
326
+
327
+ #### 初始化项目
242
328
 
243
329
  ```bash
244
330
  # 交互式初始化
@@ -248,7 +334,7 @@ epsdk init
248
334
  epsdk init -q -n my_bot
249
335
  ```
250
336
 
251
- ### 创建第一个机器人
337
+ #### 创建第一个机器人
252
338
 
253
339
  创建 `main.py` 文件:
254
340
 
@@ -309,48 +395,52 @@ epsdk run main.py --reload
309
395
  - [快速开始指南](docs/zh-CN/quick-start.md)
310
396
  - [入门指南](docs/zh-CN/getting-started/)
311
397
 
312
- ## 应用场景
398
+ ---
399
+
400
+ ### 应用场景
401
+
402
+ <div align="center">
313
403
 
314
- - **多平台机器人** - 在多个平台部署相同功能的机器人
315
- - **聊天助手** - 接入 AI 聊天模块,实现娱乐和交互
316
- - **自动化工具** - 消息通知、任务管理、数据收集
317
- - **消息转发** - 跨平台消息同步和转发
404
+ | 多平台机器人 | 聊天助手 | 自动化工具 | 消息转发 |
405
+ |:---:|:---:|:---:|:---:|
406
+ | 在多个平台部署<br>相同功能的机器人 | 接入 AI 聊天模块<br>实现娱乐和交互 | 消息通知、任务管理<br>数据收集 | 跨平台消息<br>同步和转发 |
318
407
 
319
- ## 文档资源
408
+ </div>
409
+
410
+ ---
411
+
412
+ ### 文档与资源
320
413
 
321
414
  | 简体中文 | English | 繁體中文 |
322
- |----------------|----------------|----------------|
415
+ |:---:|:---:|:---:|
323
416
  | [文档入口](docs/zh-CN/README.md) | [Documentation](docs/en/README.md) | [文檔入口](docs/zh-TW/README.md) |
324
417
 
325
- ## 外部资源
326
-
327
418
  | 平台 | 主站点 | 备用站点 |
328
419
  |------|--------|---------|
329
- | 文档 | [erisdev.com](https://www.erisdev.com/#docs) | [Cloudflare](https://erispulse.pages.dev/#docs) [GitHub](https://erispulse.github.io/#docs) [Netlify](https://erispulse.netlify.app/#docs) |
330
- | 模块市场 | [erisdev.com](https://www.erisdev.com/#market) | [Cloudflare](https://erispulse.pages.dev/#market) [GitHub](https://erispulse.github.io/#market) [Netlify](https://erispulse.netlify.app/#market) |
420
+ | 文档 | [erisdev.com](https://www.erisdev.com/#docs) | [Cloudflare](https://erispulse.pages.dev/#docs) · [GitHub](https://erispulse.github.io/#docs) · [Netlify](https://erispulse.netlify.app/#docs) |
421
+ | 模块市场 | [erisdev.com](https://www.erisdev.com/#market) | [Cloudflare](https://erispulse.pages.dev/#market) · [GitHub](https://erispulse.github.io/#market) · [Netlify](https://erispulse.netlify.app/#market) |
331
422
 
332
- ## 贡献指南
333
-
334
- ErisPulse 项目的健全性还需要您的一份力!我们欢迎各种形式的贡献,包括但不限于:
335
-
336
- 1. **报告问题**
337
- 在 [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues) 提交 bug 报告
423
+ ---
338
424
 
339
- 2. **功能请求**
340
- 通过 [社区讨论](https://github.com/ErisPulse/ErisPulse/discussions) 提出新想法
425
+ ### 贡献指南
341
426
 
342
- 3. **代码贡献**
343
- 提交 Pull Request 前请阅读我们的 [代码风格](docs/zh-CN/styleguide/) 以及 [贡献指南](CONTRIBUTING.md)
427
+ ErisPulse 项目的健全性还需要您的一份力!我们欢迎各种形式的贡献:
344
428
 
345
- 4. **文档改进**
346
- 帮助完善文档和示例代码
429
+ 1. **报告问题** — 在 [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues) 提交 bug 报告
430
+ 2. **功能请求** — 通过 [社区讨论](https://github.com/ErisPulse/ErisPulse/discussions) 提出新想法
431
+ 3. **代码贡献** — 提交 PR 前请阅读 [代码风格](docs/zh-CN/styleguide/) 及 [贡献指南](CONTRIBUTING.md)
432
+ 4. **文档改进** — 帮助完善文档和示例代码
347
433
 
348
434
  [加入社区讨论](https://github.com/ErisPulse/ErisPulse/discussions)
349
435
 
350
436
  ---
351
437
 
352
- ## 致谢
438
+ <div align="center">
439
+
440
+ ### 致谢
441
+
442
+ <img src=".github/assets/thanks.png" width="200" alt="感谢" />
353
443
 
354
- - 本项目部分代码基于 [sdkFrame](https://github.com/runoneall/sdkFrame)
355
- - 核心适配器标准化层基于 [OneBot12 规范](https://12.onebot.dev/)
356
- - 感谢所有为开源社区做出贡献的开发者和作者
444
+ 本项目部分代码基于 [sdkFrame](https://github.com/runoneall/sdkFrame) · 核心适配器标准化层基于 [OneBot12 规范](https://12.onebot.dev/) · 感谢所有为开源社区做出贡献的开发者和作者
445
+
446
+ </div>
@@ -1,25 +1,33 @@
1
- <div align="center">
2
-
3
- [English](README.en.md) | [简体中文](README.md) | [繁體中文](README.zh-TW.md)
4
-
5
- </div>
6
-
7
1
  <table>
8
2
  <tr>
9
3
  <td width="35%" valign="middle" align="center">
10
- <img src=".github/assets/erispulse_logo_hp.png" width="280" alt="ErisPulse" />
4
+
5
+ <img src=".github/assets/mascot-hero.png" width="320" alt="ErisPulse" />
6
+
11
7
  </td>
12
- <td width="65%" valign="middle">
8
+ <td valign="middle">
9
+
10
+ [English](README.en.md) | **简体中文** | [繁體中文](README.zh-TW.md)
13
11
 
14
12
  # ErisPulse
15
13
 
16
14
  **事件驱动的多平台机器人开发框架**
17
15
 
16
+ 基于 OneBot12 标准接口,一次编写,多平台部署。灵活的插件系统、热重载支持和完整的开发者工具链,适用于从简单聊天机器人到复杂自动化系统的各种场景。
17
+
18
+ > 支持 Vibe Coding 工作流,让 AI 直接生成可用模块 — [查看](docs/zh-CN/ai-support/README.md)
19
+
18
20
  [![PyPI](https://img.shields.io/pypi/v/ErisPulse?style=flat-square)](https://pypi.org/project/ErisPulse/)
19
- [![Docker](https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker&logoColor=white)](https://hub.docker.com/r/erispulse/erispulse)
20
21
  [![Python](https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white)](https://pypi.org/project/ErisPulse/)
22
+ [![Docker](https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker&logoColor=white)](https://hub.docker.com/r/erispulse/erispulse)
23
+ [![License](https://img.shields.io/github/license/ErisPulse/ErisPulse?style=flat-square)](https://github.com/ErisPulse/ErisPulse/blob/main/LICENSE)
24
+ [![Stars](https://img.shields.io/github/stars/ErisPulse/ErisPulse?style=flat-square)](https://github.com/ErisPulse/ErisPulse)
25
+ [![Downloads](https://img.shields.io/pypi/dm/ErisPulse?style=flat-square)](https://pypi.org/project/ErisPulse/)
21
26
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
22
- [![Socket Badge](https://socket.dev/api/badge/pypi/package/ErisPulse/latest)](https://socket.dev/pypi/package/ErisPulse)
27
+
28
+ [![文档](https://img.shields.io/badge/文档-erisdev.com-0a0a0a?style=flat-square)](https://www.erisdev.com)
29
+ [![模块市场](https://img.shields.io/badge/模块市场-erisdev.com-0a0a0a?style=flat-square)](https://www.erisdev.com/#market)
30
+ [![讨论](https://img.shields.io/badge/GitHub-Discussions-0a0a0a?style=flat-square&logo=github)](https://github.com/ErisPulse/ErisPulse/discussions)
23
31
 
24
32
  </td>
25
33
  </tr>
@@ -27,19 +35,65 @@
27
35
 
28
36
  ---
29
37
 
30
- ## 简介
38
+ <div align="center">
39
+
40
+ ### 核心特性
41
+
42
+ </div>
43
+
44
+ <table>
45
+ <tr>
46
+ <td width="50%" align="center" valign="top">
47
+ <br/>
48
+
49
+ ### 事件驱动架构
50
+
51
+ 基于 OneBot12 标准的清晰事件模型,让消息处理逻辑更加直观和高效
52
+
53
+ </td>
54
+ <td width="50%" align="center" valign="top">
55
+ <br/>
31
56
 
32
- ErisPulse 是一个基于 Python 的事件驱动型多平台机器人开发框架。通过统一的 OneBot12 标准接口,您可以一次编写代码,同时在云湖、Telegram、OneBot 等多个平台部署相同功能的机器人。框架提供灵活的模块(`插件`)系统、热重载支持和完整的开发者工具链,适用于从简单聊天机器人到复杂自动化系统的各种场景。
57
+ ### 跨平台兼容
33
58
 
34
- ## 核心特性
59
+ 插件模块编写一次即可在所有平台使用,无需为不同平台重复开发
60
+
61
+ </td>
62
+ </tr>
63
+ <tr>
64
+ <td width="50%" align="center" valign="top">
65
+ <br/>
66
+
67
+ ### 模块化设计
68
+
69
+ 灵活的插件系统,易于扩展和集成,支持热插拔模块管理
70
+
71
+ </td>
72
+ <td width="50%" align="center" valign="top">
73
+ <br/>
74
+
75
+ ### 热重载支持
76
+
77
+ 开发时无需重启即可重新加载代码,大幅提升开发迭代效率
78
+
79
+ </td>
80
+ </tr>
81
+ </table>
82
+
83
+ ---
84
+
85
+ ### 支持的适配器
86
+
87
+ <div align="center">
88
+
89
+ <table>
90
+ <tr>
91
+ <td width="35%" valign="middle" align="center">
35
92
 
36
- - **事件驱动架构** - 基于 OneBot12 标准的清晰事件模型
37
- - **跨平台兼容** - 插件模块编写一次即可在所有平台使用
38
- - **模块化设计** - 灵活的插件系统,易于扩展和集成
39
- - **热重载支持** - 开发时无需重启即可重新加载代码
40
- - **完整工具链** - 提供 CLI 工具、包管理和自动化脚本
93
+ <img src=".github/assets/adapter-showcase.png" width="320" alt="支持的适配器" />
41
94
 
42
- ## 支持的适配器
95
+ </td>
96
+ <td valign="middle">
43
97
 
44
98
  欢迎您贡献适配器!
45
99
 
@@ -57,11 +111,19 @@ ErisPulse 是一个基于 Python 的事件驱动型多平台机器人开发框
57
111
  | [云湖用户](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) | 基于云湖用户协议的接入适配器 |
58
112
  | [花枫咖啡馆](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
59
113
 
60
- 查看 [适配器详情介绍](docs/zh-CN/platform-guide/README.md)
114
+ 查看 [适配器详情维护文档](docs/zh-CN/platform-guide/README.md)
115
+
116
+ </td>
117
+ </tr>
118
+ </table>
119
+
120
+ </div>
121
+
122
+ ---
61
123
 
62
- ## 快速开始
124
+ ### 快速开始
63
125
 
64
- ### 使用 Docker (推荐)
126
+ #### 使用 Docker (推荐)
65
127
 
66
128
  ```bash
67
129
  docker pull erispulse/erispulse:latest
@@ -142,7 +204,7 @@ docker pull erispulse/erispulse:dev
142
204
 
143
205
  </details>
144
206
 
145
- ### 1Panel 应用商店
207
+ #### 1Panel 应用商店
146
208
 
147
209
  通过 [1Panel](https://1panel.cn) 应用商店一键安装 ErisPulse,详见 [ErisPulse-1Panel](https://github.com/ErisPulse/ErisPulse-1Panel)。
148
210
 
@@ -150,23 +212,47 @@ docker pull erispulse/erispulse:dev
150
212
  bash <(curl -sL https://get-1panel.erisdev.com/install.sh)
151
213
  ```
152
214
 
153
- ### 使用 pip 安装
215
+ #### 使用 pip 安装
154
216
 
155
217
  ```bash
156
218
  pip install ErisPulse
157
-
158
- # 国内镜像
159
- pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ErisPulse
160
-
161
- # 使用 uv 安装
162
- uv pip install ErisPulse
163
219
  ```
164
220
 
165
- ![安装演示](.github/assets/docs/install_pip.gif)
221
+ <img src=".github/assets/docs/install_pip.gif" width="480" alt="安装演示" />
166
222
 
167
223
  > 如果您的 Python 版本低于 3.10,可以使用一键安装脚本自动配置环境。详见 [安装脚本说明](scripts/install/)。
168
224
 
169
- ### 初始化项目
225
+ #### 运行效果
226
+
227
+ 同一段代码,多个平台响应:
228
+
229
+ <table>
230
+ <tr>
231
+ <td align="center" width="33%">
232
+
233
+ **Kook**
234
+
235
+ <img src=".github/assets/demo-kook.png" alt="Kook 演示" />
236
+
237
+ </td>
238
+ <td align="center" width="33%">
239
+
240
+ **QQ**
241
+
242
+ <img src=".github/assets/demo-qq.png" alt="QQ 演示" />
243
+
244
+ </td>
245
+ <td align="center" width="33%">
246
+
247
+ **云湖**
248
+
249
+ <img src=".github/assets/demo-yunhu.png" alt="云湖 演示" />
250
+
251
+ </td>
252
+ </tr>
253
+ </table>
254
+
255
+ #### 初始化项目
170
256
 
171
257
  ```bash
172
258
  # 交互式初始化
@@ -176,7 +262,7 @@ epsdk init
176
262
  epsdk init -q -n my_bot
177
263
  ```
178
264
 
179
- ### 创建第一个机器人
265
+ #### 创建第一个机器人
180
266
 
181
267
  创建 `main.py` 文件:
182
268
 
@@ -237,48 +323,52 @@ epsdk run main.py --reload
237
323
  - [快速开始指南](docs/zh-CN/quick-start.md)
238
324
  - [入门指南](docs/zh-CN/getting-started/)
239
325
 
240
- ## 应用场景
326
+ ---
327
+
328
+ ### 应用场景
329
+
330
+ <div align="center">
241
331
 
242
- - **多平台机器人** - 在多个平台部署相同功能的机器人
243
- - **聊天助手** - 接入 AI 聊天模块,实现娱乐和交互
244
- - **自动化工具** - 消息通知、任务管理、数据收集
245
- - **消息转发** - 跨平台消息同步和转发
332
+ | 多平台机器人 | 聊天助手 | 自动化工具 | 消息转发 |
333
+ |:---:|:---:|:---:|:---:|
334
+ | 在多个平台部署<br>相同功能的机器人 | 接入 AI 聊天模块<br>实现娱乐和交互 | 消息通知、任务管理<br>数据收集 | 跨平台消息<br>同步和转发 |
246
335
 
247
- ## 文档资源
336
+ </div>
337
+
338
+ ---
339
+
340
+ ### 文档与资源
248
341
 
249
342
  | 简体中文 | English | 繁體中文 |
250
- |----------------|----------------|----------------|
343
+ |:---:|:---:|:---:|
251
344
  | [文档入口](docs/zh-CN/README.md) | [Documentation](docs/en/README.md) | [文檔入口](docs/zh-TW/README.md) |
252
345
 
253
- ## 外部资源
254
-
255
346
  | 平台 | 主站点 | 备用站点 |
256
347
  |------|--------|---------|
257
- | 文档 | [erisdev.com](https://www.erisdev.com/#docs) | [Cloudflare](https://erispulse.pages.dev/#docs) [GitHub](https://erispulse.github.io/#docs) [Netlify](https://erispulse.netlify.app/#docs) |
258
- | 模块市场 | [erisdev.com](https://www.erisdev.com/#market) | [Cloudflare](https://erispulse.pages.dev/#market) [GitHub](https://erispulse.github.io/#market) [Netlify](https://erispulse.netlify.app/#market) |
348
+ | 文档 | [erisdev.com](https://www.erisdev.com/#docs) | [Cloudflare](https://erispulse.pages.dev/#docs) · [GitHub](https://erispulse.github.io/#docs) · [Netlify](https://erispulse.netlify.app/#docs) |
349
+ | 模块市场 | [erisdev.com](https://www.erisdev.com/#market) | [Cloudflare](https://erispulse.pages.dev/#market) · [GitHub](https://erispulse.github.io/#market) · [Netlify](https://erispulse.netlify.app/#market) |
259
350
 
260
- ## 贡献指南
261
-
262
- ErisPulse 项目的健全性还需要您的一份力!我们欢迎各种形式的贡献,包括但不限于:
263
-
264
- 1. **报告问题**
265
- 在 [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues) 提交 bug 报告
351
+ ---
266
352
 
267
- 2. **功能请求**
268
- 通过 [社区讨论](https://github.com/ErisPulse/ErisPulse/discussions) 提出新想法
353
+ ### 贡献指南
269
354
 
270
- 3. **代码贡献**
271
- 提交 Pull Request 前请阅读我们的 [代码风格](docs/zh-CN/styleguide/) 以及 [贡献指南](CONTRIBUTING.md)
355
+ ErisPulse 项目的健全性还需要您的一份力!我们欢迎各种形式的贡献:
272
356
 
273
- 4. **文档改进**
274
- 帮助完善文档和示例代码
357
+ 1. **报告问题** — 在 [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues) 提交 bug 报告
358
+ 2. **功能请求** — 通过 [社区讨论](https://github.com/ErisPulse/ErisPulse/discussions) 提出新想法
359
+ 3. **代码贡献** — 提交 PR 前请阅读 [代码风格](docs/zh-CN/styleguide/) 及 [贡献指南](CONTRIBUTING.md)
360
+ 4. **文档改进** — 帮助完善文档和示例代码
275
361
 
276
362
  [加入社区讨论](https://github.com/ErisPulse/ErisPulse/discussions)
277
363
 
278
364
  ---
279
365
 
280
- ## 致谢
366
+ <div align="center">
367
+
368
+ ### 致谢
369
+
370
+ <img src=".github/assets/thanks.png" width="200" alt="感谢" />
281
371
 
282
- - 本项目部分代码基于 [sdkFrame](https://github.com/runoneall/sdkFrame)
283
- - 核心适配器标准化层基于 [OneBot12 规范](https://12.onebot.dev/)
284
- - 感谢所有为开源社区做出贡献的开发者和作者
372
+ 本项目部分代码基于 [sdkFrame](https://github.com/runoneall/sdkFrame) · 核心适配器标准化层基于 [OneBot12 规范](https://12.onebot.dev/) · 感谢所有为开源社区做出贡献的开发者和作者
373
+
374
+ </div>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ErisPulse"
7
- version = "2.4.5-dev.3"
7
+ version = "2.4.6-dev.1"
8
8
  description = "ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -11,42 +11,42 @@ from argparse import ArgumentParser
11
11
  class Command(ABC):
12
12
  """
13
13
  命令基类
14
-
14
+
15
15
  所有 CLI 命令都应继承此类并实现抽象方法
16
-
16
+
17
17
  {!--< tips >!--}
18
18
  1. 每个命令类必须实现 add_arguments 和 execute 方法
19
19
  2. name 和 description 为类属性,必须在子类中定义
20
20
  3. execute 方法接收解析后的 args 对象
21
21
  {!--< /tips >!--}
22
22
  """
23
-
23
+
24
24
  name: str = "" # 命令名称
25
25
  description: str = "" # 命令描述
26
-
26
+
27
27
  @abstractmethod
28
28
  def add_arguments(self, parser: ArgumentParser):
29
29
  """
30
30
  添加命令参数
31
-
31
+
32
32
  :param parser: ArgumentParser 实例
33
33
  """
34
34
  pass
35
-
35
+
36
36
  @abstractmethod
37
37
  def execute(self, args):
38
38
  """
39
39
  执行命令
40
-
40
+
41
41
  :param args: 解析后的参数对象
42
42
  """
43
43
  pass
44
-
44
+
45
45
  @property
46
46
  def help(self) -> str:
47
47
  """
48
48
  获取帮助信息
49
-
49
+
50
50
  :return: 命令描述
51
51
  """
52
52
  return self.description