0hmX/pcbgolf-routing-checkpoint-20261012

A PCBGolf assembly combining a modeled PCB with copper/component bodies and seven native connector housings.

Version
0.0.3
License
unset
Stars
0

downloads/reassemble_step.py

#!/usr/bin/env python3
"""Run after downloading this package to reconstruct the exact audited STEP."""
import gzip, hashlib, json
from pathlib import Path
root = Path(__file__).resolve().parent
manifest = json.loads((root / 'assembly-parts.json').read_text())
sha = lambda data: hashlib.sha256(data).hexdigest()
parts = []
for item in manifest['parts']:
    data = (root / item['file']).read_bytes()
    assert len(data) == item['bytes'] and sha(data) == item['sha256'], item['file']
    parts.append(data)
compressed = b''.join(parts)
assert sha(compressed) == manifest['gzip_sha256']
data = gzip.decompress(compressed)
assert len(data) == manifest['assembly_step_bytes'] and sha(data) == manifest['assembly_step_sha256']
out = root.parent / 'assembly.step'
if out.exists():
    assert sha(out.read_bytes()) == manifest['assembly_step_sha256'], 'Existing assembly.step differs'
else:
    out.write_bytes(data)
print(f'Verified exact assembly STEP: {out.name} ({len(data):,} bytes)')