ErisPulse 2.1.14.dev2__py3-none-any.whl → 2.1.15.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/__init__.py CHANGED
@@ -10,12 +10,13 @@ ErisPulse SDK 主模块
10
10
  {!--< /tips >!--}
11
11
  """
12
12
 
13
- __version__ = "2.1.14dev1"
13
+ __version__ = "2.1.15-dev.3"
14
14
  __author__ = "ErisPulse"
15
15
 
16
16
  import os
17
17
  import sys
18
18
  import importlib
19
+ import asyncio
19
20
  import inspect
20
21
  import importlib.metadata
21
22
  from typing import Dict, List, Tuple, Type, Any
@@ -23,6 +24,7 @@ from pathlib import Path
23
24
 
24
25
  # BaseModules: SDK核心模块
25
26
  from .Core import logger
27
+ from .Core import storage
26
28
  from .Core import env
27
29
  from .Core import mods
28
30
  from .Core import adapter, AdapterFather, SendDSL
@@ -36,6 +38,7 @@ BaseModules = {
36
38
  "logger": logger,
37
39
  "config": config,
38
40
  "exceptions": exceptions,
41
+ "storage": storage,
39
42
  "env": env,
40
43
  "mods": mods,
41
44
  "adapter": adapter,
@@ -46,8 +49,6 @@ BaseModules = {
46
49
  "BaseAdapter": AdapterFather
47
50
  }
48
51
 
49
- import asyncio
50
-
51
52
  asyncio_loop = asyncio.get_event_loop()
52
53
 
53
54
  exceptions.setup_async_loop(asyncio_loop)
@@ -645,7 +646,12 @@ from ErisPulse import sdk
645
646
 
646
647
  async def main():
647
648
  try:
648
- sdk.init()
649
+ isInit = await sdk.init_task()
650
+
651
+ if not isInit:
652
+ sdk.logger.error("ErisPulse 初始化失败,请检查日志")
653
+ return
654
+
649
655
  await sdk.adapter.startup()
650
656
 
651
657
  # 保持程序运行(不建议修改)
@@ -697,26 +703,29 @@ def init() -> bool:
697
703
  """
698
704
  SDK初始化入口
699
705
 
700
- 执行步骤:
701
- 1. 准备运行环境
702
- 2. 初始化所有模块和适配器
703
-
704
706
  :return: bool SDK初始化是否成功
705
-
706
- {!--< tips >!--}
707
- 1. 这是SDK的主要入口函数
708
- 2. 如果初始化失败会抛出InitError异常
709
- 3. 建议在main.py中调用此函数
710
- {!--< /tips >!--}
711
-
712
- :raises InitError: 当初始化失败时抛出
713
707
  """
714
-
715
708
  if not _prepare_environment():
716
709
  return False
717
-
718
710
  return ModuleInitializer.init()
719
711
 
712
+ def init_task() -> asyncio.Task:
713
+ """
714
+ SDK初始化入口,返回Task对象
715
+
716
+ :return: asyncio.Task 初始化任务
717
+ """
718
+ async def _async_init():
719
+ if not _prepare_environment():
720
+ return False
721
+ return ModuleInitializer.init()
722
+
723
+ try:
724
+ return asyncio.create_task(_async_init())
725
+ except RuntimeError:
726
+ loop = asyncio.new_event_loop()
727
+ asyncio.set_event_loop(loop)
728
+ return loop.create_task(_async_init())
720
729
 
721
730
  def load_module(module_name: str) -> bool:
722
731
  """