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

"""
Project structure validation for writer module.

Verifies that writer projects have expected directory structure.
"""

from __future__ import annotations

from logging import getLogger
from pathlib import Path

logger = getLogger(__name__)


def validate_structure(project_dir: Path) -> None:
    """
    Verify attached project has expected structure.

    Checks:
    - Required directories exist (01_manuscript, 02_supplementary, 03_revision)

    Parameters
    ----------
    project_dir : Path
        Path to project directory

    Raises
    ------
    RuntimeError
        If structure is invalid
    """
    required_dirs = [
        project_dir / "01_manuscript",
        project_dir / "02_supplementary",
        project_dir / "03_revision",
    ]

    for dir_path in required_dirs:
        if not dir_path.exists():
            logger.error(f"Expected directory missing: {dir_path}")
            raise RuntimeError(
                f"Project structure invalid: missing {dir_path.name} directory (expected at: {dir_path})"
            )

    logger.info(f"Project structure verified at {project_dir.absolute()}")


__all__ = ["validate_structure"]

# EOF