Skip to content

mecfs_bio.build_system.task.zip_dir_task

Classes:

ZipDirTask

Bases: Task

Methods:

Attributes:

deps property

deps: list[Task]

meta instance-attribute

meta: Meta

source_dir_task instance-attribute

source_dir_task: Task

create classmethod

create(source_dir_task: Task, asset_id: str) -> ZipDirTask
Source code in mecfs_bio/build_system/task/zip_dir_task.py
@classmethod
def create(
    cls,
    source_dir_task: Task,
    asset_id: str,
) -> "ZipDirTask":
    source_meta = source_dir_task.meta
    if isinstance(source_meta, ResultDirectoryMeta):
        meta = ResultArchiveMeta(
            id=AssetId(asset_id),
            trait=source_meta.trait,
            project=source_meta.project,
            # sub_dir=source_meta.sub_dir,
            extension=".zip",
        )
    else:
        raise ValueError("Unknown source meta type")

    return ZipDirTask(
        source_dir_task=source_dir_task,
        meta=meta,
    )

execute

execute(scratch_dir: Path, fetch: Fetch, wf: WF) -> Asset
Source code in mecfs_bio/build_system/task/zip_dir_task.py
def execute(self, scratch_dir: Path, fetch: Fetch, wf: WF) -> Asset:
    source_asset = fetch(self.source_dir_task.asset_id)
    assert isinstance(source_asset, DirectoryAsset)
    source_path = source_asset.path
    shutil.make_archive(str(scratch_dir / "out"), "zip", source_path)
    return FileAsset(scratch_dir / "out.zip")