26 行
1.7 KiB
Python
26 行
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
import json,sys,os,subprocess
|
|
sys.path.insert(0,'.claude')
|
|
from eda import run
|
|
V='.claude/skills/easyeda-sch-geometry/scripts/verify_sch.py'
|
|
PAGES=[('P2-CHANNEL','e528be1438486876','p2'),('P2B-CH2','b8afe2b674df51f1','p2'),('P2C-CH3','38c5dbbf943f1a9e','p2'),
|
|
('P2D-CH4','2365af19390c50d6','p2'),('P2E-CH5','af0926ecaacd8bac','p2'),('P3-CONTROL','12f74666e70167e4','p3'),
|
|
('P3B-EXPAND','f42285b3728794d0','p3b'),('P6-FAN-EDL','fd00f13e59336392','p6'),('P5-BTB','58bacf3ddd60ed4e',None),
|
|
('C1-CONN','1cc8af8cba7ec7b2','c1'),('C6-KEYS','f44d1c8b0ad64fad','c6'),('C2-HUB','472c9bdbd7180ac4','p4b'),
|
|
('C4-SITE1','c64b3352a0a2876c','c4'),('C4-SITE2','caf6bd3899748f16','c4'),('C4-SITE3','0348577f027362cd','c4'),
|
|
('C4-SITE4','fc3e4d76ab751c0a','c4'),('C4-SITE5','e58ef2c0a55e744a','c4')]
|
|
only=sys.argv[1:]
|
|
for name,uuid,nc in PAGES:
|
|
if only and name not in only: continue
|
|
r=run("await eda.dmt_EditorControl.openDocument('%s'); await new Promise(r=>setTimeout(r,1200)); return (await eda.dmt_Schematic.getCurrentSchematicPageInfo()).name;"%uuid,timeout=120)
|
|
assert r.get('success') and r['result']==name, (name, r)
|
|
args=[sys.executable,V]
|
|
f='.claude/%s-nets-nc.json'%nc if nc else None
|
|
if f and os.path.exists(f): args+=['--nc',f]
|
|
p=subprocess.run(args,capture_output=True,text=True,encoding='utf-8',errors='replace')
|
|
lines=[l for l in p.stdout.splitlines() if l.strip()]
|
|
tail=[l for l in lines if any(k in l for k in ('悬空','单引脚','无网络名','多个名字','通过','FAIL','PASS','✅','❌','失败'))]
|
|
print('%-12s rc=%d %s'%(name,p.returncode,' | '.join(tail[-6:])[:400]))
|
|
if p.returncode!=0:
|
|
print('\n'.join(lines[-25:]))
|