Enforce Zhuyuan persona-source epistemic gate
This commit is contained in:
parent
927ab7825d
commit
b0deae2718
30 changed files with 1741 additions and 34 deletions
|
|
@ -5,6 +5,7 @@ from __future__ import annotations
|
|||
|
||||
import argparse
|
||||
import json
|
||||
import re
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
|
|
@ -92,7 +93,23 @@ def compile_graph(contributions: list[dict]) -> dict:
|
|||
node_count = 0
|
||||
verified_node_count = 0
|
||||
correction_edges = []
|
||||
seen_contribution_ids: set[str] = set()
|
||||
seen_stable_numbers: dict[str, str] = {}
|
||||
for item in contributions:
|
||||
contribution_id = item["contribution_id"]
|
||||
if contribution_id in seen_contribution_ids:
|
||||
raise ValueError(f"duplicate contribution id: {contribution_id}")
|
||||
seen_contribution_ids.add(contribution_id)
|
||||
match = re.match(r"^(RC-\d{8}-\d{3})(?:-|$)", contribution_id)
|
||||
if not match:
|
||||
raise ValueError(f"invalid contribution stable id: {contribution_id}")
|
||||
stable_number = match.group(1)
|
||||
if stable_number in seen_stable_numbers:
|
||||
raise ValueError(
|
||||
"duplicate contribution stable number: "
|
||||
f"{stable_number} used by {seen_stable_numbers[stable_number]} and {contribution_id}"
|
||||
)
|
||||
seen_stable_numbers[stable_number] = contribution_id
|
||||
ordered_nodes = _validate_and_order_nodes(item)
|
||||
node_count += len(ordered_nodes)
|
||||
verified_node_count += sum(node["state"] == "verified" for node in ordered_nodes)
|
||||
|
|
|
|||
Loading…
Reference in a new issue