Source code for catalyst.utils.pipelines
from pathlib import Path
import shutil
from git import Repo as repo # noqa: N813
from catalyst.utils.misc import copy_directory
URLS = { # noqa: WPS407
"classification": "https://github.com/catalyst-team/classification/",
"segmentation": "https://github.com/catalyst-team/segmentation/",
"detection": "https://github.com/catalyst-team/detection/",
}
CATALYST_ROOT = Path(__file__).resolve().parents[3]
PATH_TO_TEMPLATE = CATALYST_ROOT / "examples" / "_empty"
[docs]def clone_pipeline(template: str, out_dir: Path) -> None:
"""Clones pipeline from empty pipeline template or from demo pipelines
available in Git repos of Catalyst Team.
Args:
template: type of pipeline you want to clone.
empty/classification/segmentation
out_dir: path where pipeline directory should be cloned
"""
if template == "empty" or template is None:
copy_directory(PATH_TO_TEMPLATE, out_dir)
else:
url = URLS[template]
repo.clone_from(url, out_dir / "__git_temp")
shutil.rmtree(out_dir / "__git_temp" / ".git")
if (out_dir / "__git_temp" / ".gitignore").exists():
(out_dir / "__git_temp" / ".gitignore").unlink()
copy_directory(out_dir / "__git_temp", out_dir)
shutil.rmtree(out_dir / "__git_temp")
__all__ = ["clone_pipeline"]