abse/smartwatch-flex-top-only
Three-panel flex smartwatch with two parallel R3.9 bends, all components flat-top, low-profile JST connector harnesses, split heartbeat optical windows and screw-retained PCB mounting. Modeled 39 × 50.5 × 14.5mm prototype; 100% routing, zero native DRC and shorts. Hardware qualification pending.
- Version
- 0.2.22
- License
- unset
- Stars
- 0
scripts/run-case-fit-entries.py
from pathlib import Path
from concurrent.futures import ThreadPoolExecutor,as_completed
import os,subprocess,json
root=Path(__file__).resolve().parent.parent
env=dict(os.environ,NODE_USE_ENV_PROXY='1')
bun='/workspace/.cloud-tools/node_modules/.bin/bun'
def build(job):
name,entry=job
p=subprocess.run([bun,'scripts/build-entry.tsx',entry,f'dist/{name}'],cwd=root,env=env,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,text=True)
(root/f'final-native-{name}.log').write_text(p.stdout)
print(name,p.returncode,p.stdout[-500:],flush=True)
return {'entry':entry,'exitCode':p.returncode,'log':f'final-native-{name}.log'}
with ThreadPoolExecutor(max_workers=2) as pool:
records=[f.result() for f in as_completed([pool.submit(build,j) for j in [('index','index.tsx'),('flat','flat.circuit.tsx'),('assembly','assembly.circuit.tsx'),('enclosure-fit','enclosure-fit.circuit.tsx'),('watch','watch.circuit.tsx'),('pcb','pcb.circuit.tsx')]])]
(root/'reports/native-entry-builds.json').write_text(json.dumps(records,indent=2)+'\n')
assert all(r['exitCode']==0 for r in records),records