latch 2.76.6__tar.gz → 2.76.7__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.76.6 → latch-2.76.7}/PKG-INFO +1 -1
- {latch-2.76.6 → latch-2.76.7}/pyproject.toml +5 -1
- {latch-2.76.6 → latch-2.76.7}/src/latch/resources/launch_plan.py +2 -2
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/develop.py +1 -1
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/type_converter.py +3 -3
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/pods.py +8 -8
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/register.py +12 -16
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/workspace.py +1 -1
- {latch-2.76.6 → latch-2.76.7}/.gitignore +0 -0
- {latch-2.76.6 → latch-2.76.7}/LICENSE +0 -0
- {latch-2.76.6 → latch-2.76.7}/README.md +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/account.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/executions.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/functions/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/functions/messages.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/functions/operators.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/functions/secrets.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/admin/common.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/admin/launch_plan.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/admin/schedule.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/admin/workflow.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/condition.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/execution.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/identifier.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/interface.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/literals.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/security.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/tasks.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/types.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/core/workflow.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/idl/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/download.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/manager.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/node.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/progress.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/remote_copy.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/throttle.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/upload.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/_transfer/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/path.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/ldata/type.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/py.typed +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/registry/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/registry/project.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/registry/record.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/registry/table.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/registry/types.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/registry/upstream_types/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/registry/upstream_types/types.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/registry/upstream_types/values.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/registry/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/resources/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/resources/conditional.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/resources/dynamic.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/resources/map_tasks.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/resources/reference_workflow.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/resources/tasks.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/resources/workflow.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/types/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/types/directory.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/types/file.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/types/glob.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/types/json.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/types/metadata.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/types/plots.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/types/samplesheet_item.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/types/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/verified/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/verified/deseq2.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/verified/mafft.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/verified/pathway.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/verified/rnaseq.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch/verified/trim_galore.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/csrf.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/oauth2.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/pkce.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/auth/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/centromere/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/centromere/ast_parsing.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/centromere/ctx.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/centromere/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/click_utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/constants.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/docker_utils/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/cache.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/errors.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/handler.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/exceptions/traceback.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/main.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/menus.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/config.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/forch_register.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/parse_schema.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/nextflow/workflow.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/py.typed +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/autocomplete.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/glob.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/main.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/cp/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/docker/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/docker/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/get.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/get_executions.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/get_params.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/gql/pod_ssh.graphql +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/gql/pods_list.graphql +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/.env +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/LICENSE +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/README.md +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/assemble.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/sort.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/system-requirements.txt +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/common/.dockerignore +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_conda/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_conda/conda_task.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_conda/environment.yaml +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_docker/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_docker/task.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_nfcore/Dockerfile +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_nfcore/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_nfcore/task.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_r/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_r/environment.R +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_r/r_task.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/Dockerfile +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/Snakefile +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/config.yaml +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/environment.yaml +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/latch_metadata.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/scripts/plot-quals.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/version +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/init.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/template/LICENSE +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/template/README.md +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/template/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/template/task.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/attach.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/execute.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/k8s/ws_utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/interface.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/launch.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/launch/launch_v2.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/local_dev_old.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/login.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/ls.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/mkdir.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/move.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/preview.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/private_images.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/constants.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/staging.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/register/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/rm.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/stop_pod.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/sync.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/ls.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/remove.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/upload.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/test_data/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/config/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/config/parser.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/config/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/serialize.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/serialize_utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/single_task_snakemake.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/utils.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/snakemake/workflow.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/tinyrequests.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/tui/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/utils/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/utils/path.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_cli/workflow_config.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_config/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_config/latch.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_config/py.typed +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_config/user.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_gql/__init__.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_gql/execute.py +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_gql/py.typed +0 -0
- {latch-2.76.6 → latch-2.76.7}/src/latch_sdk_gql/utils.py +0 -0
|
@@ -12,7 +12,7 @@ include = ["src/**/*.py", "src/**/*.graphql", "src/**/py.typed", "src/latch_cli/
|
|
|
12
12
|
|
|
13
13
|
[project]
|
|
14
14
|
name = "latch"
|
|
15
|
-
version = "2.76.
|
|
15
|
+
version = "2.76.7"
|
|
16
16
|
description = "The Latch SDK"
|
|
17
17
|
authors = [{ name = "Kenny Workman", email = "kenny@latch.bio" }]
|
|
18
18
|
maintainers = [{ name = "Kenny Workman", email = "kenny@latch.bio" }]
|
|
@@ -247,6 +247,10 @@ ignore = [
|
|
|
247
247
|
"PLC1901",
|
|
248
248
|
]
|
|
249
249
|
|
|
250
|
+
[tool.ruff.lint.pyupgrade]
|
|
251
|
+
# Pydantic resolves annotations at runtime, where PEP 604 is unsupported on Python 3.9.
|
|
252
|
+
keep-runtime-typing = true
|
|
253
|
+
|
|
250
254
|
[tool.ruff.format]
|
|
251
255
|
preview = true
|
|
252
256
|
skip-magic-trailing-comma = true
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import base64
|
|
4
|
-
from typing import Any
|
|
4
|
+
from typing import Any, Optional
|
|
5
5
|
|
|
6
6
|
from flytekit.core.launch_plan import LaunchPlan as _LaunchPlan
|
|
7
7
|
from flytekit.core.workflow import PythonFunctionWorkflow
|
|
@@ -41,7 +41,7 @@ class LaunchPlan:
|
|
|
41
41
|
name: str,
|
|
42
42
|
default_params: dict[str, Any],
|
|
43
43
|
*,
|
|
44
|
-
description: str
|
|
44
|
+
description: Optional[str] = None,
|
|
45
45
|
):
|
|
46
46
|
labels = {}
|
|
47
47
|
if description is not None:
|
|
@@ -2,7 +2,7 @@ import dataclasses
|
|
|
2
2
|
from dataclasses import asdict, is_dataclass
|
|
3
3
|
from datetime import datetime, timedelta
|
|
4
4
|
from enum import Enum
|
|
5
|
-
from typing import Any
|
|
5
|
+
from typing import Any, Optional
|
|
6
6
|
|
|
7
7
|
from flytekit.models import literals as _literals
|
|
8
8
|
from flytekit.models import types as _types
|
|
@@ -59,7 +59,7 @@ def _convert_primitive(
|
|
|
59
59
|
if simple_type == _types.SimpleType.STRUCT: # pyright: ignore[reportUnnecessaryComparison]
|
|
60
60
|
return _convert_to_struct(value)
|
|
61
61
|
|
|
62
|
-
primitive: _literals.Primitive
|
|
62
|
+
primitive: Optional[_literals.Primitive] = None
|
|
63
63
|
|
|
64
64
|
if simple_type == _types.SimpleType.INTEGER: # pyright: ignore[reportUnnecessaryComparison]
|
|
65
65
|
if isinstance(value, Enum):
|
|
@@ -243,7 +243,7 @@ def _convert_blob(
|
|
|
243
243
|
blob_type: _core_types.BlobType,
|
|
244
244
|
) -> _literals.Literal:
|
|
245
245
|
|
|
246
|
-
remote_uri: str
|
|
246
|
+
remote_uri: Optional[str] = None
|
|
247
247
|
if isinstance(value, (LatchFile, LatchDir)):
|
|
248
248
|
remote_uri = value.remote_path if value.remote_path is not None else value.path
|
|
249
249
|
elif isinstance(value, LPath):
|
|
@@ -5,7 +5,7 @@ import os
|
|
|
5
5
|
import shlex
|
|
6
6
|
import time
|
|
7
7
|
from importlib import resources
|
|
8
|
-
from typing import TYPE_CHECKING, Any
|
|
8
|
+
from typing import TYPE_CHECKING, Any, Optional
|
|
9
9
|
from urllib.parse import urljoin
|
|
10
10
|
|
|
11
11
|
import click
|
|
@@ -46,20 +46,20 @@ pod_ssh_starting_statuses = {
|
|
|
46
46
|
class CreatePodRequest(BaseModel):
|
|
47
47
|
model_config = ConfigDict(extra="forbid")
|
|
48
48
|
|
|
49
|
-
ws_account_id: str
|
|
49
|
+
ws_account_id: Optional[str] = Field(
|
|
50
50
|
default=None, json_schema_extra={"default_description": "current workspace"}
|
|
51
51
|
)
|
|
52
52
|
display_name: str = Field(..., json_schema_extra={"template": "My Pod"})
|
|
53
53
|
cpu: int = Field(..., json_schema_extra={"template": 2, "units": "cores"})
|
|
54
54
|
memory: int = Field(..., json_schema_extra={"template": 8, "units": "GiB"})
|
|
55
55
|
gpu: int = Field(default=0, json_schema_extra={"template": 0})
|
|
56
|
-
gpu_type: Literal["nvidia-a10g", "nvidia-l40s"]
|
|
56
|
+
gpu_type: Optional[Literal["nvidia-a10g", "nvidia-l40s"]] = Field(
|
|
57
57
|
default=None, json_schema_extra={"template": None}
|
|
58
58
|
)
|
|
59
59
|
storage_gigs: int = Field(
|
|
60
60
|
default=20, json_schema_extra={"template": 20, "units": "GiB"}
|
|
61
61
|
)
|
|
62
|
-
backup_interval: Literal["daily", "weekly", "monthly"]
|
|
62
|
+
backup_interval: Optional[Literal["daily", "weekly", "monthly"]] = Field(
|
|
63
63
|
default=None, json_schema_extra={"template": None}
|
|
64
64
|
)
|
|
65
65
|
target_region: Literal["us-west-2", "us-east-1", "eu-central-1", "eu-west-1"] = (
|
|
@@ -105,7 +105,7 @@ class PodInfosResponse(BaseModel):
|
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
class PodSshResponse(BaseModel):
|
|
108
|
-
pod_info: dict[str, Any]
|
|
108
|
+
pod_info: Optional[dict[str, Any]] = Field(alias="podInfo")
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
def pod_list_fields(*, detailed: bool) -> list[str]:
|
|
@@ -295,8 +295,8 @@ def _format_pod_status(status: str) -> str:
|
|
|
295
295
|
|
|
296
296
|
|
|
297
297
|
def _get_pod_ssh_args(
|
|
298
|
-
pod_id: int, pod: dict[str, object], *, key: Path
|
|
299
|
-
) -> list[str]
|
|
298
|
+
pod_id: int, pod: dict[str, object], *, key: Optional[Path] = None
|
|
299
|
+
) -> Optional[list[str]]:
|
|
300
300
|
deployment = pod.get("deployment")
|
|
301
301
|
if not isinstance(deployment, dict):
|
|
302
302
|
click.secho("Pod deployment information is unavailable.", fg="red")
|
|
@@ -331,7 +331,7 @@ def ssh_pod(
|
|
|
331
331
|
pod_id: int,
|
|
332
332
|
*,
|
|
333
333
|
print_only: bool = False,
|
|
334
|
-
key: Path
|
|
334
|
+
key: Optional[Path] = None,
|
|
335
335
|
poll_interval_seconds: float = pod_ssh_poll_interval_seconds,
|
|
336
336
|
max_wait_seconds: float = pod_ssh_max_wait_seconds,
|
|
337
337
|
exec_fn: Callable[[str, list[str]], object] = os.execvp,
|
|
@@ -62,6 +62,17 @@ def _print_window(cur_lines: List[str], line: str):
|
|
|
62
62
|
docker_build_step_pat = re.compile("^Step [0-9]+/[0-9]+ :")
|
|
63
63
|
|
|
64
64
|
|
|
65
|
+
def _replace_task_protos(
|
|
66
|
+
protos: List[Path], new_protos: List[Path], task_name: str
|
|
67
|
+
) -> List[Path]:
|
|
68
|
+
"""Replace a task's default-image protobuf with its custom-image version."""
|
|
69
|
+
new_task_protos = {
|
|
70
|
+
proto.name: proto for proto in new_protos if task_name in proto.name
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return [new_task_protos.get(proto.name, proto) for proto in protos]
|
|
74
|
+
|
|
75
|
+
|
|
65
76
|
def print_and_write_build_logs(
|
|
66
77
|
build_logs: Iterable[DockerBuildLogItem],
|
|
67
78
|
image: str,
|
|
@@ -581,22 +592,7 @@ def register(
|
|
|
581
592
|
|
|
582
593
|
new_protos = _recursive_list(local_task_td)
|
|
583
594
|
|
|
584
|
-
|
|
585
|
-
split_task_name = task_name.split(".")
|
|
586
|
-
task_name = ".".join(
|
|
587
|
-
split_task_name[split_task_name.index(ctx.wf_module) :]
|
|
588
|
-
)
|
|
589
|
-
for new_proto in new_protos:
|
|
590
|
-
if task_name in new_proto.name:
|
|
591
|
-
protos = [
|
|
592
|
-
new_proto if new_proto.name == f.name else f
|
|
593
|
-
for f in protos
|
|
594
|
-
]
|
|
595
|
-
except ValueError as e:
|
|
596
|
-
raise ValueError(
|
|
597
|
-
f"Unable to match {task_name} to any of the protobuf files"
|
|
598
|
-
f" in {new_protos}"
|
|
599
|
-
) from e
|
|
595
|
+
protos = _replace_task_protos(protos, new_protos, task_name)
|
|
600
596
|
except TypeError as e:
|
|
601
597
|
raise ValueError(
|
|
602
598
|
"The path to your provided dockerfile ",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.76.6 → latch-2.76.7}/src/latch_cli/services/init/assemble_and_sort/system-requirements.txt
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
|
{latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/.latch/latch_entrypoint
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/environment.yaml
RENAMED
|
File without changes
|
{latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/latch_metadata.py
RENAMED
|
File without changes
|
{latch-2.76.6 → latch-2.76.7}/src/latch_cli/services/init/example_snakemake/scripts/plot-quals.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|