diff --git a/dataforge/parsers.py b/dataforge/parsers.py index 41d2a16..384c860 100644 --- a/dataforge/parsers.py +++ b/dataforge/parsers.py @@ -30,9 +30,7 @@ def detect_format(file_path: str) -> str: } format_name = format_map.get(ext) if format_name is None: - raise ValueError( - f"Unsupported file extension: {ext}. Supported formats: {', '.join(SUPPORTED_FORMATS)}" - ) + raise ValueError(f"Unsupported file extension: {ext}. Supported formats: {', '.join(SUPPORTED_FORMATS)}") return format_name @@ -76,18 +74,12 @@ def parse_content(content: str, format: str) -> Any: elif tomllib is not None: return tomllib.loads(content) else: - raise ImportError( - "Neither tomli nor tomllib is available for TOML parsing" - ) + raise ImportError("Neither tomli nor tomllib is available for TOML parsing") else: - raise ValueError( - f"Unsupported format: {format}. Supported formats: {', '.join(SUPPORTED_FORMATS)}" - ) + raise ValueError(f"Unsupported format: {format}. Supported formats: {', '.join(SUPPORTED_FORMATS)}") -def dump_data( - data: Any, format: str, output: Optional[str] = None, indent: int = 2 -) -> str: +def dump_data(data: Any, format: str, output: Optional[str] = None, indent: int = 2) -> str: """Dump data to string or file based on format.""" if format == "json": result = json.dumps(data, indent=indent, ensure_ascii=False) @@ -96,22 +88,16 @@ def dump_data( elif format == "toml": try: import tomli_w - result = tomli_w.dumps(data) except ImportError: try: import tomllib - result = tomllib.dumps(data) except ImportError: - raise ImportError( - "tomli_w or tomllib required for TOML output" - ) + raise ImportError("tomli_w or tomllib required for TOML output") else: - raise ValueError( - f"Unsupported format: {format}. Supported formats: {', '.join(SUPPORTED_FORMATS)}" - ) - + raise ValueError(f"Unsupported format: {format}. Supported formats: {', '.join(SUPPORTED_FORMATS)}") + if output: with open(output, "w", encoding="utf-8") as f: f.write(result)