ErisPulse 2.3.3.dev0__tar.gz → 2.3.4.dev2__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 (220) hide show
  1. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/LICENSE +3 -3
  2. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/PKG-INFO +6 -20
  3. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/README.md +1 -16
  4. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/pyproject.toml +14 -1
  5. erispulse-2.3.4.dev2/src/ErisPulse/CLI/__init__.py +11 -0
  6. erispulse-2.3.4.dev2/src/ErisPulse/CLI/__init__.pyi +13 -0
  7. erispulse-2.3.4.dev2/src/ErisPulse/CLI/base.py +52 -0
  8. erispulse-2.3.4.dev2/src/ErisPulse/CLI/base.pyi +50 -0
  9. erispulse-2.3.4.dev2/src/ErisPulse/CLI/cli.py +224 -0
  10. erispulse-2.3.4.dev2/src/ErisPulse/CLI/cli.pyi +80 -0
  11. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/__init__.py +6 -0
  12. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/__init__.pyi +12 -0
  13. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/init.py +395 -0
  14. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/init.pyi +70 -0
  15. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/install.py +302 -0
  16. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/install.pyi +58 -0
  17. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/list.py +160 -0
  18. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/list.pyi +44 -0
  19. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/list_remote.py +123 -0
  20. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/list_remote.pyi +35 -0
  21. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/run.py +108 -0
  22. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/run.pyi +39 -0
  23. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/self_update.py +232 -0
  24. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/self_update.pyi +47 -0
  25. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/uninstall.py +32 -0
  26. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/uninstall.pyi +24 -0
  27. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/upgrade.py +56 -0
  28. erispulse-2.3.4.dev2/src/ErisPulse/CLI/commands/upgrade.pyi +25 -0
  29. erispulse-2.3.4.dev2/src/ErisPulse/CLI/console.pyi +20 -0
  30. erispulse-2.3.4.dev2/src/ErisPulse/CLI/registry.py +112 -0
  31. erispulse-2.3.4.dev2/src/ErisPulse/CLI/registry.pyi +99 -0
  32. {erispulse-2.3.3.dev0/src/ErisPulse → erispulse-2.3.4.dev2/src/ErisPulse/CLI}/utils/__init__.py +2 -6
  33. erispulse-2.3.4.dev2/src/ErisPulse/CLI/utils/__init__.pyi +14 -0
  34. {erispulse-2.3.3.dev0/src/ErisPulse → erispulse-2.3.4.dev2/src/ErisPulse/CLI}/utils/package_manager.py +146 -20
  35. erispulse-2.3.4.dev2/src/ErisPulse/CLI/utils/package_manager.pyi +241 -0
  36. {erispulse-2.3.3.dev0/src/ErisPulse → erispulse-2.3.4.dev2/src/ErisPulse/CLI}/utils/reload_handler.py +7 -8
  37. erispulse-2.3.4.dev2/src/ErisPulse/CLI/utils/reload_handler.pyi +64 -0
  38. erispulse-2.3.4.dev2/src/ErisPulse/Core/Bases/__init__.pyi +14 -0
  39. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Bases/adapter.py +13 -1
  40. erispulse-2.3.4.dev2/src/ErisPulse/Core/Bases/adapter.pyi +140 -0
  41. erispulse-2.3.4.dev2/src/ErisPulse/Core/Bases/manager.py +136 -0
  42. erispulse-2.3.4.dev2/src/ErisPulse/Core/Bases/manager.pyi +108 -0
  43. erispulse-2.3.4.dev2/src/ErisPulse/Core/Bases/module.py +106 -0
  44. erispulse-2.3.4.dev2/src/ErisPulse/Core/Bases/module.pyi +95 -0
  45. erispulse-2.3.4.dev2/src/ErisPulse/Core/Event/__init__.pyi +26 -0
  46. erispulse-2.3.4.dev2/src/ErisPulse/Core/Event/base.pyi +62 -0
  47. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Event/command.py +6 -1
  48. erispulse-2.3.4.dev2/src/ErisPulse/Core/Event/command.pyi +113 -0
  49. erispulse-2.3.4.dev2/src/ErisPulse/Core/Event/exceptions.pyi +43 -0
  50. erispulse-2.3.4.dev2/src/ErisPulse/Core/Event/message.pyi +93 -0
  51. erispulse-2.3.4.dev2/src/ErisPulse/Core/Event/meta.pyi +92 -0
  52. erispulse-2.3.4.dev2/src/ErisPulse/Core/Event/notice.pyi +108 -0
  53. erispulse-2.3.4.dev2/src/ErisPulse/Core/Event/request.pyi +76 -0
  54. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Event/wrapper.py +2 -3
  55. erispulse-2.3.4.dev2/src/ErisPulse/Core/Event/wrapper.pyi +403 -0
  56. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/__init__.py +16 -13
  57. erispulse-2.3.4.dev2/src/ErisPulse/Core/__init__.pyi +16 -0
  58. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/_self_config.py +1 -1
  59. erispulse-2.3.4.dev2/src/ErisPulse/Core/_self_config.pyi +72 -0
  60. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/adapter.py +70 -10
  61. erispulse-2.3.4.dev2/src/ErisPulse/Core/adapter.pyi +246 -0
  62. erispulse-2.3.4.dev2/src/ErisPulse/Core/config.pyi +70 -0
  63. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/exceptions.py +4 -2
  64. erispulse-2.3.4.dev2/src/ErisPulse/Core/exceptions.pyi +60 -0
  65. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/lifecycle.py +15 -1
  66. erispulse-2.3.4.dev2/src/ErisPulse/Core/lifecycle.pyi +92 -0
  67. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/logger.py +21 -15
  68. erispulse-2.3.4.dev2/src/ErisPulse/Core/logger.pyi +169 -0
  69. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/module.py +57 -9
  70. erispulse-2.3.4.dev2/src/ErisPulse/Core/module.pyi +189 -0
  71. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/router.py +13 -5
  72. erispulse-2.3.4.dev2/src/ErisPulse/Core/router.pyi +120 -0
  73. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/storage.py +94 -256
  74. erispulse-2.3.4.dev2/src/ErisPulse/Core/storage.pyi +220 -0
  75. erispulse-2.3.4.dev2/src/ErisPulse/__init__.py +55 -0
  76. erispulse-2.3.4.dev2/src/ErisPulse/__init__.pyi +22 -0
  77. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/__main__.py +1 -1
  78. erispulse-2.3.4.dev2/src/ErisPulse/__main__.pyi +24 -0
  79. erispulse-2.3.4.dev2/src/ErisPulse/loaders/__init__.py +22 -0
  80. erispulse-2.3.4.dev2/src/ErisPulse/loaders/__init__.pyi +21 -0
  81. erispulse-2.3.4.dev2/src/ErisPulse/loaders/adapter_loader.py +187 -0
  82. erispulse-2.3.4.dev2/src/ErisPulse/loaders/adapter_loader.pyi +82 -0
  83. erispulse-2.3.4.dev2/src/ErisPulse/loaders/base_loader.py +162 -0
  84. erispulse-2.3.4.dev2/src/ErisPulse/loaders/base_loader.pyi +23 -0
  85. erispulse-2.3.4.dev2/src/ErisPulse/loaders/initializer.py +150 -0
  86. erispulse-2.3.4.dev2/src/ErisPulse/loaders/initializer.pyi +60 -0
  87. erispulse-2.3.4.dev2/src/ErisPulse/loaders/module_loader.py +618 -0
  88. erispulse-2.3.4.dev2/src/ErisPulse/loaders/module_loader.pyi +179 -0
  89. erispulse-2.3.4.dev2/src/ErisPulse/loaders/strategy.py +129 -0
  90. erispulse-2.3.4.dev2/src/ErisPulse/loaders/strategy.pyi +90 -0
  91. erispulse-2.3.4.dev2/src/ErisPulse/sdk.py +435 -0
  92. erispulse-2.3.4.dev2/src/ErisPulse/sdk.pyi +158 -0
  93. erispulse-2.3.3.dev0/.github/ISSUE_TEMPLATE/config.yml +0 -5
  94. erispulse-2.3.3.dev0/.github/ISSUE_TEMPLATE/module_submission.md +0 -38
  95. erispulse-2.3.3.dev0/.github/PULL_REQUEST_TEMPLATE.md +0 -22
  96. erispulse-2.3.3.dev0/.github/assets/docs/install_pip.gif +0 -0
  97. erispulse-2.3.3.dev0/.github/assets/erispulse_logo.png +0 -0
  98. erispulse-2.3.3.dev0/.github/scripts/update_packages.py +0 -125
  99. erispulse-2.3.3.dev0/.github/tools/merge_md.py +0 -522
  100. erispulse-2.3.3.dev0/.github/tools/update-api-docs.py +0 -557
  101. erispulse-2.3.3.dev0/.github/workflows/auto-tag-release.yml +0 -95
  102. erispulse-2.3.3.dev0/.github/workflows/auto-update-docs.yml +0 -152
  103. erispulse-2.3.3.dev0/.github/workflows/auto-update-packages.yml +0 -84
  104. erispulse-2.3.3.dev0/.github/workflows/code-quality-check.yml +0 -86
  105. erispulse-2.3.3.dev0/.github/workflows/pypi-publish.yml +0 -91
  106. erispulse-2.3.3.dev0/.python-version +0 -1
  107. erispulse-2.3.3.dev0/CHANGELOG.md +0 -689
  108. erispulse-2.3.3.dev0/CODE_OF_CONDUCT.md +0 -54
  109. erispulse-2.3.3.dev0/CONTRIBUTING.md +0 -62
  110. erispulse-2.3.3.dev0/SECURITY.md +0 -25
  111. erispulse-2.3.3.dev0/devs/test.py +0 -396
  112. erispulse-2.3.3.dev0/devs/test_adapter.py +0 -225
  113. erispulse-2.3.3.dev0/devs/test_cmd.py +0 -419
  114. erispulse-2.3.3.dev0/devs/test_event.py +0 -100
  115. erispulse-2.3.3.dev0/devs/test_event_wrapper.py +0 -181
  116. erispulse-2.3.3.dev0/devs/test_files/test.docx +0 -0
  117. erispulse-2.3.3.dev0/devs/test_files/test.jpg +0 -0
  118. erispulse-2.3.3.dev0/devs/test_files/test.mp4 +0 -0
  119. erispulse-2.3.3.dev0/docs/README.md +0 -49
  120. erispulse-2.3.3.dev0/docs/ai/AIDocs/ErisPulse-AdapterDev.md +0 -8397
  121. erispulse-2.3.3.dev0/docs/ai/AIDocs/ErisPulse-Core.md +0 -7650
  122. erispulse-2.3.3.dev0/docs/ai/AIDocs/ErisPulse-Full.md +0 -9321
  123. erispulse-2.3.3.dev0/docs/ai/AIDocs/ErisPulse-ModuleDev.md +0 -3737
  124. erispulse-2.3.3.dev0/docs/ai/AIDocs/no-api/ErisPulse-AdapterDev.md +0 -3823
  125. erispulse-2.3.3.dev0/docs/ai/AIDocs/no-api/ErisPulse-Core.md +0 -3076
  126. erispulse-2.3.3.dev0/docs/ai/AIDocs/no-api/ErisPulse-Full.md +0 -4747
  127. erispulse-2.3.3.dev0/docs/ai/AIDocs/no-api/ErisPulse-ModuleDev.md +0 -3737
  128. erispulse-2.3.3.dev0/docs/ai/README.md +0 -25
  129. erispulse-2.3.3.dev0/docs/ai/module-generation.md +0 -65
  130. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Bases/__init__.md +0 -14
  131. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Bases/adapter.md +0 -151
  132. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Bases/module.md +0 -65
  133. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Event/__init__.md +0 -38
  134. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Event/base.md +0 -95
  135. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Event/command.md +0 -194
  136. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Event/exceptions.md +0 -45
  137. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Event/message.md +0 -122
  138. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Event/meta.md +0 -121
  139. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Event/notice.md +0 -141
  140. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Event/request.md +0 -101
  141. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/Event/wrapper.md +0 -511
  142. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/_self_config.md +0 -82
  143. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/adapter.md +0 -285
  144. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/config.md +0 -90
  145. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/exceptions.md +0 -76
  146. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/lifecycle.md +0 -108
  147. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/logger.md +0 -166
  148. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/module.md +0 -239
  149. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/router.md +0 -142
  150. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/storage.md +0 -356
  151. erispulse-2.3.3.dev0/docs/api/ErisPulse/Core/ux.md +0 -110
  152. erispulse-2.3.3.dev0/docs/api/ErisPulse/__init__.md +0 -423
  153. erispulse-2.3.3.dev0/docs/api/ErisPulse/__main__.md +0 -28
  154. erispulse-2.3.3.dev0/docs/api/ErisPulse/utils/__init__.md +0 -14
  155. erispulse-2.3.3.dev0/docs/api/ErisPulse/utils/cli.md +0 -176
  156. erispulse-2.3.3.dev0/docs/api/ErisPulse/utils/console.md +0 -23
  157. erispulse-2.3.3.dev0/docs/api/ErisPulse/utils/package_manager.md +0 -261
  158. erispulse-2.3.3.dev0/docs/api/ErisPulse/utils/reload_handler.md +0 -75
  159. erispulse-2.3.3.dev0/docs/api/README.md +0 -164
  160. erispulse-2.3.3.dev0/docs/core/README.md +0 -22
  161. erispulse-2.3.3.dev0/docs/core/adapters.md +0 -107
  162. erispulse-2.3.3.dev0/docs/core/best-practices.md +0 -326
  163. erispulse-2.3.3.dev0/docs/core/cli.md +0 -78
  164. erispulse-2.3.3.dev0/docs/core/concepts.md +0 -38
  165. erispulse-2.3.3.dev0/docs/core/event-system.md +0 -597
  166. erispulse-2.3.3.dev0/docs/core/lazy-loading.md +0 -261
  167. erispulse-2.3.3.dev0/docs/core/modules.md +0 -659
  168. erispulse-2.3.3.dev0/docs/core/router.md +0 -535
  169. erispulse-2.3.3.dev0/docs/core/self-config.md +0 -188
  170. erispulse-2.3.3.dev0/docs/development/README.md +0 -44
  171. erispulse-2.3.3.dev0/docs/development/adapter.md +0 -454
  172. erispulse-2.3.3.dev0/docs/development/cli.md +0 -88
  173. erispulse-2.3.3.dev0/docs/development/module.md +0 -701
  174. erispulse-2.3.3.dev0/docs/platform-features/README.md +0 -220
  175. erispulse-2.3.3.dev0/docs/platform-features/email.md +0 -138
  176. erispulse-2.3.3.dev0/docs/platform-features/maintain-notes.md +0 -144
  177. erispulse-2.3.3.dev0/docs/platform-features/onebot11.md +0 -261
  178. erispulse-2.3.3.dev0/docs/platform-features/onebot12.md +0 -339
  179. erispulse-2.3.3.dev0/docs/platform-features/telegram.md +0 -139
  180. erispulse-2.3.3.dev0/docs/platform-features/yunhu.md +0 -153
  181. erispulse-2.3.3.dev0/docs/quick-start.md +0 -149
  182. erispulse-2.3.3.dev0/docs/standards/README.md +0 -19
  183. erispulse-2.3.3.dev0/docs/standards/api-response.md +0 -109
  184. erispulse-2.3.3.dev0/docs/standards/event-conversion.md +0 -194
  185. erispulse-2.3.3.dev0/docs/styleguide/README.md +0 -5
  186. erispulse-2.3.3.dev0/docs/styleguide/docstring_spec.md +0 -95
  187. erispulse-2.3.3.dev0/examples/example-adapter/LICENSE +0 -21
  188. erispulse-2.3.3.dev0/examples/example-adapter/MyAdapter/Converter.py +0 -38
  189. erispulse-2.3.3.dev0/examples/example-adapter/MyAdapter/Core.py +0 -141
  190. erispulse-2.3.3.dev0/examples/example-adapter/MyAdapter/__init__.py +0 -7
  191. erispulse-2.3.3.dev0/examples/example-adapter/README.md +0 -0
  192. erispulse-2.3.3.dev0/examples/example-adapter/pyproject.toml +0 -17
  193. erispulse-2.3.3.dev0/examples/example-cli-module/LICENSE +0 -21
  194. erispulse-2.3.3.dev0/examples/example-cli-module/README.md +0 -0
  195. erispulse-2.3.3.dev0/examples/example-cli-module/my_cli_module/__init__.py +0 -1
  196. erispulse-2.3.3.dev0/examples/example-cli-module/my_cli_module/cli.py +0 -61
  197. erispulse-2.3.3.dev0/examples/example-cli-module/pyproject.toml +0 -18
  198. erispulse-2.3.3.dev0/examples/example-module/LICENSE +0 -21
  199. erispulse-2.3.3.dev0/examples/example-module/MyModule/Core.py +0 -177
  200. erispulse-2.3.3.dev0/examples/example-module/MyModule/__init__.py +0 -1
  201. erispulse-2.3.3.dev0/examples/example-module/README.md +0 -29
  202. erispulse-2.3.3.dev0/examples/example-module/pyproject.toml +0 -17
  203. erispulse-2.3.3.dev0/packages.json +0 -258
  204. erispulse-2.3.3.dev0/scripts/install/install.ps1 +0 -339
  205. erispulse-2.3.3.dev0/scripts/install/install.sh +0 -271
  206. erispulse-2.3.3.dev0/src/ErisPulse/Core/Bases/module.py +0 -54
  207. erispulse-2.3.3.dev0/src/ErisPulse/Core/ux.py +0 -635
  208. erispulse-2.3.3.dev0/src/ErisPulse/__init__.py +0 -1256
  209. erispulse-2.3.3.dev0/src/ErisPulse/utils/cli.py +0 -1097
  210. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/.gitignore +0 -0
  211. {erispulse-2.3.3.dev0/src/ErisPulse/utils → erispulse-2.3.4.dev2/src/ErisPulse/CLI}/console.py +0 -0
  212. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Bases/__init__.py +0 -0
  213. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Event/__init__.py +0 -0
  214. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Event/base.py +0 -0
  215. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Event/exceptions.py +0 -0
  216. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Event/message.py +0 -0
  217. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Event/meta.py +0 -0
  218. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Event/notice.py +0 -0
  219. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/Event/request.py +0 -0
  220. {erispulse-2.3.3.dev0 → erispulse-2.3.4.dev2}/src/ErisPulse/Core/config.py +0 -0
@@ -30,8 +30,8 @@ This SDK's core adapter standardization layer strictly follows OneBot12 specific
30
30
 
31
31
  This ensures consistent behavior and interoperability across all adapter implementations.
32
32
 
33
- 感谢所有为开源社区做出贡献的开发者和作者
33
+ We extend our gratitude to all developers and authors who contribute to the open-source community.
34
34
 
35
- 请尊重每一位开源作者的劳动成果,您需要承诺在使用、修改和分发本软件时,严格遵守相关许可证条款,并保留所有原始版权声明
35
+ Please respect the efforts of every open-source author. By using, modifying, or distributing this software, you commit to strictly adhering to the relevant license terms and preserving all original copyright notices.
36
36
 
37
- 开源精神的核心在于分享、协作与尊重。我们希望通过本项目,能够传承这一精神,为开源社区的发展贡献一份力量
37
+ The core of the open-source spirit lies in sharing, collaboration, and respect. Through this project, we hope to carry forward this spirit and contribute to the development of the open-source community.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse
3
- Version: 2.3.3.dev0
3
+ Version: 2.3.4.dev2
4
4
  Summary: ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。
5
5
  Author-email: "艾莉丝·格雷拉特(WSu2059)" <wsu2059@qq.com>
6
6
  License: MIT License
@@ -35,11 +35,11 @@ License: MIT License
35
35
 
36
36
  This ensures consistent behavior and interoperability across all adapter implementations.
37
37
 
38
- 感谢所有为开源社区做出贡献的开发者和作者
38
+ We extend our gratitude to all developers and authors who contribute to the open-source community.
39
39
 
40
- 请尊重每一位开源作者的劳动成果,您需要承诺在使用、修改和分发本软件时,严格遵守相关许可证条款,并保留所有原始版权声明
40
+ Please respect the efforts of every open-source author. By using, modifying, or distributing this software, you commit to strictly adhering to the relevant license terms and preserving all original copyright notices.
41
41
 
42
- 开源精神的核心在于分享、协作与尊重。我们希望通过本项目,能够传承这一精神,为开源社区的发展贡献一份力量
42
+ The core of the open-source spirit lies in sharing, collaboration, and respect. Through this project, we hope to carry forward this spirit and contribute to the development of the open-source community.
43
43
  License-File: LICENSE
44
44
  Classifier: Development Status :: 5 - Production/Stable
45
45
  Classifier: Intended Audience :: Developers
@@ -58,6 +58,7 @@ Requires-Dist: colorama
58
58
  Requires-Dist: fastapi>=0.116.1
59
59
  Requires-Dist: hypercorn>=0.14.0
60
60
  Requires-Dist: packaging>=25.0
61
+ Requires-Dist: pip
61
62
  Requires-Dist: pydantic>=2.10.6
62
63
  Requires-Dist: python-multipart>=0.0.20
63
64
  Requires-Dist: rich
@@ -146,21 +147,6 @@ uv pip install -e .
146
147
  python -c "from ErisPulse import sdk; sdk.init()"
147
148
  ```
148
149
 
149
- ### 5. 运行测试
150
-
151
- 我们提供了一个交互式测试脚本,可以帮助您快速验证SDK功能:
152
-
153
- ```bash
154
- uv run devs/test.py
155
- ```
156
-
157
- 测试功能包括:
158
- - 日志系统测试
159
- - 环境配置测试
160
- - 错误管理测试
161
- - 工具函数测试
162
- - 适配器功能测试
163
-
164
150
  ## 项目结构
165
151
 
166
152
  ```
@@ -191,7 +177,7 @@ ErisPulse/
191
177
  通过 [社区讨论](https://github.com/ErisPulse/ErisPulse/discussions) 提出新想法
192
178
 
193
179
  3. 代码贡献
194
- 提交 Pull Request 前请阅读我们的 [代码风格](docs/StyleGuide/DocstringSpec.md) 以及 [贡献指南](CONTRIBUTING.md)
180
+ 提交 Pull Request 前请阅读我们的 [代码风格](docs/styleguide/docstring_spec.md) 以及 [贡献指南](CONTRIBUTING.md)
195
181
 
196
182
  4. 文档改进
197
183
  帮助完善文档和示例代码
@@ -79,21 +79,6 @@ uv pip install -e .
79
79
  python -c "from ErisPulse import sdk; sdk.init()"
80
80
  ```
81
81
 
82
- ### 5. 运行测试
83
-
84
- 我们提供了一个交互式测试脚本,可以帮助您快速验证SDK功能:
85
-
86
- ```bash
87
- uv run devs/test.py
88
- ```
89
-
90
- 测试功能包括:
91
- - 日志系统测试
92
- - 环境配置测试
93
- - 错误管理测试
94
- - 工具函数测试
95
- - 适配器功能测试
96
-
97
82
  ## 项目结构
98
83
 
99
84
  ```
@@ -124,7 +109,7 @@ ErisPulse/
124
109
  通过 [社区讨论](https://github.com/ErisPulse/ErisPulse/discussions) 提出新想法
125
110
 
126
111
  3. 代码贡献
127
- 提交 Pull Request 前请阅读我们的 [代码风格](docs/StyleGuide/DocstringSpec.md) 以及 [贡献指南](CONTRIBUTING.md)
112
+ 提交 Pull Request 前请阅读我们的 [代码风格](docs/styleguide/docstring_spec.md) 以及 [贡献指南](CONTRIBUTING.md)
128
113
 
129
114
  4. 文档改进
130
115
  帮助完善文档和示例代码
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ErisPulse"
7
- version = "2.3.3-dev.0"
7
+ version = "2.3.4-dev.2"
8
8
  description = "ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -29,6 +29,7 @@ classifiers = [
29
29
  ]
30
30
 
31
31
  dependencies = [
32
+ "pip", # 显式声明,防止部分情况下cli报错
32
33
  "rich",
33
34
  "colorama",
34
35
  "aiohttp",
@@ -51,6 +52,18 @@ epsdk-cli = "ErisPulse.__main__:main"
51
52
  [tool.hatch]
52
53
  project.root = "src"
53
54
 
55
+ [tool.hatch.build.targets.wheel]
56
+ packages = ["src/ErisPulse"]
57
+
58
+ [tool.hatch.build.targets.wheel.shared-data]
59
+ "stubs/ErisPulse" = "ErisPulse-stubs/ErisPulse"
60
+
61
+ [tool.hatch.build.targets.sdist]
62
+ include = [
63
+ "/src/ErisPulse",
64
+ "/stubs/ErisPulse",
65
+ ]
66
+
54
67
  [tool.ruff]
55
68
  target-version = "py310"
56
69
 
@@ -0,0 +1,11 @@
1
+ """
2
+ CLI 模块
3
+
4
+ ErisPulse 命令行接口
5
+ """
6
+
7
+ from .cli import CLI
8
+
9
+ __all__ = [
10
+ "CLI",
11
+ ]
@@ -0,0 +1,13 @@
1
+ # type: ignore
2
+ #
3
+ # Auto-generated type stub for __init__.py
4
+ # DO NOT EDIT MANUALLY - Generated by generate-type-stubs.py
5
+ #
6
+
7
+ """
8
+ CLI 模块
9
+
10
+ ErisPulse 命令行接口
11
+ """
12
+
13
+ from .cli import CLI
@@ -0,0 +1,52 @@
1
+ """
2
+ CLI 命令基类
3
+
4
+ 定义所有命令的统一接口
5
+ """
6
+
7
+ from abc import ABC, abstractmethod
8
+ from argparse import ArgumentParser
9
+
10
+
11
+ class Command(ABC):
12
+ """
13
+ 命令基类
14
+
15
+ 所有 CLI 命令都应继承此类并实现抽象方法
16
+
17
+ {!--< tips >!--}
18
+ 1. 每个命令类必须实现 add_arguments 和 execute 方法
19
+ 2. name 和 description 为类属性,必须在子类中定义
20
+ 3. execute 方法接收解析后的 args 对象
21
+ {!--< /tips >!--}
22
+ """
23
+
24
+ name: str = "" # 命令名称
25
+ description: str = "" # 命令描述
26
+
27
+ @abstractmethod
28
+ def add_arguments(self, parser: ArgumentParser):
29
+ """
30
+ 添加命令参数
31
+
32
+ :param parser: ArgumentParser 实例
33
+ """
34
+ pass
35
+
36
+ @abstractmethod
37
+ def execute(self, args):
38
+ """
39
+ 执行命令
40
+
41
+ :param args: 解析后的参数对象
42
+ """
43
+ pass
44
+
45
+ @property
46
+ def help(self) -> str:
47
+ """
48
+ 获取帮助信息
49
+
50
+ :return: 命令描述
51
+ """
52
+ return self.description
@@ -0,0 +1,50 @@
1
+ # type: ignore
2
+ #
3
+ # Auto-generated type stub for base.py
4
+ # DO NOT EDIT MANUALLY - Generated by generate-type-stubs.py
5
+ #
6
+
7
+ """
8
+ CLI 命令基类
9
+
10
+ 定义所有命令的统一接口
11
+ """
12
+
13
+ from abc import ABC, abstractmethod
14
+ from argparse import ArgumentParser
15
+
16
+ class Command(ABC):
17
+ """
18
+ 命令基类
19
+
20
+ 所有 CLI 命令都应继承此类并实现抽象方法
21
+
22
+ {!--< tips >!--}
23
+ 1. 每个命令类必须实现 add_arguments 和 execute 方法
24
+ 2. name 和 description 为类属性,必须在子类中定义
25
+ 3. execute 方法接收解析后的 args 对象
26
+ {!--< /tips >!--}
27
+ """
28
+ name: str
29
+ description: str
30
+ def add_arguments(self: object, parser: ArgumentParser) -> ...:
31
+ """
32
+ 添加命令参数
33
+
34
+ :param parser: ArgumentParser 实例
35
+ """
36
+ ...
37
+ def execute(self: object, args: ...) -> ...:
38
+ """
39
+ 执行命令
40
+
41
+ :param args: 解析后的参数对象
42
+ """
43
+ ...
44
+ def help(self: object) -> str:
45
+ """
46
+ 获取帮助信息
47
+
48
+ :return: 命令描述
49
+ """
50
+ ...
@@ -0,0 +1,224 @@
1
+ """
2
+ 主 CLI 类
3
+
4
+ ErisPulse 命令行接口主入口
5
+ """
6
+
7
+ import sys
8
+ import importlib
9
+ import importlib.metadata
10
+ import asyncio
11
+ import traceback
12
+ import pkgutil
13
+ from argparse import ArgumentParser, RawDescriptionHelpFormatter
14
+
15
+ from rich.panel import Panel
16
+
17
+ from .console import console
18
+ from .registry import CommandRegistry
19
+ from .base import Command
20
+
21
+
22
+ class CLI:
23
+ """
24
+ ErisPulse 命令行接口主类
25
+
26
+ 提供完整的命令行交互功能,支持动态加载第三方命令
27
+ """
28
+
29
+ def __init__(self):
30
+ """初始化 CLI"""
31
+ self.registry = CommandRegistry()
32
+ self.parser = self._create_parser()
33
+ self._register_builtin_commands()
34
+ self._load_external_commands()
35
+
36
+ def _create_parser(self) -> ArgumentParser:
37
+ """
38
+ 创建命令行参数解析器
39
+
40
+ :return: 配置好的 ArgumentParser 实例
41
+ """
42
+ parser = ArgumentParser(
43
+ prog="epsdk",
44
+ formatter_class=RawDescriptionHelpFormatter,
45
+ description="ErisPulse SDK 命令行工具",
46
+ )
47
+ parser._positionals.title = "命令"
48
+ parser._optionals.title = "选项"
49
+
50
+ # 全局选项
51
+ parser.add_argument(
52
+ "--version", "-V",
53
+ action="store_true",
54
+ help="显示版本信息"
55
+ )
56
+ parser.add_argument(
57
+ "--verbose", "-v",
58
+ action="count",
59
+ default=0,
60
+ help="增加输出详细程度 (-v, -vv, -vvv)"
61
+ )
62
+
63
+ # 子命令
64
+ subparsers = parser.add_subparsers(
65
+ dest='command',
66
+ metavar="<命令>",
67
+ help="要执行的操作"
68
+ )
69
+
70
+ self.subparsers = subparsers
71
+ return parser
72
+
73
+ def _auto_discover_commands(self):
74
+ """
75
+ 自动发现并注册 commands 目录中的所有命令
76
+
77
+ 动态扫描 commands 目录,查找所有继承自 Command 基类的命令类
78
+ 并自动注册到命令注册表中。
79
+ """
80
+ # 获取 commands 包的路径
81
+ commands_package = 'ErisPulse.CLI.commands'
82
+
83
+ try:
84
+ # 遍历 commands 包中的所有模块
85
+ for importer, module_name, ispkg in pkgutil.iter_modules(
86
+ importlib.import_module(commands_package).__path__,
87
+ prefix=f"{commands_package}."
88
+ ):
89
+ # 跳过 __init__ 和 __pycache__ 目录
90
+ if module_name.endswith('.__init__') or '__pycache__' in module_name:
91
+ continue
92
+
93
+ try:
94
+ # 动态导入模块
95
+ module = importlib.import_module(module_name)
96
+
97
+ # 查找模块中所有继承自 Command 的类
98
+ for attr_name in dir(module):
99
+ attr = getattr(module, attr_name)
100
+
101
+ # 检查是否是 Command 的子类(排除 Command 基类本身)
102
+ if (isinstance(attr, type) and
103
+ issubclass(attr, Command) and
104
+ attr is not Command):
105
+ try:
106
+ # 实例化并注册命令
107
+ command_instance = attr()
108
+ self.registry.register(command_instance)
109
+ except Exception as e:
110
+ console.print(f"[warning]实例化命令 {attr_name} 失败: {e}[/]")
111
+
112
+ except Exception as e:
113
+ console.print(f"[warning]加载命令模块 {module_name} 失败: {e}[/]")
114
+
115
+ except ImportError as e:
116
+ console.print(f"[warning]无法导入 commands 包: {e}[/]")
117
+
118
+ def _register_builtin_commands(self):
119
+ """注册所有内置命令(通过自动发现)"""
120
+ self._auto_discover_commands()
121
+
122
+ # 添加所有命令的参数
123
+ for command in self.registry.get_all():
124
+ parser = self.subparsers.add_parser(
125
+ command.name,
126
+ help=command.description
127
+ )
128
+ command.add_arguments(parser)
129
+
130
+ def _load_external_commands(self):
131
+ """
132
+ 加载第三方 CLI 命令
133
+ """
134
+ try:
135
+ entry_points = importlib.metadata.entry_points()
136
+ if hasattr(entry_points, 'select'):
137
+ cli_entries = entry_points.select(group='erispulse.cli')
138
+ else:
139
+ cli_entries = entry_points.get('erispulse.cli', [])
140
+
141
+ for entry in cli_entries:
142
+ try:
143
+ cli_func = entry.load()
144
+ if callable(cli_func):
145
+ # 传入 subparsers 和 console,保持兼容性
146
+ cli_func(self.subparsers, console)
147
+ else:
148
+ console.print(f"[warning]模块 {entry.name} 的入口点不是可调用对象[/]")
149
+ except Exception as e:
150
+ console.print(f"[error]加载第三方命令 {entry.name} 失败: {e}[/]")
151
+ except Exception as e:
152
+ console.print(f"[warning]加载第三方CLI命令失败: {e}[/]")
153
+
154
+ def _print_version(self):
155
+ """打印版本信息"""
156
+ from ErisPulse import __version__
157
+ console.print(Panel(
158
+ f"[title]ErisPulse SDK[/] 版本: [bold]{__version__}[/]",
159
+ subtitle=f"Python {sys.version.split()[0]}",
160
+ style="title"
161
+ ))
162
+
163
+ def run(self):
164
+ """
165
+ 运行 CLI
166
+
167
+ :raises KeyboardInterrupt: 用户中断时抛出
168
+ :raises Exception: 命令执行失败时抛出
169
+ """
170
+ args = self.parser.parse_args()
171
+
172
+ # 处理版本选项
173
+ if args.version:
174
+ self._print_version()
175
+ return
176
+
177
+ # 没有指定命令时显示帮助
178
+ if not args.command:
179
+ self.parser.print_help()
180
+ return
181
+
182
+ try:
183
+ # 执行命令
184
+ command = self.registry.get(args.command)
185
+ if command:
186
+ command.execute(args)
187
+ else:
188
+ # 第三方命令处理
189
+ self._execute_external_command(args)
190
+
191
+ except KeyboardInterrupt:
192
+ console.print("\n[warning]操作被用户中断[/]")
193
+ sys.exit(1)
194
+ except Exception as e:
195
+ console.print(f"[error]执行命令时出错: {e}[/]")
196
+ if args.verbose >= 1:
197
+ console.print(traceback.format_exc())
198
+ sys.exit(1)
199
+
200
+ def _execute_external_command(self, args):
201
+ """
202
+ 执行第三方命令
203
+
204
+ :param args: 解析后的参数
205
+ """
206
+ try:
207
+ # 第三方命令在注册时已经通过 set_defaults(func=handle_command) 设置了处理函数
208
+ # 所以 args.func 就是处理函数
209
+ if hasattr(args, 'func') and args.func:
210
+ handler_func = args.func
211
+ if asyncio.iscoroutinefunction(handler_func):
212
+ # 异步函数:使用 asyncio.run() 运行
213
+ asyncio.run(handler_func(args))
214
+ else:
215
+ # 同步函数:直接调用
216
+ handler_func(args)
217
+ else:
218
+ console.print(f"[error]命令 {args.command} 没有处理函数[/]")
219
+ sys.exit(1)
220
+ except Exception as e:
221
+ console.print(f"[error]执行第三方命令失败: {e}[/]")
222
+ if args.verbose >= 1:
223
+ console.print(traceback.format_exc())
224
+ sys.exit(1)
@@ -0,0 +1,80 @@
1
+ # type: ignore
2
+ #
3
+ # Auto-generated type stub for cli.py
4
+ # DO NOT EDIT MANUALLY - Generated by generate-type-stubs.py
5
+ #
6
+
7
+ """
8
+ 主 CLI 类
9
+
10
+ ErisPulse 命令行接口主入口
11
+ """
12
+
13
+ import sys
14
+ import importlib
15
+ import importlib.metadata
16
+ import asyncio
17
+ import traceback
18
+ import pkgutil
19
+ from argparse import ArgumentParser, RawDescriptionHelpFormatter
20
+ from rich.panel import Panel
21
+ from .console import console
22
+ from .registry import CommandRegistry
23
+ from .base import Command
24
+
25
+ class CLI:
26
+ """
27
+ ErisPulse 命令行接口主类
28
+
29
+ 提供完整的命令行交互功能,支持动态加载第三方命令
30
+ """
31
+ def __init__(self: None) -> ...:
32
+ """
33
+ 初始化 CLI
34
+ """
35
+ ...
36
+ def _create_parser(self: object) -> ArgumentParser:
37
+ """
38
+ 创建命令行参数解析器
39
+
40
+ :return: 配置好的 ArgumentParser 实例
41
+ """
42
+ ...
43
+ def _auto_discover_commands(self: object) -> ...:
44
+ """
45
+ 自动发现并注册 commands 目录中的所有命令
46
+
47
+ 动态扫描 commands 目录,查找所有继承自 Command 基类的命令类
48
+ 并自动注册到命令注册表中。
49
+ """
50
+ ...
51
+ def _register_builtin_commands(self: object) -> ...:
52
+ """
53
+ 注册所有内置命令(通过自动发现)
54
+ """
55
+ ...
56
+ def _load_external_commands(self: object) -> ...:
57
+ """
58
+ 加载第三方 CLI 命令
59
+ """
60
+ ...
61
+ def _print_version(self: object) -> ...:
62
+ """
63
+ 打印版本信息
64
+ """
65
+ ...
66
+ def run(self: object) -> ...:
67
+ """
68
+ 运行 CLI
69
+
70
+ :raises KeyboardInterrupt: 用户中断时抛出
71
+ :raises Exception: 命令执行失败时抛出
72
+ """
73
+ ...
74
+ def _execute_external_command(self: object, args: ...) -> ...:
75
+ """
76
+ 执行第三方命令
77
+
78
+ :param args: 解析后的参数
79
+ """
80
+ ...
@@ -0,0 +1,6 @@
1
+ """
2
+ 命令模块
3
+
4
+ 自动发现 commands 目录中的所有 CLI 命令。
5
+ 所有继承自 Command 基类的命令类都会被自动加载和注册。
6
+ """
@@ -0,0 +1,12 @@
1
+ # type: ignore
2
+ #
3
+ # Auto-generated type stub for __init__.py
4
+ # DO NOT EDIT MANUALLY - Generated by generate-type-stubs.py
5
+ #
6
+
7
+ """
8
+ 命令模块
9
+
10
+ 自动发现 commands 目录中的所有 CLI 命令。
11
+ 所有继承自 Command 基类的命令类都会被自动加载和注册。
12
+ """