feat: Phase 2 complete — 13 Phases of COBOL type classification and test benchmark
P0.6: gcov infrastructure P1: extract_structure output expansion (11 new feature fields) P2: Confusion group rule engine (8 pairs + contradiction + backtrack) P3: 4-factor confidence calculation + quality gate update P4: 33+2 COBOL program type test samples (22 files, 7 categories) P5: parametrized/ test data generation engine P6: japanese_data.py lookup tables P7-10: Type-specific test suites (~159 parametrized tests) P11: Full classification pipeline (classify_program) + orchestrator integration P12: Documentation (module-interfaces, test-plan v3.0, coverage-matrix) Architecture decisions: - classification_pipeline/ merged to hina/pipeline/ - parametrized/ as independent module - japanese_data.py as root-level file - hina/__all__ only exports classify_program() Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
"""Web API + Worker 包
|
||||
|
||||
公开 API:
|
||||
api.py → FastAPI 应用(由 uvicorn 启动)
|
||||
worker.py → 后台任务处理循环
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
__all__ = []
|
||||
|
||||
+15
-3
@@ -10,8 +10,18 @@ def main():
|
||||
print("Worker started. Watching tasks/ ...")
|
||||
while True:
|
||||
for tf in sorted(TASKS_DIR.glob("*.json")):
|
||||
data = {}
|
||||
try:
|
||||
data = json.loads(tf.read_text())
|
||||
raw = tf.read_text()
|
||||
if not raw.strip():
|
||||
data = {"id": tf.stem, "status": "error", "result": "empty file"}
|
||||
tf.write_text(json.dumps(data))
|
||||
continue
|
||||
data = json.loads(raw)
|
||||
if not isinstance(data, dict):
|
||||
data = {"id": tf.stem, "status": "error", "result": "invalid JSON type"}
|
||||
tf.write_text(json.dumps(data))
|
||||
continue
|
||||
if data.get("status") != "queued":
|
||||
continue
|
||||
|
||||
@@ -49,10 +59,12 @@ def main():
|
||||
tf.write_text(json.dumps(data))
|
||||
|
||||
except Exception as e:
|
||||
data = json.loads(tf.read_text()) if tf.exists() else {}
|
||||
data["status"] = "error"
|
||||
data["result"] = str(e)[:500]
|
||||
tf.write_text(json.dumps(data))
|
||||
try:
|
||||
tf.write_text(json.dumps(data))
|
||||
except Exception:
|
||||
pass # 无法写入错误状态时静默跳过
|
||||
|
||||
time.sleep(2)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user