ErisPulse 1.1.16__py3-none-any.whl → 1.2.0__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
@@ -87,12 +87,67 @@ for error, doc in BaseErrors.items():
87
87
  raiserr.register(error, doc=doc)
88
88
  except Exception as e:
89
89
  raise e
90
+ def init_progress():
91
+ from pathlib import Path
92
+ env_file = Path("env.py")
93
+ main_file = Path("main.py")
94
+
95
+ if not env_file.exists():
96
+ content = '''# env.py
97
+ # ErisPulse 环境配置文件
98
+ # 本文件由 SDK 自动创建,请勿随意删除
99
+ # 配置项可通过 sdk.env.get(key, default) 获取,或使用 sdk.env.set(key, value) 设置
100
+ # 你也可以像写普通变量一样直接定义配置项,例如:
101
+ #
102
+ # MY_CONFIG = "value"
103
+ # MY_CONFIG_2 = {"key": "value"}
104
+ # MY_CONFIG_3 = [1, 2, 3]
105
+ #
106
+ # sdk.env.set("MY_CONFIG", "value")
107
+ # sdk.env.set("MY_CONFIG_2", {"key": "value"})
108
+ # sdk.env.set("MY_CONFIG_3", [1, 2, 3])
109
+ #
110
+ # 这些变量会自动被加载到 SDK 的配置系统中,可通过 sdk.env.MY_CONFIG 或 sdk.env.get("MY_CONFIG") 访问。
111
+
112
+ from ErisPulse import sdk
113
+ '''
114
+ if not main_file.exists():
115
+ content += '''# main.py
116
+ # ErisPulse 主程序文件
117
+ # 本文件由 SDK 自动创建,您可随意修改
118
+
119
+ from ErisPulse import sdk
120
+
121
+ async def main():
122
+ try:
123
+ sdk.init()
124
+ await sdk.adapter.startup()
125
+
126
+ except Exception as e:
127
+ sdk.logger.error(e)
128
+ except KeyboardInterrupt:
129
+ sdk.logger.info("正在停止程序")
130
+ finally:
131
+ await sdk.shutdown()
132
+
133
+ if __name__ == "__main__":
134
+ asyncio.run(main())
135
+ '''
136
+ try:
137
+ with open(env_file, "w", encoding="utf-8") as f:
138
+ f.write(content)
139
+ return True
140
+ except Exception as e:
141
+ from . import sdk
142
+ sdk.logger.error(f"无法初始化项目环境: {e}")
143
+ return False
144
+ return False
90
145
 
91
146
  def _prepare_environment() -> bool:
92
147
  # 检查环境
93
148
  logger.info("[Init] 准备初始化环境...")
94
149
  try:
95
- if env.create_env_file_if_not_exists():
150
+ if init_progress():
96
151
  logger.info("[Init] 项目首次初始化,建议先配置环境变量")
97
152
  if input("是否立即退出?(y/n): ").strip().lower() == "y":
98
153
  return False
ErisPulse/__main__.py CHANGED
@@ -551,29 +551,27 @@ def install_pip_dependencies(dependencies):
551
551
  return False
552
552
 
553
553
  def install_local_module(module_path, force=False):
554
- """安装本地目录中的模块"""
555
- module_path = os.path.abspath(module_path)
556
- if not os.path.exists(module_path):
557
- shellprint.panel(f"路径不存在: {module_path}", "错误", "error")
558
- return False
559
-
560
- # 尝试从目录名获取模块名
561
- module_name = os.path.basename(module_path.rstrip('/\\'))
562
-
563
- # 检查是否是有效的模块目录
564
- init_py = os.path.join(module_path, '__init__.py')
565
- if not os.path.exists(init_py):
566
- shellprint.panel(f"目录 {module_path} 不是一个有效的Python模块", "错误", "error")
567
- return False
568
-
569
- # 尝试导入模块获取moduleInfo
570
554
  try:
571
- spec = importlib.util.spec_from_file_location(module_name, init_py)
572
- module = importlib.util.module_from_spec(spec)
573
- spec.loader.exec_module(module)
574
- if not hasattr(module, 'moduleInfo'):
575
- shellprint.panel(f"模块 {module_name} 缺少 moduleInfo 定义", "错误", "error")
555
+ module_path = os.path.abspath(module_path)
556
+ if not os.path.exists(module_path):
557
+ shellprint.panel(f"路径不存在: {module_path}", "错误", "error")
576
558
  return False
559
+
560
+ module_name = os.path.basename(module_path.rstrip('/\\'))
561
+ init_py = os.path.join(module_path, '__init__.py')
562
+
563
+ if not os.path.exists(init_py):
564
+ shellprint.panel(f"目录 {module_path} 不是一个有效的Python模块", "错误", "error")
565
+ return False
566
+ import sys
567
+ sys.path.insert(0, os.path.dirname(module_path))
568
+ try:
569
+ module = importlib.import_module(module_name)
570
+ if not hasattr(module, 'moduleInfo'):
571
+ shellprint.panel(f"模块 {module_name} 缺少 moduleInfo 定义", "错误", "error")
572
+ return False
573
+ finally:
574
+ sys.path.remove(os.path.dirname(module_path))
577
575
  except Exception as e:
578
576
  shellprint.panel(f"导入模块 {module_name} 失败: {e}", "错误", "error")
579
577
  return False
ErisPulse/db.py CHANGED
@@ -646,38 +646,6 @@ class EnvManager:
646
646
  for key, value in vars(env_module).items():
647
647
  if not key.startswith("__") and isinstance(value, (dict, list, str, int, float, bool)):
648
648
  self.set(key, value)
649
-
650
- def create_env_file_if_not_exists(self):
651
- env_file = Path("env.py")
652
- if not env_file.exists():
653
- content = '''# env.py
654
- # ErisPulse 环境配置文件
655
- # 本文件由 SDK 自动创建,请勿随意删除
656
- # 配置项可通过 sdk.env.get(key, default) 获取,或使用 sdk.env.set(key, value) 设置
657
- # 你也可以像写普通变量一样直接定义配置项,例如:
658
- #
659
- # MY_CONFIG = "value"
660
- # MY_CONFIG_2 = {"key": "value"}
661
- # MY_CONFIG_3 = [1, 2, 3]
662
- #
663
- # sdk.env.set("MY_CONFIG", "value")
664
- # sdk.env.set("MY_CONFIG_2", {"key": "value"})
665
- # sdk.env.set("MY_CONFIG_3", [1, 2, 3])
666
- #
667
- # 这些变量会自动被加载到 SDK 的配置系统中,可通过 sdk.env.MY_CONFIG 或 sdk.env.get("MY_CONFIG") 访问。
668
-
669
- from ErisPulse import sdk
670
- '''
671
- try:
672
- with open(env_file, "w", encoding="utf-8") as f:
673
- f.write(content)
674
- return True
675
- except Exception as e:
676
- from . import sdk
677
- sdk.logger.error(f"无法创建 env.py 文件: {e}")
678
- return False
679
- return False
680
-
681
649
  def __getattr__(self, key):
682
650
  try:
683
651
  return self.get(key)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse
3
- Version: 1.1.16
3
+ Version: 1.2.0
4
4
  Summary: ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。
5
5
  Author-email: "艾莉丝·格雷拉特(WSu2059)" <wsu2059@qq.com>, runoneall <runoobsteve@gmail.com>
6
6
  License: MIT License
@@ -0,0 +1,13 @@
1
+ ErisPulse/__init__.py,sha256=LFwCJBoFVqoFZUVYxU9CheQCD7j6IPGHveDAyeX_CLU,10424
2
+ ErisPulse/__main__.py,sha256=j2edGX1fjTX1FWb33p_l05dKfFHf-8V2Am-JZ-eHDE8,52807
3
+ ErisPulse/adapter.py,sha256=rrBdPSHvOzzN0VJCD8lThygM9I-_iQIeZ5iMgqCJ34w,13977
4
+ ErisPulse/db.py,sha256=LSIw6MpNtZ-P3deARLj8Umo06EBrwyuzhF4Nj1Lkbyc,23043
5
+ ErisPulse/logger.py,sha256=UfQBF9fLx4WKe_se_lB5jNvaeTDtpv5PKT9x49QMmyw,8152
6
+ ErisPulse/mods.py,sha256=1vEFiuL61Ouu7cocyysev5k2lGqcJ_hJGZqXNNbhJqg,9936
7
+ ErisPulse/raiserr.py,sha256=QeKffL8Gm4Vl1DDMFQiKluiKCx0mxgN2Jj98WP4tUHo,3958
8
+ ErisPulse/util.py,sha256=tmmZA4Ef5ElB01KZg2fTZLrkZOJbORjnkAd8sXj7xqw,4335
9
+ erispulse-1.2.0.dist-info/METADATA,sha256=acMUZ0isuvhccezuqQaynehbOPBeT_ZBhP3KkF9wsQM,6370
10
+ erispulse-1.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
11
+ erispulse-1.2.0.dist-info/entry_points.txt,sha256=y8ppdsQhk-azC7_ikQgRr4rITSZ4VC4crVKtzHh4TBY,146
12
+ erispulse-1.2.0.dist-info/licenses/LICENSE,sha256=plj4EYVfKAzc0ZWoC5T2vsQ86u0yLpu17NdAPeIcgVo,1066
13
+ erispulse-1.2.0.dist-info/RECORD,,
@@ -1,13 +0,0 @@
1
- ErisPulse/__init__.py,sha256=FZUyXv8ZCO-xKzemSgp0Rw_snH_6BwI5i0F4sJu-5fs,8841
2
- ErisPulse/__main__.py,sha256=D718GwmJh9u1ce7u3f8wCxjB-VznwaWL_awSeHufq9M,52870
3
- ErisPulse/adapter.py,sha256=rrBdPSHvOzzN0VJCD8lThygM9I-_iQIeZ5iMgqCJ34w,13977
4
- ErisPulse/db.py,sha256=4qYFyOmgp_04xnrlO2Htyr5z6cjh6LtFyJa3zz0oTLw,24173
5
- ErisPulse/logger.py,sha256=UfQBF9fLx4WKe_se_lB5jNvaeTDtpv5PKT9x49QMmyw,8152
6
- ErisPulse/mods.py,sha256=1vEFiuL61Ouu7cocyysev5k2lGqcJ_hJGZqXNNbhJqg,9936
7
- ErisPulse/raiserr.py,sha256=QeKffL8Gm4Vl1DDMFQiKluiKCx0mxgN2Jj98WP4tUHo,3958
8
- ErisPulse/util.py,sha256=tmmZA4Ef5ElB01KZg2fTZLrkZOJbORjnkAd8sXj7xqw,4335
9
- erispulse-1.1.16.dist-info/METADATA,sha256=pqBRSDlkJUlODhMbKZEqEGs5Uvn_vvsIMwglS5l90_s,6371
10
- erispulse-1.1.16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
11
- erispulse-1.1.16.dist-info/entry_points.txt,sha256=y8ppdsQhk-azC7_ikQgRr4rITSZ4VC4crVKtzHh4TBY,146
12
- erispulse-1.1.16.dist-info/licenses/LICENSE,sha256=plj4EYVfKAzc0ZWoC5T2vsQ86u0yLpu17NdAPeIcgVo,1066
13
- erispulse-1.1.16.dist-info/RECORD,,