From 5713a92bf5395d5ff6987b899bd11b94a99857e8 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Thu, 29 Jan 2026 13:24:04 +0000 Subject: [PATCH] Add formatters module --- src/contextgen/formatters/yaml_formatter.py | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/contextgen/formatters/yaml_formatter.py 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")