latch 2.39.0.dev32__tar.gz → 2.39.0.dev34__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.39.0.dev32/latch.egg-info → latch-2.39.0.dev34}/PKG-INFO +1 -1
- {latch-2.39.0.dev32 → latch-2.39.0.dev34/latch.egg-info}/PKG-INFO +1 -1
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/SOURCES.txt +0 -11
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/build.py +50 -26
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/operator.py +17 -12
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/process.py +2 -2
- latch-2.39.0.dev34/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/__pycache__/init.cpython-310.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/setup.py +1 -1
- latch-2.39.0.dev32/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/__pycache__/__init__.cpython-311.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/__pycache__/__init__.cpython-38.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/__pycache__/__init__.cpython-39.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/__pycache__/init.cpython-311.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/__pycache__/init.cpython-38.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/__pycache__/init.cpython-39.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc +0 -0
- latch-2.39.0.dev32/latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/LICENSE +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/MANIFEST.in +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/README.md +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/account.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/executions.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/functions/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/functions/messages.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/functions/operators.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/functions/secrets.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/download.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/manager.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/node.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/progress.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/remote_copy.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/throttle.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/upload.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/_transfer/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/path.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/ldata/type.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/project.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/record.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/table.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/types.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/upstream_types/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/upstream_types/types.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/upstream_types/values.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/registry/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/conditional.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/launch_plan.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/map_tasks.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/reference_workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/tasks.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/resources/workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/directory.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/file.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/glob.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/json.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/metadata.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/types/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/deseq2.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/mafft.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/pathway.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/rnaseq.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch/verified/trim_galore.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/dependency_links.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/entry_points.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/requires.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch.egg-info/top_level.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/csrf.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/oauth2.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/pkce.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/auth/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/centromere/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/centromere/ctx.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/centromere/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/click_utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/constants.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/docker_utils/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/cache.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/errors.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/handler.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/exceptions/traceback.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/config/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/config/parser.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/config/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/serialize.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/common/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/channel.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/config.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/dag.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/file_persistence.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/serialize.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/adapters.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/base.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/conditional.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/map.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/tasks/merge.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/nextflow/workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/config.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/serialize.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/single_task_snakemake.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/main.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/menus.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/autocomplete.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/glob.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/main.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/cp/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/execute/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/execute/main.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/execute/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/get.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/get_executions.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/get_params.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/.env +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/README.md +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/common/.dockerignore +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_conda/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_conda/conda_task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_conda/environment.yaml +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_docker/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_docker/task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/Dockerfile +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/latch_metadata/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/main.nf +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/workflow.nf +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nfcore/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nfcore/task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_r/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_r/environment.R +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_r/r_task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/Snakefile +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/config.yaml +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/version +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/init.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/template/LICENSE +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/template/README.md +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/template/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/template/task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/launch.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/local_dev.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/local_dev_old.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/login.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/ls.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/mkdir.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/move.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/preview.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/register/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/register/constants.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/register/register.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/register/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/rm.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/stop_pod.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/sync.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/ls.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/remove.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/upload.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/test_data/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/workspace.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/tinyrequests.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/tui/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/utils/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/utils/path.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/utils/workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/workflow_config.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/pyproject.toml +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/setup.cfg +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/tests/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/tests/cp/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/tests/fixtures.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev34}/tests/test_ls.py +0 -0
|
@@ -134,13 +134,7 @@ latch_cli/services/execute/utils.py
|
|
|
134
134
|
latch_cli/services/init/__init__.py
|
|
135
135
|
latch_cli/services/init/init.py
|
|
136
136
|
latch_cli/services/init/__pycache__/__init__.cpython-310.pyc
|
|
137
|
-
latch_cli/services/init/__pycache__/__init__.cpython-311.pyc
|
|
138
|
-
latch_cli/services/init/__pycache__/__init__.cpython-38.pyc
|
|
139
|
-
latch_cli/services/init/__pycache__/__init__.cpython-39.pyc
|
|
140
137
|
latch_cli/services/init/__pycache__/init.cpython-310.pyc
|
|
141
|
-
latch_cli/services/init/__pycache__/init.cpython-311.pyc
|
|
142
|
-
latch_cli/services/init/__pycache__/init.cpython-38.pyc
|
|
143
|
-
latch_cli/services/init/__pycache__/init.cpython-39.pyc
|
|
144
138
|
latch_cli/services/init/assemble_and_sort/.env
|
|
145
139
|
latch_cli/services/init/assemble_and_sort/LICENSE
|
|
146
140
|
latch_cli/services/init/assemble_and_sort/README.md
|
|
@@ -148,26 +142,22 @@ latch_cli/services/init/assemble_and_sort/__init__.py
|
|
|
148
142
|
latch_cli/services/init/assemble_and_sort/assemble.py
|
|
149
143
|
latch_cli/services/init/assemble_and_sort/sort.py
|
|
150
144
|
latch_cli/services/init/assemble_and_sort/system-requirements.txt
|
|
151
|
-
latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc
|
|
152
145
|
latch_cli/services/init/common/.dockerignore
|
|
153
146
|
latch_cli/services/init/example_conda/__init__.py
|
|
154
147
|
latch_cli/services/init/example_conda/conda_task.py
|
|
155
148
|
latch_cli/services/init/example_conda/environment.yaml
|
|
156
|
-
latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc
|
|
157
149
|
latch_cli/services/init/example_docker/__init__.py
|
|
158
150
|
latch_cli/services/init/example_docker/task.py
|
|
159
151
|
latch_cli/services/init/example_nf_integration/Dockerfile
|
|
160
152
|
latch_cli/services/init/example_nf_integration/main.nf
|
|
161
153
|
latch_cli/services/init/example_nf_integration/workflow.nf
|
|
162
154
|
latch_cli/services/init/example_nf_integration/latch_metadata/__init__.py
|
|
163
|
-
latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc
|
|
164
155
|
latch_cli/services/init/example_nfcore/Dockerfile
|
|
165
156
|
latch_cli/services/init/example_nfcore/__init__.py
|
|
166
157
|
latch_cli/services/init/example_nfcore/task.py
|
|
167
158
|
latch_cli/services/init/example_r/__init__.py
|
|
168
159
|
latch_cli/services/init/example_r/environment.R
|
|
169
160
|
latch_cli/services/init/example_r/r_task.py
|
|
170
|
-
latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc
|
|
171
161
|
latch_cli/services/init/example_snakemake/Dockerfile
|
|
172
162
|
latch_cli/services/init/example_snakemake/Snakefile
|
|
173
163
|
latch_cli/services/init/example_snakemake/config.yaml
|
|
@@ -180,7 +170,6 @@ latch_cli/services/init/template/LICENSE
|
|
|
180
170
|
latch_cli/services/init/template/README.md
|
|
181
171
|
latch_cli/services/init/template/__init__.py
|
|
182
172
|
latch_cli/services/init/template/task.py
|
|
183
|
-
latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc
|
|
184
173
|
latch_cli/services/register/__init__.py
|
|
185
174
|
latch_cli/services/register/constants.py
|
|
186
175
|
latch_cli/services/register/register.py
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import glob
|
|
2
|
+
import multiprocessing
|
|
2
3
|
import os
|
|
3
4
|
import shutil
|
|
4
5
|
import subprocess
|
|
5
6
|
import sys
|
|
6
7
|
from collections import OrderedDict, defaultdict
|
|
8
|
+
from concurrent.futures import ProcessPoolExecutor, as_completed, wait
|
|
9
|
+
from ctypes import c_int
|
|
10
|
+
from multiprocessing.managers import SyncManager
|
|
7
11
|
from pathlib import Path
|
|
8
12
|
from textwrap import dedent
|
|
9
13
|
from typing import Dict, List, Optional, cast
|
|
14
|
+
from urllib.parse import urljoin, urlunparse
|
|
10
15
|
|
|
11
16
|
import boto3
|
|
12
17
|
import click
|
|
@@ -301,6 +306,50 @@ def build_from_nextflow_dag(
|
|
|
301
306
|
wf._nodes = list(node_map.values()) + extra_nodes
|
|
302
307
|
|
|
303
308
|
|
|
309
|
+
def _do_download(
|
|
310
|
+
url: str,
|
|
311
|
+
output_path: Path,
|
|
312
|
+
total_count: int,
|
|
313
|
+
counter,
|
|
314
|
+
lock,
|
|
315
|
+
): # todo(ayush): figure out the right type annotation for counter/lock
|
|
316
|
+
res = tinyrequests.get(url)
|
|
317
|
+
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
318
|
+
output_path.write_bytes(res.content)
|
|
319
|
+
|
|
320
|
+
with lock:
|
|
321
|
+
counter.value += 1
|
|
322
|
+
progress_str = f"{counter.value}/{total_count}"
|
|
323
|
+
|
|
324
|
+
click.echo("\x1b[0K", nl=False)
|
|
325
|
+
click.secho(progress_str, dim=True, italic=True, nl=False)
|
|
326
|
+
click.echo(f"\x1b[{len(progress_str)}D", nl=False)
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
def download_nf_jars(pkg_root: Path):
|
|
330
|
+
s3_resource = boto3.resource("s3")
|
|
331
|
+
bucket = s3_resource.Bucket("latch-public")
|
|
332
|
+
|
|
333
|
+
objects = list(bucket.objects.filter(Prefix=".nextflow/"))
|
|
334
|
+
|
|
335
|
+
click.secho(" Downloading Nextflow binaries: \x1b[?25l", italic=True, nl=False)
|
|
336
|
+
|
|
337
|
+
with SyncManager() as man:
|
|
338
|
+
counter = man.Value(c_int, 0)
|
|
339
|
+
lock = man.Lock()
|
|
340
|
+
with ProcessPoolExecutor() as exec:
|
|
341
|
+
for obj in objects:
|
|
342
|
+
url = urljoin(
|
|
343
|
+
"https://latch-public.s3.us-west-2.amazonaws.com/", obj.key
|
|
344
|
+
)
|
|
345
|
+
obj_path = pkg_root / ".latch" / obj.key
|
|
346
|
+
|
|
347
|
+
exec.submit(_do_download, url, obj_path, len(objects), counter, lock)
|
|
348
|
+
|
|
349
|
+
click.echo("\x1b[0K", nl=False)
|
|
350
|
+
click.secho("Done. \x1b[?25h", italic=True)
|
|
351
|
+
|
|
352
|
+
|
|
304
353
|
# todo(ayush): add versioning system to nf download
|
|
305
354
|
# todo(ayush): allow user to redownload nf anyway via cli option
|
|
306
355
|
def ensure_nf_dependencies(pkg_root: Path, *, force_redownload: bool = False):
|
|
@@ -335,32 +384,7 @@ def ensure_nf_dependencies(pkg_root: Path, *, force_redownload: bool = False):
|
|
|
335
384
|
nf_executable.chmod(0o700)
|
|
336
385
|
|
|
337
386
|
if not nf_jars.exists():
|
|
338
|
-
|
|
339
|
-
" Downloading Nextflow binaries: \x1b[?25l",
|
|
340
|
-
italic=True,
|
|
341
|
-
nl=False,
|
|
342
|
-
)
|
|
343
|
-
|
|
344
|
-
s3_resource = boto3.resource("s3")
|
|
345
|
-
bucket = s3_resource.Bucket("latch-public")
|
|
346
|
-
|
|
347
|
-
objects = list(bucket.objects.filter(Prefix=".nextflow/"))
|
|
348
|
-
|
|
349
|
-
# todo(ayush): parallelize
|
|
350
|
-
for i, obj in enumerate(objects):
|
|
351
|
-
obj_path = pkg_root / ".latch" / obj.key
|
|
352
|
-
obj_path.parent.mkdir(parents=True, exist_ok=True)
|
|
353
|
-
|
|
354
|
-
bucket.download_file(obj.key, str(obj_path))
|
|
355
|
-
|
|
356
|
-
progress_str = f"{i + 1}/{len(objects)}"
|
|
357
|
-
|
|
358
|
-
click.echo("\x1b[0K", nl=False)
|
|
359
|
-
click.secho(progress_str, dim=True, italic=True, nl=False)
|
|
360
|
-
click.echo(f"\x1b[{len(progress_str)}D", nl=False)
|
|
361
|
-
|
|
362
|
-
click.echo("\x1b[0K", nl=False)
|
|
363
|
-
click.secho("Done. \x1b[?25h", italic=True)
|
|
387
|
+
download_nf_jars(pkg_root)
|
|
364
388
|
|
|
365
389
|
|
|
366
390
|
def build_nf_wf(
|
|
@@ -90,7 +90,7 @@ class NextflowOperatorTask(NextflowBaseTask):
|
|
|
90
90
|
results.append(
|
|
91
91
|
reindent(
|
|
92
92
|
rf"""
|
|
93
|
-
{out_name}=out_channels.get("{out_name}", "")
|
|
93
|
+
{out_name}=out_channels.get("{out_name}", "[]")
|
|
94
94
|
""",
|
|
95
95
|
2,
|
|
96
96
|
).rstrip()
|
|
@@ -188,17 +188,22 @@ class NextflowOperatorTask(NextflowBaseTask):
|
|
|
188
188
|
|
|
189
189
|
{download_str}
|
|
190
190
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
191
|
+
try:
|
|
192
|
+
subprocess.run(
|
|
193
|
+
[{', '.join([f"str({x})" if x.startswith("wf_") else repr(x) for x in run_task_entrypoint])}],
|
|
194
|
+
env={{
|
|
195
|
+
**os.environ,
|
|
196
|
+
"LATCH_CONFIG_DIR_OVERRIDE": str(Path.cwd()),
|
|
197
|
+
"LATCH_EXPRESSION": {repr(self.statement)},
|
|
198
|
+
"LATCH_RETURN": {repr(json.dumps(self.ret))},
|
|
199
|
+
"LATCH_PARAM_VALS": json.dumps(channel_vals),
|
|
200
|
+
}},
|
|
201
|
+
check=True,
|
|
202
|
+
)
|
|
203
|
+
except subprocess.CalledProcessError:
|
|
204
|
+
log = Path("/root/.nextflow.log").read_text()
|
|
205
|
+
print("\n\n\n\n\n" + log)
|
|
206
|
+
raise
|
|
202
207
|
|
|
203
208
|
out_channels = {{}}
|
|
204
209
|
files = [Path(f) for f in glob.glob(".latch/task-outputs/*.json")]
|
|
@@ -29,7 +29,7 @@ class NextflowProcessTask(NextflowBaseTask):
|
|
|
29
29
|
wf: NextflowWorkflow,
|
|
30
30
|
):
|
|
31
31
|
super().__init__(
|
|
32
|
-
inputs, outputs, id, name, {}, wf, NFTaskType.Process, cpu=16, memory=
|
|
32
|
+
inputs, outputs, id, name, {}, wf, NFTaskType.Process, cpu=16, memory=96
|
|
33
33
|
)
|
|
34
34
|
|
|
35
35
|
self.wf_inputs = {}
|
|
@@ -85,7 +85,7 @@ class NextflowProcessTask(NextflowBaseTask):
|
|
|
85
85
|
results.append(
|
|
86
86
|
reindent(
|
|
87
87
|
rf"""
|
|
88
|
-
{field.name}=out_channels.get(f"{field.name}", "")
|
|
88
|
+
{field.name}=out_channels.get(f"{field.name}", "[]")
|
|
89
89
|
""",
|
|
90
90
|
2,
|
|
91
91
|
).rstrip()
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/__pycache__/init.cpython-310.pyc
RENAMED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
latch-2.39.0.dev32/latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc
DELETED
|
Binary file
|
latch-2.39.0.dev32/latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
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.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/extras/snakemake/single_task_snakemake.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
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/README.md
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/assemble_and_sort/__init__.py
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/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
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_conda/conda_task.py
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_conda/environment.yaml
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_docker/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/Dockerfile
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/main.nf
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nf_integration/workflow.nf
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_nfcore/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/Dockerfile
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/Snakefile
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/config.yaml
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev34}/latch_cli/services/init/example_snakemake/environment.yaml
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
|
|
File without changes
|