import json from core.node import Node from core.compatibility_result import CompatibilityResult, CompatibilityLevel class FeatureWriteRequirement: data_type: str = "table" def check(self, provided): if provided.data_type != self.data_type: return CompatibilityResult( level=CompatibilityLevel.ERROR, message="FeatureWriter requires feature table input" ) return CompatibilityResult( level=CompatibilityLevel.OK, message="Compatible" ) class FeatureWriter(Node): def __init__(self, output_path: str): self.output_path = output_path super().__init__( name="FeatureWriter", inputs={"features": FeatureWriteRequirement()}, outputs={} ) def run(self, features): with open(self.output_path, "w", encoding="utf-8") as f: json.dump(features, f, indent=2)