mirror of
https://github.com/rookiestar28/ComfyUI-OpenClaw.git
synced 2026-08-14 00:48:07 +00:00
chore: apply pre-commit formatting collateral
This commit is contained in:
@@ -121,4 +121,3 @@ def main() -> int:
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
|
||||
|
||||
@@ -74,7 +74,9 @@ def format_metadata_block(metadata: Dict[str, Any]) -> str:
|
||||
)
|
||||
|
||||
|
||||
def extract_metadata_block(text: str) -> Tuple[Optional[Dict[str, Any]], List[str], Optional[str]]:
|
||||
def extract_metadata_block(
|
||||
text: str,
|
||||
) -> Tuple[Optional[Dict[str, Any]], List[str], Optional[str]]:
|
||||
"""
|
||||
Extract JSON metadata block.
|
||||
|
||||
@@ -121,12 +123,16 @@ def read_matrix_document(path: Path | str) -> Dict[str, Any]:
|
||||
"metadata": metadata,
|
||||
"issues": issues,
|
||||
"raw_metadata": raw,
|
||||
"body_sha256": hashlib.sha256(_body_without_meta(text).encode("utf-8")).hexdigest(),
|
||||
"body_sha256": hashlib.sha256(
|
||||
_body_without_meta(text).encode("utf-8")
|
||||
).hexdigest(),
|
||||
"has_meta": metadata is not None,
|
||||
}
|
||||
|
||||
|
||||
def validate_metadata(metadata: Optional[Dict[str, Any]], *, today: Optional[date] = None) -> Dict[str, Any]:
|
||||
def validate_metadata(
|
||||
metadata: Optional[Dict[str, Any]], *, today: Optional[date] = None
|
||||
) -> Dict[str, Any]:
|
||||
today = today or _utc_now().date()
|
||||
violations: List[Dict[str, Any]] = []
|
||||
if not isinstance(metadata, dict):
|
||||
@@ -148,7 +154,9 @@ def validate_metadata(metadata: Optional[Dict[str, Any]], *, today: Optional[dat
|
||||
)
|
||||
|
||||
last_validated = metadata.get("last_validated_date")
|
||||
parsed_last = _parse_date(last_validated) if isinstance(last_validated, str) else None
|
||||
parsed_last = (
|
||||
_parse_date(last_validated) if isinstance(last_validated, str) else None
|
||||
)
|
||||
if parsed_last is None:
|
||||
violations.append(
|
||||
{
|
||||
@@ -160,7 +168,9 @@ def validate_metadata(metadata: Optional[Dict[str, Any]], *, today: Optional[dat
|
||||
policy = metadata.get("policy")
|
||||
if not isinstance(policy, dict):
|
||||
policy = {}
|
||||
violations.append({"code": "R90_META_POLICY", "message": "Missing policy object"})
|
||||
violations.append(
|
||||
{"code": "R90_META_POLICY", "message": "Missing policy object"}
|
||||
)
|
||||
|
||||
try:
|
||||
warn_age_days = int(policy.get("warn_age_days", DEFAULT_WARN_AGE_DAYS))
|
||||
@@ -187,12 +197,17 @@ def validate_metadata(metadata: Optional[Dict[str, Any]], *, today: Optional[dat
|
||||
anchors = metadata.get("anchors")
|
||||
if not isinstance(anchors, dict):
|
||||
anchors = {}
|
||||
violations.append({"code": "R90_META_ANCHORS", "message": "Missing anchors object"})
|
||||
violations.append(
|
||||
{"code": "R90_META_ANCHORS", "message": "Missing anchors object"}
|
||||
)
|
||||
else:
|
||||
for key in ANCHOR_KEYS:
|
||||
if key not in anchors:
|
||||
violations.append(
|
||||
{"code": "R90_META_ANCHOR_MISSING", "message": f"Missing anchors.{key}"}
|
||||
{
|
||||
"code": "R90_META_ANCHOR_MISSING",
|
||||
"message": f"Missing anchors.{key}",
|
||||
}
|
||||
)
|
||||
|
||||
age_days: Optional[int] = None
|
||||
@@ -314,7 +329,9 @@ def run_refresh_workflow(
|
||||
observed = dict(observed_anchors or normalize_observed_anchors())
|
||||
|
||||
doc = read_matrix_document(p)
|
||||
metadata = copy.deepcopy(doc["metadata"]) if isinstance(doc["metadata"], dict) else None
|
||||
metadata = (
|
||||
copy.deepcopy(doc["metadata"]) if isinstance(doc["metadata"], dict) else None
|
||||
)
|
||||
if metadata is None:
|
||||
metadata = _default_metadata()
|
||||
# Preserve compatibility for first adoption while making missing metadata visible.
|
||||
@@ -333,7 +350,9 @@ def run_refresh_workflow(
|
||||
"doc_issues": list(doc["issues"]),
|
||||
}
|
||||
diff_stage = {
|
||||
"metadata_hash_before": _json_hash(doc["metadata"]) if doc["metadata"] is not None else None,
|
||||
"metadata_hash_before": (
|
||||
_json_hash(doc["metadata"]) if doc["metadata"] is not None else None
|
||||
),
|
||||
"drift": drift_before,
|
||||
"bootstrap_metadata": bootstrap_mode,
|
||||
}
|
||||
@@ -352,9 +371,9 @@ def run_refresh_workflow(
|
||||
metadata_after["anchors"][key] = observed.get(key, "unknown")
|
||||
metadata_after["evidence"]["updated_by"] = updated_by
|
||||
metadata_after["evidence"]["updated_at"] = _utc_now().isoformat()
|
||||
metadata_after["evidence"]["evidence_id"] = (
|
||||
f"compat-matrix-refresh-{today.strftime('%Y%m%d')}"
|
||||
)
|
||||
metadata_after["evidence"][
|
||||
"evidence_id"
|
||||
] = f"compat-matrix-refresh-{today.strftime('%Y%m%d')}"
|
||||
|
||||
validate_after = validate_metadata(metadata_after, today=today)
|
||||
drift_after = detect_anchor_drift(metadata_after.get("anchors"), observed)
|
||||
|
||||
@@ -73,7 +73,9 @@ def normalize_limit_offset(
|
||||
limit = _parse_int(raw_limit)
|
||||
if limit is None:
|
||||
if raw_limit is not None:
|
||||
warnings.append(_warn("R95_INVALID_LIMIT", "limit", raw_limit, default_limit))
|
||||
warnings.append(
|
||||
_warn("R95_INVALID_LIMIT", "limit", raw_limit, default_limit)
|
||||
)
|
||||
limit = default_limit
|
||||
if limit < 1:
|
||||
warnings.append(_warn("R95_LIMIT_BELOW_MIN", "limit", raw_limit, 1))
|
||||
@@ -129,7 +131,9 @@ def normalize_cursor_limit(
|
||||
)
|
||||
cursor = default_cursor
|
||||
if cursor < min_cursor:
|
||||
page.warnings.append(_warn("R95_CURSOR_BELOW_MIN", cursor_key, raw_cursor, min_cursor))
|
||||
page.warnings.append(
|
||||
_warn("R95_CURSOR_BELOW_MIN", cursor_key, raw_cursor, min_cursor)
|
||||
)
|
||||
cursor = min_cursor
|
||||
page.cursor = cursor
|
||||
return page
|
||||
@@ -176,4 +180,3 @@ def bounded_scan_collect(
|
||||
skipped_malformed=skipped_malformed,
|
||||
truncated=truncated,
|
||||
)
|
||||
|
||||
|
||||
@@ -19,13 +19,14 @@ from services.compatibility_matrix_governance import (
|
||||
)
|
||||
from services.operator_doctor import DoctorReport, check_compatibility_matrix_governance
|
||||
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
class TestR90CompatMatrixGovernance(unittest.TestCase):
|
||||
def test_repo_matrix_has_valid_metadata(self):
|
||||
doc = read_matrix_document(REPO_ROOT / "docs" / "release" / "compatibility_matrix.md")
|
||||
doc = read_matrix_document(
|
||||
REPO_ROOT / "docs" / "release" / "compatibility_matrix.md"
|
||||
)
|
||||
self.assertTrue(doc["has_meta"], msg=doc["issues"])
|
||||
validation = validate_metadata(doc["metadata"])
|
||||
self.assertTrue(validation["ok"], msg=validation)
|
||||
@@ -129,7 +130,9 @@ class TestR90CompatMatrixGovernance(unittest.TestCase):
|
||||
checks = {c.name: c for c in report.checks}
|
||||
self.assertIn("compatibility_matrix_governance", checks)
|
||||
self.assertEqual(checks["compatibility_matrix_governance"].severity, "warn")
|
||||
self.assertEqual(report.environment["compat_matrix_validation_code"], "R90_MATRIX_STALE")
|
||||
self.assertEqual(
|
||||
report.environment["compat_matrix_validation_code"], "R90_MATRIX_STALE"
|
||||
)
|
||||
|
||||
def test_script_smoke_emits_evidence(self):
|
||||
with tempfile.TemporaryDirectory() as td:
|
||||
@@ -170,4 +173,3 @@ class TestR90CompatMatrixGovernance(unittest.TestCase):
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
||||
@@ -124,12 +124,16 @@ class TestR95EventsApi(unittest.IsolatedAsyncioTestCase):
|
||||
}
|
||||
|
||||
store = StubStore()
|
||||
fake_web = SimpleNamespace(json_response=MagicMock(return_value=SimpleNamespace(status=200)))
|
||||
fake_web = SimpleNamespace(
|
||||
json_response=MagicMock(return_value=SimpleNamespace(status=200))
|
||||
)
|
||||
|
||||
with (
|
||||
patch.object(api.events, "web", fake_web),
|
||||
patch.object(api.events, "check_rate_limit", return_value=True),
|
||||
patch.object(api.events, "require_observability_access", return_value=(True, None)),
|
||||
patch.object(
|
||||
api.events, "require_observability_access", return_value=(True, None)
|
||||
),
|
||||
patch.object(api.events, "get_job_event_store", return_value=store),
|
||||
):
|
||||
resp = await api.events.events_poll_handler(req)
|
||||
@@ -161,11 +165,15 @@ class TestR95EventsApi(unittest.IsolatedAsyncioTestCase):
|
||||
"latest_retained_seq": 10,
|
||||
}
|
||||
|
||||
fake_web = SimpleNamespace(json_response=MagicMock(return_value=SimpleNamespace(status=200)))
|
||||
fake_web = SimpleNamespace(
|
||||
json_response=MagicMock(return_value=SimpleNamespace(status=200))
|
||||
)
|
||||
with (
|
||||
patch.object(api.events, "web", fake_web),
|
||||
patch.object(api.events, "check_rate_limit", return_value=True),
|
||||
patch.object(api.events, "require_observability_access", return_value=(True, None)),
|
||||
patch.object(
|
||||
api.events, "require_observability_access", return_value=(True, None)
|
||||
),
|
||||
patch.object(api.events, "get_job_event_store", return_value=StubStore()),
|
||||
):
|
||||
await api.events.events_poll_handler(req)
|
||||
@@ -191,7 +199,9 @@ class TestR95EventsApi(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
with (
|
||||
patch.object(api.events, "check_rate_limit", return_value=True),
|
||||
patch.object(api.events, "require_observability_access", return_value=(True, None)),
|
||||
patch.object(
|
||||
api.events, "require_observability_access", return_value=(True, None)
|
||||
),
|
||||
patch.object(api.events, "get_job_event_store", return_value=StubStore()),
|
||||
):
|
||||
with self.assertRaises(RuntimeError):
|
||||
@@ -203,7 +213,9 @@ class TestR95ApprovalsApi(unittest.IsolatedAsyncioTestCase):
|
||||
req = MagicMock()
|
||||
req.query = {"limit": "9999", "offset": "-7"}
|
||||
|
||||
handler = api.approvals.ApprovalHandlers(require_admin_token_fn=lambda _r: (True, None))
|
||||
handler = api.approvals.ApprovalHandlers(
|
||||
require_admin_token_fn=lambda _r: (True, None)
|
||||
)
|
||||
handler._service = MagicMock()
|
||||
handler._service.list_all.return_value = [
|
||||
_DummyApproval("a1"),
|
||||
@@ -212,7 +224,9 @@ class TestR95ApprovalsApi(unittest.IsolatedAsyncioTestCase):
|
||||
]
|
||||
handler._service.count_pending.return_value = 1
|
||||
|
||||
fake_web = SimpleNamespace(json_response=MagicMock(return_value=SimpleNamespace(status=200)))
|
||||
fake_web = SimpleNamespace(
|
||||
json_response=MagicMock(return_value=SimpleNamespace(status=200))
|
||||
)
|
||||
with patch.object(api.approvals, "web", fake_web):
|
||||
resp = await handler.list_approvals(req)
|
||||
self.assertEqual(resp.status, 200)
|
||||
@@ -231,7 +245,9 @@ class TestR95ApprovalsApi(unittest.IsolatedAsyncioTestCase):
|
||||
req = MagicMock()
|
||||
req.query = {"status": "not-a-status"}
|
||||
|
||||
handler = api.approvals.ApprovalHandlers(require_admin_token_fn=lambda _r: (True, None))
|
||||
handler = api.approvals.ApprovalHandlers(
|
||||
require_admin_token_fn=lambda _r: (True, None)
|
||||
)
|
||||
fake_web = SimpleNamespace(
|
||||
json_response=MagicMock(return_value=SimpleNamespace(status=400))
|
||||
)
|
||||
@@ -243,7 +259,9 @@ class TestR95ApprovalsApi(unittest.IsolatedAsyncioTestCase):
|
||||
req = MagicMock()
|
||||
req.query = {}
|
||||
|
||||
handler = api.approvals.ApprovalHandlers(require_admin_token_fn=lambda _r: (True, None))
|
||||
handler = api.approvals.ApprovalHandlers(
|
||||
require_admin_token_fn=lambda _r: (True, None)
|
||||
)
|
||||
handler._service = MagicMock()
|
||||
handler._service.list_all.side_effect = RuntimeError("db failed")
|
||||
|
||||
@@ -253,4 +271,3 @@ class TestR95ApprovalsApi(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user