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 +56 -1
- ErisPulse/__main__.py +19 -21
- ErisPulse/db.py +0 -32
- {erispulse-1.1.16.dist-info → erispulse-1.2.0.dist-info}/METADATA +1 -1
- erispulse-1.2.0.dist-info/RECORD +13 -0
- erispulse-1.1.16.dist-info/RECORD +0 -13
- {erispulse-1.1.16.dist-info → erispulse-1.2.0.dist-info}/WHEEL +0 -0
- {erispulse-1.1.16.dist-info → erispulse-1.2.0.dist-info}/entry_points.txt +0 -0
- {erispulse-1.1.16.dist-info → erispulse-1.2.0.dist-info}/licenses/LICENSE +0 -0
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
|
|
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
|
-
|
|
572
|
-
|
|
573
|
-
|
|
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)
|
|
@@ -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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|