diff --git a/pbl_evidence/__init__.py b/pbl_evidence/__init__.py index 8bcfa19..6f6f62b 100644 --- a/pbl_evidence/__init__.py +++ b/pbl_evidence/__init__.py @@ -42,6 +42,10 @@ from pbl_evidence.evidence_map import ( EVENT_TO_EVIDENCE, evidence_types_for_events, ) +# 主键生成器(三处同步之 ②:定义在 pk.py:45,包内导出,init.py 里挂 env.gen_pk)。 +# 缺本行 → 宿主/其他模块 `from pbl_evidence import gen_pk` ImportError; +# 缺 init.py 的 env 挂载 → .dspy 里调用 NameError(M5a 事故根因)。 +from pbl_evidence.pk import gen_pk __all__ = [ 'pbl_artifact_create', 'pbl_artifact_read', 'pbl_artifact_update', @@ -56,6 +60,8 @@ __all__ = [ 'pbl_evidence_collect_idempotent', 'pbl_evidence_aggregate', 'pbl_evidence_query', 'pbl_evidence_subject_summary', 'resolve_idempotency_key', 'apply_default_filters', 'aggregate_rows', + # 主键生成器(collector.py:235 / api.py:102 / api.py:278 三条插入路径共用) + 'gen_pk', ] __version__ = '1.2.0' diff --git a/pbl_evidence/init.py b/pbl_evidence/init.py index 6e98525..8812431 100644 --- a/pbl_evidence/init.py +++ b/pbl_evidence/init.py @@ -41,6 +41,8 @@ from pbl_evidence.crud_api import ( pbl_evidence_update, ) from pbl_evidence.evidence_map import EVIDENCE_TYPES, EVENT_TO_EVIDENCE +# 主键生成器(三处同步之 ③ 的 import 侧:定义 pk.py:45 / 导出 __init__.py / 本文件挂 env) +from pbl_evidence.pk import gen_pk def load_pbl_evidence(): @@ -68,6 +70,11 @@ def load_pbl_evidence(): env.pbl_evidence_aggregate = pbl_evidence_aggregate env.pbl_evidence_query = pbl_evidence_query env.pbl_evidence_subject_summary = pbl_evidence_subject_summary + # ── 主键生成器(三处同步之 ③:env 挂载)──────────────────────── + # collector.py:235 / api.py:102 / api.py:278 三条插入路径都靠它显式生成 id, + # 挂 env 后宿主与其他模块可经 env.gen_pk('ev') 复用同一口径,避免各自造主键 + # 导致 STRICT_TRANS_TABLES 下 1364 Field 'id' doesn't have a default value 复发。 + env.gen_pk = gen_pk # ── 复数别名(硬门禁 5:CRUD 生成端点按复数表名取函数,单复数都要可达)── env.pbl_artifact_lists = pbl_artifact_list env.pbl_artifact_options_plural = pbl_artifact_options