latch 2.40.4.dev2__tar.gz → 2.40.4.dev3__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.
- {latch-2.40.4.dev2/latch.egg-info → latch-2.40.4.dev3}/PKG-INFO +1 -1
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/metadata.py +6 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3/latch.egg-info}/PKG-INFO +1 -1
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/utils.py +16 -2
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/build.py +9 -1
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/operator.py +9 -2
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/process.py +14 -2
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/main.py +0 -2
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/register/utils.py +0 -1
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/setup.py +1 -1
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/LICENSE +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/MANIFEST.in +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/README.md +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/account.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/executions.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/functions/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/functions/messages.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/functions/operators.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/functions/secrets.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/download.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/manager.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/node.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/progress.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/remote_copy.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/throttle.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/upload.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/_transfer/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/path.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/ldata/type.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/project.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/record.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/table.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/types.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/upstream_types/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/upstream_types/types.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/upstream_types/values.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/registry/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/conditional.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/dynamic.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/launch_plan.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/map_tasks.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/reference_workflow.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/tasks.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/resources/workflow.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/directory.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/file.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/glob.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/json.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/types/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/deseq2.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/mafft.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/pathway.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/rnaseq.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch/verified/trim_galore.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/SOURCES.txt +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/dependency_links.txt +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/entry_points.txt +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/requires.txt +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch.egg-info/top_level.txt +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/csrf.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/oauth2.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/pkce.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/auth/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/centromere/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/centromere/ctx.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/centromere/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/click_utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/constants.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/docker_utils/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/cache.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/errors.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/handler.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/exceptions/traceback.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/config/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/config/parser.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/config/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/common/serialize.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/channel.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/config.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/dag.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/file_persistence.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/serialize.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/adapters.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/base.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/conditional.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/map.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/tasks/merge.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/nextflow/workflow.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/config.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/serialize.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/single_task_snakemake.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/extras/snakemake/workflow.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/menus.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/autocomplete.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/glob.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/main.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/cp/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/execute/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/execute/main.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/execute/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/get.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/get_executions.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/get_params.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-311.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-38.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-39.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-310.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-311.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-38.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-39.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/.env +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/README.md +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/common/.dockerignore +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_conda/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_conda/conda_task.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_conda/environment.yaml +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_docker/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_docker/task.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nextflow/main.nf +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nextflow/nextflow.config +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nextflow/workflow.nf +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nfcore/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nfcore/task.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_r/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_r/environment.R +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_r/r_task.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/Snakefile +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/config.yaml +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/version +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/init.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/LICENSE +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/README.md +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/template/task.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/launch.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/local_dev.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/local_dev_old.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/login.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/ls.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/mkdir.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/move.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/preview.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/register/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/register/constants.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/register/register.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/rm.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/stop_pod.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/sync.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/ls.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/remove.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/upload.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/test_data/utils.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/workspace.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/tinyrequests.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/tui/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/utils/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/utils/path.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/utils/workflow.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/workflow_config.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/pyproject.toml +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/setup.cfg +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/tests/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/tests/cp/__init__.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/tests/fixtures.py +0 -0
- {latch-2.40.4.dev2 → latch-2.40.4.dev3}/tests/test_ls.py +0 -0
|
@@ -4,7 +4,9 @@ from enum import Enum
|
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
from textwrap import indent
|
|
6
6
|
from typing import (
|
|
7
|
+
Annotated,
|
|
7
8
|
Any,
|
|
9
|
+
Callable,
|
|
8
10
|
ClassVar,
|
|
9
11
|
Collection,
|
|
10
12
|
Dict,
|
|
@@ -478,6 +480,10 @@ class NextflowParameter(Generic[T], LatchParameter):
|
|
|
478
480
|
"""
|
|
479
481
|
default: Optional[T] = None
|
|
480
482
|
|
|
483
|
+
def __post_init__(self):
|
|
484
|
+
if self.samplesheet is True:
|
|
485
|
+
self.type = Annotated[self.type, "samplesheet"]
|
|
486
|
+
|
|
481
487
|
|
|
482
488
|
@dataclass
|
|
483
489
|
class NextflowFileParameter(NextflowParameter[Union[LatchFile, LatchDir]]):
|
|
@@ -37,13 +37,23 @@ def is_blob_type(typ: Type) -> TypeGuard[Union[Type[LatchFile], Type[LatchDir]]]
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
def is_downloadable_blob_type(typ: Type):
|
|
40
|
-
if not is_blob_type(typ):
|
|
40
|
+
if not is_blob_type(typ) or typ is LatchOutputDir:
|
|
41
41
|
return False
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
origin = get_origin(typ)
|
|
44
|
+
if origin is not None:
|
|
45
|
+
return all([
|
|
46
|
+
is_downloadable_blob_type(sub_typ) or sub_typ is type(None)
|
|
47
|
+
for sub_typ in get_args(typ)
|
|
48
|
+
])
|
|
49
|
+
|
|
50
|
+
return True
|
|
44
51
|
|
|
45
52
|
|
|
46
53
|
def type_repr(t: Type, *, add_namespace: bool = False) -> str:
|
|
54
|
+
if get_origin(t) == Annotated:
|
|
55
|
+
return type_repr(get_args(t)[0])
|
|
56
|
+
|
|
47
57
|
if getattr(t, "__name__", None) == "NoneType":
|
|
48
58
|
return "None"
|
|
49
59
|
|
|
@@ -70,3 +80,7 @@ def type_repr(t: Type, *, add_namespace: bool = False) -> str:
|
|
|
70
80
|
)
|
|
71
81
|
|
|
72
82
|
return getattr(t, "__name__", repr(t))
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def is_samplesheet_param(t: Type) -> bool:
|
|
86
|
+
return get_origin(t) == Annotated and get_args(t)[-1] == "samplesheet"
|
|
@@ -31,7 +31,7 @@ from ...click_utils import italic
|
|
|
31
31
|
from ...menus import select_tui
|
|
32
32
|
from ...utils import current_workspace, identifier_from_str
|
|
33
33
|
from ..common.serialize import binding_from_python
|
|
34
|
-
from ..common.utils import reindent
|
|
34
|
+
from ..common.utils import is_samplesheet_param, reindent
|
|
35
35
|
from .dag import DAG, VertexType
|
|
36
36
|
from .tasks.adapters import (
|
|
37
37
|
NextflowProcessPostAdapterTask,
|
|
@@ -523,6 +523,14 @@ def generate_nf_entrypoint(
|
|
|
523
523
|
0,
|
|
524
524
|
)
|
|
525
525
|
|
|
526
|
+
if any([is_samplesheet_param(t) for t in wf.python_interface.inputs.values()]):
|
|
527
|
+
preamble += reindent(
|
|
528
|
+
r"""
|
|
529
|
+
from latch_metadata.parameters import construct_samplesheet
|
|
530
|
+
""",
|
|
531
|
+
0,
|
|
532
|
+
)
|
|
533
|
+
|
|
526
534
|
for t in wf.python_interface.inputs.values():
|
|
527
535
|
preamble += get_preamble(t, make_optionals=True)
|
|
528
536
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from pathlib import Path
|
|
3
|
-
from typing import Dict, List, Mapping, Type
|
|
3
|
+
from typing import Annotated, Dict, List, Mapping, Type, get_args, get_origin
|
|
4
4
|
|
|
5
5
|
from latch.types.directory import LatchDir
|
|
6
6
|
from latch.types.file import LatchFile
|
|
7
7
|
from latch.types.metadata import ParameterType
|
|
8
8
|
|
|
9
|
-
from ...common.utils import is_blob_type, reindent, type_repr
|
|
9
|
+
from ...common.utils import is_blob_type, is_samplesheet_param, reindent, type_repr
|
|
10
10
|
from ..workflow import NextflowWorkflow
|
|
11
11
|
from .base import NextflowBaseTask, NFTaskType
|
|
12
12
|
|
|
@@ -151,6 +151,13 @@ class NextflowOperatorTask(NextflowBaseTask):
|
|
|
151
151
|
""",
|
|
152
152
|
2,
|
|
153
153
|
)
|
|
154
|
+
elif is_samplesheet_param(typ):
|
|
155
|
+
code_block += reindent(
|
|
156
|
+
f"""
|
|
157
|
+
{k} = construct_samplesheet({k})
|
|
158
|
+
""",
|
|
159
|
+
2,
|
|
160
|
+
)
|
|
154
161
|
|
|
155
162
|
# todo(ayush): figure out how to make this work
|
|
156
163
|
do_file_io = False
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from dataclasses import fields, is_dataclass
|
|
3
3
|
from pathlib import Path
|
|
4
|
-
from typing import List, Mapping, Optional, Type
|
|
4
|
+
from typing import Annotated, List, Mapping, Optional, Type
|
|
5
|
+
|
|
6
|
+
try:
|
|
7
|
+
from typing import get_args, get_origin
|
|
8
|
+
except ImportError:
|
|
9
|
+
from typing_extensions import get_args, get_origin
|
|
5
10
|
|
|
6
11
|
from latch.types.directory import LatchDir
|
|
7
12
|
from latch.types.file import LatchFile
|
|
8
13
|
from latch.types.metadata import ParameterType
|
|
9
14
|
|
|
10
|
-
from ...common.utils import is_blob_type, reindent, type_repr
|
|
15
|
+
from ...common.utils import is_blob_type, is_samplesheet_param, reindent, type_repr
|
|
11
16
|
from ..workflow import NextflowWorkflow
|
|
12
17
|
from .base import NextflowBaseTask, NFTaskType
|
|
13
18
|
|
|
@@ -165,6 +170,13 @@ class NextflowProcessTask(NextflowBaseTask):
|
|
|
165
170
|
""",
|
|
166
171
|
1,
|
|
167
172
|
)
|
|
173
|
+
elif is_samplesheet_param(typ):
|
|
174
|
+
code_block += reindent(
|
|
175
|
+
f"""
|
|
176
|
+
{k} = construct_samplesheet({k})
|
|
177
|
+
""",
|
|
178
|
+
1,
|
|
179
|
+
)
|
|
168
180
|
|
|
169
181
|
if self.script_path.resolve() != self.wf.nf_script.resolve():
|
|
170
182
|
stem = self.script_path.resolve().relative_to(self.wf.pkg_root.resolve())
|
|
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
|
|
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
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-311.pyc
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-38.pyc
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/__init__.cpython-39.pyc
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-310.pyc
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-311.pyc
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-38.pyc
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/__pycache__/init.cpython-39.pyc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/assemble_and_sort/assemble.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_conda/environment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nextflow/nextflow.config
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_nextflow/workflow.nf
RENAMED
|
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
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/Dockerfile
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/config.yaml
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/environment.yaml
RENAMED
|
File without changes
|
{latch-2.40.4.dev2 → latch-2.40.4.dev3}/latch_cli/services/init/example_snakemake/latch_metadata.py
RENAMED
|
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
|