ErisPulse 2.5.2.dev1__py3-none-any.whl → 2.5.2.dev3__py3-none-any.whl
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/CLI/i18n/locales/en.py +10 -10
- ErisPulse/CLI/i18n/locales/ja.py +10 -10
- ErisPulse/CLI/i18n/locales/ru.py +10 -10
- ErisPulse/CLI/i18n/locales/zh_cn.py +10 -10
- ErisPulse/CLI/i18n/locales/zh_tw.py +10 -10
- ErisPulse/CLI/utils/package_manager.py +4 -2
- ErisPulse/Core/Event/base.py +36 -19
- ErisPulse/Core/Event/base.pyi +7 -7
- ErisPulse/Core/Event/command.py +2 -2
- ErisPulse/Core/Event/session_type.py +2 -2
- ErisPulse/Core/Event/wrapper.py +73 -38
- ErisPulse/Core/Event/wrapper.pyi +3 -3
- ErisPulse/Core/adapter.py +47 -16
- ErisPulse/Core/adapter.pyi +10 -2
- ErisPulse/Core/client.py +19 -9
- ErisPulse/Core/client.pyi +7 -1
- ErisPulse/Core/config.py +37 -15
- ErisPulse/Core/config.pyi +1 -0
- ErisPulse/Core/constants.py +8 -8
- ErisPulse/Core/i18n/locales/en.py +3 -3
- ErisPulse/Core/i18n/locales/ja.py +3 -3
- ErisPulse/Core/i18n/locales/ru.py +3 -3
- ErisPulse/Core/i18n/locales/zh_cn.py +3 -3
- ErisPulse/Core/i18n/locales/zh_tw.py +3 -3
- ErisPulse/Core/logger.py +155 -32
- ErisPulse/Core/logger.pyi +34 -4
- ErisPulse/Core/module.py +36 -7
- ErisPulse/Core/module.pyi +10 -2
- ErisPulse/Core/router.py +22 -17
- ErisPulse/Core/storage.py +53 -11
- ErisPulse/finders/bases/finder.py +5 -4
- ErisPulse/loaders/bases/loader.py +3 -1
- ErisPulse/loaders/module.py +6 -6
- ErisPulse/loaders/strict.py +1 -1
- ErisPulse/loaders/strict.pyi +1 -1
- {erispulse-2.5.2.dev1.dist-info → erispulse-2.5.2.dev3.dist-info}/METADATA +1 -1
- {erispulse-2.5.2.dev1.dist-info → erispulse-2.5.2.dev3.dist-info}/RECORD +40 -40
- {erispulse-2.5.2.dev1.dist-info → erispulse-2.5.2.dev3.dist-info}/WHEEL +0 -0
- {erispulse-2.5.2.dev1.dist-info → erispulse-2.5.2.dev3.dist-info}/entry_points.txt +0 -0
- {erispulse-2.5.2.dev1.dist-info → erispulse-2.5.2.dev3.dist-info}/licenses/LICENSE +0 -0
ErisPulse/CLI/i18n/locales/en.py
CHANGED
|
@@ -316,18 +316,18 @@ TRANSLATIONS = {
|
|
|
316
316
|
"cli.package.compat_warning_upgrade": "SDK Version Compatibility Warning\nPackage {package} requires minimum SDK version {version}\n{message}\n\nContinuing the upgrade may cause issues.",
|
|
317
317
|
"cli.package.compat_warning_title": "Compatibility Warning",
|
|
318
318
|
"cli.package.installing": "Installing {package}",
|
|
319
|
-
"cli.package.install_success": "
|
|
320
|
-
"cli.package.install_failed": "
|
|
321
|
-
"cli.package.operation_success": "
|
|
322
|
-
"cli.package.operation_failed": "
|
|
319
|
+
"cli.package.install_success": "[OK] Package {package} installed successfully",
|
|
320
|
+
"cli.package.install_failed": "[FAIL] Package {package} installation failed",
|
|
321
|
+
"cli.package.operation_success": "[OK] {description} succeeded",
|
|
322
|
+
"cli.package.operation_failed": "[FAIL] {description} failed",
|
|
323
323
|
"cli.package.alias_mapping": " Alias mapping: {alias} → {package}",
|
|
324
324
|
"cli.package.installed_package_found": " Found installed package: {package}",
|
|
325
325
|
"cli.package.uninstall_alias_not_found": " No alias found, attempting direct uninstall: {package}",
|
|
326
326
|
"cli.package.confirm_uninstall": "Confirm uninstall the following packages?\n{packages}",
|
|
327
327
|
"cli.package.operation_cancelled": " Operation cancelled",
|
|
328
328
|
"cli.package.uninstalling": "Uninstalling {package}",
|
|
329
|
-
"cli.package.uninstall_success": "
|
|
330
|
-
"cli.package.uninstall_failed": "
|
|
329
|
+
"cli.package.uninstall_success": "[OK] Package {package} uninstalled successfully",
|
|
330
|
+
"cli.package.uninstall_failed": "[FAIL] Package {package} uninstall failed",
|
|
331
331
|
"cli.package.all_up_to_date": "All ErisPulse packages are up to date",
|
|
332
332
|
"cli.package.updates_found": "Found {count} package(s) to upgrade:",
|
|
333
333
|
"cli.package.upgrade_list_title": "Upgrade List",
|
|
@@ -344,8 +344,8 @@ TRANSLATIONS = {
|
|
|
344
344
|
"cli.package.confirm_upgrade": "Continue with upgrade?",
|
|
345
345
|
"cli.package.upgrade_cancelled": "Upgrade cancelled",
|
|
346
346
|
"cli.package.upgrading": "Upgrading {package}",
|
|
347
|
-
"cli.package.upgrade_success": "
|
|
348
|
-
"cli.package.upgrade_failed": "
|
|
347
|
+
"cli.package.upgrade_success": "[OK] Package {package} upgraded successfully",
|
|
348
|
+
"cli.package.upgrade_failed": "[FAIL] Package {package} upgrade failed",
|
|
349
349
|
"cli.package.pypi_versions_failed": "Failed to fetch PyPI version info",
|
|
350
350
|
"cli.package.already_target_version": "Already at target version {version}",
|
|
351
351
|
"cli.package.invalid_version": "Invalid version number: {version}",
|
|
@@ -354,7 +354,7 @@ TRANSLATIONS = {
|
|
|
354
354
|
"cli.package.update_desc_with_version": "Updating ErisPulse SDK to {version}",
|
|
355
355
|
"cli.package.update_desc_latest": "Updating ErisPulse SDK to the latest version",
|
|
356
356
|
"cli.package.latest_version": "latest version",
|
|
357
|
-
"cli.package.sdk_update_success": "
|
|
357
|
+
"cli.package.sdk_update_success": "[OK] ErisPulse SDK updated successfully: {old} → {new}",
|
|
358
358
|
"cli.package.restart_cli": "Please restart the CLI to use the new version",
|
|
359
|
-
"cli.package.sdk_update_failed": "
|
|
359
|
+
"cli.package.sdk_update_failed": "[FAIL] ErisPulse SDK update failed",
|
|
360
360
|
}
|
ErisPulse/CLI/i18n/locales/ja.py
CHANGED
|
@@ -316,18 +316,18 @@ TRANSLATIONS = {
|
|
|
316
316
|
"cli.package.compat_warning_upgrade": "SDK バージョン互換性警告\nパッケージ {package} は最小 SDK バージョン {version} が必要です\n{message}\n\nアップグレードを続行すると問題が発生する可能性があります。",
|
|
317
317
|
"cli.package.compat_warning_title": "互換性警告",
|
|
318
318
|
"cli.package.installing": "インストール中 {package}",
|
|
319
|
-
"cli.package.install_success": "
|
|
320
|
-
"cli.package.install_failed": "
|
|
321
|
-
"cli.package.operation_success": "
|
|
322
|
-
"cli.package.operation_failed": "
|
|
319
|
+
"cli.package.install_success": "[OK] パッケージ {package} のインストールに成功しました",
|
|
320
|
+
"cli.package.install_failed": "[FAIL] パッケージ {package} のインストールに失敗しました",
|
|
321
|
+
"cli.package.operation_success": "[OK] {description} 成功",
|
|
322
|
+
"cli.package.operation_failed": "[FAIL] {description} 失敗",
|
|
323
323
|
"cli.package.alias_mapping": " エイリアスマッピング: {alias} → {package}",
|
|
324
324
|
"cli.package.installed_package_found": " インストール済みパッケージが見つかりました: {package}",
|
|
325
325
|
"cli.package.uninstall_alias_not_found": " エイリアスが見つかりません。直接アンインストールを試みます: {package}",
|
|
326
326
|
"cli.package.confirm_uninstall": "以下のパッケージをアンインストールしますか?\n{packages}",
|
|
327
327
|
"cli.package.operation_cancelled": " 操作がキャンセルされました",
|
|
328
328
|
"cli.package.uninstalling": "アンインストール中 {package}",
|
|
329
|
-
"cli.package.uninstall_success": "
|
|
330
|
-
"cli.package.uninstall_failed": "
|
|
329
|
+
"cli.package.uninstall_success": "[OK] パッケージ {package} のアンインストールに成功しました",
|
|
330
|
+
"cli.package.uninstall_failed": "[FAIL] パッケージ {package} のアンインストールに失敗しました",
|
|
331
331
|
"cli.package.all_up_to_date": "すべての ErisPulse パッケージは最新です",
|
|
332
332
|
"cli.package.updates_found": "{count} 個のアップグレード可能なパッケージが見つかりました:",
|
|
333
333
|
"cli.package.upgrade_list_title": "アップグレードリスト",
|
|
@@ -344,8 +344,8 @@ TRANSLATIONS = {
|
|
|
344
344
|
"cli.package.confirm_upgrade": "アップグレードを続行しますか?",
|
|
345
345
|
"cli.package.upgrade_cancelled": "アップグレードがキャンセルされました",
|
|
346
346
|
"cli.package.upgrading": "アップグレード中 {package}",
|
|
347
|
-
"cli.package.upgrade_success": "
|
|
348
|
-
"cli.package.upgrade_failed": "
|
|
347
|
+
"cli.package.upgrade_success": "[OK] パッケージ {package} のアップグレードに成功しました",
|
|
348
|
+
"cli.package.upgrade_failed": "[FAIL] パッケージ {package} のアップグレードに失敗しました",
|
|
349
349
|
"cli.package.pypi_versions_failed": "PyPI バージョン情報の取得に失敗しました",
|
|
350
350
|
"cli.package.already_target_version": "すでにターゲットバージョン {version} です",
|
|
351
351
|
"cli.package.invalid_version": "無効なバージョン番号: {version}",
|
|
@@ -354,7 +354,7 @@ TRANSLATIONS = {
|
|
|
354
354
|
"cli.package.update_desc_with_version": "ErisPulse SDK を {version} に更新中",
|
|
355
355
|
"cli.package.update_desc_latest": "ErisPulse SDK を最新バージョンに更新中",
|
|
356
356
|
"cli.package.latest_version": "最新バージョン",
|
|
357
|
-
"cli.package.sdk_update_success": "
|
|
357
|
+
"cli.package.sdk_update_success": "[OK] ErisPulse SDK の更新に成功しました: {old} → {new}",
|
|
358
358
|
"cli.package.restart_cli": "新しいバージョンを使用するには CLI を再起動してください",
|
|
359
|
-
"cli.package.sdk_update_failed": "
|
|
359
|
+
"cli.package.sdk_update_failed": "[FAIL] ErisPulse SDK の更新に失敗しました",
|
|
360
360
|
}
|
ErisPulse/CLI/i18n/locales/ru.py
CHANGED
|
@@ -316,18 +316,18 @@ TRANSLATIONS = {
|
|
|
316
316
|
"cli.package.compat_warning_upgrade": "Предупреждение о совместимости версии SDK\nПакет {package} требует минимальную версию SDK {version}\n{message}\n\nПродолжение обновления может вызвать проблемы.",
|
|
317
317
|
"cli.package.compat_warning_title": "Предупреждение о совместимости",
|
|
318
318
|
"cli.package.installing": "Установка {package}",
|
|
319
|
-
"cli.package.install_success": "
|
|
320
|
-
"cli.package.install_failed": "
|
|
321
|
-
"cli.package.operation_success": "
|
|
322
|
-
"cli.package.operation_failed": "
|
|
319
|
+
"cli.package.install_success": "[OK] Пакет {package} успешно установлен",
|
|
320
|
+
"cli.package.install_failed": "[FAIL] Ошибка установки пакета {package}",
|
|
321
|
+
"cli.package.operation_success": "[OK] {description} выполнено",
|
|
322
|
+
"cli.package.operation_failed": "[FAIL] {description} не удалось",
|
|
323
323
|
"cli.package.alias_mapping": " Сопоставление псевдонима: {alias} → {package}",
|
|
324
324
|
"cli.package.installed_package_found": " Найден установленный пакет: {package}",
|
|
325
325
|
"cli.package.uninstall_alias_not_found": " Псевдоним не найден, попытка прямого удаления: {package}",
|
|
326
326
|
"cli.package.confirm_uninstall": "Подтвердить удаление следующих пакетов?\n{packages}",
|
|
327
327
|
"cli.package.operation_cancelled": " Операция отменена",
|
|
328
328
|
"cli.package.uninstalling": "Удаление {package}",
|
|
329
|
-
"cli.package.uninstall_success": "
|
|
330
|
-
"cli.package.uninstall_failed": "
|
|
329
|
+
"cli.package.uninstall_success": "[OK] Пакет {package} успешно удалён",
|
|
330
|
+
"cli.package.uninstall_failed": "[FAIL] Ошибка удаления пакета {package}",
|
|
331
331
|
"cli.package.all_up_to_date": "Все пакеты ErisPulse обновлены до последней версии",
|
|
332
332
|
"cli.package.updates_found": "Найдено пакетов для обновления: {count}",
|
|
333
333
|
"cli.package.upgrade_list_title": "Список обновлений",
|
|
@@ -344,8 +344,8 @@ TRANSLATIONS = {
|
|
|
344
344
|
"cli.package.confirm_upgrade": "Продолжить обновление?",
|
|
345
345
|
"cli.package.upgrade_cancelled": "Обновление отменено",
|
|
346
346
|
"cli.package.upgrading": "Обновление {package}",
|
|
347
|
-
"cli.package.upgrade_success": "
|
|
348
|
-
"cli.package.upgrade_failed": "
|
|
347
|
+
"cli.package.upgrade_success": "[OK] Пакет {package} успешно обновлён",
|
|
348
|
+
"cli.package.upgrade_failed": "[FAIL] Ошибка обновления пакета {package}",
|
|
349
349
|
"cli.package.pypi_versions_failed": "Не удалось получить информацию о версиях PyPI",
|
|
350
350
|
"cli.package.already_target_version": "Уже установлена целевая версия {version}",
|
|
351
351
|
"cli.package.invalid_version": "Недопустимый номер версии: {version}",
|
|
@@ -354,7 +354,7 @@ TRANSLATIONS = {
|
|
|
354
354
|
"cli.package.update_desc_with_version": "Обновление ErisPulse SDK до {version}",
|
|
355
355
|
"cli.package.update_desc_latest": "Обновление ErisPulse SDK до последней версии",
|
|
356
356
|
"cli.package.latest_version": "последняя версия",
|
|
357
|
-
"cli.package.sdk_update_success": "
|
|
357
|
+
"cli.package.sdk_update_success": "[OK] ErisPulse SDK успешно обновлён: {old} → {new}",
|
|
358
358
|
"cli.package.restart_cli": "Пожалуйста, перезапустите CLI, чтобы использовать новую версию",
|
|
359
|
-
"cli.package.sdk_update_failed": "
|
|
359
|
+
"cli.package.sdk_update_failed": "[FAIL] Ошибка обновления ErisPulse SDK",
|
|
360
360
|
}
|
|
@@ -316,18 +316,18 @@ TRANSLATIONS = {
|
|
|
316
316
|
"cli.package.compat_warning_upgrade": "SDK版本兼容性警告\n包 {package} 需要最低SDK版本 {version}\n{message}\n\n继续升级可能会导致问题。",
|
|
317
317
|
"cli.package.compat_warning_title": "兼容性警告",
|
|
318
318
|
"cli.package.installing": "安装 {package}",
|
|
319
|
-
"cli.package.install_success": "
|
|
320
|
-
"cli.package.install_failed": "
|
|
321
|
-
"cli.package.operation_success": "
|
|
322
|
-
"cli.package.operation_failed": "
|
|
319
|
+
"cli.package.install_success": "[OK] 包 {package} 安装成功",
|
|
320
|
+
"cli.package.install_failed": "[FAIL] 包 {package} 安装失败",
|
|
321
|
+
"cli.package.operation_success": "[OK] {description} 成功",
|
|
322
|
+
"cli.package.operation_failed": "[FAIL] {description} 失败",
|
|
323
323
|
"cli.package.alias_mapping": " 别名映射: {alias} → {package}",
|
|
324
324
|
"cli.package.installed_package_found": " 找到已安装包: {package}",
|
|
325
325
|
"cli.package.uninstall_alias_not_found": " 未找到别名,将尝试直接卸载: {package}",
|
|
326
326
|
"cli.package.confirm_uninstall": "确认卸载以下包吗?\n{packages}",
|
|
327
327
|
"cli.package.operation_cancelled": " 操作已取消",
|
|
328
328
|
"cli.package.uninstalling": "卸载 {package}",
|
|
329
|
-
"cli.package.uninstall_success": "
|
|
330
|
-
"cli.package.uninstall_failed": "
|
|
329
|
+
"cli.package.uninstall_success": "[OK] 包 {package} 卸载成功",
|
|
330
|
+
"cli.package.uninstall_failed": "[FAIL] 包 {package} 卸载失败",
|
|
331
331
|
"cli.package.all_up_to_date": "所有ErisPulse包已是最新版本",
|
|
332
332
|
"cli.package.updates_found": "找到 {count} 个可升级的包:",
|
|
333
333
|
"cli.package.upgrade_list_title": "升级列表",
|
|
@@ -344,8 +344,8 @@ TRANSLATIONS = {
|
|
|
344
344
|
"cli.package.confirm_upgrade": "是否继续升级?",
|
|
345
345
|
"cli.package.upgrade_cancelled": "已取消升级",
|
|
346
346
|
"cli.package.upgrading": "升级 {package}",
|
|
347
|
-
"cli.package.upgrade_success": "
|
|
348
|
-
"cli.package.upgrade_failed": "
|
|
347
|
+
"cli.package.upgrade_success": "[OK] 包 {package} 升级成功",
|
|
348
|
+
"cli.package.upgrade_failed": "[FAIL] 包 {package} 升级失败",
|
|
349
349
|
"cli.package.pypi_versions_failed": "获取PyPI版本信息失败",
|
|
350
350
|
"cli.package.already_target_version": "当前已是目标版本 {version}",
|
|
351
351
|
"cli.package.invalid_version": "无效的版本号: {version}",
|
|
@@ -354,7 +354,7 @@ TRANSLATIONS = {
|
|
|
354
354
|
"cli.package.update_desc_with_version": "更新 ErisPulse SDK 到 {version}",
|
|
355
355
|
"cli.package.update_desc_latest": "更新 ErisPulse SDK 到最新版本",
|
|
356
356
|
"cli.package.latest_version": "最新版本",
|
|
357
|
-
"cli.package.sdk_update_success": "
|
|
357
|
+
"cli.package.sdk_update_success": "[OK] ErisPulse SDK 更新成功: {old} → {new}",
|
|
358
358
|
"cli.package.restart_cli": "请重新启动CLI以使用新版本",
|
|
359
|
-
"cli.package.sdk_update_failed": "
|
|
359
|
+
"cli.package.sdk_update_failed": "[FAIL] ErisPulse SDK 更新失败",
|
|
360
360
|
}
|
|
@@ -316,18 +316,18 @@ TRANSLATIONS = {
|
|
|
316
316
|
"cli.package.compat_warning_upgrade": "SDK版本相容性警告\n包 {package} 需要最低SDK版本 {version}\n{message}\n\n繼續升級可能會導致問題。",
|
|
317
317
|
"cli.package.compat_warning_title": "相容性警告",
|
|
318
318
|
"cli.package.installing": "安裝 {package}",
|
|
319
|
-
"cli.package.install_success": "
|
|
320
|
-
"cli.package.install_failed": "
|
|
321
|
-
"cli.package.operation_success": "
|
|
322
|
-
"cli.package.operation_failed": "
|
|
319
|
+
"cli.package.install_success": "[OK] 包 {package} 安裝成功",
|
|
320
|
+
"cli.package.install_failed": "[FAIL] 包 {package} 安裝失敗",
|
|
321
|
+
"cli.package.operation_success": "[OK] {description} 成功",
|
|
322
|
+
"cli.package.operation_failed": "[FAIL] {description} 失敗",
|
|
323
323
|
"cli.package.alias_mapping": " 別名對映: {alias} → {package}",
|
|
324
324
|
"cli.package.installed_package_found": " 找到已安裝包: {package}",
|
|
325
325
|
"cli.package.uninstall_alias_not_found": " 未找到別名,將嘗試直接解除安裝: {package}",
|
|
326
326
|
"cli.package.confirm_uninstall": "確認解除安裝以下包嗎?\n{packages}",
|
|
327
327
|
"cli.package.operation_cancelled": " 操作已取消",
|
|
328
328
|
"cli.package.uninstalling": "解除安裝 {package}",
|
|
329
|
-
"cli.package.uninstall_success": "
|
|
330
|
-
"cli.package.uninstall_failed": "
|
|
329
|
+
"cli.package.uninstall_success": "[OK] 包 {package} 解除安裝成功",
|
|
330
|
+
"cli.package.uninstall_failed": "[FAIL] 包 {package} 解除安裝失敗",
|
|
331
331
|
"cli.package.all_up_to_date": "所有ErisPulse包已是最新版本",
|
|
332
332
|
"cli.package.updates_found": "找到 {count} 個可升級的包:",
|
|
333
333
|
"cli.package.upgrade_list_title": "升級列表",
|
|
@@ -344,8 +344,8 @@ TRANSLATIONS = {
|
|
|
344
344
|
"cli.package.confirm_upgrade": "是否繼續升級?",
|
|
345
345
|
"cli.package.upgrade_cancelled": "已取消升級",
|
|
346
346
|
"cli.package.upgrading": "升級 {package}",
|
|
347
|
-
"cli.package.upgrade_success": "
|
|
348
|
-
"cli.package.upgrade_failed": "
|
|
347
|
+
"cli.package.upgrade_success": "[OK] 包 {package} 升級成功",
|
|
348
|
+
"cli.package.upgrade_failed": "[FAIL] 包 {package} 升級失敗",
|
|
349
349
|
"cli.package.pypi_versions_failed": "取得PyPI版本資訊失敗",
|
|
350
350
|
"cli.package.already_target_version": "當前已是目標版本 {version}",
|
|
351
351
|
"cli.package.invalid_version": "無效的版本號: {version}",
|
|
@@ -354,7 +354,7 @@ TRANSLATIONS = {
|
|
|
354
354
|
"cli.package.update_desc_with_version": "更新 ErisPulse SDK 到 {version}",
|
|
355
355
|
"cli.package.update_desc_latest": "更新 ErisPulse SDK 到最新版本",
|
|
356
356
|
"cli.package.latest_version": "最新版本",
|
|
357
|
-
"cli.package.sdk_update_success": "
|
|
357
|
+
"cli.package.sdk_update_success": "[OK] ErisPulse SDK 更新成功: {old} → {new}",
|
|
358
358
|
"cli.package.restart_cli": "請重新啟動CLI以使用新版本",
|
|
359
|
-
"cli.package.sdk_update_failed": "
|
|
359
|
+
"cli.package.sdk_update_failed": "[FAIL] ErisPulse SDK 更新失敗",
|
|
360
360
|
}
|
|
@@ -381,6 +381,8 @@ class PackageManager:
|
|
|
381
381
|
:param name: [str] 原始名称
|
|
382
382
|
:return: [str] 标准化后的名称
|
|
383
383
|
"""
|
|
384
|
+
if not name:
|
|
385
|
+
return ""
|
|
384
386
|
return name.lower().strip()
|
|
385
387
|
|
|
386
388
|
async def _find_package_by_alias(self, alias: str) -> Optional[str]:
|
|
@@ -494,7 +496,7 @@ class PackageManager:
|
|
|
494
496
|
:param force_refresh: [bool] 是否强制刷新缓存 (默认: False)
|
|
495
497
|
:return: [Optional[str]] 最新版本号,失败时返回 None
|
|
496
498
|
"""
|
|
497
|
-
cache_key = package_name.lower()
|
|
499
|
+
cache_key = (package_name or "").lower()
|
|
498
500
|
if not force_refresh and cache_key in self._pypi_cache:
|
|
499
501
|
if time.time() - self._pypi_cache_time[cache_key] < self.CACHE_EXPIRY:
|
|
500
502
|
return self._pypi_cache[cache_key]
|
|
@@ -621,7 +623,7 @@ class PackageManager:
|
|
|
621
623
|
proxy_hint = f" [dim](proxy: {safe_proxy})[/]"
|
|
622
624
|
|
|
623
625
|
console.print(
|
|
624
|
-
f"\n[bold blue]
|
|
626
|
+
f"\n[bold blue][*] {description}[/] [dim]({backend})[/]{proxy_hint}"
|
|
625
627
|
)
|
|
626
628
|
console.print("[dim]─────────────────────────────────────────────────[/]")
|
|
627
629
|
|
ErisPulse/Core/Event/base.py
CHANGED
|
@@ -9,19 +9,24 @@ ErisPulse 事件处理基础模块
|
|
|
9
9
|
{!--< /tips >!--}
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
-
from .. import adapter, logger
|
|
13
|
-
from ...runtime import get_event_config
|
|
14
|
-
from ...runtime.context import current_owner, handler_waits
|
|
15
|
-
from ..constants import DEFAULT_HANDLER_PRIORITY, UNKNOWN_PLATFORM, EVENT_TYPE_MESSAGE, HANDLER_SLOW_THRESHOLD_SECS
|
|
16
|
-
from typing import Any
|
|
17
|
-
from collections.abc import Callable
|
|
18
12
|
import asyncio
|
|
19
13
|
import inspect
|
|
20
14
|
import time as _time
|
|
15
|
+
from collections.abc import Callable
|
|
21
16
|
from itertools import groupby
|
|
22
|
-
from
|
|
23
|
-
from ..lifecycle import lifecycle
|
|
17
|
+
from typing import Any
|
|
24
18
|
|
|
19
|
+
from ...runtime import get_event_config
|
|
20
|
+
from ...runtime.context import current_owner, handler_waits
|
|
21
|
+
from .. import adapter, logger
|
|
22
|
+
from ..constants import (
|
|
23
|
+
DEFAULT_HANDLER_PRIORITY,
|
|
24
|
+
EVENT_TYPE_MESSAGE,
|
|
25
|
+
HANDLER_SLOW_THRESHOLD_SECS,
|
|
26
|
+
UNKNOWN_PLATFORM,
|
|
27
|
+
)
|
|
28
|
+
from ..lifecycle import lifecycle
|
|
29
|
+
from .wrapper import Event
|
|
25
30
|
|
|
26
31
|
_sentinel = object()
|
|
27
32
|
|
|
@@ -35,7 +40,9 @@ async def _invoke_handler(handler_info: dict, event: Event) -> None:
|
|
|
35
40
|
:param event: 事件对象
|
|
36
41
|
"""
|
|
37
42
|
handler = handler_info["func"]
|
|
38
|
-
_hname = getattr(
|
|
43
|
+
_hname = getattr(
|
|
44
|
+
handler, "__qualname__", getattr(handler, "__name__", str(handler))
|
|
45
|
+
)
|
|
39
46
|
_owner = handler_info.get("owner") or current_owner.get()
|
|
40
47
|
|
|
41
48
|
# 切换到本 handler 的局部 wait 记录器。
|
|
@@ -76,7 +83,7 @@ async def _invoke_handler(handler_info: dict, event: Event) -> None:
|
|
|
76
83
|
f"waits=[{_wait_keys}]){_owner_tag}"
|
|
77
84
|
)
|
|
78
85
|
else:
|
|
79
|
-
logger.
|
|
86
|
+
logger.trace(
|
|
80
87
|
f"[EventHandler] {_hname} took {_elapsed:.4f}s "
|
|
81
88
|
f"(wait_reply={_wait_total:.4f}s, pure={_pure:.4f}s) "
|
|
82
89
|
f"interactive-wait, suppressed slow-warning{_owner_tag}"
|
|
@@ -118,7 +125,10 @@ class BaseEventHandler:
|
|
|
118
125
|
self._linked_to_adapter_bus: bool = False
|
|
119
126
|
|
|
120
127
|
def register(
|
|
121
|
-
self,
|
|
128
|
+
self,
|
|
129
|
+
handler: Callable,
|
|
130
|
+
priority: int = DEFAULT_HANDLER_PRIORITY,
|
|
131
|
+
condition: Callable = None,
|
|
122
132
|
):
|
|
123
133
|
"""
|
|
124
134
|
注册事件处理器
|
|
@@ -141,7 +151,7 @@ class BaseEventHandler:
|
|
|
141
151
|
if self.event_type and not self._linked_to_adapter_bus:
|
|
142
152
|
adapter.on(self.event_type)(self._process_event)
|
|
143
153
|
self._linked_to_adapter_bus = True
|
|
144
|
-
logger.
|
|
154
|
+
logger.trace(
|
|
145
155
|
f"[Event] 已注册事件处理器: {self.event_type}, Called by: {self.module_name}, Owner: {current_owner.get() or 'N/A'}"
|
|
146
156
|
)
|
|
147
157
|
|
|
@@ -172,10 +182,14 @@ class BaseEventHandler:
|
|
|
172
182
|
self._handler_map = {id(h["func"]): h for h in self.handlers}
|
|
173
183
|
removed = before - len(self.handlers)
|
|
174
184
|
if removed > 0:
|
|
175
|
-
logger.
|
|
185
|
+
logger.trace(
|
|
186
|
+
f"[Event] 已清理 {owner} 的 {removed} 个 {self.event_type} 处理器"
|
|
187
|
+
)
|
|
176
188
|
return removed
|
|
177
189
|
|
|
178
|
-
def __call__(
|
|
190
|
+
def __call__(
|
|
191
|
+
self, priority: int = DEFAULT_HANDLER_PRIORITY, condition: Callable = None
|
|
192
|
+
):
|
|
179
193
|
"""
|
|
180
194
|
装饰器方式注册事件处理器
|
|
181
195
|
|
|
@@ -204,11 +218,14 @@ class BaseEventHandler:
|
|
|
204
218
|
event = Event(event)
|
|
205
219
|
|
|
206
220
|
# 钩子: 事件预处理
|
|
207
|
-
await lifecycle.emit(
|
|
208
|
-
"
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
221
|
+
await lifecycle.emit(
|
|
222
|
+
"event.pre_process",
|
|
223
|
+
{
|
|
224
|
+
"event_type": self.event_type,
|
|
225
|
+
"platform": event.get("platform", UNKNOWN_PLATFORM),
|
|
226
|
+
"detail_type": event.get("detail_type", "unknown"),
|
|
227
|
+
},
|
|
228
|
+
)
|
|
212
229
|
|
|
213
230
|
# 忽略自己发送的消息
|
|
214
231
|
if self.event_type == EVENT_TYPE_MESSAGE:
|
ErisPulse/Core/Event/base.pyi
CHANGED
|
@@ -15,18 +15,18 @@ ErisPulse 事件处理基础模块
|
|
|
15
15
|
{!--< /tips >!--}
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
|
-
from .. import adapter, logger
|
|
19
|
-
from ...runtime import get_event_config
|
|
20
|
-
from ...runtime.context import current_owner, handler_waits
|
|
21
|
-
from ..constants import DEFAULT_HANDLER_PRIORITY, UNKNOWN_PLATFORM, EVENT_TYPE_MESSAGE, HANDLER_SLOW_THRESHOLD_SECS
|
|
22
|
-
from typing import Any
|
|
23
|
-
from collections.abc import Callable
|
|
24
18
|
import asyncio
|
|
25
19
|
import inspect
|
|
26
20
|
import time as _time
|
|
21
|
+
from collections.abc import Callable
|
|
27
22
|
from itertools import groupby
|
|
28
|
-
from
|
|
23
|
+
from typing import Any
|
|
24
|
+
from ...runtime import get_event_config
|
|
25
|
+
from ...runtime.context import current_owner, handler_waits
|
|
26
|
+
from .. import adapter, logger
|
|
27
|
+
from ..constants import DEFAULT_HANDLER_PRIORITY, EVENT_TYPE_MESSAGE, HANDLER_SLOW_THRESHOLD_SECS, UNKNOWN_PLATFORM
|
|
29
28
|
from ..lifecycle import lifecycle
|
|
29
|
+
from .wrapper import Event
|
|
30
30
|
|
|
31
31
|
class BaseEventHandler:
|
|
32
32
|
"""
|
ErisPulse/Core/Event/command.py
CHANGED
|
@@ -231,7 +231,7 @@ class CommandHandler:
|
|
|
231
231
|
if to_remove:
|
|
232
232
|
from ..logger import logger as _logger
|
|
233
233
|
|
|
234
|
-
_logger.
|
|
234
|
+
_logger.trace(
|
|
235
235
|
f"[Command] 已清理 {owner} 的 {len(to_remove)} 个命令: {to_remove}"
|
|
236
236
|
)
|
|
237
237
|
return len(to_remove)
|
|
@@ -329,7 +329,7 @@ class CommandHandler:
|
|
|
329
329
|
# 清理超时的等待
|
|
330
330
|
if wait_key in self._waiting_replies:
|
|
331
331
|
del self._waiting_replies[wait_key]
|
|
332
|
-
logger.
|
|
332
|
+
logger.trace(f"wait_reply 超时: key={wait_key}, timeout={timeout}s")
|
|
333
333
|
return None
|
|
334
334
|
except Exception as e:
|
|
335
335
|
# 清理异常情况
|
|
@@ -123,7 +123,7 @@ def register_custom_type(
|
|
|
123
123
|
_custom_receive_to_send[receive_type_key] = send_type
|
|
124
124
|
_custom_send_to_receive[send_type] = receive_type_key
|
|
125
125
|
|
|
126
|
-
logger.
|
|
126
|
+
logger.trace(
|
|
127
127
|
f"已注册自定义会话类型: {receive_type_key} → {send_type} (ID字段: {id_field})"
|
|
128
128
|
)
|
|
129
129
|
return True
|
|
@@ -155,7 +155,7 @@ def unregister_custom_type(receive_type: str, platform: str | None = None) -> bo
|
|
|
155
155
|
del _custom_receive_to_send[receive_type_key]
|
|
156
156
|
del _custom_send_to_receive[send_type]
|
|
157
157
|
|
|
158
|
-
logger.
|
|
158
|
+
logger.trace(f"已注销自定义会话类型: {receive_type_key}")
|
|
159
159
|
return True
|
|
160
160
|
return False
|
|
161
161
|
except Exception as e:
|