diff --git a/src/converters/yaml_converter.py b/src/converters/yaml_converter.py new file mode 100644 index 0000000..e4f9270 --- /dev/null +++ b/src/converters/yaml_converter.py @@ -0,0 +1,39 @@ +"""YAML converter module.""" + +import yaml +from typing import Any + +from .base import BaseConverter + + +class YAMLConverter(BaseConverter): + """Converter for YAML format.""" + + format_name = 'yaml' + extensions = ('.yaml', '.yml') + + def loads(self, content: str) -> Any: + """Parse YAML string to Python object. + + Args: + content: YAML string content + + Returns: + Parsed Python object + + Raises: + yaml.YAMLError: If content is not valid YAML + """ + return yaml.safe_load(content) + + def dumps(self, data: Any, indent: int = 2) -> str: + """Serialize Python object to YAML string. + + Args: + data: Python object to serialize + indent: Number of spaces for indentation (multiplied for nested levels) + + Returns: + YAML string representation + """ + return yaml.dump(data, indent=indent, default_flow_style=False, allow_unicode=True)