virtool-workflow 6.0.0a8__py3-none-any.whl → 6.0.0a9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- virtool_workflow/analysis/fastqc.py +15 -18
- virtool_workflow/analysis/skewer.py +14 -21
- virtool_workflow/analysis/trimming.py +3 -6
- virtool_workflow/api/acquire.py +4 -6
- virtool_workflow/api/client.py +11 -15
- virtool_workflow/api/utils.py +9 -12
- virtool_workflow/data/analyses.py +4 -9
- virtool_workflow/data/hmms.py +5 -10
- virtool_workflow/data/indexes.py +12 -21
- virtool_workflow/data/jobs.py +2 -2
- virtool_workflow/data/ml.py +16 -8
- virtool_workflow/data/samples.py +8 -12
- virtool_workflow/data/subtractions.py +11 -17
- virtool_workflow/data/uploads.py +2 -3
- virtool_workflow/decorators.py +2 -5
- virtool_workflow/errors.py +1 -9
- virtool_workflow/hooks.py +2 -4
- virtool_workflow/pytest_plugin/data.py +3 -3
- virtool_workflow/pytest_plugin/subprocess.py +1 -1
- virtool_workflow/runtime/discover.py +5 -9
- virtool_workflow/runtime/hook.py +4 -7
- virtool_workflow/runtime/path.py +1 -1
- virtool_workflow/runtime/ping.py +1 -2
- virtool_workflow/runtime/run.py +13 -16
- virtool_workflow/runtime/run_subprocess.py +7 -10
- virtool_workflow/runtime/sentry.py +2 -3
- virtool_workflow/utils.py +12 -1
- virtool_workflow/workflow.py +6 -10
- {virtool_workflow-6.0.0a8.dist-info → virtool_workflow-6.0.0a9.dist-info}/METADATA +1 -1
- virtool_workflow-6.0.0a9.dist-info/RECORD +46 -0
- virtool_workflow-6.0.0a8.dist-info/RECORD +0 -46
- {virtool_workflow-6.0.0a8.dist-info → virtool_workflow-6.0.0a9.dist-info}/LICENSE +0 -0
- {virtool_workflow-6.0.0a8.dist-info → virtool_workflow-6.0.0a9.dist-info}/WHEEL +0 -0
- {virtool_workflow-6.0.0a8.dist-info → virtool_workflow-6.0.0a9.dist-info}/entry_points.txt +0 -0
virtool_workflow/utils.py
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
import asyncio
|
2
|
+
import tarfile
|
3
|
+
from collections.abc import Callable
|
2
4
|
from functools import wraps
|
3
5
|
from inspect import iscoroutinefunction
|
4
6
|
from pathlib import Path
|
5
|
-
from typing import Callable
|
6
7
|
|
7
8
|
|
8
9
|
def coerce_to_coroutine_function(func: Callable):
|
@@ -19,3 +20,13 @@ def coerce_to_coroutine_function(func: Callable):
|
|
19
20
|
|
20
21
|
async def make_directory(path: Path):
|
21
22
|
await asyncio.to_thread(path.mkdir, exist_ok=True, parents=True)
|
23
|
+
|
24
|
+
|
25
|
+
def untar(path: Path, target_path: Path):
|
26
|
+
with tarfile.open(path, "r:gz") as tar:
|
27
|
+
tar.extractall(target_path)
|
28
|
+
|
29
|
+
|
30
|
+
def move_all_model_files(source_path: Path, target_path: Path):
|
31
|
+
for file in source_path.iterdir():
|
32
|
+
file.rename(target_path / file.name)
|
virtool_workflow/workflow.py
CHANGED
@@ -2,21 +2,20 @@
|
|
2
2
|
from __future__ import annotations
|
3
3
|
|
4
4
|
from dataclasses import dataclass, field
|
5
|
-
from typing import
|
5
|
+
from typing import Any, Awaitable, Callable, Optional
|
6
6
|
|
7
7
|
from virtool_workflow.utils import coerce_to_coroutine_function
|
8
8
|
|
9
9
|
|
10
10
|
@dataclass
|
11
11
|
class Workflow:
|
12
|
-
"""
|
13
|
-
A step-wise, long-running operation.
|
12
|
+
"""A step-wise, long-running operation.
|
14
13
|
"""
|
15
14
|
|
16
15
|
steps: list[WorkflowStep] = field(default_factory=list)
|
17
16
|
|
18
17
|
def step(
|
19
|
-
self, step: Optional[Callable] = None, *, name: str | None = None
|
18
|
+
self, step: Optional[Callable] = None, *, name: str | None = None,
|
20
19
|
) -> Callable:
|
21
20
|
"""Decorator for adding a step to the workflow."""
|
22
21
|
if step is None:
|
@@ -33,8 +32,7 @@ class Workflow:
|
|
33
32
|
|
34
33
|
@dataclass(frozen=True)
|
35
34
|
class WorkflowStep:
|
36
|
-
"""
|
37
|
-
Metadata for a workflow step.
|
35
|
+
"""Metadata for a workflow step.
|
38
36
|
|
39
37
|
:param name: The presentation name for the step.
|
40
38
|
:param description: The description of the step.
|
@@ -53,8 +51,7 @@ class WorkflowStep:
|
|
53
51
|
display_name: str = None,
|
54
52
|
description: str = None,
|
55
53
|
) -> WorkflowStep:
|
56
|
-
"""
|
57
|
-
Create a WorkflowStep from a callable.
|
54
|
+
"""Create a WorkflowStep from a callable.
|
58
55
|
|
59
56
|
:param func: The callable to be used.
|
60
57
|
:param display_name: The display name to be used, if None then a display name
|
@@ -82,8 +79,7 @@ class WorkflowStep:
|
|
82
79
|
|
83
80
|
|
84
81
|
def _get_description_from_docstring(func: Callable[..., Any]) -> str:
|
85
|
-
"""
|
86
|
-
Extract the first line of the docstring as a description for a step function.
|
82
|
+
"""Extract the first line of the docstring as a description for a step function.
|
87
83
|
|
88
84
|
:param func: The step function to get the description for
|
89
85
|
:raise ValueError: When `call` does not have a docstring
|
@@ -0,0 +1,46 @@
|
|
1
|
+
virtool_workflow/__init__.py,sha256=Tw0lAFudpsFyCaiR2Oz_RKYU6N-mSCmhXDftm1WT37M,308
|
2
|
+
virtool_workflow/analysis/__init__.py,sha256=eRMQhKOxijlFlYI78FzmHZoF1qYevBXycpIcmlrgFqI,57
|
3
|
+
virtool_workflow/analysis/fastqc.py,sha256=pNorkhNVazV30fBY3KEJ6vfEskqsBzp80a_Iai8BOn8,13149
|
4
|
+
virtool_workflow/analysis/skewer.py,sha256=_kTCLd6XUUscgMgPVc50Xcwy1QZzxCwxbEmYgm6PQwc,7130
|
5
|
+
virtool_workflow/analysis/trimming.py,sha256=rJG9f1mDMkivN-YcxU-_IubTUkn-oyG3NUUrhGuHWzs,1447
|
6
|
+
virtool_workflow/analysis/utils.py,sha256=YU1_yInZzTNl9nKQTebUz47kUEqZ__d0k-RMLX8DWOA,1108
|
7
|
+
virtool_workflow/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
+
virtool_workflow/api/acquire.py,sha256=lEKXglgIeiJ_yl6hPzuBklIOrSWvyr8MpIl2LA4JL7w,2134
|
9
|
+
virtool_workflow/api/client.py,sha256=wOAAX0Na1IrULWUTGq0wzbjquZqmZqCnc0gb2A2JvLE,4604
|
10
|
+
virtool_workflow/api/utils.py,sha256=IfVqw7LIgwJqdvINjClPUxj4HqQPvi_8KC7HJrjy8T4,3083
|
11
|
+
virtool_workflow/cli.py,sha256=yEl1LziABKbjc5MCOoUGLy-iuqehOou37x9ox4LA92M,1441
|
12
|
+
virtool_workflow/data/__init__.py,sha256=L2bQ5rMpnCMuLWDMwel4-wPchfQCTHH3EEwxDqwGOsY,610
|
13
|
+
virtool_workflow/data/analyses.py,sha256=EzXfidKizEV_KjvaWrMLZpUMo0H2KCE_EI3IQPAFjT4,3117
|
14
|
+
virtool_workflow/data/hmms.py,sha256=h9ahtprzhEsHNscsr_--2vkkKFNWgZu49ojkHRw9Ars,3234
|
15
|
+
virtool_workflow/data/indexes.py,sha256=tKCuNoxHlXNPb5YVPS8Qfa1bXkH-BAcHnrIu-DlkjlU,8997
|
16
|
+
virtool_workflow/data/jobs.py,sha256=LXIsEjgJx_bRa19_3gx5kxfdCmNez-xlAT7e-4bOcLo,1667
|
17
|
+
virtool_workflow/data/ml.py,sha256=E19USVcXWjCU2NH1QVR74PLBnVY66NKJG00DSxnn1yY,2190
|
18
|
+
virtool_workflow/data/samples.py,sha256=nI5pkK4hAAjKVzt1dLy7Ur6veLL3Wb435URjfSxgGt8,4899
|
19
|
+
virtool_workflow/data/subtractions.py,sha256=nimId8QTXP-NFV3yD_5HtueEkh_Ui3ykmyR9QdPZkQQ,7242
|
20
|
+
virtool_workflow/data/uploads.py,sha256=jjQ8hczvkSV-B8dioSDB_E5kA2S_4kDYDmr86TxOqbA,905
|
21
|
+
virtool_workflow/decorators.py,sha256=5V_9f7ZaXCSY52zGw23vaTzG6m2k5BuDAttfzMr8jn4,1274
|
22
|
+
virtool_workflow/errors.py,sha256=_MR9gpU5VYpG88URKZTq6Od4Ix-MAwjNjHm5URNp_9o,1152
|
23
|
+
virtool_workflow/files.py,sha256=hYztls3n30WTaI6rtZjrBobN1SaEGCHr4vWK8bhMJr0,384
|
24
|
+
virtool_workflow/hooks.py,sha256=M4q38tscp_ndpJ4wDOWslKLAu5K-fYwJLHnVG7E0tEU,2683
|
25
|
+
virtool_workflow/pytest_plugin/__init__.py,sha256=A69bQFoqZ_NiZnV2N8ubUFQLBkxiMdnqADJaiQUBM9g,174
|
26
|
+
virtool_workflow/pytest_plugin/data.py,sha256=2VFbKS0J-weX_hsXKFF_fV42sVCU_mQprzcGTik2sLo,5602
|
27
|
+
virtool_workflow/pytest_plugin/subprocess.py,sha256=dxbanWy1kMjN5pdowhZqipB1uMt3Dor-DgQSu9xzAFE,229
|
28
|
+
virtool_workflow/pytest_plugin/utils.py,sha256=lxyWqHKWXGxQXBIbcYUCC6PvjSeruhSDnD-dPX1mL5Y,211
|
29
|
+
virtool_workflow/runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
+
virtool_workflow/runtime/config.py,sha256=fHkprWxxqWeEWKOobxpVvSOS5Njk5Mq32sH-p5o_d8g,546
|
31
|
+
virtool_workflow/runtime/discover.py,sha256=DsXII4f1cO0JT-csardzN-PfcuJ09SAFBgfDydZikFo,2933
|
32
|
+
virtool_workflow/runtime/events.py,sha256=ZIX3veBfC_2yNTdClHJaYMPn4KAF9JZqpQ3qDq4ox_E,138
|
33
|
+
virtool_workflow/runtime/hook.py,sha256=ZfmvDHoSE7Qwk4Rpcjyd-pYuwP55mzEddec2ngRZpsg,4328
|
34
|
+
virtool_workflow/runtime/path.py,sha256=J8CsNMTg4XgDtib0gVSsLNvv17q793M-ydsxN6pkHrI,562
|
35
|
+
virtool_workflow/runtime/ping.py,sha256=Xm4udRCcldHfSV1Rjpiqr-6vE7G6kaVaZgDlzNSxdao,1434
|
36
|
+
virtool_workflow/runtime/redis.py,sha256=guLNxe0VbW5QSuSWRXO0bl9GLwHOQWWOvs5QIacLjqA,1601
|
37
|
+
virtool_workflow/runtime/run.py,sha256=e0MnCUafJdsj3oI1r1YC2skEDp4ck2v7YFqIdBkDaIk,8192
|
38
|
+
virtool_workflow/runtime/run_subprocess.py,sha256=wF0zPxkd8ft8o9wEzdLlouWXgDTO8aGkaqmQWqClHGI,4270
|
39
|
+
virtool_workflow/runtime/sentry.py,sha256=tqhkvbGpUhfcRZOyupIrg4t-FeTWf3wfBv0GYdYNTds,744
|
40
|
+
virtool_workflow/utils.py,sha256=3DMGezuMi-8jIfpUpYUTgqqsvnPFsaQhZCH31o6OiQA,818
|
41
|
+
virtool_workflow/workflow.py,sha256=W8IEFzd28wjdNNlqRrPDKyX9LeQpR6Vxy7zKeYEMQEc,2655
|
42
|
+
virtool_workflow-6.0.0a9.dist-info/LICENSE,sha256=nkoVQw9W4aoQM9zgtNzHDmztap5TuXZ1L2-87vNr3w8,1097
|
43
|
+
virtool_workflow-6.0.0a9.dist-info/METADATA,sha256=0eZCbeBEDncqX9ekyw408vjXQ2Hmsr5oG1CzneT_hYM,4414
|
44
|
+
virtool_workflow-6.0.0a9.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
45
|
+
virtool_workflow-6.0.0a9.dist-info/entry_points.txt,sha256=d4MA8ZDTJOU0jKZ3ymtHZbfLVoRPgItEIN5U4uIqay8,62
|
46
|
+
virtool_workflow-6.0.0a9.dist-info/RECORD,,
|
@@ -1,46 +0,0 @@
|
|
1
|
-
virtool_workflow/__init__.py,sha256=Tw0lAFudpsFyCaiR2Oz_RKYU6N-mSCmhXDftm1WT37M,308
|
2
|
-
virtool_workflow/analysis/__init__.py,sha256=eRMQhKOxijlFlYI78FzmHZoF1qYevBXycpIcmlrgFqI,57
|
3
|
-
virtool_workflow/analysis/fastqc.py,sha256=SNXcq7thdJYHFr1kwTUG0CJLRDG1N0hTVSTrs5xuOA4,13151
|
4
|
-
virtool_workflow/analysis/skewer.py,sha256=CemHLab4b_HIU1yHTB2CtHYRVM488pHnrggOxF90jAk,7159
|
5
|
-
virtool_workflow/analysis/trimming.py,sha256=fTti5ND57Qcv5pIEKEZ9wYKe4K72-iYr6ixfnfJV60U,1457
|
6
|
-
virtool_workflow/analysis/utils.py,sha256=YU1_yInZzTNl9nKQTebUz47kUEqZ__d0k-RMLX8DWOA,1108
|
7
|
-
virtool_workflow/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
-
virtool_workflow/api/acquire.py,sha256=lViVFwQLf6IAmoK9kkzx3RAbXWgZ33KdYALDqK9eqGU,2139
|
9
|
-
virtool_workflow/api/client.py,sha256=OoAW6RdLBdnSJ0TMEtQq7SsbaLuGXTyJ0L2lzvfhV_E,4623
|
10
|
-
virtool_workflow/api/utils.py,sha256=FNGD99UJKbQeNIxnoVwvsW1bXI25hRi87kpdiqsXkHE,3096
|
11
|
-
virtool_workflow/cli.py,sha256=yEl1LziABKbjc5MCOoUGLy-iuqehOou37x9ox4LA92M,1441
|
12
|
-
virtool_workflow/data/__init__.py,sha256=L2bQ5rMpnCMuLWDMwel4-wPchfQCTHH3EEwxDqwGOsY,610
|
13
|
-
virtool_workflow/data/analyses.py,sha256=UdNrQWAvWHZwPLJinx_2_OK5eBeRlObVEx2QHcbFuRk,3150
|
14
|
-
virtool_workflow/data/hmms.py,sha256=-ANZkM3C7p25zCEeS4WJFskBvHZWcpKjFDBZC2Z9HEA,3271
|
15
|
-
virtool_workflow/data/indexes.py,sha256=woF5iKb011nj5Sq37wasKb-xf8gH-xugJSusqcV6Avk,9072
|
16
|
-
virtool_workflow/data/jobs.py,sha256=VALeDaaT0WWqDyGsiNxbeKIcdklYZljWhu0zBhUPZs0,1667
|
17
|
-
virtool_workflow/data/ml.py,sha256=Yoc4ePH-J_4BKi-wjCKFD6vuI58g3Jw7SKk4ri9ymQ4,1891
|
18
|
-
virtool_workflow/data/samples.py,sha256=p58-qwHsaPoa3oGiDM5yibVibuvH5JPhfx8zNuTq9KE,4915
|
19
|
-
virtool_workflow/data/subtractions.py,sha256=X-R8t5gIboHVE7kHyziWntuoyb1SbTjSV9UETB0Tt38,7282
|
20
|
-
virtool_workflow/data/uploads.py,sha256=sIpuS2AtJ5yvZWitkzqb6hG1iLVe7K4q6UIsEDizFCE,899
|
21
|
-
virtool_workflow/decorators.py,sha256=mh4_wBVLcAQYkn_aPonYEb2TP7NxORVdjBVgfehjHwQ,1285
|
22
|
-
virtool_workflow/errors.py,sha256=CaFd4JNBAALU7ZK8_k9YJwluX_wUYZMbdf0uN7BsFXw,1215
|
23
|
-
virtool_workflow/files.py,sha256=hYztls3n30WTaI6rtZjrBobN1SaEGCHr4vWK8bhMJr0,384
|
24
|
-
virtool_workflow/hooks.py,sha256=-KRoFfqR_nDLt3R0hC4Phmu7C-HCnfzd_obU_CyydBE,2689
|
25
|
-
virtool_workflow/pytest_plugin/__init__.py,sha256=A69bQFoqZ_NiZnV2N8ubUFQLBkxiMdnqADJaiQUBM9g,174
|
26
|
-
virtool_workflow/pytest_plugin/data.py,sha256=8B2LsO9JdPK25nyBd12HqSBfP-nfI0N5Um8CD8RMok8,5599
|
27
|
-
virtool_workflow/pytest_plugin/subprocess.py,sha256=GZawpdhIR9DIBYiJjjn4QoK7YoM3qAumpuwSl_0Bl2k,227
|
28
|
-
virtool_workflow/pytest_plugin/utils.py,sha256=lxyWqHKWXGxQXBIbcYUCC6PvjSeruhSDnD-dPX1mL5Y,211
|
29
|
-
virtool_workflow/runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
-
virtool_workflow/runtime/config.py,sha256=fHkprWxxqWeEWKOobxpVvSOS5Njk5Mq32sH-p5o_d8g,546
|
31
|
-
virtool_workflow/runtime/discover.py,sha256=IbCZ5FanxpGvdkdJJCgg22Ry9EhCIJbcVJQAToObLXk,2953
|
32
|
-
virtool_workflow/runtime/events.py,sha256=ZIX3veBfC_2yNTdClHJaYMPn4KAF9JZqpQ3qDq4ox_E,138
|
33
|
-
virtool_workflow/runtime/hook.py,sha256=b4IpkWQaGx2IjzDcxXzuv7ZnR7I_r4Dt2kOU_brNRm4,4354
|
34
|
-
virtool_workflow/runtime/path.py,sha256=4-GpdpGeVKvyu_myLkW9mUT3AGsqYlBkGYB1RDZr2tI,562
|
35
|
-
virtool_workflow/runtime/ping.py,sha256=8ImcFLnofSqVJsyHmXm-EoVBp8HlKeonC6RT6IF0sik,1439
|
36
|
-
virtool_workflow/runtime/redis.py,sha256=guLNxe0VbW5QSuSWRXO0bl9GLwHOQWWOvs5QIacLjqA,1601
|
37
|
-
virtool_workflow/runtime/run.py,sha256=PdmIydoeUNwKeGF4MFmQus27MocQ7vZEQQLQA6AhofY,8203
|
38
|
-
virtool_workflow/runtime/run_subprocess.py,sha256=AviofEsOvp0buXRST-IxAW2txLwoTVCbKEt16pQhsVE,4295
|
39
|
-
virtool_workflow/runtime/sentry.py,sha256=6WNUYeQCoofP49cCmEy5bn_JRc3CSQmy7pnDW3XnAbc,748
|
40
|
-
virtool_workflow/utils.py,sha256=wJHdTcuwC3wzYfJVM32MJo1Xdn-6r7V1bJRoLr9mhU0,520
|
41
|
-
virtool_workflow/workflow.py,sha256=RxboCKLyCpfikPLIw7QFss77ERNlw8tJZhIXFB88DBs,2678
|
42
|
-
virtool_workflow-6.0.0a8.dist-info/LICENSE,sha256=nkoVQw9W4aoQM9zgtNzHDmztap5TuXZ1L2-87vNr3w8,1097
|
43
|
-
virtool_workflow-6.0.0a8.dist-info/METADATA,sha256=qV68A_t5xwT7AZkSbGYHUyP-VScKQB0LGICzezaQkYo,4414
|
44
|
-
virtool_workflow-6.0.0a8.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
45
|
-
virtool_workflow-6.0.0a8.dist-info/entry_points.txt,sha256=d4MA8ZDTJOU0jKZ3ymtHZbfLVoRPgItEIN5U4uIqay8,62
|
46
|
-
virtool_workflow-6.0.0a8.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|