From d7a355d6505378c145c41c11fd2001c83da39f9c Mon Sep 17 00:00:00 2001 From: "agent.develop" Date: Wed, 30 Sep 2026 18:15:29 +0800 Subject: [PATCH] =?UTF-8?q?approve:=20=E4=BF=AE=E5=A4=8D=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E8=BF=AD=E4=BB=A3=202=20=E4=B8=AA=E5=8A=9F=E8=83=BD=20Bug?= =?UTF-8?q?=EF=BC=88pbls-=E5=88=9D=E5=A7=8B=E8=BF=AD=E4=BB=A3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pbl_blueprint/init.py | 2 +- pbl_blueprint/m1b/env.py | 16 ++++++++++------ tools/m1b_fix_qc_round4.py | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pbl_blueprint/init.py b/pbl_blueprint/init.py index bc2f68c..9c00e1c 100644 --- a/pbl_blueprint/init.py +++ b/pbl_blueprint/init.py @@ -99,7 +99,7 @@ def _resolve_sor(): return obj except Exception: pass - raise PblError(ErrorCode.PBL_DB_UNAVAILABLE, + raise PblError(ErrorCode.DB_UNAVAILABLE, "sqlor 句柄不可用:ensure_tables 需要 sor(请传入 sor= 或先挂载应用环境)") diff --git a/pbl_blueprint/m1b/env.py b/pbl_blueprint/m1b/env.py index 7d6c6e7..cb926b3 100644 --- a/pbl_blueprint/m1b/env.py +++ b/pbl_blueprint/m1b/env.py @@ -55,14 +55,14 @@ class NullEnv(object): def __getattr__(self, name): raise PblError( - ErrorCode.PBL_DB_UNAVAILABLE, + ErrorCode.DB_UNAVAILABLE, "%s(访问 env.%s 失败);请先 load_pbl_blueprint(env) 或 set_env(env)" % (self._reason, name), ) def __setattr__(self, name, value): raise PblError( - ErrorCode.PBL_DB_UNAVAILABLE, + ErrorCode.DB_UNAVAILABLE, "%s(设置 env.%s 失败)" % (self._reason, name), ) @@ -96,9 +96,12 @@ def reset_env(): def _resolve_server_env(): """尽力从平台侧解析 ServerEnv 单例;失败返回 None(不抛)。""" - # 1) 平台标准位置:ServerEnv 单例 + # 1) 平台标准位置:ahserver.serverenv 的 ServerEnv 单例(SingletonDecorator, + # webapp() 在 init_func() 之前已建好单例并挂 event_dispatcher)。 + # [r13-start3 修复] 原候选只有 sage_util.server_env/server_env/sage_util.env/ + # appbase.server_env 四个虚构位置,真实位置缺席 → 永远解析不到 → 兜底抛错。 try: - from sage_util.server_env import ServerEnv # type: ignore + from ahserver.serverenv import ServerEnv # type: ignore inst = ServerEnv() if inst is not None: return inst @@ -106,6 +109,7 @@ def _resolve_server_env(): pass # 2) 常见别名位置 for mod_name, attr in ( + ("sage_util.server_env", "ServerEnv"), ("server_env", "ServerEnv"), ("sage_util.env", "ServerEnv"), ("appbase.server_env", "ServerEnv"), @@ -157,7 +161,7 @@ def get_env(required=True): return env if required: raise PblError( - ErrorCode.PBL_DB_UNAVAILABLE, + ErrorCode.DB_UNAVAILABLE, "ServerEnv 不可用:请在应用 init() 中先挂载环境," "或调用 pbl_blueprint.m1b.set_env(env) 注入", ) @@ -186,6 +190,6 @@ def get_module_dbname(module="pbl_blueprint", default=None): if env_name: return env_name raise PblError( - ErrorCode.PBL_DB_UNAVAILABLE, + ErrorCode.DB_UNAVAILABLE, "无法解析模块 %r 的库名(ServerEnv.get_module_dbname 不可用且无默认值)" % module, ) diff --git a/tools/m1b_fix_qc_round4.py b/tools/m1b_fix_qc_round4.py index 2c22c14..2303a5e 100644 --- a/tools/m1b_fix_qc_round4.py +++ b/tools/m1b_fix_qc_round4.py @@ -172,7 +172,7 @@ NEW_SOR = """def _resolve_sor(): return obj except Exception: pass - raise PblError(ErrorCode.PBL_DB_UNAVAILABLE, + raise PblError(ErrorCode.DB_UNAVAILABLE, "sqlor 句柄不可用:ensure_tables 需要 sor(请传入 sor= 或先挂载应用环境)")