ErisPulse 2.5.4__tar.gz → 2.6.0.dev0__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.4 → erispulse-2.6.0.dev0}/PKG-INFO +85 -60
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/README.md +84 -59
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/pyproject.toml +1 -1
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/__init__.py +5 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/__init__.pyi +2 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/adapter.py +324 -7
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/adapter.pyi +202 -1
- erispulse-2.6.0.dev0/src/ErisPulse/Core/Bases/send_builder.py +469 -0
- erispulse-2.6.0.dev0/src/ErisPulse/Core/Bases/send_builder.pyi +229 -0
- erispulse-2.6.0.dev0/src/ErisPulse/Core/Bases/send_rules.py +335 -0
- erispulse-2.6.0.dev0/src/ErisPulse/Core/Bases/send_rules.pyi +164 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/command.py +19 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/command.pyi +2 -1
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/__init__.py +9 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/__init__.pyi +2 -1
- erispulse-2.6.0.dev0/src/ErisPulse/Core/admin.py +199 -0
- erispulse-2.6.0.dev0/src/ErisPulse/Core/admin.pyi +111 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/constants.py +13 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/constants.pyi +2 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/en.py +1 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/ja.py +1 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/ru.py +1 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/zh_cn.py +1 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/zh_tw.py +1 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/storage.py +37 -24
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/storage.pyi +5 -1
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/__init__.py +3 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/__init__.pyi +1 -1
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/__init__.py +2 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/__init__.pyi +1 -1
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/frame_config.py +16 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/frame_config.pyi +8 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/sdk.py +3 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/sdk.pyi +1 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/.gitignore +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/LICENSE +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/base.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/base.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/cli.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/cli.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/create.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/create.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/init.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/init.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/install.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/install.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/language.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/language.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/list.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/list.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/list_remote.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/list_remote.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/run.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/run.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/self_update.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/self_update.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/uninstall.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/uninstall.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/upgrade.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/commands/upgrade.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/console.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/console.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/en.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/en.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/ja.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/ja.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/ru.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/ru.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/zh_cn.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/zh_cn.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/zh_tw.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/i18n/locales/zh_tw.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/registry.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/registry.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/utils/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/utils/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/utils/display.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/utils/display.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/utils/file_watcher.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/utils/file_watcher.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/utils/package_manager.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/CLI/utils/package_manager.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/client.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/client.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/errors.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/errors.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/kv_builder.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/kv_builder.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/manager.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/manager.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/module.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/module.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/router.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/router.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/storage.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/storage.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/websocket.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Bases/websocket.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/base.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/base.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/message.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/message.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/message_builder.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/message_builder.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/meta.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/meta.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/notice.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/notice.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/request.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/request.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/session_type.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/session_type.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/wrapper.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/Event/wrapper.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/adapter.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/adapter.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/client.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/client.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/config.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/config.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/constants.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/constants.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/en.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/ja.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/ru.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/zh_cn.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/i18n/locales/zh_tw.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/lifecycle.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/lifecycle.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/logger.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/logger.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/module.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/module.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/router.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/Core/router.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/__main__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/__main__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/adapter.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/adapter.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/bases/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/bases/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/bases/finder.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/bases/finder.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/module.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/finders/module.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/adapter.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/adapter.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/bases/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/bases/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/bases/loader.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/bases/loader.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/module.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/module.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/strategy.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/strategy.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/strict.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/loaders/strict.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/py.typed +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/config_schema.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/config_schema.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/context.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/context.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/exceptions.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/exceptions.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/hints.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/runtime/hints.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/web_status/4xx.png +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/web_status/5xx.png +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/web_status/__init__.py +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/src/ErisPulse/web_status/__init__.pyi +0 -0
- {erispulse-2.5.4 → erispulse-2.6.0.dev0}/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.
|
|
3
|
+
Version: 2.6.0.dev0
|
|
4
4
|
Summary: Event-driven modular async bot framework — write once, deploy to any platform | 事件驱动的模块化异步机器人框架,一次编写,多平台部署
|
|
5
5
|
Project-URL: Homepage, https://github.com/ErisPulse/ErisPulse
|
|
6
6
|
Project-URL: Documentation, https://www.erisdev.com#docs
|
|
@@ -69,15 +69,15 @@ Description-Content-Type: text/markdown
|
|
|
69
69
|
|
|
70
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
71
|
|
|
72
|
-
**English**
|
|
72
|
+
[**English**](README.md) | 简体中文 | [繁體中文](README.zh-TW.md) | [日本語](README.ja.md) | [Русский](README.ru.md)
|
|
73
73
|
|
|
74
74
|
# ErisPulse
|
|
75
75
|
|
|
76
|
-
**Write once, deploy
|
|
76
|
+
**Write once, deploy across multiple platforms.**
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
An event-driven multi-platform chatbot development framework.
|
|
79
79
|
|
|
80
|
-
Based on the OneBot12 standard interface, write once and deploy
|
|
80
|
+
Based on the OneBot12 standard interface, write once and deploy across 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>
|
|
@@ -123,7 +123,7 @@ A clear event model based on the OneBot12 standard, making message handling logi
|
|
|
123
123
|
|
|
124
124
|
### Cross-platform Compatibility
|
|
125
125
|
|
|
126
|
-
Write plugin
|
|
126
|
+
Write a plugin module once and use it across all platforms, without repeating development for different platforms
|
|
127
127
|
|
|
128
128
|
</td>
|
|
129
129
|
<td width="33%" align="center" valign="top">
|
|
@@ -133,7 +133,7 @@ Write plugin modules once and use them on all platforms, no need to repeat devel
|
|
|
133
133
|
|
|
134
134
|
### Modular Design
|
|
135
135
|
|
|
136
|
-
A flexible plugin system, easy to extend and integrate, supports hot-
|
|
136
|
+
A flexible plugin system, easy to extend and integrate, supports hot-swappable module management
|
|
137
137
|
|
|
138
138
|
</td>
|
|
139
139
|
</tr>
|
|
@@ -161,21 +161,46 @@ AI-assisted development brings requirements directly to usable modules
|
|
|
161
161
|
<td width="33%" align="center" valign="top">
|
|
162
162
|
<br/>
|
|
163
163
|
|
|
164
|
-
<img src=".github/assets/icon/icon_lightweight.png" width="50" alt="Lightweight
|
|
164
|
+
<img src=".github/assets/icon/icon_lightweight.png" width="50" alt="Lightweight" />
|
|
165
165
|
|
|
166
|
-
### Lightweight
|
|
166
|
+
### Lightweight
|
|
167
167
|
|
|
168
|
-
Intuitive API design, making code as light and readable as
|
|
168
|
+
Intuitive API design, making code as light and readable as a feather
|
|
169
169
|
|
|
170
170
|
</td>
|
|
171
171
|
</tr>
|
|
172
172
|
</table>
|
|
173
173
|
|
|
174
|
+
### Chained Sending DSL
|
|
175
|
+
|
|
176
|
+
Complete all sending logic in a single chained call: @user, reply, retry, timeout, callback, etc.:
|
|
177
|
+
|
|
178
|
+
```python
|
|
179
|
+
yunhu = sdk.adapter.get("yunhu")
|
|
180
|
+
|
|
181
|
+
# Single send: @user + reply + retry + success callback
|
|
182
|
+
await (yunhu.Send.To("group", "123")
|
|
183
|
+
.At("456").Reply("msg_789")
|
|
184
|
+
.Retry(3).Timeout(10)
|
|
185
|
+
.Hook(lambda r: print("Send successful!"))
|
|
186
|
+
.Text("Hello"))
|
|
187
|
+
|
|
188
|
+
# Batch send: send multiple messages in one chain
|
|
189
|
+
results = await (yunhu.Send.To("user", "123")
|
|
190
|
+
.Build()
|
|
191
|
+
.Text("Notification 1")
|
|
192
|
+
.Image("pic.jpg")
|
|
193
|
+
.Retry(2)
|
|
194
|
+
.send_all())
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
> Supports Hook (success callback), Retry (failure retry), Timeout (timeout cancellation), OnProgress (progress monitoring), Defer (delayed send), Build (batch construction), and other chained methods. See [SendDSL documentation](docs/en/developer-guide/adapters/send-dsl.md).
|
|
198
|
+
|
|
174
199
|
---
|
|
175
200
|
|
|
176
|
-
##
|
|
201
|
+
## Same code. Multiple platforms.
|
|
177
202
|
|
|
178
|
-
*Identical command handlers. Different platforms. No
|
|
203
|
+
*Identical command handlers. Different platforms. No business logic changes required.*
|
|
179
204
|
|
|
180
205
|
<table>
|
|
181
206
|
<tr>
|
|
@@ -183,21 +208,21 @@ Intuitive API design, making code as light and readable as feathers
|
|
|
183
208
|
|
|
184
209
|
**Kook**
|
|
185
210
|
|
|
186
|
-
<img src=".github/assets/demo-kook.png" alt="Kook
|
|
211
|
+
<img src=".github/assets/demo-kook.png" alt="Kook demo" />
|
|
187
212
|
|
|
188
213
|
</td>
|
|
189
214
|
<td align="center" width="33%">
|
|
190
215
|
|
|
191
216
|
**QQ**
|
|
192
217
|
|
|
193
|
-
<img src=".github/assets/demo-qq.png" alt="QQ
|
|
218
|
+
<img src=".github/assets/demo-qq.png" alt="QQ demo" />
|
|
194
219
|
|
|
195
220
|
</td>
|
|
196
221
|
<td align="center" width="33%">
|
|
197
222
|
|
|
198
223
|
**Yunhu**
|
|
199
224
|
|
|
200
|
-
<img src=".github/assets/demo-yunhu.png" alt="Yunhu
|
|
225
|
+
<img src=".github/assets/demo-yunhu.png" alt="Yunhu demo" />
|
|
201
226
|
|
|
202
227
|
</td>
|
|
203
228
|
</tr>
|
|
@@ -207,7 +232,7 @@ Intuitive API design, making code as light and readable as feathers
|
|
|
207
232
|
|
|
208
233
|
## Ecosystem
|
|
209
234
|
|
|
210
|
-
ErisPulse is
|
|
235
|
+
ErisPulse is more than just a framework. Install and start immediately, no need to build wheels from scratch.
|
|
211
236
|
|
|
212
237
|
<table>
|
|
213
238
|
<tr>
|
|
@@ -228,16 +253,16 @@ Visual management
|
|
|
228
253
|
|
|
229
254
|
Plugins · Logs · Configuration
|
|
230
255
|
|
|
231
|
-
[Online
|
|
256
|
+
[Online demo →](https://dashdemo.erisdev.com/)
|
|
232
257
|
|
|
233
258
|
</td>
|
|
234
259
|
<td align="center" width="25%">
|
|
235
260
|
|
|
236
261
|
**AI Builder**
|
|
237
262
|
|
|
238
|
-
Natural language →
|
|
263
|
+
Natural language → usable module
|
|
239
264
|
|
|
240
|
-
[Experience
|
|
265
|
+
[Experience now →](https://www.erisdev.com/#builder)
|
|
241
266
|
|
|
242
267
|
</td>
|
|
243
268
|
<td align="center" width="25%">
|
|
@@ -246,7 +271,7 @@ Natural language → Usable modules
|
|
|
246
271
|
|
|
247
272
|
Ready-to-use plugins
|
|
248
273
|
|
|
249
|
-
[Browse
|
|
274
|
+
[Browse modules →](https://www.erisdev.com/#market)
|
|
250
275
|
|
|
251
276
|
</td>
|
|
252
277
|
</tr>
|
|
@@ -255,7 +280,7 @@ Ready-to-use plugins
|
|
|
255
280
|
|
|
256
281
|
**Adapters**
|
|
257
282
|
|
|
258
|
-
|
|
283
|
+
15+ platform integrations
|
|
259
284
|
|
|
260
285
|
</td>
|
|
261
286
|
<td align="center" width="25%">
|
|
@@ -288,11 +313,11 @@ Multi-architecture support
|
|
|
288
313
|
|
|
289
314
|
## Project Origin
|
|
290
315
|
|
|
291
|
-
ErisPulse was not born to
|
|
316
|
+
ErisPulse was not born to be a framework.
|
|
292
317
|
|
|
293
|
-
It originated from **Amer** — a project for message interconnection and synchronization
|
|
318
|
+
It originated from **Amer** — a project for message interconnection and synchronization across different platforms.
|
|
294
319
|
|
|
295
|
-
As
|
|
320
|
+
As the number of integrated platforms increased, we began maintaining the asynchronous version of **ryunhusdk2**, gradually abstracting a unified event model and adapter system.
|
|
296
321
|
|
|
297
322
|
These practices eventually evolved into today's ErisPulse.
|
|
298
323
|
|
|
@@ -304,9 +329,9 @@ Its goal has never changed:
|
|
|
304
329
|
|
|
305
330
|
### Quick Start
|
|
306
331
|
|
|
307
|
-
#### One-click
|
|
332
|
+
#### One-click installation script (recommended)
|
|
308
333
|
|
|
309
|
-
The installation script
|
|
334
|
+
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).
|
|
310
335
|
|
|
311
336
|
Windows (PowerShell):
|
|
312
337
|
```powershell
|
|
@@ -337,7 +362,7 @@ curl -fsSL https://get.erisdev.com/install.sh -o install.sh && chmod +x install.
|
|
|
337
362
|
</tr>
|
|
338
363
|
</table>
|
|
339
364
|
|
|
340
|
-
#### Using Docker (
|
|
365
|
+
#### Using Docker (recommended)
|
|
341
366
|
|
|
342
367
|
```bash
|
|
343
368
|
docker pull erispulse/erispulse:latest
|
|
@@ -352,7 +377,7 @@ If Docker Hub is inaccessible, you can use GitHub Container Registry:
|
|
|
352
377
|
docker pull ghcr.io/erispulse/erispulse:latest
|
|
353
378
|
```
|
|
354
379
|
|
|
355
|
-
When using the ghcr.io image, you need to modify the `docker-compose.yml` image:
|
|
380
|
+
When using the ghcr.io image, you need to modify the `docker-compose.yml` file's image:
|
|
356
381
|
```yaml
|
|
357
382
|
image: ghcr.io/erispulse/erispulse:latest
|
|
358
383
|
```
|
|
@@ -377,7 +402,7 @@ After startup, access `http://<host>:<port>/Dashboard` and use the set token as
|
|
|
377
402
|
</details>
|
|
378
403
|
|
|
379
404
|
<details>
|
|
380
|
-
<summary>Using
|
|
405
|
+
<summary>Using pre-release version (Dev)</summary>
|
|
381
406
|
|
|
382
407
|
Set `ERISPULSE_CHANNEL=dev` to use the pre-release version:
|
|
383
408
|
|
|
@@ -406,29 +431,29 @@ docker pull erispulse/erispulse:dev
|
|
|
406
431
|
<details>
|
|
407
432
|
<summary>Docker Environment Variables</summary>
|
|
408
433
|
|
|
409
|
-
| Variable | Default
|
|
410
|
-
|
|
434
|
+
| Variable | Default | Description |
|
|
435
|
+
|------|--------|------|
|
|
411
436
|
| `ERISPULSE_CHANNEL` | `stable` | Version channel: `stable` (stable) or `dev` (pre-release) |
|
|
412
437
|
| `ERISPULSE_UPDATE_ON_START` | `false` | Whether to automatically update to the latest version when the container starts (must be explicitly enabled) |
|
|
413
438
|
| `ERISPULSE_DASHBOARD_TOKEN` | empty | Dashboard login token |
|
|
414
439
|
| `ERISPULSE_PORT` | `8000` | Dashboard port mapping |
|
|
415
440
|
| `TZ` | `Asia/Shanghai` | Container timezone |
|
|
416
441
|
|
|
417
|
-
> Enabling `ERISPULSE_UPDATE_ON_START=true` ensures that even if the image is
|
|
442
|
+
> Enabling `ERISPULSE_UPDATE_ON_START=true` ensures that even if the image is outdated, the container will automatically fetch the latest version at startup.
|
|
418
443
|
|
|
419
444
|
</details>
|
|
420
445
|
|
|
421
446
|
#### 1Panel App Store
|
|
422
447
|
|
|
423
|
-
Install ErisPulse
|
|
448
|
+
Install ErisPulse one-click via the [1Panel](https://1panel.cn) app store, see [ErisPulse-1Panel](https://github.com/ErisPulse/ErisPulse-1Panel).
|
|
424
449
|
|
|
425
450
|
```bash
|
|
426
451
|
bash <(curl -sL https://get-1panel.erisdev.com/install.sh)
|
|
427
452
|
```
|
|
428
453
|
|
|
429
|
-
ErisPulse is
|
|
454
|
+
ErisPulse is available in the 1Panel third-party app store and can be installed using the [okxlin/appstore](https://github.com/okxlin/appstore) third-party repository.
|
|
430
455
|
|
|
431
|
-
#### Using pip
|
|
456
|
+
#### Using pip to install
|
|
432
457
|
|
|
433
458
|
```bash
|
|
434
459
|
pip install ErisPulse
|
|
@@ -454,7 +479,7 @@ Create a `main.py` file:
|
|
|
454
479
|
<tr>
|
|
455
480
|
<td width="50%" valign="top">
|
|
456
481
|
|
|
457
|
-
**Command
|
|
482
|
+
**Command Handler**
|
|
458
483
|
|
|
459
484
|
```python
|
|
460
485
|
from ErisPulse import sdk
|
|
@@ -477,7 +502,7 @@ if __name__ == "__main__":
|
|
|
477
502
|
</td>
|
|
478
503
|
<td width="50%" valign="top">
|
|
479
504
|
|
|
480
|
-
**Effect
|
|
505
|
+
**Effect Description**
|
|
481
506
|
|
|
482
507
|
Send `/hello`
|
|
483
508
|
|
|
@@ -509,7 +534,7 @@ For more detailed instructions, see:
|
|
|
509
534
|
|
|
510
535
|
#### Multi-turn Conversation Example
|
|
511
536
|
|
|
512
|
-
ErisPulse
|
|
537
|
+
ErisPulse includes a powerful multi-turn conversation engine, easily achieving guided operations, information collection, and other interactive scenarios:
|
|
513
538
|
|
|
514
539
|
```python
|
|
515
540
|
from ErisPulse.Core.Event import command, request
|
|
@@ -529,7 +554,7 @@ async def register_handler(event):
|
|
|
529
554
|
])
|
|
530
555
|
|
|
531
556
|
if data and await conv.confirm(f"Confirm registration? Name: {data['name']}, Age: {data['age']}"):
|
|
532
|
-
# Push
|
|
557
|
+
# Push notification using SendDSL
|
|
533
558
|
await sdk.adapter.get(event.get_platform()).Send.To(
|
|
534
559
|
"user", event.get_user_id()
|
|
535
560
|
).Text(f"Registration successful! Welcome {data['name']}")
|
|
@@ -540,21 +565,21 @@ async def register_handler(event):
|
|
|
540
565
|
async def handle_friend_request(event):
|
|
541
566
|
user_name = event.get_user_nickname() or event.get_user_id()
|
|
542
567
|
|
|
543
|
-
# Approve
|
|
568
|
+
# Approve request
|
|
544
569
|
result = await event.approve()
|
|
545
570
|
if result.get("status") == "ok":
|
|
546
|
-
await event.reply(f"Friend request approved
|
|
571
|
+
await event.reply(f"Friend request automatically approved, welcome {user_name}")
|
|
547
572
|
```
|
|
548
573
|
|
|
549
574
|
<details>
|
|
550
|
-
<summary>See
|
|
575
|
+
<summary>See more Conversation API (branching / selection / persistence)</summary>
|
|
551
576
|
|
|
552
577
|
```python
|
|
553
578
|
@command("quiz")
|
|
554
579
|
async def quiz_handler(event):
|
|
555
580
|
conv = event.conversation(timeout=30)
|
|
556
581
|
|
|
557
|
-
# Multiple
|
|
582
|
+
# Multiple choice question
|
|
558
583
|
answer = await conv.choose("Who is the creator of Python?", [
|
|
559
584
|
"Guido van Rossum",
|
|
560
585
|
"James Gosling",
|
|
@@ -572,10 +597,10 @@ async def quiz_handler(event):
|
|
|
572
597
|
async def menu_handler(event):
|
|
573
598
|
conv = event.conversation(timeout=60)
|
|
574
599
|
|
|
575
|
-
# Branching, building complex
|
|
600
|
+
# Branching, building complex interactive flows
|
|
576
601
|
@conv.branch("main")
|
|
577
602
|
async def main_menu():
|
|
578
|
-
await conv.say("=== Main Menu ===\n1. Personal
|
|
603
|
+
await conv.say("=== Main Menu ===\n1. Personal Information\n2. Settings\n3. Exit")
|
|
579
604
|
resp = await conv.wait()
|
|
580
605
|
if resp and resp.get_text().strip() == "1":
|
|
581
606
|
await conv.goto("profile")
|
|
@@ -601,33 +626,33 @@ See [Conversation Multi-turn Dialogue](docs/en/advanced/conversation.md)
|
|
|
601
626
|
We welcome contributions to adapters!
|
|
602
627
|
|
|
603
628
|
| Adapter | Description |
|
|
604
|
-
|
|
605
|
-
| <img src=".github/assets/adapter_logo/kook.svg" height="20" alt="Kook" /> [Kook](https://github.com/shanfishapp/ErisPulse-KookAdapter) | Kook (
|
|
606
|
-
| <img src=".github/assets/adapter_logo/matrix.svg" height="20" alt="Matrix" /> [Matrix](https://github.com/ErisPulse/ErisPulse-MatrixAdapter) |
|
|
629
|
+
|--------|------|
|
|
630
|
+
| <img src=".github/assets/adapter_logo/kook.svg" height="20" alt="Kook" /> [Kook](https://github.com/shanfishapp/ErisPulse-KookAdapter) | Kook (KaHeLa) instant messaging platform |
|
|
631
|
+
| <img src=".github/assets/adapter_logo/matrix.svg" height="20" alt="Matrix" /> [Matrix](https://github.com/ErisPulse/ErisPulse-MatrixAdapter) | Decentralized communication protocol Matrix |
|
|
607
632
|
| <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot11](https://github.com/ErisPulse/ErisPulse-OneBot11Adapter) | OneBot v11 general robot protocol |
|
|
608
633
|
| <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot12](https://github.com/ErisPulse/ErisPulse-OneBot12Adapter) | OneBot v12 standard protocol |
|
|
609
634
|
| <img src=".github/assets/adapter_logo/qqbot.svg" height="20" alt="QQ" /> [QQ](https://github.com/ErisPulse/ErisPulse-QQBotAdapter) | Official QQ robot platform |
|
|
610
635
|
| <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 |
|
|
611
636
|
| <img src=".github/assets/adapter_logo/telegram.svg" height="20" alt="Telegram" /> [Telegram](https://github.com/ErisPulse/ErisPulse-TelegramAdapter) | Global instant messaging platform |
|
|
612
|
-
| <img src=".github/assets/adapter_logo/email.svg" height="20" alt="Email" /> [Email](https://github.com/ErisPulse/ErisPulse-EmailAdapter) | Email protocol adapter
|
|
637
|
+
| <img src=".github/assets/adapter_logo/email.svg" height="20" alt="Email" /> [Email](https://github.com/ErisPulse/ErisPulse-EmailAdapter) | Email protocol adapter |
|
|
613
638
|
| <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) |
|
|
639
|
+
| <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [Yunhu User](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) | Yunhu user protocol-based adapter |
|
|
615
640
|
| [Flower Maple Café](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
|
|
616
641
|
| <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 |
|
|
617
642
|
| <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 |
|
|
618
|
-
| <img src=".github/assets/adapter_logo/wechatmp.svg" height="20" alt="WechatMp" /> [WeChat Official Account](https://github.com/ErisPulse/ErisPulse-WechatMpAdapter) | Official WeChat
|
|
643
|
+
| <img src=".github/assets/adapter_logo/wechatmp.svg" height="20" alt="WechatMp" /> [WeChat Official Account](https://github.com/ErisPulse/ErisPulse-WechatMpAdapter) | Official WeChat public account platform |
|
|
619
644
|
|
|
620
645
|
See [Adapter Details](docs/en/platform-guide/README.md)
|
|
621
646
|
|
|
622
647
|
---
|
|
623
648
|
|
|
624
|
-
###
|
|
649
|
+
### Use Cases
|
|
625
650
|
|
|
626
651
|
<div align="center">
|
|
627
652
|
|
|
628
|
-
| Multi-platform
|
|
653
|
+
| Multi-platform Bot | Chat Assistant | Automation Tool | Message Forwarding |
|
|
629
654
|
|:---:|:---:|:---:|:---:|
|
|
630
|
-
| Deploy
|
|
655
|
+
| Deploy identical functionality bots across multiple platforms | Integrate AI chat modules for entertainment and interaction | Message notifications, task management, data collection | Cross-platform message synchronization and forwarding |
|
|
631
656
|
|
|
632
657
|
</div>
|
|
633
658
|
|
|
@@ -635,7 +660,7 @@ See [Adapter Details](docs/en/platform-guide/README.md)
|
|
|
635
660
|
|
|
636
661
|
## Community
|
|
637
662
|
|
|
638
|
-
Welcome to join the ErisPulse community and
|
|
663
|
+
Welcome to join the ErisPulse community and build the ecosystem together with developers.
|
|
639
664
|
|
|
640
665
|
### Yunhu
|
|
641
666
|
|
|
@@ -657,11 +682,11 @@ https://t.me/ErisPulse
|
|
|
657
682
|
|
|
658
683
|
### Contribution Guidelines
|
|
659
684
|
|
|
660
|
-
The health of the ErisPulse project still needs your contribution! We welcome
|
|
685
|
+
The health of the ErisPulse project still needs your contribution! We welcome all forms of contributions:
|
|
661
686
|
|
|
662
|
-
1. **Report Issues** — Submit bug reports
|
|
687
|
+
1. **Report Issues** — Submit bug reports on [GitHub Issues](https://github.com/ErisPulse/ErisPulse/issues)
|
|
663
688
|
2. **Feature Requests** — Propose new ideas via [Community Discussions](https://github.com/ErisPulse/ErisPulse/discussions)
|
|
664
|
-
3. **Code Contributions** —
|
|
689
|
+
3. **Code Contributions** — Please read the [Code Style](docs/en/styleguide/) and [Contribution Guidelines](CONTRIBUTING.md) before submitting PRs
|
|
665
690
|
4. **Documentation Improvements** — Help improve documentation and example code
|
|
666
691
|
|
|
667
692
|
[Join Community Discussions](https://github.com/ErisPulse/ErisPulse/discussions)
|
|
@@ -680,9 +705,9 @@ The health of the ErisPulse project still needs your contribution! We welcome co
|
|
|
680
705
|
|
|
681
706
|
<img src=".github/assets/thanks.png" width="200" alt="Thanks" />
|
|
682
707
|
|
|
683
|
-
|
|
708
|
+
Part of this project's code is based on [sdkFrame](https://github.com/runoneall/sdkFrame).
|
|
684
709
|
|
|
685
|
-
The core adapter standardization layer
|
|
710
|
+
The core adapter standardization layer references and benefits from the [OneBot12 specification](https://12.onebot.dev/).
|
|
686
711
|
|
|
687
712
|
Special thanks to the Yunhu ecosystem and community.
|
|
688
713
|
|