Skip to content

mecfs_bio.build_system.task.extract_all_from_zip_task

Task to extract the entire contents of a zip archive

Classes:

ExtractAllFromZipTask

Bases: Task

Task to extract the entire contents of a zip archive

Methods:

Attributes:

deps property

deps: list[Task]

meta property

meta: Meta

source_file_task instance-attribute

source_file_task: Task

create_from_zipped_reference_file classmethod

create_from_zipped_reference_file(
    source_task: Task, asset_id: str
) -> Task
Source code in mecfs_bio/build_system/task/extract_all_from_zip_task.py
@classmethod
def create_from_zipped_reference_file(
    cls, source_task: Task, asset_id: str
) -> Task:
    src_meta = source_task.meta
    assert isinstance(src_meta, ReferenceFileMeta)
    meta = ReferenceDataDirectoryMeta(
        group=src_meta.group,
        sub_group=src_meta.sub_group,
        sub_folder=PurePath("extracted"),
        id=AssetId(asset_id),
        dirname=src_meta.filename,
    )
    return cls(
        meta=meta,
        source_file_task=source_task,
    )

execute

execute(scratch_dir: Path, fetch: Fetch, wf: WF) -> Asset
Source code in mecfs_bio/build_system/task/extract_all_from_zip_task.py
def execute(self, scratch_dir: Path, fetch: Fetch, wf: WF) -> Asset:
    source_asset = fetch(self._source_id)
    assert isinstance(source_asset, FileAsset)
    target_dir = scratch_dir / "extracted"
    target_dir.mkdir(parents=True, exist_ok=True)
    with ZipFile(source_asset.path, "r") as zip_file:
        zip_file.extractall(
            target_dir,
        )
    return DirectoryAsset(target_dir)