- 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)
68 lines
2.3 KiB
Python
68 lines
2.3 KiB
Python
#!/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'
|