latch 2.39.0.dev32__tar.gz → 2.39.0.dev33__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.dev33}/PKG-INFO +1 -1
- {latch-2.39.0.dev32 → latch-2.39.0.dev33/latch.egg-info}/PKG-INFO +1 -1
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/build.py +50 -26
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/tasks/operator.py +1 -1
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/tasks/process.py +2 -2
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/setup.py +1 -1
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/LICENSE +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/MANIFEST.in +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/README.md +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/account.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/executions.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/functions/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/functions/messages.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/functions/operators.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/functions/secrets.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/_transfer/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/_transfer/download.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/_transfer/manager.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/_transfer/node.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/_transfer/progress.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/_transfer/remote_copy.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/_transfer/throttle.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/_transfer/upload.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/_transfer/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/path.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/ldata/type.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/registry/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/registry/project.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/registry/record.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/registry/table.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/registry/types.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/registry/upstream_types/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/registry/upstream_types/types.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/registry/upstream_types/values.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/registry/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/resources/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/resources/conditional.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/resources/launch_plan.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/resources/map_tasks.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/resources/reference_workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/resources/tasks.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/resources/workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/types/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/types/directory.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/types/file.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/types/glob.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/types/json.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/types/metadata.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/types/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/verified/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/verified/deseq2.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/verified/mafft.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/verified/pathway.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/verified/rnaseq.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch/verified/trim_galore.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch.egg-info/SOURCES.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch.egg-info/dependency_links.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch.egg-info/entry_points.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch.egg-info/requires.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch.egg-info/top_level.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/auth/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/auth/csrf.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/auth/oauth2.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/auth/pkce.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/auth/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/centromere/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/centromere/ctx.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/centromere/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/click_utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/constants.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/docker_utils/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/exceptions/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/exceptions/cache.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/exceptions/errors.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/exceptions/handler.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/exceptions/traceback.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/common/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/common/config/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/common/config/parser.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/common/config/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/common/serialize.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/common/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/channel.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/config.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/dag.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/file_persistence.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/serialize.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/tasks/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/tasks/adapters.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/tasks/base.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/tasks/conditional.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/tasks/map.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/tasks/merge.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/nextflow/workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/snakemake/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/snakemake/config.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/snakemake/serialize.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/snakemake/single_task_snakemake.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/snakemake/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/extras/snakemake/workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/main.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/menus.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/cp/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/cp/autocomplete.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/cp/glob.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/cp/main.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/cp/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/execute/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/execute/main.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/execute/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/get.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/get_executions.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/get_params.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/__init__.cpython-311.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/__init__.cpython-38.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/__init__.cpython-39.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/init.cpython-310.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/init.cpython-311.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/init.cpython-38.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/init.cpython-39.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/.env +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/README.md +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/common/.dockerignore +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_conda/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_conda/conda_task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_conda/environment.yaml +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_docker/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_docker/task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nf_integration/Dockerfile +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nf_integration/latch_metadata/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nf_integration/main.nf +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nf_integration/workflow.nf +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nfcore/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nfcore/task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_r/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_r/environment.R +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_r/r_task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/Snakefile +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/config.yaml +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/version +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/init.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/template/LICENSE +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/template/README.md +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/template/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/template/task.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/launch.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/local_dev.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/local_dev_old.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/login.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/ls.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/mkdir.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/move.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/preview.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/register/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/register/constants.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/register/register.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/register/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/rm.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/stop_pod.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/sync.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/test_data/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/test_data/ls.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/test_data/remove.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/test_data/upload.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/test_data/utils.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/workspace.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/tinyrequests.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/tui/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/utils/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/utils/path.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/utils/workflow.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/workflow_config.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/pyproject.toml +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/setup.cfg +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/tests/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/tests/cp/__init__.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/tests/fixtures.py +0 -0
- {latch-2.39.0.dev32 → latch-2.39.0.dev33}/tests/test_ls.py +0 -0
|
@@ -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(
|
|
@@ -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()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev33}/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
|
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/init.cpython-310.pyc
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/init.cpython-311.pyc
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/init.cpython-38.pyc
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/__pycache__/init.cpython-39.pyc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/README.md
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/assemble_and_sort/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/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
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_conda/conda_task.py
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_conda/environment.yaml
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_docker/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nf_integration/Dockerfile
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_nf_integration/main.nf
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/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.dev33}/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
|
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/Dockerfile
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/Snakefile
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/latch_cli/services/init/example_snakemake/config.yaml
RENAMED
|
File without changes
|
{latch-2.39.0.dev32 → latch-2.39.0.dev33}/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
|
|
File without changes
|