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)')