Source code for foundry.output

"""File output helpers for writing generated files to disk."""

from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from collections.abc import Sequence
    from pathlib import Path

    from foundry.spec import GeneratedFile


[docs] def write_files( files: Sequence[GeneratedFile], out_dir: Path, ) -> int: """Write generated files to disk. Each file's :attr:`~GeneratedFile.path` is joined with *out_dir* to determine the target path. Parent directories are created as needed. Existing files are always overwritten. Args: files: Sequence of :class:`GeneratedFile` objects. out_dir: Root directory for output paths. Returns: Number of files written. """ written = 0 for f in files: target = out_dir / f.path target.parent.mkdir(parents=True, exist_ok=True) target.write_text(f.content) written += 1 return written