ErisPulse 2.1.9__py3-none-any.whl → 2.1.11__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/Core/adapter.py CHANGED
@@ -403,7 +403,7 @@ class AdapterManager:
403
403
  platforms = list(self._adapters.keys())
404
404
 
405
405
  from .server import adapter_server
406
- from .core_config import get_server_config
406
+ from .config import get_server_config
407
407
  server_config = get_server_config()
408
408
  host = server_config["host"]
409
409
  port = server_config["port"]
@@ -4,9 +4,75 @@ ErisPulse 配置中心
4
4
  集中管理所有配置项,避免循环导入问题
5
5
  提供自动补全缺失配置项的功能
6
6
  """
7
-
7
+ import os
8
+ import toml
8
9
  from typing import Dict, Any, Optional
9
10
 
11
+ class ConfigManager:
12
+ def __init__(self, config_file: str = "config.toml"):
13
+ self.CONFIG_FILE = config_file
14
+
15
+ def getConfig(self, key: str, default: Any = None) -> Any:
16
+ """
17
+ 获取模块/适配器配置项
18
+ :param key: 配置项的键(支持点分隔符如"module.sub.key")
19
+ :param default: 默认值
20
+ :return: 配置项的值
21
+ """
22
+ try:
23
+ if not os.path.exists(self.CONFIG_FILE):
24
+ return default
25
+
26
+ with open(self.CONFIG_FILE, "r", encoding="utf-8") as f:
27
+ config = toml.load(f)
28
+
29
+ # 支持点分隔符访问嵌套配置
30
+ keys = key.split('.')
31
+ value = config
32
+ for k in keys:
33
+ if k not in value:
34
+ return default
35
+ value = value[k]
36
+
37
+ return value
38
+ except Exception as e:
39
+ from . import logger
40
+ logger.error(f"读取配置文件 {self.CONFIG_FILE} 失败: {e}")
41
+ return default
42
+
43
+ def setConfig(self, key: str, value: Any) -> bool:
44
+ """
45
+ 设置模块/适配器配置
46
+ :param key: 配置项键名(支持点分隔符如"module.sub.key")
47
+ :param value: 配置项值
48
+ :return: 操作是否成功
49
+ """
50
+ try:
51
+ config = {}
52
+ if os.path.exists(self.CONFIG_FILE):
53
+ with open(self.CONFIG_FILE, "r", encoding="utf-8") as f:
54
+ config = toml.load(f)
55
+
56
+ # 支持点分隔符设置嵌套配置
57
+ keys = key.split('.')
58
+ current = config
59
+ for k in keys[:-1]:
60
+ if k not in current:
61
+ current[k] = {}
62
+ current = current[k]
63
+ current[keys[-1]] = value
64
+
65
+ with open(self.CONFIG_FILE, "w", encoding="utf-8") as f:
66
+ toml.dump(config, f)
67
+
68
+ return True
69
+ except Exception as e:
70
+ from . import logger
71
+ logger.error(f"写入配置文件 {self.CONFIG_FILE} 失败: {e}")
72
+ return False
73
+
74
+ config = ConfigManager()
75
+
10
76
  # 默认配置
11
77
  DEFAULT_CONFIG = {
12
78
  "server": {
@@ -53,14 +119,13 @@ def get_config() -> Dict[str, Any]:
53
119
 
54
120
  :return: 完整的配置字典
55
121
  """
56
- from .env import env
57
-
122
+
58
123
  # 获取现有配置
59
- current_config = env.getConfig("ErisPulse")
124
+ current_config = config.getConfig("ErisPulse")
60
125
 
61
126
  # 如果完全没有配置,设置默认配置
62
127
  if current_config is None:
63
- env.setConfig("ErisPulse", DEFAULT_CONFIG)
128
+ config.setConfig("ErisPulse", DEFAULT_CONFIG)
64
129
  return DEFAULT_CONFIG
65
130
 
66
131
  # 检查并补全缺失的配置项
@@ -68,7 +133,7 @@ def get_config() -> Dict[str, Any]:
68
133
 
69
134
  # 如果配置有变化,更新到存储
70
135
  if current_config != complete_config:
71
- env.setConfig("ErisPulse", complete_config)
136
+ config.setConfig("ErisPulse", complete_config)
72
137
 
73
138
  return complete_config
74
139
 
@@ -79,8 +144,6 @@ def update_config(new_config: Dict[str, Any]) -> bool:
79
144
  :param new_config: 新的配置字典
80
145
  :return: 是否更新成功
81
146
  """
82
- from .env import env
83
-
84
147
  # 获取当前配置并合并新配置
85
148
  current = get_config()
86
149
  merged = {**current, **new_config}
@@ -88,7 +151,7 @@ def update_config(new_config: Dict[str, Any]) -> bool:
88
151
  # 确保合并后的配置结构完整
89
152
  complete_config = _ensure_config_structure(merged)
90
153
 
91
- return env.setConfig("ErisPulse", complete_config)
154
+ return config.setConfig("ErisPulse", complete_config)
92
155
 
93
156
  def get_server_config() -> Dict[str, Any]:
94
157
  """
ErisPulse/Core/env.py CHANGED
@@ -180,6 +180,7 @@ class EnvManager:
180
180
  return True
181
181
  except Exception as e:
182
182
  return False
183
+
183
184
  def getConfig(self, key: str, default: Any = None) -> Any:
184
185
  """
185
186
  获取模块/适配器配置项
@@ -188,21 +189,8 @@ class EnvManager:
188
189
  :return: 配置项的值
189
190
  """
190
191
  try:
191
- if not os.path.exists(self.CONFIG_FILE):
192
- return default
193
-
194
- with open(self.CONFIG_FILE, "r", encoding="utf-8") as f:
195
- config = toml.load(f)
196
-
197
- # 支持点分隔符访问嵌套配置
198
- keys = key.split('.')
199
- value = config
200
- for k in keys:
201
- if k not in value:
202
- return default
203
- value = value[k]
204
-
205
- return value
192
+ from .config import config
193
+ return config.getConfig(key, default)
206
194
  except Exception as e:
207
195
  from . import logger
208
196
  logger.error(f"读取配置文件 {self.CONFIG_FILE} 失败: {e}")
@@ -216,24 +204,8 @@ class EnvManager:
216
204
  :return: 操作是否成功
217
205
  """
218
206
  try:
219
- config = {}
220
- if os.path.exists(self.CONFIG_FILE):
221
- with open(self.CONFIG_FILE, "r", encoding="utf-8") as f:
222
- config = toml.load(f)
223
-
224
- # 支持点分隔符设置嵌套配置
225
- keys = key.split('.')
226
- current = config
227
- for k in keys[:-1]:
228
- if k not in current:
229
- current[k] = {}
230
- current = current[k]
231
- current[keys[-1]] = value
232
-
233
- with open(self.CONFIG_FILE, "w", encoding="utf-8") as f:
234
- toml.dump(config, f)
235
-
236
- return True
207
+ from .config import config
208
+ return config.setConfig(key, value)
237
209
  except Exception as e:
238
210
  from . import logger
239
211
  logger.error(f"写入配置文件 {self.CONFIG_FILE} 失败: {e}")
ErisPulse/Core/logger.py CHANGED
@@ -174,7 +174,7 @@ class Logger:
174
174
  self._logs[ModuleName].append(msg)
175
175
 
176
176
  def _setup_config(self):
177
- from .core_config import get_logger_config
177
+ from .config import get_logger_config
178
178
  logger_config = get_logger_config()
179
179
  if "level" in logger_config:
180
180
  self.set_level(logger_config["level"])
ErisPulse/__main__.py CHANGED
@@ -486,8 +486,8 @@ def main():
486
486
  upgrade_parser.add_argument('--force', '-f', action='store_true', help='跳过确认直接升级')
487
487
 
488
488
  # 运行命令
489
- run_parser = subparsers.add_parser('run', help='运行指定主程序')
490
- run_parser.add_argument('script', type=str, help='要运行的主程序路径')
489
+ run_parser = subparsers.add_parser('run', help='运行指定主程序(默认为main.py)')
490
+ run_parser.add_argument('script', type=str, nargs='?', help='要运行的主程序路径(可选,默认为main.py)')
491
491
  run_parser.add_argument('--reload', action='store_true', help='启用热重载模式')
492
492
 
493
493
  args = parser.parse_args()
@@ -603,6 +603,16 @@ def main():
603
603
  PyPIManager.upgrade_all()
604
604
 
605
605
  elif args.command == "run":
606
+ if not hasattr(args, 'script') or not args.script:
607
+ if not os.path.exists("config.toml") or not os.path.isfile("main.py"):
608
+ from ErisPulse import sdk
609
+ sdk.init()
610
+ args.script = "main.py"
611
+ console.print(Panel(
612
+ "未指定主程序,运行入口点为 [bold]main.py[/]",
613
+ title="提示",
614
+ style="info"
615
+ ))
606
616
  start_reloader(args.script, args.reload)
607
617
  elif args.command == "list-remote":
608
618
  import asyncio
@@ -646,7 +656,14 @@ def main():
646
656
  title="错误",
647
657
  style="error"
648
658
  ))
649
-
659
+ elif args.command == "init":
660
+ from ErisPulse import sdk
661
+ sdk.init()
662
+ console.print(Panel(
663
+ "初始化完成",
664
+ title="成功",
665
+ style="success"
666
+ ))
650
667
  except KeyboardInterrupt as e:
651
668
  pass
652
669
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse
3
- Version: 2.1.9
3
+ Version: 2.1.11
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,16 @@
1
+ ErisPulse/__init__.py,sha256=T-N56UQyBmpvlqwH2wGi5ptPzaJpbgF5tKkJt0DlkaM,26099
2
+ ErisPulse/__main__.py,sha256=a_XkG4Zs2MzH5laNFxPigDlArWGJ5AkMglwChIgIW94,25617
3
+ ErisPulse/Core/__init__.py,sha256=tBYPahQ7-w7U6M69xy8DW0_ECa9ja-Q0y_SQqVswYBo,409
4
+ ErisPulse/Core/adapter.py,sha256=ZK81dibJ471FowL0MRXkS113iBcMgj_VzpTw0PzhAEo,18102
5
+ ErisPulse/Core/config.py,sha256=ZmwGdtHSOE7K5uOGzLYcyl3ZF3sAmeWAntqcdfDzhpM,5027
6
+ ErisPulse/Core/env.py,sha256=HGkzsdbxh8c1GSDJhnGP9B09Sz2ZeNbRxWieaFmAcug,18870
7
+ ErisPulse/Core/logger.py,sha256=3PPwJVcIM_TZerGGK_68vCdxsR0owrhyek3iyugGVg0,8295
8
+ ErisPulse/Core/mods.py,sha256=2yIq8t9Ca9CBPRiZU0yr8Lc0XGmmkB7LlH-5FWqXjw4,7023
9
+ ErisPulse/Core/raiserr.py,sha256=vlyaaiOIYkyqm9dAqSW9E54JBzX-9roHDp5_r6I0yUU,5591
10
+ ErisPulse/Core/server.py,sha256=FkDTeLuHD5IBnWVxvYU8pHb6yCt8GzyvC1bpOiJ7G7I,9217
11
+ ErisPulse/Core/util.py,sha256=7rdMmn6sBFqYd4znxBCcJjuv2eyTExdeKyZopgds868,3796
12
+ erispulse-2.1.11.dist-info/METADATA,sha256=sWtikjfI0bG6Khd8gUHl-2bX_xYTZOmDZffq9cA6PW8,6259
13
+ erispulse-2.1.11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
14
+ erispulse-2.1.11.dist-info/entry_points.txt,sha256=Jss71M6nEha0TA-DyVZugPYdcL14s9QpiOeIlgWxzOc,182
15
+ erispulse-2.1.11.dist-info/licenses/LICENSE,sha256=4jyqikiB0G0n06CEEMMTzTXjE4IShghSlB74skMSPQs,1464
16
+ erispulse-2.1.11.dist-info/RECORD,,
@@ -1,16 +0,0 @@
1
- ErisPulse/__init__.py,sha256=T-N56UQyBmpvlqwH2wGi5ptPzaJpbgF5tKkJt0DlkaM,26099
2
- ErisPulse/__main__.py,sha256=QwHMu8lmWbjS3EyOYV-wea3I0xcGmH_McWNx7JSGwts,24853
3
- ErisPulse/Core/__init__.py,sha256=tBYPahQ7-w7U6M69xy8DW0_ECa9ja-Q0y_SQqVswYBo,409
4
- ErisPulse/Core/adapter.py,sha256=Kmm_D8UcrDBJfn9EemAbgh3NB06Aj8u3iVNrBa1htJI,18107
5
- ErisPulse/Core/core_config.py,sha256=LwsOOIrZqm3-oUR-zkkaw_fmR3f4wMlEhFrc2tgiiRU,2847
6
- ErisPulse/Core/env.py,sha256=D2BwtSbKggbeAsOzwwVv-kd5UkVmYlDUHtgLzFZqKUI,19841
7
- ErisPulse/Core/logger.py,sha256=WfoFLHQfhRo4hKx-nOSTWq3maLMv-RexWLATvWQO4mc,8300
8
- ErisPulse/Core/mods.py,sha256=2yIq8t9Ca9CBPRiZU0yr8Lc0XGmmkB7LlH-5FWqXjw4,7023
9
- ErisPulse/Core/raiserr.py,sha256=vlyaaiOIYkyqm9dAqSW9E54JBzX-9roHDp5_r6I0yUU,5591
10
- ErisPulse/Core/server.py,sha256=FkDTeLuHD5IBnWVxvYU8pHb6yCt8GzyvC1bpOiJ7G7I,9217
11
- ErisPulse/Core/util.py,sha256=7rdMmn6sBFqYd4znxBCcJjuv2eyTExdeKyZopgds868,3796
12
- erispulse-2.1.9.dist-info/METADATA,sha256=SolTFf_3ALM1br71LporfFLq_2UM_ikHkNqEbqBxV1Q,6258
13
- erispulse-2.1.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
14
- erispulse-2.1.9.dist-info/entry_points.txt,sha256=Jss71M6nEha0TA-DyVZugPYdcL14s9QpiOeIlgWxzOc,182
15
- erispulse-2.1.9.dist-info/licenses/LICENSE,sha256=4jyqikiB0G0n06CEEMMTzTXjE4IShghSlB74skMSPQs,1464
16
- erispulse-2.1.9.dist-info/RECORD,,