seqslab-cli 3.3.0__tar.gz → 3.3.1__tar.gz
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.
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/PKG-INFO +1 -1
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/__init__.py +1 -1
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/commands.py +22 -8
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/internal/parameters.py +3 -1
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/template/base.py +5 -2
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab_cli.egg-info/PKG-INFO +1 -1
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab_cli.egg-info/requires.txt +1 -1
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/requirements.txt +1 -1
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/LICENSE +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/MANIFEST.in +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/README.md +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/auth/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/auth/azuread.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/auth/commands.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/cli.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/context.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/api/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/api/azure.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/api/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/api/common.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/api/template.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/commands.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/internal/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/internal/aiocopy.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/internal/common.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/internal/utils.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/storage/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/storage/azure.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/storage/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/utils/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/utils/atgxmetadata.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/utils/biomimetype.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/drs/utils/progressbar.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/exceptions.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/organization/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/organization/commands.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/organization/resource/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/organization/resource/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/plugin.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/role/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/role/commands.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/role/internal/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/role/internal/common.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/role/resource/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/role/resource/azure.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/role/resource/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/runsheet/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/runsheet/runsheet.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/sample_sheet/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/sample_sheet/_version.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/sample_sheet/util.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/scr/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/scr/commands.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/scr/internal/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/scr/internal/common.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/scr/resource/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/scr/resource/azure.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/scr/resource/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/session_logger.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/settings.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/statusbar.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/commands.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/internal/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/internal/utils.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/register/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/register/azure.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/register/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/register/common.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/register/template.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/resource/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/resource/azure.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/resource/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/resource/common.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/template/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/template/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/trs/template/template.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/usage_logger.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/user/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/user/commands.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/user/internal/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/user/internal/common.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/user/resource/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/user/resource/azure.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/user/resource/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/internal/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/internal/common.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/resource/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/resource/azure.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/resource/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/template/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/wes/template/template.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/workspace/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/workspace/commands.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/workspace/internal/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/workspace/internal/common.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/workspace/resource/__init__.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/workspace/resource/azure.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab/workspace/resource/base.py +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab_cli.egg-info/SOURCES.txt +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab_cli.egg-info/dependency_links.txt +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab_cli.egg-info/entry_points.txt +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab_cli.egg-info/top_level.txt +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/python/seqslab_cli.egg-info/zip-safe +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/setup.cfg +0 -0
- {seqslab-cli-3.3.0 → seqslab-cli-3.3.1}/setup.py +0 -0
|
@@ -240,6 +240,11 @@ class BaseJobs:
|
|
|
240
240
|
"names. For example, ~{Sample_Name}_S~{Sample_ID} matches `NA12878_S1.fastq.gz` with "
|
|
241
241
|
"Sample_Name as `NA12878` and Sample_ID as `1` (optional, defaulting to ~{Sample_ID}).",
|
|
242
242
|
aliases=["fq_sig"])
|
|
243
|
+
@argument("token_lifetime",
|
|
244
|
+
type=int,
|
|
245
|
+
positional=False,
|
|
246
|
+
description="Specify the duration, in hours, for the SeqsLab API token lifespan for this run (optional, "
|
|
247
|
+
"default = 2).")
|
|
243
248
|
def request_runsheet(self,
|
|
244
249
|
working_dir: str,
|
|
245
250
|
run_sheet: str,
|
|
@@ -247,7 +252,8 @@ class BaseJobs:
|
|
|
247
252
|
integrity: bool = False,
|
|
248
253
|
trust: bool = False,
|
|
249
254
|
kernel_version: str = '',
|
|
250
|
-
fastq_signature: str = '~{Sample_ID}'
|
|
255
|
+
fastq_signature: str = '~{Sample_ID}',
|
|
256
|
+
token_lifetime: int = 2
|
|
251
257
|
):
|
|
252
258
|
"""
|
|
253
259
|
Parse run_sheet.csv and create a request.json file for each WES run.
|
|
@@ -269,13 +275,14 @@ class BaseJobs:
|
|
|
269
275
|
trust=trust, is_runsheet_template=True,
|
|
270
276
|
is_single_end=run_sheet.SampleSheet.is_single_end,
|
|
271
277
|
kernel_version=kernel_version,
|
|
272
|
-
fq_signature=fastq_signature
|
|
278
|
+
fq_signature=fastq_signature,
|
|
279
|
+
token_lifetime=token_lifetime)
|
|
273
280
|
return 0
|
|
274
281
|
|
|
275
282
|
def _runs_routine(self, run: Run, working_dir: str, workspace: str, execs: str = None,
|
|
276
283
|
integrity: bool = False, trust: bool = False, kernel_version: str = '',
|
|
277
284
|
is_runsheet_template: bool = False,
|
|
278
|
-
is_single_end: bool = False, fq_signature: str = '~{Sample_ID}', ):
|
|
285
|
+
is_single_end: bool = False, fq_signature: str = '~{Sample_ID}', token_lifetime: int = 2):
|
|
279
286
|
|
|
280
287
|
def label_field_validation(label):
|
|
281
288
|
message = f'label Name ({label}) can only contain alphanumeric characters ' \
|
|
@@ -314,7 +321,8 @@ class BaseJobs:
|
|
|
314
321
|
"name": run.run_name,
|
|
315
322
|
'workflow_params': params,
|
|
316
323
|
'workflow_backend_params': parameters.workflow_backend_params(execs_path, workspace, run.runtimes,
|
|
317
|
-
integrity, trust, kernel_version
|
|
324
|
+
integrity, trust, kernel_version,
|
|
325
|
+
token_lifetime),
|
|
318
326
|
'workflow_url': run.workflow_url,
|
|
319
327
|
"workflow_type_version": wf_info[0],
|
|
320
328
|
'workflow_type': wf_info[1],
|
|
@@ -345,8 +353,8 @@ class BaseJobs:
|
|
|
345
353
|
type=str,
|
|
346
354
|
description="Key:value pairs indicating the workflow name -> SeqsLab supported runtime_options names. "
|
|
347
355
|
"Multiple configuration pairs can be provided using ':' as separator, "
|
|
348
|
-
"e.g. main=
|
|
349
|
-
"(optional, default = None, which indicates running the whole workflow.wdl using
|
|
356
|
+
"e.g. main=m4-cluster:subworkflow=m4-8xcluster "
|
|
357
|
+
"(optional, default = None, which indicates running the whole workflow.wdl using m4-cluster for "
|
|
350
358
|
"a single node cluster on the Azure backend).")
|
|
351
359
|
@argument("integrity",
|
|
352
360
|
type=bool,
|
|
@@ -362,9 +370,14 @@ class BaseJobs:
|
|
|
362
370
|
@argument("kernel_version",
|
|
363
371
|
type=str,
|
|
364
372
|
description="Specify the SeqsLab kernel version (optional, default = None).")
|
|
373
|
+
@argument("token_lifetime",
|
|
374
|
+
type=int,
|
|
375
|
+
positional=False,
|
|
376
|
+
description="Specify the duration, in hours, for the SeqsLab API token lifespan for this run (optional, "
|
|
377
|
+
"default = 2).")
|
|
365
378
|
def request(self, run_name: str, working_dir: str, workflow_url: str, workspace: str,
|
|
366
379
|
execs=None, runtimes=None, integrity=False,
|
|
367
|
-
trust=False, kernel_version=''):
|
|
380
|
+
trust=False, kernel_version='', token_lifetime=2):
|
|
368
381
|
"""
|
|
369
382
|
Create WES run request.
|
|
370
383
|
"""
|
|
@@ -378,7 +391,8 @@ class BaseJobs:
|
|
|
378
391
|
cprint(e, "red")
|
|
379
392
|
return -1
|
|
380
393
|
self._runs_routine(run=single_run, working_dir=working_dir, workspace=workspace, execs=execs,
|
|
381
|
-
integrity=integrity, trust=trust, kernel_version=kernel_version
|
|
394
|
+
integrity=integrity, trust=trust, kernel_version=kernel_version,
|
|
395
|
+
token_lifetime=token_lifetime)
|
|
382
396
|
return 0
|
|
383
397
|
|
|
384
398
|
@command
|
|
@@ -153,6 +153,7 @@ def workflow_backend_params(execs_json: str,
|
|
|
153
153
|
integrity: bool = False,
|
|
154
154
|
trust: bool = False,
|
|
155
155
|
kernel_version: str = '',
|
|
156
|
+
token_lifetime: int = 2
|
|
156
157
|
) -> dict:
|
|
157
158
|
"""
|
|
158
159
|
Create workflow_backend_params.json.
|
|
@@ -180,7 +181,7 @@ def workflow_backend_params(execs_json: str,
|
|
|
180
181
|
|
|
181
182
|
rt_dict = {}
|
|
182
183
|
if not runtimes:
|
|
183
|
-
rt_dict = {primary_workflow_name: '
|
|
184
|
+
rt_dict = {primary_workflow_name: 'm4-cluster'}
|
|
184
185
|
else:
|
|
185
186
|
rtcs = runtimes.split(':')
|
|
186
187
|
for rtc in rtcs:
|
|
@@ -202,6 +203,7 @@ def workflow_backend_params(execs_json: str,
|
|
|
202
203
|
workspace=workspace,
|
|
203
204
|
integrity=integrity,
|
|
204
205
|
trust=trust,
|
|
206
|
+
token_lifetime=token_lifetime
|
|
205
207
|
)
|
|
206
208
|
return bk_template
|
|
207
209
|
|
|
@@ -85,12 +85,15 @@ class WorkflowParamsTemplate:
|
|
|
85
85
|
return inputs_connection
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
def WorkflowBackendParamsTemplate(graph: str, clusters: list, workspace: str, integrity: bool, trust: bool
|
|
88
|
+
def WorkflowBackendParamsTemplate(graph: str, clusters: list, workspace: str, integrity: bool, trust: bool,
|
|
89
|
+
token_lifetime: int) -> dict:
|
|
89
90
|
ret = {
|
|
90
91
|
"clusters": clusters,
|
|
91
92
|
"workspace": workspace,
|
|
92
93
|
"integrity": integrity,
|
|
93
|
-
"content_trust": trust
|
|
94
|
+
"content_trust": trust,
|
|
95
|
+
"token_lifetime": token_lifetime,
|
|
96
|
+
"debug_mode": False,
|
|
94
97
|
}
|
|
95
98
|
if graph:
|
|
96
99
|
ret.update({'graph': graph})
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|