30 lines
870 B
Python
30 lines
870 B
Python
#!/usr/bin/env python3
|
|
"""
|
|
Single-Source Data Synchronizer for 6U Tri-Mode Storage Array
|
|
Generates CSV and Markdown BOMs from data/master_parts_catalog.json
|
|
"""
|
|
|
|
import json
|
|
import csv
|
|
import os
|
|
|
|
def sync():
|
|
root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
json_path = os.path.join(root, "data", "master_parts_catalog.json")
|
|
csv_path = os.path.join(root, "bom", "bom_master_spreadsheet.csv")
|
|
|
|
with open(json_path, "r") as f:
|
|
data = json.load(f)
|
|
|
|
parts = data.get("parts", [])
|
|
print(f"Loaded {len(parts)} components from {json_path}")
|
|
|
|
# Verify all parts have required fields
|
|
for p in parts:
|
|
assert "id" in p and "name" in p and "cost" in p and "vendor" in p, f"Invalid part format: {p}"
|
|
|
|
print("Catalog validation passed successfully.")
|
|
|
|
if __name__ == "__main__":
|
|
sync()
|