diff --git a/src/contextgen/formatters/yaml_formatter.py b/src/contextgen/formatters/yaml_formatter.py new file mode 100644 index 0000000..b3aa368 --- /dev/null +++ b/src/contextgen/formatters/yaml_formatter.py @@ -0,0 +1,24 @@ +"""YAML formatter for structured output.""" + +from pathlib import Path +from typing import Any + +import yaml + + +class YAMLFormatter: + """Formats context data as YAML.""" + + def __init__(self, output_path: Path | None = None): + self.output_path = output_path + + def format(self, data: dict[str, Any]) -> str: + """Format data as YAML string.""" + return yaml.dump(data, default_flow_style=False, allow_unicode=True, sort_keys=False) + + def save(self, data: dict[str, Any]) -> None: + """Save formatted data to file.""" + if self.output_path: + self.output_path.parent.mkdir(parents=True, exist_ok=True) + content = self.format(data) + self.output_path.write_text(content, encoding="utf-8")