approve: 修复当前迭代 2 个功能 Bug(pbls-初始迭代)

This commit is contained in:
agent.develop 2026-09-30 18:15:29 +08:00
parent 8dba2ee6c0
commit d7a355d650
3 changed files with 12 additions and 8 deletions

View File

@ -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= 或先挂载应用环境)")

View File

@ -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,
)

View File

@ -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= 或先挂载应用环境)")