from pathlib import Path
import sys,re,uuid
import wx
_app=wx.App(False)
import pcbnew as k
B=Path('work/tri-product-continuation-2026-10-10.nosync').resolve();R=B/'lamp_local_decoupling_A59';P=R/'board/led_driver.kicad_pcb';b=k.LoadBoard(str(P))
for f in b.GetFootprints():
 if f.GetReference() in ['C1','C3','C5']:
  pos=f.GetPosition();f.SetPosition(k.VECTOR2I(pos.x,k.FromMM(39.6)))
k.SaveBoard(str(P),b)
sys.path.insert(0,str(B/'parity_metadata_closure_A22'));from prepare_candidates import forms
s=P.read_text()
for tag in ['segment','via']:
 for st,en,t in reversed(list(forms(s,tag))):
  if '(net "/GND")' in t and any(x in t for x in ['38.425','39.225']):s=s[:st]+s[en:]
  elif tag=='segment' and '(net "/VDD_3V3")' in t and '40.775' in t:s=s[:st]+t.replace('40.775','40.375')+s[en:]
adds=[]
for cx in [23,53,83]:
 adds.append('(segment (start %.5f 38.825) (end %.5f 38.825) (width 0.2) (layer "F.Cu") (net "/GND") (uuid "%s"))'%(cx+4.8,cx+3.9,str(uuid.uuid4())))
 adds.append('(via (at %.5f 38.825) (size 0.6) (drill 0.3) (layers "F.Cu" "B.Cu") (net "/GND") (uuid "%s"))'%(cx+3.9,str(uuid.uuid4())))
s=s.rstrip()[:-1]+'\n'+'\n'.join(adds)+'\n)\n';P.write_text(s)
