Loading...
No commits yet
Not committed History
Blame
_parser.py • 1.2 KB
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File: src/scitex_writer/_compile/_parser.py

"""
Compilation output parsing.

Parses LaTeX compilation output and log files for errors and warnings.
"""

from __future__ import annotations

from logging import getLogger
from pathlib import Path
from typing import List, Optional, Tuple

from .._utils._parse_latex_logs import parse_compilation_output

logger = getLogger(__name__)


def parse_output(
    stdout: str,
    stderr: str,
    log_file: Optional[Path] = None,
) -> Tuple[List[str], List[str]]:
    """
    Parse compilation output for errors and warnings.

    Parameters
    ----------
    stdout : str
        Standard output from compilation
    stderr : str
        Standard error from compilation
    log_file : Path, optional
        Path to LaTeX log file

    Returns
    -------
    tuple
        (errors, warnings) as lists of strings
    """
    error_issues, warning_issues = parse_compilation_output(
        stdout + stderr, log_file=log_file
    )

    # Convert LaTeXIssue objects to strings for backward compatibility
    errors = [str(issue) for issue in error_issues]
    warnings = [str(issue) for issue in warning_issues]

    return errors, warnings


__all__ = ["parse_output"]

# EOF