custom-nas/scripts/sync_data.py

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