#!/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()