latch 2.39.0.dev33__tar.gz → 2.39.0.dev35__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.dev33/latch.egg-info → latch-2.39.0.dev35}/PKG-INFO +1 -1
- {latch-2.39.0.dev33 → latch-2.39.0.dev35/latch.egg-info}/PKG-INFO +1 -1
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/centromere/ctx.py +3 -1
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/config.py +4 -4
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/adapters.py +7 -20
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/merge.py +2 -2
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/operator.py +26 -21
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/process.py +2 -2
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/setup.py +2 -6
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/LICENSE +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/MANIFEST.in +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/README.md +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/account.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/executions.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/functions/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/functions/messages.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/functions/operators.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/functions/secrets.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/download.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/manager.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/node.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/progress.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/remote_copy.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/throttle.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/upload.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/_transfer/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/path.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/ldata/type.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/project.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/record.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/table.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/types.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/upstream_types/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/upstream_types/types.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/upstream_types/values.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/registry/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/conditional.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/launch_plan.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/map_tasks.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/reference_workflow.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/tasks.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/resources/workflow.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/directory.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/file.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/glob.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/json.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/metadata.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/types/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/deseq2.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/mafft.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/pathway.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/rnaseq.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch/verified/trim_galore.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/SOURCES.txt +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/dependency_links.txt +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/entry_points.txt +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/requires.txt +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch.egg-info/top_level.txt +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/csrf.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/oauth2.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/pkce.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/auth/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/centromere/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/centromere/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/click_utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/constants.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/docker_utils/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/cache.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/errors.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/handler.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/exceptions/traceback.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/config/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/config/parser.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/config/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/serialize.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/common/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/build.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/channel.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/dag.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/file_persistence.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/serialize.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/base.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/conditional.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/tasks/map.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/nextflow/workflow.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/config.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/serialize.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/single_task_snakemake.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/extras/snakemake/workflow.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/main.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/menus.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/autocomplete.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/glob.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/main.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/cp/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/execute/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/execute/main.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/execute/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/get.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/get_executions.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/get_params.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/__init__.cpython-311.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/__init__.cpython-38.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/__init__.cpython-39.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-310.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-311.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-38.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-39.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/.env +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/README.md +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/common/.dockerignore +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/conda_task.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/environment.yaml +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_docker/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_docker/task.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/Dockerfile +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/latch_metadata/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/latch_metadata/__pycache__/__init__.cpython-311.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/main.nf +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/workflow.nf +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nfcore/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nfcore/task.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_r/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_r/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_r/environment.R +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_r/r_task.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/Snakefile +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/config.yaml +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/version +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/init.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/LICENSE +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/README.md +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/__pycache__/__init__.cpython-310.pyc +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/template/task.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/launch.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/local_dev.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/local_dev_old.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/login.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/ls.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/mkdir.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/move.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/preview.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/register/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/register/constants.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/register/register.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/register/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/rm.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/stop_pod.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/sync.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/ls.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/remove.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/upload.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/test_data/utils.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/workspace.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/tinyrequests.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/tui/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/utils/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/utils/path.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/utils/workflow.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/workflow_config.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/pyproject.toml +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/setup.cfg +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/tests/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/tests/cp/__init__.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/tests/fixtures.py +0 -0
- {latch-2.39.0.dev33 → latch-2.39.0.dev35}/tests/test_ls.py +0 -0
|
@@ -266,7 +266,9 @@ class _CentromereCtx:
|
|
|
266
266
|
click.secho(
|
|
267
267
|
dedent(
|
|
268
268
|
"Make sure a `latch_metadata` package exists in the"
|
|
269
|
-
" nextflow project root."
|
|
269
|
+
" nextflow project root."
|
|
270
|
+
"\nYou can generate this package with the"
|
|
271
|
+
"`latch generate-metadata --nextflow <pkg_root>` command.",
|
|
270
272
|
),
|
|
271
273
|
fg="red",
|
|
272
274
|
)
|
|
@@ -140,21 +140,21 @@ def generate_nf_metadata(
|
|
|
140
140
|
from latch.types.file import LatchFile
|
|
141
141
|
from latch.types.directory import LatchDir
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
||preambles||
|
|
144
144
|
|
|
145
145
|
# Import these into your `__init__.py` file:
|
|
146
146
|
#
|
|
147
147
|
# from .parameters import generated_parameters, file_metadata
|
|
148
148
|
|
|
149
149
|
generated_parameters = {
|
|
150
|
-
|
|
150
|
+
||params||
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
""",
|
|
154
154
|
0,
|
|
155
155
|
)
|
|
156
|
-
.replace("
|
|
157
|
-
.replace("
|
|
156
|
+
.replace("||preambles||", "".join(preambles))
|
|
157
|
+
.replace("||params||", "\n".join(params))
|
|
158
158
|
)
|
|
159
159
|
|
|
160
160
|
write_metadata(
|
|
@@ -46,11 +46,11 @@ def get_dataclass_code(cls: Type[_IsDataclass]) -> str:
|
|
|
46
46
|
rf"""
|
|
47
47
|
@dataclass
|
|
48
48
|
class {cls.__name__}:
|
|
49
|
-
|
|
49
|
+
||output|fields||
|
|
50
50
|
|
|
51
51
|
""",
|
|
52
52
|
0,
|
|
53
|
-
).replace("
|
|
53
|
+
).replace("||output|fields||", output_fields)
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
class NextflowProcessPreAdapterTask(NextflowBaseTask):
|
|
@@ -105,11 +105,11 @@ class NextflowProcessPreAdapterTask(NextflowBaseTask):
|
|
|
105
105
|
rf"""
|
|
106
106
|
@task(cache=True)
|
|
107
107
|
def {self.name}(
|
|
108
|
-
|
|
108
|
+
||params||
|
|
109
109
|
) -> Res_{self.id}:
|
|
110
110
|
""",
|
|
111
111
|
0,
|
|
112
|
-
).replace("
|
|
112
|
+
).replace("||params||", params_str)
|
|
113
113
|
|
|
114
114
|
return res
|
|
115
115
|
|
|
@@ -198,11 +198,11 @@ class NextflowProcessPostAdapterTask(NextflowBaseTask):
|
|
|
198
198
|
res += reindent(
|
|
199
199
|
rf"""
|
|
200
200
|
class Res{self.name}(NamedTuple):
|
|
201
|
-
|
|
201
|
+
||output|fields||
|
|
202
202
|
|
|
203
203
|
""",
|
|
204
204
|
0,
|
|
205
|
-
).replace("
|
|
205
|
+
).replace("||output|fields||", output_fields)
|
|
206
206
|
|
|
207
207
|
res += get_dataclass_code(self.dataclass)
|
|
208
208
|
|
|
@@ -219,25 +219,12 @@ class NextflowProcessPostAdapterTask(NextflowBaseTask):
|
|
|
219
219
|
return res
|
|
220
220
|
|
|
221
221
|
def get_fn_return_stmt(self):
|
|
222
|
-
results: List[str] = []
|
|
223
|
-
for out_name in self._python_outputs.keys():
|
|
224
|
-
results.append(
|
|
225
|
-
reindent(
|
|
226
|
-
rf"""
|
|
227
|
-
{out_name}=json.dumps([*chain.from_iterable([json.loads(x.{out_name}) for x in default])])
|
|
228
|
-
""",
|
|
229
|
-
1,
|
|
230
|
-
).rstrip()
|
|
231
|
-
)
|
|
232
|
-
|
|
233
|
-
return_str = ",\n".join(results)
|
|
234
|
-
|
|
235
222
|
return reindent(
|
|
236
223
|
rf"""
|
|
237
224
|
return get_mapper_outputs(Res{self.name}, default)
|
|
238
225
|
""",
|
|
239
226
|
1,
|
|
240
|
-
)
|
|
227
|
+
)
|
|
241
228
|
|
|
242
229
|
def get_fn_code(self, nf_script_path_in_container: Path):
|
|
243
230
|
code_block = self.get_fn_interface()
|
|
@@ -74,11 +74,11 @@ class NextflowMergeTask(NextflowOperatorTask):
|
|
|
74
74
|
return reindent(
|
|
75
75
|
rf"""
|
|
76
76
|
return Res{self.name}(
|
|
77
|
-
|
|
77
|
+
||return|str||
|
|
78
78
|
)
|
|
79
79
|
""",
|
|
80
80
|
0,
|
|
81
|
-
).replace("
|
|
81
|
+
).replace("||return|str||", return_str)
|
|
82
82
|
|
|
83
83
|
def get_fn_code(self, nf_script_path_in_container: Path):
|
|
84
84
|
code_block = self.get_fn_interface()
|
|
@@ -50,11 +50,11 @@ class NextflowOperatorTask(NextflowBaseTask):
|
|
|
50
50
|
res += reindent(
|
|
51
51
|
rf"""
|
|
52
52
|
class Res{self.name}(NamedTuple):
|
|
53
|
-
|
|
53
|
+
||output|fields||
|
|
54
54
|
|
|
55
55
|
""",
|
|
56
56
|
0,
|
|
57
|
-
).replace("
|
|
57
|
+
).replace("||output|fields||", output_fields)
|
|
58
58
|
|
|
59
59
|
outputs_str = f"Res{self.name}:"
|
|
60
60
|
|
|
@@ -73,13 +73,13 @@ class NextflowOperatorTask(NextflowBaseTask):
|
|
|
73
73
|
rf"""
|
|
74
74
|
@task(cache=True)
|
|
75
75
|
def {self.name}(
|
|
76
|
-
|
|
77
|
-
) ->
|
|
76
|
+
||params||
|
|
77
|
+
) -> ||outputs||
|
|
78
78
|
""",
|
|
79
79
|
0,
|
|
80
80
|
)
|
|
81
|
-
.replace("
|
|
82
|
-
.replace("
|
|
81
|
+
.replace("||params||", params_str)
|
|
82
|
+
.replace("||outputs||", outputs_str)
|
|
83
83
|
)
|
|
84
84
|
|
|
85
85
|
return res
|
|
@@ -101,11 +101,11 @@ class NextflowOperatorTask(NextflowBaseTask):
|
|
|
101
101
|
return reindent(
|
|
102
102
|
rf"""
|
|
103
103
|
return Res{self.name}(
|
|
104
|
-
|
|
104
|
+
||return|str||
|
|
105
105
|
)
|
|
106
106
|
""",
|
|
107
107
|
0,
|
|
108
|
-
).replace("
|
|
108
|
+
).replace("||return|str||", return_str)
|
|
109
109
|
|
|
110
110
|
def get_fn_code(self, nf_script_path_in_container: Path):
|
|
111
111
|
code_block = self.get_fn_interface()
|
|
@@ -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")]
|
|
@@ -214,12 +219,12 @@ class NextflowOperatorTask(NextflowBaseTask):
|
|
|
214
219
|
_override_task_status(status="SKIPPED")
|
|
215
220
|
except Exception as e:
|
|
216
221
|
print(f"Failed to override task status: {{e}}")
|
|
217
|
-
out_channels = {{
|
|
222
|
+
out_channels = {{||skip||}}
|
|
218
223
|
|
|
219
224
|
""",
|
|
220
225
|
1,
|
|
221
226
|
).replace(
|
|
222
|
-
"
|
|
227
|
+
"||skip||",
|
|
223
228
|
", ".join([f"{repr(o)}: None" for o in self._python_outputs.keys()]),
|
|
224
229
|
)
|
|
225
230
|
|
|
@@ -96,11 +96,11 @@ class NextflowProcessTask(NextflowBaseTask):
|
|
|
96
96
|
return reindent(
|
|
97
97
|
rf"""
|
|
98
98
|
return {res_type.__name__}(
|
|
99
|
-
|
|
99
|
+
||return|str||
|
|
100
100
|
)
|
|
101
101
|
""",
|
|
102
102
|
0,
|
|
103
|
-
).replace("
|
|
103
|
+
).replace("||return|str||", return_str)
|
|
104
104
|
|
|
105
105
|
def get_fn_code(self, nf_script_path_in_container: Path):
|
|
106
106
|
code_block = self.get_fn_interface()
|
|
@@ -13,17 +13,13 @@ if cur_ver < (3, 8) or cur_ver > (3, 11):
|
|
|
13
13
|
|
|
14
14
|
setup(
|
|
15
15
|
name="latch",
|
|
16
|
-
version="v2.39.0.
|
|
16
|
+
version="v2.39.0.dev35",
|
|
17
17
|
author_email="kenny@latch.bio",
|
|
18
18
|
description="The Latch SDK",
|
|
19
19
|
packages=find_packages(),
|
|
20
20
|
include_package_data=True,
|
|
21
21
|
python_requires=">=3.8,<3.12",
|
|
22
|
-
entry_points={
|
|
23
|
-
"console_scripts": [
|
|
24
|
-
"latch=latch_cli.main:main",
|
|
25
|
-
]
|
|
26
|
-
},
|
|
22
|
+
entry_points={"console_scripts": ["latch=latch_cli.main:main"]},
|
|
27
23
|
install_requires=[
|
|
28
24
|
"kubernetes>=24.2.0",
|
|
29
25
|
"pyjwt>=0.2.0",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.dev33 → latch-2.39.0.dev35}/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.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-310.pyc
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-311.pyc
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-38.pyc
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/__pycache__/init.cpython-39.pyc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/README.md
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/assemble_and_sort/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/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.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/conda_task.py
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_conda/environment.yaml
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_docker/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/Dockerfile
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/main.nf
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_nf_integration/workflow.nf
RENAMED
|
File without changes
|
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/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.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/Dockerfile
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/Snakefile
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/latch_cli/services/init/example_snakemake/config.yaml
RENAMED
|
File without changes
|
{latch-2.39.0.dev33 → latch-2.39.0.dev35}/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
|