ErisPulse 2.5.2.dev2__tar.gz → 2.5.2.dev4__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.
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/PKG-INFO +46 -45
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/README.md +45 -44
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/pyproject.toml +1 -1
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/cli.py +58 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/cli.pyi +8 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/init.py +1 -1
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/list.py +32 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/list.pyi +7 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/list_remote.py +1 -1
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/console.py +1 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/en.py +2 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/ja.py +2 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/ru.py +2 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/zh_cn.py +2 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/zh_tw.py +2 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/__init__.py +2 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/__init__.pyi +1 -0
- erispulse-2.5.2.dev4/src/ErisPulse/Core/Bases/kv_builder.py +378 -0
- erispulse-2.5.2.dev4/src/ErisPulse/Core/Bases/kv_builder.pyi +126 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/module.py +12 -3
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/module.pyi +11 -3
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/storage.py +99 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/storage.pyi +68 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/__init__.py +0 -5
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/base.py +73 -11
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/base.pyi +1 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/command.py +89 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/command.pyi +1 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/wrapper.py +197 -31
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/wrapper.pyi +139 -27
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/__init__.py +2 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/__init__.pyi +1 -1
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/adapter.py +33 -6
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/adapter.pyi +10 -2
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/config.py +45 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/config.pyi +29 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/constants.py +95 -93
- erispulse-2.5.2.dev4/src/ErisPulse/Core/constants.pyi +206 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/en.py +46 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/ja.py +46 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/ru.py +46 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/zh_cn.py +46 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/zh_tw.py +46 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/lifecycle.py +19 -1
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/lifecycle.pyi +2 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/module.py +34 -7
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/module.pyi +10 -2
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/router.py +30 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/storage.py +45 -8
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/bases/loader.py +3 -1
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/runtime/__init__.py +11 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/runtime/__init__.pyi +1 -0
- erispulse-2.5.2.dev4/src/ErisPulse/runtime/exceptions.py +233 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/runtime/exceptions.pyi +26 -1
- erispulse-2.5.2.dev4/src/ErisPulse/runtime/hints.py +340 -0
- erispulse-2.5.2.dev4/src/ErisPulse/runtime/hints.pyi +127 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/sdk.py +81 -1
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/sdk.pyi +7 -0
- erispulse-2.5.2.dev2/src/ErisPulse/Core/constants.pyi +0 -18
- erispulse-2.5.2.dev2/src/ErisPulse/runtime/exceptions.py +0 -132
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/.gitignore +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/LICENSE +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/base.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/base.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/create.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/create.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/init.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/install.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/install.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/language.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/language.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/list_remote.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/run.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/run.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/self_update.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/self_update.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/uninstall.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/uninstall.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/upgrade.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/commands/upgrade.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/console.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/en.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/ja.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/ru.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/zh_cn.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/i18n/locales/zh_tw.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/registry.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/registry.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/utils/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/utils/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/utils/display.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/utils/display.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/utils/file_watcher.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/utils/file_watcher.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/utils/package_manager.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/CLI/utils/package_manager.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/adapter.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/adapter.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/client.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/client.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/errors.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/errors.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/manager.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/manager.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/router.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/router.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/websocket.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Bases/websocket.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/message.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/message.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/message_builder.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/message_builder.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/meta.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/meta.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/notice.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/notice.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/request.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/request.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/session_type.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/Event/session_type.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/client.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/client.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/constants.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/constants.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/en.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/ja.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/ru.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/zh_cn.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/i18n/locales/zh_tw.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/logger.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/logger.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/router.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/Core/storage.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/__main__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/__main__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/adapter.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/adapter.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/bases/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/bases/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/bases/finder.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/bases/finder.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/module.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/finders/module.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/adapter.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/adapter.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/bases/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/bases/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/bases/loader.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/module.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/module.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/strategy.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/strategy.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/strict.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/loaders/strict.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/runtime/config_schema.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/runtime/config_schema.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/runtime/context.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/runtime/context.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/runtime/frame_config.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/runtime/frame_config.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/web_status/4xx.png +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/web_status/5xx.png +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/web_status/__init__.py +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/web_status/__init__.pyi +0 -0
- {erispulse-2.5.2.dev2 → erispulse-2.5.2.dev4}/src/ErisPulse/web_status/unknow.png +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ErisPulse
|
|
3
|
-
Version: 2.5.2.
|
|
3
|
+
Version: 2.5.2.dev4
|
|
4
4
|
Summary: ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。
|
|
5
5
|
Project-URL: Homepage, https://github.com/ErisPulse/ErisPulse
|
|
6
6
|
Project-URL: Documentation, https://www.erisdev.com#docs
|
|
@@ -77,7 +77,7 @@ Description-Content-Type: text/markdown
|
|
|
77
77
|
|
|
78
78
|
Event-driven multi-platform chatbot development framework.
|
|
79
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 scenarios
|
|
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
81
|
|
|
82
82
|
<p>
|
|
83
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>
|
|
@@ -89,6 +89,7 @@ Based on the OneBot12 standard interface, write once and deploy on multiple plat
|
|
|
89
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
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
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>
|
|
92
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>
|
|
93
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>
|
|
94
95
|
</p>
|
|
@@ -122,7 +123,7 @@ A clear event model based on the OneBot12 standard, making message handling logi
|
|
|
122
123
|
|
|
123
124
|
### Cross-platform Compatibility
|
|
124
125
|
|
|
125
|
-
Write
|
|
126
|
+
Write plugin modules once and use them on all platforms, no need to repeat development for different platforms
|
|
126
127
|
|
|
127
128
|
</td>
|
|
128
129
|
<td width="33%" align="center" valign="top">
|
|
@@ -160,9 +161,9 @@ AI-assisted development brings requirements directly to usable modules
|
|
|
160
161
|
<td width="33%" align="center" valign="top">
|
|
161
162
|
<br/>
|
|
162
163
|
|
|
163
|
-
<img src=".github/assets/icon/icon_lightweight.png" width="50" alt="
|
|
164
|
+
<img src=".github/assets/icon/icon_lightweight.png" width="50" alt="Lightweight and Elegant" />
|
|
164
165
|
|
|
165
|
-
###
|
|
166
|
+
### Lightweight and Elegant
|
|
166
167
|
|
|
167
168
|
Intuitive API design, making code as light and readable as feathers
|
|
168
169
|
|
|
@@ -174,7 +175,7 @@ Intuitive API design, making code as light and readable as feathers
|
|
|
174
175
|
|
|
175
176
|
## The Same Code. Multiple Platforms.
|
|
176
177
|
|
|
177
|
-
*
|
|
178
|
+
*Identical command handlers. Different platforms. No need to modify any business logic.*
|
|
178
179
|
|
|
179
180
|
<table>
|
|
180
181
|
<tr>
|
|
@@ -206,7 +207,7 @@ Intuitive API design, making code as light and readable as feathers
|
|
|
206
207
|
|
|
207
208
|
## Ecosystem
|
|
208
209
|
|
|
209
|
-
ErisPulse is
|
|
210
|
+
ErisPulse is not just a framework. Install and start, no need to build wheels from scratch.
|
|
210
211
|
|
|
211
212
|
<table>
|
|
212
213
|
<tr>
|
|
@@ -234,7 +235,7 @@ Plugins · Logs · Configuration
|
|
|
234
235
|
|
|
235
236
|
**AI Builder**
|
|
236
237
|
|
|
237
|
-
Natural language →
|
|
238
|
+
Natural language → Usable modules
|
|
238
239
|
|
|
239
240
|
[Experience Now →](https://www.erisdev.com/#builder)
|
|
240
241
|
|
|
@@ -245,7 +246,7 @@ Natural language → usable modules
|
|
|
245
246
|
|
|
246
247
|
Ready-to-use plugins
|
|
247
248
|
|
|
248
|
-
[
|
|
249
|
+
[Browse Modules →](https://www.erisdev.com/#market)
|
|
249
250
|
|
|
250
251
|
</td>
|
|
251
252
|
</tr>
|
|
@@ -254,7 +255,7 @@ Ready-to-use plugins
|
|
|
254
255
|
|
|
255
256
|
**Adapters**
|
|
256
257
|
|
|
257
|
-
|
|
258
|
+
Support for 15+ platforms
|
|
258
259
|
|
|
259
260
|
</td>
|
|
260
261
|
<td align="center" width="25%">
|
|
@@ -287,11 +288,11 @@ Multi-architecture support
|
|
|
287
288
|
|
|
288
289
|
## Project Origin
|
|
289
290
|
|
|
290
|
-
ErisPulse was not born to
|
|
291
|
+
ErisPulse was not born to become a framework.
|
|
291
292
|
|
|
292
293
|
It originated from **Amer** — a project for message interconnection and synchronization between different platforms.
|
|
293
294
|
|
|
294
|
-
As
|
|
295
|
+
As more platforms were integrated, we began maintaining the asynchronous version of **ryunhusdk2**, and gradually abstracted a unified event model and adapter system.
|
|
295
296
|
|
|
296
297
|
These practices eventually evolved into today's ErisPulse.
|
|
297
298
|
|
|
@@ -305,7 +306,7 @@ Its goal has never changed:
|
|
|
305
306
|
|
|
306
307
|
#### One-click Installation Script (Recommended)
|
|
307
308
|
|
|
308
|
-
The installation script automatically
|
|
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/日本語/Русский/繁體中文).
|
|
309
310
|
|
|
310
311
|
Windows (PowerShell):
|
|
311
312
|
```powershell
|
|
@@ -343,7 +344,7 @@ docker pull erispulse/erispulse:latest
|
|
|
343
344
|
```
|
|
344
345
|
|
|
345
346
|
<details>
|
|
346
|
-
<summary>
|
|
347
|
+
<summary>Docker Hub unavailable?</summary>
|
|
347
348
|
|
|
348
349
|
If Docker Hub is inaccessible, you can use GitHub Container Registry:
|
|
349
350
|
|
|
@@ -371,7 +372,7 @@ ERISPULSE_DASHBOARD_TOKEN=your-token docker compose up -d
|
|
|
371
372
|
|
|
372
373
|
> The image includes the ErisPulse framework and Dashboard management panel, supporting `linux/amd64` and `linux/arm64` architectures.
|
|
373
374
|
|
|
374
|
-
After
|
|
375
|
+
After startup, access `http://<host>:<port>/Dashboard` and use the set token as the password to log in to the Dashboard management panel.
|
|
375
376
|
|
|
376
377
|
</details>
|
|
377
378
|
|
|
@@ -381,14 +382,14 @@ After starting, visit `http://<host>:<port>/Dashboard` and use the set token as
|
|
|
381
382
|
Set `ERISPULSE_CHANNEL=dev` to use the pre-release version:
|
|
382
383
|
|
|
383
384
|
```bash
|
|
384
|
-
# Method 1:
|
|
385
|
+
# Method 1: Use environment variables (recommended)
|
|
385
386
|
ERISPULSE_CHANNEL=dev ERISPULSE_DASHBOARD_TOKEN=your-token docker compose up -d
|
|
386
387
|
|
|
387
|
-
# Method 2:
|
|
388
|
+
# Method 2: Build dev image
|
|
388
389
|
ERISPULSE_BUILD_TARGET=dev docker compose up -d --build
|
|
389
390
|
```
|
|
390
391
|
|
|
391
|
-
To
|
|
392
|
+
To automatically update to the latest version at startup (regardless of stable or dev), explicitly set `ERISPULSE_UPDATE_ON_START=true`:
|
|
392
393
|
|
|
393
394
|
```bash
|
|
394
395
|
ERISPULSE_CHANNEL=dev ERISPULSE_UPDATE_ON_START=true docker compose up -d
|
|
@@ -405,29 +406,29 @@ docker pull erispulse/erispulse:dev
|
|
|
405
406
|
<details>
|
|
406
407
|
<summary>Docker Environment Variables</summary>
|
|
407
408
|
|
|
408
|
-
| Variable | Default | Description |
|
|
409
|
-
|
|
409
|
+
| Variable | Default Value | Description |
|
|
410
|
+
|----------|---------------|-------------|
|
|
410
411
|
| `ERISPULSE_CHANNEL` | `stable` | Version channel: `stable` (stable) or `dev` (pre-release) |
|
|
411
412
|
| `ERISPULSE_UPDATE_ON_START` | `false` | Whether to automatically update to the latest version when the container starts (must be explicitly enabled) |
|
|
412
413
|
| `ERISPULSE_DASHBOARD_TOKEN` | empty | Dashboard login token |
|
|
413
414
|
| `ERISPULSE_PORT` | `8000` | Dashboard port mapping |
|
|
414
415
|
| `TZ` | `Asia/Shanghai` | Container timezone |
|
|
415
416
|
|
|
416
|
-
>
|
|
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.
|
|
417
418
|
|
|
418
419
|
</details>
|
|
419
420
|
|
|
420
421
|
#### 1Panel App Store
|
|
421
422
|
|
|
422
|
-
Install ErisPulse with one click
|
|
423
|
+
Install ErisPulse with one click through the [1Panel](https://1panel.cn) app store, see [ErisPulse-1Panel](https://github.com/ErisPulse/ErisPulse-1Panel).
|
|
423
424
|
|
|
424
425
|
```bash
|
|
425
426
|
bash <(curl -sL https://get-1panel.erisdev.com/install.sh)
|
|
426
427
|
```
|
|
427
428
|
|
|
428
|
-
ErisPulse is
|
|
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).
|
|
429
430
|
|
|
430
|
-
####
|
|
431
|
+
#### Using pip Installation
|
|
431
432
|
|
|
432
433
|
```bash
|
|
433
434
|
pip install ErisPulse
|
|
@@ -494,7 +495,7 @@ Bot replies: `Pong! The bot is running normally.`
|
|
|
494
495
|
|
|
495
496
|
```bash
|
|
496
497
|
epsdk run main.py
|
|
497
|
-
#
|
|
498
|
+
# Or in development mode
|
|
498
499
|
epsdk run main.py --reload
|
|
499
500
|
```
|
|
500
501
|
|
|
@@ -508,7 +509,7 @@ For more detailed instructions, see:
|
|
|
508
509
|
|
|
509
510
|
#### Multi-turn Conversation Example
|
|
510
511
|
|
|
511
|
-
ErisPulse
|
|
512
|
+
ErisPulse has a powerful built-in multi-turn conversation engine, making it easy to implement guided operations, information collection, and other interactive scenarios:
|
|
512
513
|
|
|
513
514
|
```python
|
|
514
515
|
from ErisPulse.Core.Event import command, request
|
|
@@ -542,7 +543,7 @@ async def handle_friend_request(event):
|
|
|
542
543
|
# Approve the request
|
|
543
544
|
result = await event.approve()
|
|
544
545
|
if result.get("status") == "ok":
|
|
545
|
-
await event.reply(f"Friend request automatically
|
|
546
|
+
await event.reply(f"Friend request approved automatically, welcome {user_name}")
|
|
546
547
|
```
|
|
547
548
|
|
|
548
549
|
<details>
|
|
@@ -553,7 +554,7 @@ async def handle_friend_request(event):
|
|
|
553
554
|
async def quiz_handler(event):
|
|
554
555
|
conv = event.conversation(timeout=30)
|
|
555
556
|
|
|
556
|
-
# Multiple
|
|
557
|
+
# Multiple-choice question
|
|
557
558
|
answer = await conv.choose("Who is the creator of Python?", [
|
|
558
559
|
"Guido van Rossum",
|
|
559
560
|
"James Gosling",
|
|
@@ -571,7 +572,7 @@ async def quiz_handler(event):
|
|
|
571
572
|
async def menu_handler(event):
|
|
572
573
|
conv = event.conversation(timeout=60)
|
|
573
574
|
|
|
574
|
-
# Branching, building complex interaction
|
|
575
|
+
# Branching, building complex interaction flow
|
|
575
576
|
@conv.branch("main")
|
|
576
577
|
async def main_menu():
|
|
577
578
|
await conv.say("=== Main Menu ===\n1. Personal Info\n2. Settings\n3. Exit")
|
|
@@ -600,18 +601,18 @@ See [Conversation Multi-turn Dialogue](docs/en/advanced/conversation.md)
|
|
|
600
601
|
We welcome contributions to adapters!
|
|
601
602
|
|
|
602
603
|
| Adapter | Description |
|
|
603
|
-
|
|
604
|
+
|---------|-------------|
|
|
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 |
|
|
605
606
|
| <img src=".github/assets/adapter_logo/matrix.svg" height="20" alt="Matrix" /> [Matrix](https://github.com/ErisPulse/ErisPulse-MatrixAdapter) | Matrix decentralized communication protocol |
|
|
606
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 |
|
|
607
608
|
| <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot12](https://github.com/ErisPulse/ErisPulse-OneBot12Adapter) | OneBot v12 standard protocol |
|
|
608
|
-
| <img src=".github/assets/adapter_logo/qqbot.svg" height="20" alt="QQ" /> [QQ](https://github.com/ErisPulse/ErisPulse-QQBotAdapter) | Official QQ
|
|
609
|
+
| <img src=".github/assets/adapter_logo/qqbot.svg" height="20" alt="QQ" /> [QQ](https://github.com/ErisPulse/ErisPulse-QQBotAdapter) | Official QQ robot platform |
|
|
609
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 |
|
|
610
611
|
| <img src=".github/assets/adapter_logo/telegram.svg" height="20" alt="Telegram" /> [Telegram](https://github.com/ErisPulse/ErisPulse-TelegramAdapter) | Global instant messaging platform |
|
|
611
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 |
|
|
612
|
-
| <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
|
|
613
|
-
| <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [Yunhu User](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) |
|
|
614
|
-
| [Flower Maple
|
|
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! \(・ω・) / |
|
|
615
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 |
|
|
616
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 |
|
|
617
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 |
|
|
@@ -620,13 +621,13 @@ See [Adapter Details](docs/en/platform-guide/README.md)
|
|
|
620
621
|
|
|
621
622
|
---
|
|
622
623
|
|
|
623
|
-
###
|
|
624
|
+
### Application Scenarios
|
|
624
625
|
|
|
625
626
|
<div align="center">
|
|
626
627
|
|
|
627
|
-
| Multi-platform
|
|
628
|
+
| Multi-platform Robot | Chat Assistant | Automation Tool | Message Forwarding |
|
|
628
629
|
|:---:|:---:|:---:|:---:|
|
|
629
|
-
| Deploy
|
|
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 |
|
|
630
631
|
|
|
631
632
|
</div>
|
|
632
633
|
|
|
@@ -634,7 +635,7 @@ See [Adapter Details](docs/en/platform-guide/README.md)
|
|
|
634
635
|
|
|
635
636
|
## Community
|
|
636
637
|
|
|
637
|
-
|
|
638
|
+
Welcome to join the ErisPulse community and collaborate with developers to build the ecosystem.
|
|
638
639
|
|
|
639
640
|
### Yunhu
|
|
640
641
|
|
|
@@ -656,11 +657,11 @@ https://t.me/ErisPulse
|
|
|
656
657
|
|
|
657
658
|
### Contribution Guidelines
|
|
658
659
|
|
|
659
|
-
The health of the ErisPulse project still needs your contribution! We welcome
|
|
660
|
+
The health of the ErisPulse project still needs your contribution! We welcome contributions in various forms:
|
|
660
661
|
|
|
661
662
|
1. **Report Issues** — Submit bug reports in [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues)
|
|
662
663
|
2. **Feature Requests** — Propose new ideas via [Community Discussions](https://github.com/ErisPulse/ErisPulse/discussions)
|
|
663
|
-
3. **Code Contributions** —
|
|
664
|
+
3. **Code Contributions** — Read the [Code Style](docs/en/styleguide/) and [Contribution Guidelines](CONTRIBUTING.md) before submitting PRs
|
|
664
665
|
4. **Documentation Improvements** — Help improve documentation and example code
|
|
665
666
|
|
|
666
667
|
[Join Community Discussions](https://github.com/ErisPulse/ErisPulse/discussions)
|
|
@@ -679,14 +680,14 @@ The health of the ErisPulse project still needs your contribution! We welcome al
|
|
|
679
680
|
|
|
680
681
|
<img src=".github/assets/thanks.png" width="200" alt="Thanks" />
|
|
681
682
|
|
|
682
|
-
|
|
683
|
+
Some code in this project is based on [sdkFrame](https://github.com/runoneall/sdkFrame).
|
|
683
684
|
|
|
684
|
-
The core adapter standardization layer
|
|
685
|
+
The core adapter standardization layer refers to and benefits from the [OneBot12 specification](https://12.onebot.dev/).
|
|
685
686
|
|
|
686
687
|
Special thanks to the Yunhu ecosystem and community.
|
|
687
688
|
|
|
688
|
-
The early exploration and growth of ErisPulse would not have been possible without the support of the Yunhu developer community
|
|
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.
|
|
689
690
|
|
|
690
|
-
We also thank all developers and project authors who have contributed to ErisPulse, OneBot, and the open-source community.
|
|
691
|
+
We also thank all developers and project authors who have contributed to ErisPulse, OneBot ecosystem, and the open-source community.
|
|
691
692
|
|
|
692
|
-
</div>
|
|
693
|
+
</div>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
Event-driven multi-platform chatbot development framework.
|
|
10
10
|
|
|
11
|
-
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 scenarios
|
|
11
|
+
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.
|
|
12
12
|
|
|
13
13
|
<p>
|
|
14
14
|
<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>
|
|
@@ -20,6 +20,7 @@ Based on the OneBot12 standard interface, write once and deploy on multiple plat
|
|
|
20
20
|
<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>
|
|
21
21
|
<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>
|
|
22
22
|
<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>
|
|
23
|
+
<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>
|
|
23
24
|
<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>
|
|
24
25
|
<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>
|
|
25
26
|
</p>
|
|
@@ -53,7 +54,7 @@ A clear event model based on the OneBot12 standard, making message handling logi
|
|
|
53
54
|
|
|
54
55
|
### Cross-platform Compatibility
|
|
55
56
|
|
|
56
|
-
Write
|
|
57
|
+
Write plugin modules once and use them on all platforms, no need to repeat development for different platforms
|
|
57
58
|
|
|
58
59
|
</td>
|
|
59
60
|
<td width="33%" align="center" valign="top">
|
|
@@ -91,9 +92,9 @@ AI-assisted development brings requirements directly to usable modules
|
|
|
91
92
|
<td width="33%" align="center" valign="top">
|
|
92
93
|
<br/>
|
|
93
94
|
|
|
94
|
-
<img src=".github/assets/icon/icon_lightweight.png" width="50" alt="
|
|
95
|
+
<img src=".github/assets/icon/icon_lightweight.png" width="50" alt="Lightweight and Elegant" />
|
|
95
96
|
|
|
96
|
-
###
|
|
97
|
+
### Lightweight and Elegant
|
|
97
98
|
|
|
98
99
|
Intuitive API design, making code as light and readable as feathers
|
|
99
100
|
|
|
@@ -105,7 +106,7 @@ Intuitive API design, making code as light and readable as feathers
|
|
|
105
106
|
|
|
106
107
|
## The Same Code. Multiple Platforms.
|
|
107
108
|
|
|
108
|
-
*
|
|
109
|
+
*Identical command handlers. Different platforms. No need to modify any business logic.*
|
|
109
110
|
|
|
110
111
|
<table>
|
|
111
112
|
<tr>
|
|
@@ -137,7 +138,7 @@ Intuitive API design, making code as light and readable as feathers
|
|
|
137
138
|
|
|
138
139
|
## Ecosystem
|
|
139
140
|
|
|
140
|
-
ErisPulse is
|
|
141
|
+
ErisPulse is not just a framework. Install and start, no need to build wheels from scratch.
|
|
141
142
|
|
|
142
143
|
<table>
|
|
143
144
|
<tr>
|
|
@@ -165,7 +166,7 @@ Plugins · Logs · Configuration
|
|
|
165
166
|
|
|
166
167
|
**AI Builder**
|
|
167
168
|
|
|
168
|
-
Natural language →
|
|
169
|
+
Natural language → Usable modules
|
|
169
170
|
|
|
170
171
|
[Experience Now →](https://www.erisdev.com/#builder)
|
|
171
172
|
|
|
@@ -176,7 +177,7 @@ Natural language → usable modules
|
|
|
176
177
|
|
|
177
178
|
Ready-to-use plugins
|
|
178
179
|
|
|
179
|
-
[
|
|
180
|
+
[Browse Modules →](https://www.erisdev.com/#market)
|
|
180
181
|
|
|
181
182
|
</td>
|
|
182
183
|
</tr>
|
|
@@ -185,7 +186,7 @@ Ready-to-use plugins
|
|
|
185
186
|
|
|
186
187
|
**Adapters**
|
|
187
188
|
|
|
188
|
-
|
|
189
|
+
Support for 15+ platforms
|
|
189
190
|
|
|
190
191
|
</td>
|
|
191
192
|
<td align="center" width="25%">
|
|
@@ -218,11 +219,11 @@ Multi-architecture support
|
|
|
218
219
|
|
|
219
220
|
## Project Origin
|
|
220
221
|
|
|
221
|
-
ErisPulse was not born to
|
|
222
|
+
ErisPulse was not born to become a framework.
|
|
222
223
|
|
|
223
224
|
It originated from **Amer** — a project for message interconnection and synchronization between different platforms.
|
|
224
225
|
|
|
225
|
-
As
|
|
226
|
+
As more platforms were integrated, we began maintaining the asynchronous version of **ryunhusdk2**, and gradually abstracted a unified event model and adapter system.
|
|
226
227
|
|
|
227
228
|
These practices eventually evolved into today's ErisPulse.
|
|
228
229
|
|
|
@@ -236,7 +237,7 @@ Its goal has never changed:
|
|
|
236
237
|
|
|
237
238
|
#### One-click Installation Script (Recommended)
|
|
238
239
|
|
|
239
|
-
The installation script automatically
|
|
240
|
+
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/日本語/Русский/繁體中文).
|
|
240
241
|
|
|
241
242
|
Windows (PowerShell):
|
|
242
243
|
```powershell
|
|
@@ -274,7 +275,7 @@ docker pull erispulse/erispulse:latest
|
|
|
274
275
|
```
|
|
275
276
|
|
|
276
277
|
<details>
|
|
277
|
-
<summary>
|
|
278
|
+
<summary>Docker Hub unavailable?</summary>
|
|
278
279
|
|
|
279
280
|
If Docker Hub is inaccessible, you can use GitHub Container Registry:
|
|
280
281
|
|
|
@@ -302,7 +303,7 @@ ERISPULSE_DASHBOARD_TOKEN=your-token docker compose up -d
|
|
|
302
303
|
|
|
303
304
|
> The image includes the ErisPulse framework and Dashboard management panel, supporting `linux/amd64` and `linux/arm64` architectures.
|
|
304
305
|
|
|
305
|
-
After
|
|
306
|
+
After startup, access `http://<host>:<port>/Dashboard` and use the set token as the password to log in to the Dashboard management panel.
|
|
306
307
|
|
|
307
308
|
</details>
|
|
308
309
|
|
|
@@ -312,14 +313,14 @@ After starting, visit `http://<host>:<port>/Dashboard` and use the set token as
|
|
|
312
313
|
Set `ERISPULSE_CHANNEL=dev` to use the pre-release version:
|
|
313
314
|
|
|
314
315
|
```bash
|
|
315
|
-
# Method 1:
|
|
316
|
+
# Method 1: Use environment variables (recommended)
|
|
316
317
|
ERISPULSE_CHANNEL=dev ERISPULSE_DASHBOARD_TOKEN=your-token docker compose up -d
|
|
317
318
|
|
|
318
|
-
# Method 2:
|
|
319
|
+
# Method 2: Build dev image
|
|
319
320
|
ERISPULSE_BUILD_TARGET=dev docker compose up -d --build
|
|
320
321
|
```
|
|
321
322
|
|
|
322
|
-
To
|
|
323
|
+
To automatically update to the latest version at startup (regardless of stable or dev), explicitly set `ERISPULSE_UPDATE_ON_START=true`:
|
|
323
324
|
|
|
324
325
|
```bash
|
|
325
326
|
ERISPULSE_CHANNEL=dev ERISPULSE_UPDATE_ON_START=true docker compose up -d
|
|
@@ -336,29 +337,29 @@ docker pull erispulse/erispulse:dev
|
|
|
336
337
|
<details>
|
|
337
338
|
<summary>Docker Environment Variables</summary>
|
|
338
339
|
|
|
339
|
-
| Variable | Default | Description |
|
|
340
|
-
|
|
340
|
+
| Variable | Default Value | Description |
|
|
341
|
+
|----------|---------------|-------------|
|
|
341
342
|
| `ERISPULSE_CHANNEL` | `stable` | Version channel: `stable` (stable) or `dev` (pre-release) |
|
|
342
343
|
| `ERISPULSE_UPDATE_ON_START` | `false` | Whether to automatically update to the latest version when the container starts (must be explicitly enabled) |
|
|
343
344
|
| `ERISPULSE_DASHBOARD_TOKEN` | empty | Dashboard login token |
|
|
344
345
|
| `ERISPULSE_PORT` | `8000` | Dashboard port mapping |
|
|
345
346
|
| `TZ` | `Asia/Shanghai` | Container timezone |
|
|
346
347
|
|
|
347
|
-
>
|
|
348
|
+
> Enabling `ERISPULSE_UPDATE_ON_START=true` ensures that even if the image is old, the container will automatically fetch the latest version at startup.
|
|
348
349
|
|
|
349
350
|
</details>
|
|
350
351
|
|
|
351
352
|
#### 1Panel App Store
|
|
352
353
|
|
|
353
|
-
Install ErisPulse with one click
|
|
354
|
+
Install ErisPulse with one click through the [1Panel](https://1panel.cn) app store, see [ErisPulse-1Panel](https://github.com/ErisPulse/ErisPulse-1Panel).
|
|
354
355
|
|
|
355
356
|
```bash
|
|
356
357
|
bash <(curl -sL https://get-1panel.erisdev.com/install.sh)
|
|
357
358
|
```
|
|
358
359
|
|
|
359
|
-
ErisPulse is
|
|
360
|
+
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).
|
|
360
361
|
|
|
361
|
-
####
|
|
362
|
+
#### Using pip Installation
|
|
362
363
|
|
|
363
364
|
```bash
|
|
364
365
|
pip install ErisPulse
|
|
@@ -425,7 +426,7 @@ Bot replies: `Pong! The bot is running normally.`
|
|
|
425
426
|
|
|
426
427
|
```bash
|
|
427
428
|
epsdk run main.py
|
|
428
|
-
#
|
|
429
|
+
# Or in development mode
|
|
429
430
|
epsdk run main.py --reload
|
|
430
431
|
```
|
|
431
432
|
|
|
@@ -439,7 +440,7 @@ For more detailed instructions, see:
|
|
|
439
440
|
|
|
440
441
|
#### Multi-turn Conversation Example
|
|
441
442
|
|
|
442
|
-
ErisPulse
|
|
443
|
+
ErisPulse has a powerful built-in multi-turn conversation engine, making it easy to implement guided operations, information collection, and other interactive scenarios:
|
|
443
444
|
|
|
444
445
|
```python
|
|
445
446
|
from ErisPulse.Core.Event import command, request
|
|
@@ -473,7 +474,7 @@ async def handle_friend_request(event):
|
|
|
473
474
|
# Approve the request
|
|
474
475
|
result = await event.approve()
|
|
475
476
|
if result.get("status") == "ok":
|
|
476
|
-
await event.reply(f"Friend request automatically
|
|
477
|
+
await event.reply(f"Friend request approved automatically, welcome {user_name}")
|
|
477
478
|
```
|
|
478
479
|
|
|
479
480
|
<details>
|
|
@@ -484,7 +485,7 @@ async def handle_friend_request(event):
|
|
|
484
485
|
async def quiz_handler(event):
|
|
485
486
|
conv = event.conversation(timeout=30)
|
|
486
487
|
|
|
487
|
-
# Multiple
|
|
488
|
+
# Multiple-choice question
|
|
488
489
|
answer = await conv.choose("Who is the creator of Python?", [
|
|
489
490
|
"Guido van Rossum",
|
|
490
491
|
"James Gosling",
|
|
@@ -502,7 +503,7 @@ async def quiz_handler(event):
|
|
|
502
503
|
async def menu_handler(event):
|
|
503
504
|
conv = event.conversation(timeout=60)
|
|
504
505
|
|
|
505
|
-
# Branching, building complex interaction
|
|
506
|
+
# Branching, building complex interaction flow
|
|
506
507
|
@conv.branch("main")
|
|
507
508
|
async def main_menu():
|
|
508
509
|
await conv.say("=== Main Menu ===\n1. Personal Info\n2. Settings\n3. Exit")
|
|
@@ -531,18 +532,18 @@ See [Conversation Multi-turn Dialogue](docs/en/advanced/conversation.md)
|
|
|
531
532
|
We welcome contributions to adapters!
|
|
532
533
|
|
|
533
534
|
| Adapter | Description |
|
|
534
|
-
|
|
535
|
+
|---------|-------------|
|
|
535
536
|
| <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 |
|
|
536
537
|
| <img src=".github/assets/adapter_logo/matrix.svg" height="20" alt="Matrix" /> [Matrix](https://github.com/ErisPulse/ErisPulse-MatrixAdapter) | Matrix decentralized communication protocol |
|
|
537
538
|
| <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot11](https://github.com/ErisPulse/ErisPulse-OneBot11Adapter) | OneBot v11 general robot protocol |
|
|
538
539
|
| <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot12](https://github.com/ErisPulse/ErisPulse-OneBot12Adapter) | OneBot v12 standard protocol |
|
|
539
|
-
| <img src=".github/assets/adapter_logo/qqbot.svg" height="20" alt="QQ" /> [QQ](https://github.com/ErisPulse/ErisPulse-QQBotAdapter) | Official QQ
|
|
540
|
+
| <img src=".github/assets/adapter_logo/qqbot.svg" height="20" alt="QQ" /> [QQ](https://github.com/ErisPulse/ErisPulse-QQBotAdapter) | Official QQ robot platform |
|
|
540
541
|
| <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 |
|
|
541
542
|
| <img src=".github/assets/adapter_logo/telegram.svg" height="20" alt="Telegram" /> [Telegram](https://github.com/ErisPulse/ErisPulse-TelegramAdapter) | Global instant messaging platform |
|
|
542
543
|
| <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 |
|
|
543
|
-
| <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
|
|
544
|
-
| <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [Yunhu User](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) |
|
|
545
|
-
| [Flower Maple
|
|
544
|
+
| <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) |
|
|
545
|
+
| <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 |
|
|
546
|
+
| [Flower Maple Café](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
|
|
546
547
|
| <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 |
|
|
547
548
|
| <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 |
|
|
548
549
|
| <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 |
|
|
@@ -551,13 +552,13 @@ See [Adapter Details](docs/en/platform-guide/README.md)
|
|
|
551
552
|
|
|
552
553
|
---
|
|
553
554
|
|
|
554
|
-
###
|
|
555
|
+
### Application Scenarios
|
|
555
556
|
|
|
556
557
|
<div align="center">
|
|
557
558
|
|
|
558
|
-
| Multi-platform
|
|
559
|
+
| Multi-platform Robot | Chat Assistant | Automation Tool | Message Forwarding |
|
|
559
560
|
|:---:|:---:|:---:|:---:|
|
|
560
|
-
| Deploy
|
|
561
|
+
| 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 |
|
|
561
562
|
|
|
562
563
|
</div>
|
|
563
564
|
|
|
@@ -565,7 +566,7 @@ See [Adapter Details](docs/en/platform-guide/README.md)
|
|
|
565
566
|
|
|
566
567
|
## Community
|
|
567
568
|
|
|
568
|
-
|
|
569
|
+
Welcome to join the ErisPulse community and collaborate with developers to build the ecosystem.
|
|
569
570
|
|
|
570
571
|
### Yunhu
|
|
571
572
|
|
|
@@ -587,11 +588,11 @@ https://t.me/ErisPulse
|
|
|
587
588
|
|
|
588
589
|
### Contribution Guidelines
|
|
589
590
|
|
|
590
|
-
The health of the ErisPulse project still needs your contribution! We welcome
|
|
591
|
+
The health of the ErisPulse project still needs your contribution! We welcome contributions in various forms:
|
|
591
592
|
|
|
592
593
|
1. **Report Issues** — Submit bug reports in [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues)
|
|
593
594
|
2. **Feature Requests** — Propose new ideas via [Community Discussions](https://github.com/ErisPulse/ErisPulse/discussions)
|
|
594
|
-
3. **Code Contributions** —
|
|
595
|
+
3. **Code Contributions** — Read the [Code Style](docs/en/styleguide/) and [Contribution Guidelines](CONTRIBUTING.md) before submitting PRs
|
|
595
596
|
4. **Documentation Improvements** — Help improve documentation and example code
|
|
596
597
|
|
|
597
598
|
[Join Community Discussions](https://github.com/ErisPulse/ErisPulse/discussions)
|
|
@@ -610,14 +611,14 @@ The health of the ErisPulse project still needs your contribution! We welcome al
|
|
|
610
611
|
|
|
611
612
|
<img src=".github/assets/thanks.png" width="200" alt="Thanks" />
|
|
612
613
|
|
|
613
|
-
|
|
614
|
+
Some code in this project is based on [sdkFrame](https://github.com/runoneall/sdkFrame).
|
|
614
615
|
|
|
615
|
-
The core adapter standardization layer
|
|
616
|
+
The core adapter standardization layer refers to and benefits from the [OneBot12 specification](https://12.onebot.dev/).
|
|
616
617
|
|
|
617
618
|
Special thanks to the Yunhu ecosystem and community.
|
|
618
619
|
|
|
619
|
-
The early exploration and growth of ErisPulse would not have been possible without the support of the Yunhu developer community
|
|
620
|
+
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.
|
|
620
621
|
|
|
621
|
-
We also thank all developers and project authors who have contributed to ErisPulse, OneBot, and the open-source community.
|
|
622
|
+
We also thank all developers and project authors who have contributed to ErisPulse, OneBot ecosystem, and the open-source community.
|
|
622
623
|
|
|
623
|
-
</div>
|
|
624
|
+
</div>
|