agent.develop d35de3e0b0 fix(pbl_evidence): gen_pk 注册三处同步——补包 __init__.py 导出 + init.py load_pbl_evidence() 挂 env.gen_pk(消 QC #5)
- pbl_evidence/__init__.py:48 新增 from pbl_evidence.pk import gen_pk,:64 加入 __all__
- pbl_evidence/init.py:45 import gen_pk,:77 env.gen_pk = gen_pk(宿主/其他模块可经 env 复用同一主键口径)
- 不改 pk.py 的 gen_pk 实现、不改 models/*.json 与 DDL、不改 collector.py/api.py 业务逻辑
- 验证:grep 命中定义(pk.py:45)/导出(__init__.py:48)/env 挂载(init.py:77) 三处;py_compile 五文件 RC=0;
  bash scripts/run_tests.sh 8 passed 1 skipped;python3 tests/m5a_live_db_harness.py LIVE DB HARNESS ALL PASS RC=0
- 本任务为收口重做(QC 退回 #1~#7)
2026-09-23 00:32:04 +08:00

68 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""pbl_evidence —— 产出物与证据幂等采集模块(M5a/M5b)。
导出契约函数(三处同步之 ②:必须与 init.py 的 env 注册、api.py 定义一一对应,
漏此处会导致 .dspy 调用 NameError)。
"""
from pbl_evidence.api import (
pbl_artifact_create,
pbl_artifact_read,
pbl_artifact_update,
pbl_artifact_delete,
pbl_artifact_list,
pbl_evidence_collect,
pbl_evidence_collect_from_events,
pbl_evidence_list,
pbl_evidence_stats,
pbl_evidence_watermark,
)
from pbl_evidence.collector import (
CollectError,
collect_evidence_from_events,
resolve_event_table,
)
from pbl_evidence.crud_api import (
pbl_artifact_options,
pbl_evidence_update,
pbl_evidence_delete,
)
from pbl_evidence.aggregation import (
pbl_evidence_collect_idempotent,
pbl_evidence_aggregate,
pbl_evidence_query,
pbl_evidence_subject_summary,
resolve_idempotency_key,
apply_default_filters,
aggregate_rows,
)
from pbl_evidence.evidence_map import (
EVIDENCE_TYPES,
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',
'pbl_artifact_delete', 'pbl_artifact_list',
'pbl_evidence_collect', 'pbl_evidence_collect_from_events',
'pbl_evidence_list', 'pbl_evidence_stats', 'pbl_evidence_watermark',
'collect_evidence_from_events', 'resolve_event_table', 'CollectError',
'EVIDENCE_TYPES', 'EVENT_TO_EVIDENCE', 'evidence_types_for_events',
# CRUD 框架适配端点后端(json/pbl_evidence.json 的 editable + alters.dataurl)
'pbl_artifact_options', 'pbl_evidence_update', 'pbl_evidence_delete',
'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'