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

"""
Supplementary materials compilation function.

Provides supplementary-specific compilation with options for:
- Figure inclusion (default)
- PowerPoint to TIF conversion
- TIF cropping
- Quiet mode
"""

from __future__ import annotations

from pathlib import Path
from typing import Callable, Optional

from .._dataclasses import CompilationResult
from ._runner import run_compile


def compile_supplementary(
    project_dir: Path,
    timeout: int = 300,
    no_figs: bool = False,
    ppt2tif: bool = False,
    crop_tif: bool = False,
    quiet: bool = False,
    log_callback: Optional[Callable[[str], None]] = None,
    progress_callback: Optional[Callable[[int, str], None]] = None,
) -> CompilationResult:
    """
    Compile supplementary materials with optional callbacks.

    Parameters
    ----------
    project_dir : Path
        Path to writer project directory
    timeout : int
        Timeout in seconds
    no_figs : bool
        Exclude figures (default includes figures)
    ppt2tif : bool
        Convert PowerPoint to TIF on WSL
    crop_tif : bool
        Crop TIF images to remove excess whitespace
    quiet : bool
        Suppress detailed logs for LaTeX compilation
    log_callback : Optional[Callable[[str], None]]
        Called with each log line
    progress_callback : Optional[Callable[[int, str], None]]
        Called with progress updates (percent, step)

    Returns
    -------
    CompilationResult
        Compilation status and outputs

    Examples
    --------
    >>> from pathlib import Path
    >>> from scitex_writer._compile import compile_supplementary
    >>>
    >>> # Standard compilation with figures
    >>> result = compile_supplementary(
    ...     project_dir=Path("~/my-paper"),
    ...     ppt2tif=True,
    ...     quiet=False
    ... )
    >>>
    >>> # Quick compilation without figures
    >>> result = compile_supplementary(
    ...     project_dir=Path("~/my-paper"),
    ...     no_figs=True,
    ...     quiet=True
    ... )
    """
    return run_compile(
        "supplementary",
        project_dir,
        timeout=timeout,
        no_figs=no_figs,
        ppt2tif=ppt2tif,
        crop_tif=crop_tif,
        quiet=quiet,
        log_callback=log_callback,
        progress_callback=progress_callback,
    )


__all__ = ["compile_supplementary"]

# EOF