ErisPulse 2.5.0.dev2__tar.gz → 2.5.2__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 (193) hide show
  1. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/.gitignore +5 -2
  2. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/PKG-INFO +267 -134
  3. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/README.md +259 -131
  4. erispulse-2.5.2/pyproject.toml +208 -0
  5. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/cli.py +58 -0
  6. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/cli.pyi +8 -0
  7. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/create.py +39 -27
  8. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/init.py +1 -1
  9. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/list.py +32 -0
  10. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/list.pyi +7 -0
  11. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/list_remote.py +1 -1
  12. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/run.py +27 -3
  13. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/run.pyi +8 -2
  14. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/console.py +1 -0
  15. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/en.py +13 -10
  16. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/ja.py +13 -10
  17. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/ru.py +13 -10
  18. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/zh_cn.py +13 -10
  19. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/zh_tw.py +13 -10
  20. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/utils/package_manager.py +4 -2
  21. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/__init__.py +2 -0
  22. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/__init__.pyi +1 -0
  23. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/adapter.py +119 -58
  24. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/adapter.pyi +33 -31
  25. erispulse-2.5.2/src/ErisPulse/Core/Bases/kv_builder.py +378 -0
  26. erispulse-2.5.2/src/ErisPulse/Core/Bases/kv_builder.pyi +126 -0
  27. erispulse-2.5.2/src/ErisPulse/Core/Bases/module.py +216 -0
  28. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/module.pyi +57 -4
  29. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/storage.py +99 -0
  30. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/storage.pyi +68 -0
  31. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/__init__.py +33 -31
  32. erispulse-2.5.2/src/ErisPulse/Core/Event/__init__.pyi +26 -0
  33. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/base.py +108 -29
  34. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/base.pyi +8 -7
  35. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/command.py +134 -14
  36. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/command.pyi +2 -1
  37. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/session_type.py +2 -2
  38. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/wrapper.py +268 -67
  39. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/wrapper.pyi +142 -30
  40. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/__init__.py +2 -0
  41. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/__init__.pyi +1 -1
  42. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/adapter.py +69 -27
  43. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/adapter.pyi +13 -5
  44. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/client.py +19 -9
  45. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/client.pyi +7 -1
  46. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/config.py +82 -15
  47. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/config.pyi +30 -0
  48. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/constants.py +119 -90
  49. erispulse-2.5.2/src/ErisPulse/Core/constants.pyi +206 -0
  50. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/__init__.py +83 -7
  51. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/__init__.pyi +11 -5
  52. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/en.py +65 -0
  53. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/ja.py +65 -0
  54. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/ru.py +65 -0
  55. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/zh_cn.py +65 -0
  56. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/zh_tw.py +65 -0
  57. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/lifecycle.py +19 -1
  58. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/lifecycle.pyi +2 -0
  59. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/logger.py +189 -44
  60. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/logger.pyi +44 -10
  61. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/module.py +39 -7
  62. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/module.pyi +10 -2
  63. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/router.py +67 -22
  64. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/storage.py +368 -20
  65. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/storage.pyi +40 -3
  66. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/bases/finder.py +5 -4
  67. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/__init__.py +4 -0
  68. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/__init__.pyi +1 -0
  69. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/adapter.py +28 -0
  70. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/adapter.pyi +1 -0
  71. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/bases/loader.py +35 -2
  72. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/module.py +33 -10
  73. erispulse-2.5.2/src/ErisPulse/loaders/strict.py +297 -0
  74. erispulse-2.5.2/src/ErisPulse/loaders/strict.pyi +119 -0
  75. erispulse-2.5.2/src/ErisPulse/py.typed +4 -0
  76. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/runtime/__init__.py +19 -2
  77. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/runtime/__init__.pyi +2 -1
  78. erispulse-2.5.2/src/ErisPulse/runtime/config_schema.py +572 -0
  79. erispulse-2.5.2/src/ErisPulse/runtime/config_schema.pyi +268 -0
  80. erispulse-2.5.2/src/ErisPulse/runtime/exceptions.py +247 -0
  81. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/runtime/exceptions.pyi +26 -1
  82. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/runtime/frame_config.py +6 -0
  83. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/runtime/frame_config.pyi +1 -1
  84. erispulse-2.5.2/src/ErisPulse/runtime/hints.py +376 -0
  85. erispulse-2.5.2/src/ErisPulse/runtime/hints.pyi +153 -0
  86. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/sdk.py +160 -2
  87. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/sdk.pyi +15 -0
  88. erispulse-2.5.2/src/ErisPulse/web_status/4xx.png +0 -0
  89. erispulse-2.5.2/src/ErisPulse/web_status/5xx.png +0 -0
  90. erispulse-2.5.2/src/ErisPulse/web_status/unknow.png +0 -0
  91. erispulse-2.5.0.dev2/pyproject.toml +0 -117
  92. erispulse-2.5.0.dev2/src/ErisPulse/Core/Bases/module.py +0 -109
  93. erispulse-2.5.0.dev2/src/ErisPulse/Core/Event/__init__.pyi +0 -26
  94. erispulse-2.5.0.dev2/src/ErisPulse/Core/constants.pyi +0 -18
  95. erispulse-2.5.0.dev2/src/ErisPulse/runtime/config_schema.py +0 -344
  96. erispulse-2.5.0.dev2/src/ErisPulse/runtime/config_schema.pyi +0 -136
  97. erispulse-2.5.0.dev2/src/ErisPulse/runtime/exceptions.py +0 -132
  98. erispulse-2.5.0.dev2/src/ErisPulse/web_status/4xx.png +0 -0
  99. erispulse-2.5.0.dev2/src/ErisPulse/web_status/5xx.png +0 -0
  100. erispulse-2.5.0.dev2/src/ErisPulse/web_status/unknow.png +0 -0
  101. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/LICENSE +0 -0
  102. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/__init__.py +0 -0
  103. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/__init__.pyi +0 -0
  104. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/base.py +0 -0
  105. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/base.pyi +0 -0
  106. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/__init__.py +0 -0
  107. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/__init__.pyi +0 -0
  108. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/create.pyi +0 -0
  109. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/init.pyi +0 -0
  110. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/install.py +0 -0
  111. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/install.pyi +0 -0
  112. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/language.py +0 -0
  113. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/language.pyi +0 -0
  114. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/list_remote.pyi +0 -0
  115. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/self_update.py +0 -0
  116. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/self_update.pyi +0 -0
  117. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/uninstall.py +0 -0
  118. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/uninstall.pyi +0 -0
  119. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/upgrade.py +0 -0
  120. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/commands/upgrade.pyi +0 -0
  121. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/console.pyi +0 -0
  122. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/__init__.py +0 -0
  123. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/__init__.pyi +0 -0
  124. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/__init__.py +0 -0
  125. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/__init__.pyi +0 -0
  126. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/en.pyi +0 -0
  127. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/ja.pyi +0 -0
  128. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/ru.pyi +0 -0
  129. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/zh_cn.pyi +0 -0
  130. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/i18n/locales/zh_tw.pyi +0 -0
  131. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/registry.py +0 -0
  132. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/registry.pyi +0 -0
  133. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/utils/__init__.py +0 -0
  134. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/utils/__init__.pyi +0 -0
  135. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/utils/display.py +0 -0
  136. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/utils/display.pyi +0 -0
  137. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/utils/file_watcher.py +0 -0
  138. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/utils/file_watcher.pyi +0 -0
  139. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/CLI/utils/package_manager.pyi +0 -0
  140. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/client.py +0 -0
  141. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/client.pyi +0 -0
  142. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/errors.py +0 -0
  143. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/errors.pyi +0 -0
  144. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/manager.py +0 -0
  145. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/manager.pyi +0 -0
  146. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/router.py +0 -0
  147. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/router.pyi +0 -0
  148. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/websocket.py +0 -0
  149. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Bases/websocket.pyi +0 -0
  150. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/message.py +0 -0
  151. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/message.pyi +0 -0
  152. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/message_builder.py +0 -0
  153. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/message_builder.pyi +0 -0
  154. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/meta.py +0 -0
  155. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/meta.pyi +0 -0
  156. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/notice.py +0 -0
  157. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/notice.pyi +0 -0
  158. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/request.py +0 -0
  159. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/request.pyi +0 -0
  160. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/Event/session_type.pyi +0 -0
  161. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/constants.py +0 -0
  162. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/constants.pyi +0 -0
  163. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/__init__.py +0 -0
  164. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/__init__.pyi +0 -0
  165. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/en.pyi +0 -0
  166. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/ja.pyi +0 -0
  167. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/ru.pyi +0 -0
  168. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/zh_cn.pyi +0 -0
  169. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/i18n/locales/zh_tw.pyi +0 -0
  170. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/Core/router.pyi +0 -0
  171. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/__init__.py +0 -0
  172. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/__init__.pyi +0 -0
  173. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/__main__.py +0 -0
  174. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/__main__.pyi +0 -0
  175. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/__init__.py +0 -0
  176. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/__init__.pyi +0 -0
  177. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/adapter.py +0 -0
  178. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/adapter.pyi +0 -0
  179. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/bases/__init__.py +0 -0
  180. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/bases/__init__.pyi +0 -0
  181. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/bases/finder.pyi +0 -0
  182. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/module.py +0 -0
  183. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/finders/module.pyi +0 -0
  184. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/bases/__init__.py +0 -0
  185. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/bases/__init__.pyi +0 -0
  186. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/bases/loader.pyi +1 -1
  187. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/module.pyi +0 -0
  188. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/strategy.py +0 -0
  189. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/loaders/strategy.pyi +0 -0
  190. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/runtime/context.py +0 -0
  191. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/runtime/context.pyi +0 -0
  192. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/web_status/__init__.py +0 -0
  193. {erispulse-2.5.0.dev2 → erispulse-2.5.2}/src/ErisPulse/web_status/__init__.pyi +0 -0
@@ -16,6 +16,9 @@ config/config.db-journal
16
16
  config/config.db-wal
17
17
  config/config.db-shm
18
18
 
19
+ # site-packages
20
+ config/.packages
21
+
19
22
  # Byte-compiled / optimized / DLL files
20
23
  __pycache__/
21
24
  *.py[cod]
@@ -187,9 +190,9 @@ cython_debug/
187
190
  #.idea/
188
191
 
189
192
  # Visual Studio Code
190
- # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
193
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
191
194
  # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
192
- # and can be added to the global gitignore or merged into this file. However, if you prefer,
195
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
193
196
  # you could uncomment the following to ignore the enitre vscode folder
194
197
  # .vscode/
195
198
 
@@ -1,8 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse
3
- Version: 2.5.0.dev2
3
+ Version: 2.5.2
4
4
  Summary: ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。
5
- Author-email: ErisDev <erisdev@88.com>
5
+ Project-URL: Homepage, https://github.com/ErisPulse/ErisPulse
6
+ Project-URL: Documentation, https://www.erisdev.com#docs
7
+ Project-URL: Repository, https://github.com/ErisPulse/ErisPulse
8
+ Project-URL: Issues, https://github.com/ErisPulse/ErisPulse/issues
9
+ Project-URL: Bug Tracker, https://github.com/ErisPulse/ErisPulse/blob/main/docs/en/bug-tracker.md
10
+ Project-URL: Changelog, https://github.com/ErisPulse/ErisPulse/blob/main/CHANGELOG.md
11
+ Author: ErisDev
6
12
  Maintainer-email: "艾莉丝·格雷拉特(WSu2059)" <wsu2059@qq.com>
7
13
  License: MIT License
8
14
 
@@ -44,7 +50,6 @@ Classifier: Typing :: Typed
44
50
  Requires-Python: >=3.10
45
51
  Requires-Dist: aiohttp>=3.9.0
46
52
  Requires-Dist: fastapi>=0.116.1
47
- Requires-Dist: pip>=23.0
48
53
  Requires-Dist: rich>=13.0.0
49
54
  Requires-Dist: toml>=0.10.2
50
55
  Requires-Dist: uvicorn>=0.30.0
@@ -62,39 +67,105 @@ Requires-Dist: pytest-xdist>=3.0.0; extra == 'test'
62
67
  Requires-Dist: pytest>=7.0.0; extra == 'test'
63
68
  Description-Content-Type: text/markdown
64
69
 
70
+ <img src=".github/assets/mascot-hero.png" align="right" width="300" alt="ErisPulse" style="margin-left: 24px; margin-bottom: 16px; border-radius: 12px;" />
71
+
72
+ **English** | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [日本語](README.ja.md) | [Русский](README.ru.md)
73
+
74
+ # ErisPulse
75
+
76
+ **Write once, deploy on multiple platforms.**
77
+
78
+ Event-driven multi-platform chatbot development framework.
79
+
80
+ Based on the OneBot12 standard interface, write once and deploy on multiple platforms. Flexible plugin system, hot reload support, and a complete developer toolchain, suitable for various scenarios from simple chatbots to complex automation systems.
81
+
82
+ <p>
83
+ <a href="https://pypi.org/project/ErisPulse/"><img src="https://img.shields.io/pypi/v/ErisPulse?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI"></a>
84
+ <a href="https://pypi.org/project/ErisPulse/"><img src="https://img.shields.io/badge/Python-3.10+-FFD43B?style=for-the-badge&logo=python&logoColor=blue" alt="Python"></a>
85
+ <a href="https://hub.docker.com/r/erispulse/erispulse"><img src="https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white" alt="Docker"></a>
86
+ <a href="https://github.com/ErisPulse/ErisPulse/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue?style=for-the-badge" alt="License"></a>
87
+ <a href="https://github.com/ErisPulse/ErisPulse"><img src="https://img.shields.io/github/stars/ErisPulse/ErisPulse?style=for-the-badge&logo=github&color=brightgreen" alt="Stars"></a>
88
+ <a href="https://pepy.tech/project/ErisPulse"><img src="https://img.shields.io/pepy/dt/ErisPulse?style=for-the-badge&color=blue" alt="Downloads"></a>
89
+ <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=for-the-badge" alt="Ruff"></a>
90
+ <a href="https://socket.dev/pypi/package/erispulse"><img src="https://img.shields.io/badge/Socket-Secure-2ea043?style=for-the-badge&logo=socket&logoColor=white" alt="Socket"></a>
91
+ <a href="https://www.erisdev.com"><img src="https://img.shields.io/badge/文档-erisdev.com-FF6B9D?style=for-the-badge&logo=bookstack&logoColor=white" alt="文档"></a>
92
+ <a href="https://deepwiki.com/ErisPulse/ErisPulse"><img src="https://img.shields.io/badge/DeepWiki-ErisPulse-8A2BE2?style=for-the-badge&logo=readthedocs&logoColor=white" alt="DeepWiki"></a>
93
+ <a href="https://www.erisdev.com/#market"><img src="https://img.shields.io/badge/模块市场-erisdev.com-C724B1?style=for-the-badge&logo=webpack&logoColor=white" alt="模块市场"></a>
94
+ <a href="https://github.com/ErisPulse/ErisPulse/discussions"><img src="https://img.shields.io/badge/GitHub-Discussions-181717?style=for-the-badge&logo=github" alt="讨论"></a>
95
+ </p>
96
+
97
+ <br clear="both">
98
+
99
+ ---
100
+
101
+ <div align="center">
102
+
103
+ ### Core Features
104
+
105
+ </div>
106
+
65
107
  <table>
66
108
  <tr>
67
- <td width="35%" valign="middle" align="center">
109
+ <td width="33%" align="center" valign="top">
110
+ <br/>
111
+
112
+ <img src=".github/assets/icon/icon_event_driven.png.png" width="50" alt="Event-driven Architecture" />
113
+
114
+ ### Event-driven Architecture
115
+
116
+ A clear event model based on the OneBot12 standard, making message handling logic more intuitive and efficient
68
117
 
69
- <img src=".github/assets/mascot-hero.png" width="320" alt="ErisPulse" />
118
+ </td>
119
+ <td width="33%" align="center" valign="top">
120
+ <br/>
121
+
122
+ <img src=".github/assets/icon/icon_cross_platform.png.png" width="50" alt="Cross-platform Compatibility" />
123
+
124
+ ### Cross-platform Compatibility
125
+
126
+ Write plugin modules once and use them on all platforms, no need to repeat development for different platforms
70
127
 
71
128
  </td>
72
- <td valign="middle">
129
+ <td width="33%" align="center" valign="top">
130
+ <br/>
73
131
 
74
- > **English** | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [日本語](README.ja.md) | [Русский](README.ru.md)
132
+ <img src=".github/assets/icon/icon_modular.png" width="50" alt="Modular Design" />
75
133
 
76
- > 🎉 **v2.5.0-dev.1 now supports multiple languages!** The framework core and CLI interface now have built-in support for Chinese (Simplified/Traditional), English, Japanese, and Russian, automatically switching based on your system language!
134
+ ### Modular Design
77
135
 
78
- # ErisPulse
136
+ A flexible plugin system, easy to extend and integrate, supports hot-plug module management
137
+
138
+ </td>
139
+ </tr>
140
+ <tr>
141
+ <td width="33%" align="center" valign="top">
142
+ <br/>
143
+
144
+ <img src=".github/assets/icon/icon_hot_reload.png" width="50" alt="Hot Reload" />
145
+
146
+ ### Hot Reload
79
147
 
80
- **Event-driven multi-platform robot development framework**
148
+ Reload code without restarting during development
149
+
150
+ </td>
151
+ <td width="33%" align="center" valign="top">
152
+ <br/>
81
153
 
82
- Based on the OneBot12 standard interface, write once, deploy across multiple platforms. A flexible plugin system, hot-reload support, and a complete developer toolchain, suitable for various scenarios from simple chatbots to complex automation systems.
154
+ <img src=".github/assets/icon/icon_ai_assist.png" width="50" alt="AI Assistance" />
155
+
156
+ ### AI Assistance
157
+
158
+ AI-assisted development brings requirements directly to usable modules
159
+
160
+ </td>
161
+ <td width="33%" align="center" valign="top">
162
+ <br/>
83
163
 
84
- > Supports Vibe Coding workflow, letting AI directly generate usable modules — [View](docs/en/quick-start.md)
164
+ <img src=".github/assets/icon/icon_lightweight.png" width="50" alt="Lightweight and Elegant" />
85
165
 
86
- [![PyPI](https://img.shields.io/pypi/v/ErisPulse?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/ErisPulse/)
87
- [![Python](https://img.shields.io/badge/Python-3.10+-FFD43B?style=for-the-badge&logo=python&logoColor=blue)](https://pypi.org/project/ErisPulse/)
88
- [![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)](https://hub.docker.com/r/erispulse/erispulse)
89
- [![License](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)](https://github.com/ErisPulse/ErisPulse/blob/main/LICENSE)
90
- [![Stars](https://img.shields.io/github/stars/ErisPulse/ErisPulse?style=for-the-badge&logo=github&color=brightgreen)](https://github.com/ErisPulse/ErisPulse)
91
- [![Downloads](https://img.shields.io/pepy/dt/ErisPulse?style=for-the-badge&color=blue)](https://pypi.org/project/ErisPulse/)
92
- [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=for-the-badge)](https://github.com/astral-sh/ruff)
93
- [![Socket](https://img.shields.io/badge/Socket-Secure-2ea043?style=for-the-badge&logo=socket&logoColor=white)](https://socket.dev/pypi/package/erispulse)
166
+ ### Lightweight and Elegant
94
167
 
95
- [![Documentation](https://img.shields.io/badge/Documentation-erisdev.com-FF6B9D?style=for-the-badge&logo=bookstack&logoColor=white)](https://www.erisdev.com)
96
- [![Module Market](https://img.shields.io/badge/Module%20Market-erisdev.com-C724B1?style=for-the-badge&logo=webpack&logoColor=white)](https://www.erisdev.com/#market)
97
- [![Discussion](https://img.shields.io/badge/GitHub-Discussions-181717?style=for-the-badge&logo=github)](https://github.com/ErisPulse/ErisPulse/discussions)
168
+ Intuitive API design, making code as light and readable as feathers
98
169
 
99
170
  </td>
100
171
  </tr>
@@ -102,46 +173,112 @@ Based on the OneBot12 standard interface, write once, deploy across multiple pla
102
173
 
103
174
  ---
104
175
 
105
- <div align="center">
176
+ ## The Same Code. Multiple Platforms.
106
177
 
107
- ### Core Features
178
+ *Identical command handlers. Different platforms. No need to modify any business logic.*
108
179
 
109
- </div>
180
+ <table>
181
+ <tr>
182
+ <td align="center" width="33%">
183
+
184
+ **Kook**
185
+
186
+ <img src=".github/assets/demo-kook.png" alt="Kook Demo" />
187
+
188
+ </td>
189
+ <td align="center" width="33%">
190
+
191
+ **QQ**
192
+
193
+ <img src=".github/assets/demo-qq.png" alt="QQ Demo" />
194
+
195
+ </td>
196
+ <td align="center" width="33%">
197
+
198
+ **Yunhu**
199
+
200
+ <img src=".github/assets/demo-yunhu.png" alt="Yunhu Demo" />
201
+
202
+ </td>
203
+ </tr>
204
+ </table>
205
+
206
+ ---
207
+
208
+ ## Ecosystem
209
+
210
+ ErisPulse is not just a framework. Install and start, no need to build wheels from scratch.
110
211
 
111
212
  <table>
112
213
  <tr>
113
- <td width="50%" align="center" valign="top">
114
- <br/>
214
+ <td align="center" width="25%">
115
215
 
116
- ### ⚡ Event-driven Architecture
216
+ **Framework**
117
217
 
118
- A clear event model based on the OneBot12 standard, making message handling logic more intuitive and efficient
218
+ Core runtime
219
+
220
+ Unified event & message model
119
221
 
120
222
  </td>
121
- <td width="50%" align="center" valign="top">
122
- <br/>
223
+ <td align="center" width="25%">
224
+
225
+ **Dashboard**
226
+
227
+ Visual management
228
+
229
+ Plugins · Logs · Configuration
230
+
231
+ [Online Demo →](https://dashdemo.erisdev.com/)
232
+
233
+ </td>
234
+ <td align="center" width="25%">
235
+
236
+ **AI Builder**
123
237
 
124
- ### 🌐 Cross-platform Compatibility
238
+ Natural language Usable modules
125
239
 
126
- Write plugin modules once and use them across all platforms, without repetitive development for different platforms
240
+ [Experience Now →](https://www.erisdev.com/#builder)
241
+
242
+ </td>
243
+ <td align="center" width="25%">
244
+
245
+ **Module Market**
246
+
247
+ Ready-to-use plugins
248
+
249
+ [Browse Modules →](https://www.erisdev.com/#market)
127
250
 
128
251
  </td>
129
252
  </tr>
130
253
  <tr>
131
- <td width="50%" align="center" valign="top">
132
- <br/>
254
+ <td align="center" width="25%">
133
255
 
134
- ### 🧩 Modular Design
256
+ **Adapters**
135
257
 
136
- A flexible plugin system, easy to extend and integrate, supporting hot-swappable module management
258
+ Support for 15+ platforms
137
259
 
138
260
  </td>
139
- <td width="50%" align="center" valign="top">
140
- <br/>
261
+ <td align="center" width="25%">
262
+
263
+ **Documentation**
264
+
265
+ [erisdev.com](https://www.erisdev.com)
266
+
267
+ </td>
268
+ <td align="center" width="25%">
141
269
 
142
- ### 🔄 Hot-reload Support
270
+ **Docker**
143
271
 
144
- Reload code without restarting during development, greatly improving development iteration efficiency
272
+ Multi-architecture support
273
+
274
+ `erispulse/erispulse`
275
+
276
+ </td>
277
+ <td align="center" width="25%">
278
+
279
+ **CLI**
280
+
281
+ `epsdk` scaffolding tool
145
282
 
146
283
  </td>
147
284
  </tr>
@@ -149,11 +286,27 @@ Reload code without restarting during development, greatly improving development
149
286
 
150
287
  ---
151
288
 
289
+ ## Project Origin
290
+
291
+ ErisPulse was not born to become a framework.
292
+
293
+ It originated from **Amer** — a project for message interconnection and synchronization between different platforms.
294
+
295
+ As more platforms were integrated, we began maintaining the asynchronous version of **ryunhusdk2**, and gradually abstracted a unified event model and adapter system.
296
+
297
+ These practices eventually evolved into today's ErisPulse.
298
+
299
+ Its goal has never changed:
300
+
301
+ **Let developers focus on business, not platform differences.**
302
+
303
+ ---
304
+
152
305
  ### Quick Start
153
306
 
154
307
  #### One-click Installation Script (Recommended)
155
308
 
156
- The installation script automatically detects your environment (Docker, Python, uv), guides you to choose the most suitable installation method, and supports multiple languages (Chinese/English/Japanese/Russian/Traditional Chinese).
309
+ The installation script will automatically detect your environment (Docker, Python, uv), guide you to choose the most suitable installation method, and support multiple languages (Chinese/English/日本語/Русский/繁體中文).
157
310
 
158
311
  Windows (PowerShell):
159
312
  ```powershell
@@ -191,7 +344,7 @@ docker pull erispulse/erispulse:latest
191
344
  ```
192
345
 
193
346
  <details>
194
- <summary>Unable to access Docker Hub?</summary>
347
+ <summary>Docker Hub unavailable?</summary>
195
348
 
196
349
  If Docker Hub is inaccessible, you can use GitHub Container Registry:
197
350
 
@@ -199,7 +352,7 @@ If Docker Hub is inaccessible, you can use GitHub Container Registry:
199
352
  docker pull ghcr.io/erispulse/erispulse:latest
200
353
  ```
201
354
 
202
- When using the ghcr.io image, modify the `docker-compose.yml` file's image:
355
+ When using the ghcr.io image, you need to modify the `docker-compose.yml` image:
203
356
  ```yaml
204
357
  image: ghcr.io/erispulse/erispulse:latest
205
358
  ```
@@ -219,7 +372,7 @@ ERISPULSE_DASHBOARD_TOKEN=your-token docker compose up -d
219
372
 
220
373
  > The image includes the ErisPulse framework and Dashboard management panel, supporting `linux/amd64` and `linux/arm64` architectures.
221
374
 
222
- After startup, visit `http://<host>:<port>/Dashboard`, and use the set token as the password to log in to the Dashboard management panel.
375
+ After startup, access `http://<host>:<port>/Dashboard` and use the set token as the password to log in to the Dashboard management panel.
223
376
 
224
377
  </details>
225
378
 
@@ -229,7 +382,7 @@ After startup, visit `http://<host>:<port>/Dashboard`, and use the set token as
229
382
  Set `ERISPULSE_CHANNEL=dev` to use the pre-release version:
230
383
 
231
384
  ```bash
232
- # Method 1: Use environment variable (Recommended)
385
+ # Method 1: Use environment variables (recommended)
233
386
  ERISPULSE_CHANNEL=dev ERISPULSE_DASHBOARD_TOKEN=your-token docker compose up -d
234
387
 
235
388
  # Method 2: Build dev image
@@ -254,25 +407,27 @@ docker pull erispulse/erispulse:dev
254
407
  <summary>Docker Environment Variables</summary>
255
408
 
256
409
  | Variable | Default Value | Description |
257
- |------|--------|------|
258
- | `ERISPULSE_CHANNEL` | `stable` | Version channel: `stable` (stable version) or `dev` (pre-release version) |
410
+ |----------|---------------|-------------|
411
+ | `ERISPULSE_CHANNEL` | `stable` | Version channel: `stable` (stable) or `dev` (pre-release) |
259
412
  | `ERISPULSE_UPDATE_ON_START` | `false` | Whether to automatically update to the latest version when the container starts (must be explicitly enabled) |
260
413
  | `ERISPULSE_DASHBOARD_TOKEN` | empty | Dashboard login token |
261
414
  | `ERISPULSE_PORT` | `8000` | Dashboard port mapping |
262
415
  | `TZ` | `Asia/Shanghai` | Container timezone |
263
416
 
264
- > Setting `ERISPULSE_UPDATE_ON_START=true` ensures that even if the image is outdated, the container will automatically fetch the latest version at startup.
417
+ > Enabling `ERISPULSE_UPDATE_ON_START=true` ensures that even if the image is old, the container will automatically fetch the latest version at startup.
265
418
 
266
419
  </details>
267
420
 
268
421
  #### 1Panel App Store
269
422
 
270
- Install ErisPulse one-click via the [1Panel](https://1panel.cn) app store, see [ErisPulse-1Panel](https://github.com/ErisPulse/ErisPulse-1Panel).
423
+ Install ErisPulse with one click through the [1Panel](https://1panel.cn) app store, see [ErisPulse-1Panel](https://github.com/ErisPulse/ErisPulse-1Panel).
271
424
 
272
425
  ```bash
273
426
  bash <(curl -sL https://get-1panel.erisdev.com/install.sh)
274
427
  ```
275
428
 
429
+ ErisPulse is listed in the 1Panel third-party app store and can be installed using the third-party repository [okxlin/appstore](https://github.com/okxlin/appstore).
430
+
276
431
  #### Using pip Installation
277
432
 
278
433
  ```bash
@@ -281,58 +436,6 @@ pip install ErisPulse
281
436
 
282
437
  > You can also use the one-click installation script above, which automatically detects the environment and guides configuration.
283
438
 
284
- #### Running Effect
285
-
286
- ##### Dashboard:
287
-
288
- [![Live Demo](https://img.shields.io/badge/Live%20Demo-Dashboard-FF6B9D?style=for-the-badge&logo=github&logoColor=white)](https://dashdemo.erisdev.com/)
289
-
290
- > 💡 Experience the live demo dashboard online: [DashDemo](https://dashdemo.erisdev.com/)
291
-
292
- <table>
293
- <tr>
294
- <td width="50%">
295
-
296
- <img src=".github/assets/docs/dashboard.png" alt="Dashboard Demo" />
297
-
298
- </td>
299
- <td width="50%">
300
-
301
- <video src="https://github.com/user-attachments/assets/157191c4-9a84-433c-b311-0c57e3a21151" controls width="100%"></video>
302
-
303
- </td>
304
- </tr>
305
- </table>
306
-
307
-
308
- ##### Same code, multiple platform responses:
309
-
310
- <table>
311
- <tr>
312
- <td align="center" width="33%">
313
-
314
- **Kook**
315
-
316
- <img src=".github/assets/demo-kook.png" alt="Kook Demo" />
317
-
318
- </td>
319
- <td align="center" width="33%">
320
-
321
- **QQ**
322
-
323
- <img src=".github/assets/demo-qq.png" alt="QQ Demo" />
324
-
325
- </td>
326
- <td align="center" width="33%">
327
-
328
- **Yunhu**
329
-
330
- <img src=".github/assets/demo-yunhu.png" alt="Yunhu Demo" />
331
-
332
- </td>
333
- </tr>
334
- </table>
335
-
336
439
  #### Initialize Project
337
440
 
338
441
  ```bash
@@ -343,28 +446,28 @@ epsdk init
343
446
  epsdk init -q -n my_bot
344
447
  ```
345
448
 
346
- #### Create First Robot
449
+ #### Create Your First Bot
347
450
 
348
- Create `main.py` file:
451
+ Create a `main.py` file:
349
452
 
350
453
  <table>
351
454
  <tr>
352
455
  <td width="50%" valign="top">
353
456
 
354
- **Command Handler**
457
+ **Command Handlers**
355
458
 
356
459
  ```python
357
460
  from ErisPulse import sdk
358
461
  from ErisPulse.Core.Event import command
359
462
 
360
- @command("hello", help="Send greeting message")
463
+ @command("hello", help="Send a greeting message")
361
464
  async def hello_handler(event):
362
465
  user_name = event.get_user_nickname() or "friend"
363
466
  await event.reply(f"Hello, {user_name}!")
364
467
 
365
- @command("ping", help="Test if the robot is online")
468
+ @command("ping", help="Test if the bot is online")
366
469
  async def ping_handler(event):
367
- await event.reply("Pong! The robot is running normally.")
470
+ await event.reply("Pong! The bot is running normally.")
368
471
 
369
472
  if __name__ == "__main__":
370
473
  import asyncio
@@ -378,13 +481,13 @@ if __name__ == "__main__":
378
481
 
379
482
  Send `/hello`
380
483
 
381
- Robot replies: `Hello, {username}!`
484
+ Bot replies: `Hello, {username}!`
382
485
 
383
486
  ---
384
487
 
385
488
  Send `/ping`
386
489
 
387
- Robot replies: `Pong! The robot is running normally.`
490
+ Bot replies: `Pong! The bot is running normally.`
388
491
 
389
492
  ---
390
493
 
@@ -392,7 +495,7 @@ Robot replies: `Pong! The robot is running normally.`
392
495
 
393
496
  ```bash
394
497
  epsdk run main.py
395
- # Or development mode
498
+ # Or in development mode
396
499
  epsdk run main.py --reload
397
500
  ```
398
501
 
@@ -400,13 +503,13 @@ epsdk run main.py --reload
400
503
  </tr>
401
504
  </table>
402
505
 
403
- For more detailed instructions, please refer to:
506
+ For more detailed instructions, see:
404
507
  - [Quick Start Guide](docs/en/quick-start.md)
405
- - [Getting Started Guide](docs/en/getting-started.md)
508
+ - [Getting Started Guide](docs/en/getting-started/)
406
509
 
407
510
  #### Multi-turn Conversation Example
408
511
 
409
- ErisPulse includes a powerful multi-turn conversation engine, making it easy to implement guided operations, information collection, and other interactive scenarios:
512
+ ErisPulse has a powerful built-in multi-turn conversation engine, making it easy to implement guided operations, information collection, and other interactive scenarios:
410
513
 
411
514
  ```python
412
515
  from ErisPulse.Core.Event import command, request
@@ -426,7 +529,7 @@ async def register_handler(event):
426
529
  ])
427
530
 
428
531
  if data and await conv.confirm(f"Confirm registration? Name: {data['name']}, Age: {data['age']}"):
429
- # Use SendDSL to actively push notifications
532
+ # Push notifications using SendDSL
430
533
  await sdk.adapter.get(event.get_platform()).Send.To(
431
534
  "user", event.get_user_id()
432
535
  ).Text(f"Registration successful! Welcome {data['name']}")
@@ -444,7 +547,7 @@ async def handle_friend_request(event):
444
547
  ```
445
548
 
446
549
  <details>
447
- <summary>See more Conversation API (branching/joining/selection/persistence)</summary>
550
+ <summary>See More Conversation API (Branching / Selection / Persistence)</summary>
448
551
 
449
552
  ```python
450
553
  @command("quiz")
@@ -469,10 +572,10 @@ async def quiz_handler(event):
469
572
  async def menu_handler(event):
470
573
  conv = event.conversation(timeout=60)
471
574
 
472
- # Branching, build complex interaction flow
575
+ # Branching, building complex interaction flow
473
576
  @conv.branch("main")
474
577
  async def main_menu():
475
- await conv.say("=== Main Menu ===\n1. Personal Information\n2. Settings\n3. Exit")
578
+ await conv.say("=== Main Menu ===\n1. Personal Info\n2. Settings\n3. Exit")
476
579
  resp = await conv.wait()
477
580
  if resp and resp.get_text().strip() == "1":
478
581
  await conv.goto("profile")
@@ -493,13 +596,13 @@ See [Conversation Multi-turn Dialogue](docs/en/advanced/conversation.md)
493
596
 
494
597
  ---
495
598
 
496
- ### Supported Adapters
599
+ ## Supported Platforms
497
600
 
498
- We welcome your contributions to adapters!
601
+ We welcome contributions to adapters!
499
602
 
500
603
  | Adapter | Description |
501
- |--------|------|
502
- | <img src=".github/assets/adapter_logo/kook.svg" height="20" alt="Kook" /> [Kook](https://github.com/shanfishapp/ErisPulse-KookAdapter) | Kook (Kahei La) instant messaging platform |
604
+ |---------|-------------|
605
+ | <img src=".github/assets/adapter_logo/kook.svg" height="20" alt="Kook" /> [Kook](https://github.com/shanfishapp/ErisPulse-KookAdapter) | Kook (Kaihei La) instant messaging platform |
503
606
  | <img src=".github/assets/adapter_logo/matrix.svg" height="20" alt="Matrix" /> [Matrix](https://github.com/ErisPulse/ErisPulse-MatrixAdapter) | Matrix decentralized communication protocol |
504
607
  | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot11](https://github.com/ErisPulse/ErisPulse-OneBot11Adapter) | OneBot v11 general robot protocol |
505
608
  | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot12](https://github.com/ErisPulse/ErisPulse-OneBot12Adapter) | OneBot v12 standard protocol |
@@ -507,12 +610,12 @@ We welcome your contributions to adapters!
507
610
  | <img src=".github/assets/adapter_logo/sandbox.png" height="20" alt="Sandbox" /> [Sandbox](https://github.com/ErisPulse/ErisPulse-SandboxAdapter) | Web-based debugging, no need to connect to real platforms |
508
611
  | <img src=".github/assets/adapter_logo/telegram.svg" height="20" alt="Telegram" /> [Telegram](https://github.com/ErisPulse/ErisPulse-TelegramAdapter) | Global instant messaging platform |
509
612
  | <img src=".github/assets/adapter_logo/email.svg" height="20" alt="Email" /> [Email](https://github.com/ErisPulse/ErisPulse-EmailAdapter) | Email protocol adapter for sending and receiving |
510
- | <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [Yunhu](https://github.com/ErisPulse/ErisPulse-YunhuAdapter) | Enterprise-level instant messaging platform (robot access) |
511
- | [Yunhu User](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) | Access adapter based on the Yunhu user protocol |
512
- | [Flower Maple Cafe](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
613
+ | <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [Yunhu](https://github.com/ErisPulse/ErisPulse-YunhuAdapter) | Enterprise-level instant messaging platform (robot integration) |
614
+ | <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [Yunhu User](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) | Adapter based on the Yunhu user protocol |
615
+ | [Flower Maple Café](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
513
616
  | <img src=".github/assets/adapter_logo/discord.svg" height="20" alt="Discord" /> [Discord](https://github.com/ErisPulse/ErisPulse-DiscordAdapter) | Global community communication platform, supports servers, channels, and private messages |
514
617
  | <img src=".github/assets/adapter_logo/webhook.svg" height="20" alt="Webhook" /> [Webhook](https://github.com/ErisPulse/ErisPulse-WebhookAdapter) | General HTTP bridge adapter, connects to any system |
515
- | <img src=".github/assets/adapter_logo/wechatmp.png" height="20" alt="WechatMp" /> [WeChat Official Account](https://github.com/ErisPulse/ErisPulse-WechatMpAdapter) | Official WeChat Official Account platform |
618
+ | <img src=".github/assets/adapter_logo/wechatmp.svg" height="20" alt="WechatMp" /> [WeChat Official Account](https://github.com/ErisPulse/ErisPulse-WechatMpAdapter) | Official WeChat Official Account platform |
516
619
 
517
620
  See [Adapter Details](docs/en/platform-guide/README.md)
518
621
 
@@ -524,19 +627,41 @@ See [Adapter Details](docs/en/platform-guide/README.md)
524
627
 
525
628
  | Multi-platform Robot | Chat Assistant | Automation Tool | Message Forwarding |
526
629
  |:---:|:---:|:---:|:---:|
527
- | Deploy robots with the same functionality across multiple platforms | Integrate AI chat modules for entertainment and interaction | Message notifications, task management, data collection | Cross-platform message synchronization and forwarding |
630
+ | Deploy robots with the same functionality on multiple platforms | Integrate AI chat modules for entertainment and interaction | Message notifications, task management, data collection | Cross-platform message synchronization and forwarding |
528
631
 
529
632
  </div>
530
633
 
531
634
  ---
532
635
 
533
- ### Contribution Guide
636
+ ## Community
637
+
638
+ Welcome to join the ErisPulse community and collaborate with developers to build the ecosystem.
639
+
640
+ ### Yunhu
641
+
642
+ Group ID: `635409929`
643
+
644
+ Join the group chat:
645
+
646
+ https://yhfx.jwznb.com/share?key=VWJL4fTWXepa&ts=1781889199
647
+
648
+ ### QQ Group
649
+
650
+ https://qm.qq.com/q/TOwnCmypcy
534
651
 
535
- The health of the ErisPulse project still needs your contribution! We welcome various forms of contributions:
652
+ ### Telegram
653
+
654
+ https://t.me/ErisPulse
655
+
656
+ ---
657
+
658
+ ### Contribution Guidelines
659
+
660
+ The health of the ErisPulse project still needs your contribution! We welcome contributions in various forms:
536
661
 
537
662
  1. **Report Issues** — Submit bug reports in [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues)
538
- 2. **Feature Requests** — Propose new ideas through [Community Discussions](https://github.com/ErisPulse/ErisPulse/discussions)
539
- 3. **Code Contributions** — Read [Code Style](docs/en/styleguide/) and [Contribution Guide](CONTRIBUTING.md) before submitting PRs
663
+ 2. **Feature Requests** — Propose new ideas via [Community Discussions](https://github.com/ErisPulse/ErisPulse/discussions)
664
+ 3. **Code Contributions** — Read the [Code Style](docs/en/styleguide/) and [Contribution Guidelines](CONTRIBUTING.md) before submitting PRs
540
665
  4. **Documentation Improvements** — Help improve documentation and example code
541
666
 
542
667
  [Join Community Discussions](https://github.com/ErisPulse/ErisPulse/discussions)
@@ -555,6 +680,14 @@ The health of the ErisPulse project still needs your contribution! We welcome va
555
680
 
556
681
  <img src=".github/assets/thanks.png" width="200" alt="Thanks" />
557
682
 
558
- This project is partially based on [sdkFrame](https://github.com/runoneall/sdkFrame) · The core adapter standardization layer is based on the [OneBot12 specification](https://12.onebot.dev/) · Thank you to all developers and authors who have contributed to the open-source community
683
+ Some code in this project is based on [sdkFrame](https://github.com/runoneall/sdkFrame).
559
684
 
560
- </div>
685
+ The core adapter standardization layer refers to and benefits from the [OneBot12 specification](https://12.onebot.dev/).
686
+
687
+ Special thanks to the Yunhu ecosystem and community.
688
+
689
+ The early exploration and growth of ErisPulse would not have been possible without the support of the Yunhu developer community. Many ideas, adapters, and practical experiences originated here.
690
+
691
+ We also thank all developers and project authors who have contributed to ErisPulse, OneBot ecosystem, and the open-source community.
692
+
693
+ </div>