Bases: Task
Task to extract the entire contents of a zip archive
Methods:
Attributes:
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(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)
|