def _ensure_can_init_project()

in src/databao_context_engine/project/init_project.py [0:0]


def _ensure_can_init_project(project_dir: Path) -> bool:
    if not project_dir.exists():
        raise InitProjectError(
            message=f"{project_dir.resolve()} does not exist", reason=InitErrorReason.PROJECT_DIR_DOESNT_EXIST
        )

    if not project_dir.is_dir():
        raise InitProjectError(
            message=f"{project_dir.resolve()} is not a directory", reason=InitErrorReason.PROJECT_DIR_NOT_DIRECTORY
        )

    if get_config_file(project_dir).is_file():
        raise InitProjectError(
            message=f"Can't initialise a Databao Context Engine project in a folder that already contains a config file. [project_dir: {project_dir.resolve()}]",
            reason=InitErrorReason.PROJECT_DIR_ALREADY_INITIALISED,
        )

    if get_source_dir(project_dir).is_dir():
        raise InitProjectError(
            message=f"Can't initialise a Databao Context Engine project in a folder that already contains a src directory. [project_dir: {project_dir.resolve()}]",
            reason=InitErrorReason.PROJECT_DIR_ALREADY_INITIALISED,
        )

    if get_examples_dir(project_dir).is_file():
        raise InitProjectError(
            message=f"Can't initialise a Databao Context Engine project in a folder that already contains an examples dir. [project_dir: {project_dir.resolve()}]",
            reason=InitErrorReason.PROJECT_DIR_ALREADY_INITIALISED,
        )

    return True