toil 9.0.0__tar.gz → 9.1.1__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.
- {toil-9.0.0 → toil-9.1.1}/.github/workflows/codeql-analysis.yml +1 -1
- {toil-9.0.0 → toil-9.1.1}/.gitlab-ci.yml +10 -5
- {toil-9.0.0 → toil-9.1.1}/Makefile +16 -5
- {toil-9.0.0 → toil-9.1.1}/PKG-INFO +12 -12
- {toil-9.0.0 → toil-9.1.1}/contrib/admin/cleanup_aws_resources.py +5 -2
- {toil-9.0.0 → toil-9.1.1}/contrib/admin/mypy-with-ignore.py +2 -6
- {toil-9.0.0 → toil-9.1.1}/docker/Dockerfile.py +2 -3
- {toil-9.0.0 → toil-9.1.1}/docs/appendices/aws_min_permissions.rst +0 -1
- {toil-9.0.0 → toil-9.1.1}/requirements-cwl.txt +2 -2
- {toil-9.0.0 → toil-9.1.1}/requirements-dev.txt +5 -4
- {toil-9.0.0 → toil-9.1.1}/requirements-google.txt +1 -1
- {toil-9.0.0 → toil-9.1.1}/requirements-kubernetes.txt +1 -1
- {toil-9.0.0 → toil-9.1.1}/requirements-server.txt +1 -1
- {toil-9.0.0 → toil-9.1.1}/requirements.txt +1 -1
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/abstractBatchSystem.py +13 -5
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/abstractGridEngineBatchSystem.py +17 -5
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/kubernetes.py +13 -2
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/mesos/batchSystem.py +33 -2
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/slurm.py +191 -16
- {toil-9.0.0 → toil-9.1.1}/src/toil/cwl/cwltoil.py +17 -82
- {toil-9.0.0 → toil-9.1.1}/src/toil/fileStores/__init__.py +1 -1
- {toil-9.0.0 → toil-9.1.1}/src/toil/fileStores/abstractFileStore.py +5 -2
- {toil-9.0.0 → toil-9.1.1}/src/toil/fileStores/cachingFileStore.py +1 -1
- {toil-9.0.0 → toil-9.1.1}/src/toil/job.py +30 -14
- {toil-9.0.0 → toil-9.1.1}/src/toil/jobStores/abstractJobStore.py +24 -19
- toil-9.1.1/src/toil/jobStores/aws/jobStore.py +1009 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/jobStores/aws/utils.py +24 -270
- {toil-9.0.0 → toil-9.1.1}/src/toil/jobStores/googleJobStore.py +25 -9
- toil-9.1.1/src/toil/jobStores/utils.py +84 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/leader.py +27 -22
- toil-9.1.1/src/toil/lib/aws/config.py +22 -0
- toil-9.1.1/src/toil/lib/aws/s3.py +499 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/aws/utils.py +22 -33
- toil-9.1.1/src/toil/lib/checksum.py +88 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/conversions.py +33 -31
- toil-9.1.1/src/toil/lib/directory.py +217 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/ec2.py +97 -29
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/exceptions.py +2 -1
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/expando.py +2 -2
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/generatedEC2Lists.py +73 -16
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/io.py +33 -2
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/memoize.py +21 -7
- toil-9.0.0/src/toil/jobStores/utils.py → toil-9.1.1/src/toil/lib/pipes.py +96 -122
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/retry.py +1 -1
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/threading.py +1 -1
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/web.py +4 -5
- {toil-9.0.0 → toil-9.1.1}/src/toil/provisioners/__init__.py +5 -2
- {toil-9.0.0 → toil-9.1.1}/src/toil/provisioners/aws/__init__.py +43 -36
- {toil-9.0.0 → toil-9.1.1}/src/toil/provisioners/aws/awsProvisioner.py +22 -13
- {toil-9.0.0 → toil-9.1.1}/src/toil/provisioners/node.py +60 -12
- {toil-9.0.0 → toil-9.1.1}/src/toil/resource.py +3 -13
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/__init__.py +14 -16
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/batchSystems/test_slurm.py +103 -14
- toil-9.1.1/src/toil/test/cwl/staging_cat.cwl +27 -0
- toil-9.1.1/src/toil/test/cwl/staging_make_file.cwl +25 -0
- toil-9.1.1/src/toil/test/cwl/staging_workflow.cwl +43 -0
- toil-9.1.1/src/toil/test/cwl/zero_default.cwl +61 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_staging.py +17 -8
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/jobStores/jobStoreTest.py +23 -133
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/aws/test_iam.py +7 -7
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/aws/test_s3.py +30 -33
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/aws/test_utils.py +9 -9
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/provisioners/aws/awsProvisionerTest.py +59 -6
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/autoDeploymentTest.py +2 -3
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/fileStoreTest.py +89 -87
- toil-9.1.1/src/toil/test/utils/ABCWorkflowDebug/ABC.txt +1 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/utils/ABCWorkflowDebug/debugWorkflow.py +4 -4
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/utils/toilKillTest.py +35 -28
- toil-9.1.1/src/toil/test/wdl/md5sum/md5sum.json +1 -0
- toil-9.1.1/src/toil/test/wdl/testfiles/gather.wdl +52 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/wdltoil_test.py +120 -38
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/wdltoil_test_kubernetes.py +9 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilDebugFile.py +6 -3
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilStats.py +17 -2
- toil-9.1.1/src/toil/version.py +14 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/wdl/wdltoil.py +1038 -549
- {toil-9.0.0 → toil-9.1.1}/src/toil/worker.py +5 -2
- {toil-9.0.0 → toil-9.1.1}/src/toil.egg-info/PKG-INFO +12 -12
- {toil-9.0.0 → toil-9.1.1}/src/toil.egg-info/SOURCES.txt +10 -2
- {toil-9.0.0 → toil-9.1.1}/src/toil.egg-info/requires.txt +11 -11
- {toil-9.0.0 → toil-9.1.1}/version_template.py +1 -1
- toil-9.0.0/src/toil/jobStores/aws/jobStore.py +0 -2110
- toil-9.0.0/src/toil/lib/aws/s3.py +0 -31
- toil-9.0.0/src/toil/lib/iterables.py +0 -112
- toil-9.0.0/src/toil/test/docs/scripts/stagingExampleFiles/in.txt +0 -1
- toil-9.0.0/src/toil/test/wdl/md5sum/md5sum.json +0 -1
- toil-9.0.0/src/toil/version.py +0 -14
- {toil-9.0.0 → toil-9.1.1}/.git-blame-ignore-revs +0 -0
- {toil-9.0.0 → toil-9.1.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {toil-9.0.0 → toil-9.1.1}/.github/dependabot.yml +0 -0
- {toil-9.0.0 → toil-9.1.1}/.gitignore +0 -0
- {toil-9.0.0 → toil-9.1.1}/.readthedocs.yaml +0 -0
- {toil-9.0.0 → toil-9.1.1}/CODE_OF_CONDUCT.md +0 -0
- {toil-9.0.0 → toil-9.1.1}/CONTRIBUTING.md +0 -0
- {toil-9.0.0 → toil-9.1.1}/LICENSE +0 -0
- {toil-9.0.0 → toil-9.1.1}/MANIFEST.in +0 -0
- {toil-9.0.0 → toil-9.1.1}/README.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/ROADMAP.md +0 -0
- {toil-9.0.0 → toil-9.1.1}/attic/README.md +0 -0
- {toil-9.0.0 → toil-9.1.1}/attic/absolute_imports.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/attic/jobTreeSlides.pdf +0 -0
- {toil-9.0.0 → toil-9.1.1}/attic/toil-sort-example.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/common.mk +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/admin/buildkit-deployment.yml +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/admin/remove_trailing_whitespace.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/admin/test-pr +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/admin/wheel-of-issues +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/assets/toil-slug-logo-wordmark-2022.svg +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/hooks/lib.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/hooks/mypy-after-commit.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/hooks/mypy-before-push.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/configargparse/__init__.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/configargparse/configargparse.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/dill/__init__.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/dill/_dill.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/__init__.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/__init__.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/annotations.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/callables.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/listener.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/notificationmgr.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/publisher.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/topicargspec.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/topicdefnprovider.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/topicexc.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/topicmgr.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/topicobj.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/topictreetraverser.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/topicutils.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/core/weakmethod.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/pub.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/utils/__init__.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/utils/exchandling.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/utils/misc.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/utils/notification.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/utils/topictreeprinter.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/pubsub/utils/xmltopicdefnprovider.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/tes/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/tes/client.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/mypy-stubs/tes/models.pyi +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/pod-murder-bot/murder.yaml +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/pod-murder-bot/podKiller.sh +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/slurm-test/check_out.sh +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/slurm-test/docker-compose.yml +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/slurm-test/expected_out_basic.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/slurm-test/expected_out_sort.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/slurm-test/fileToSort.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/slurm-test/slurm.conf +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/slurm-test/slurm_test.sh +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/slurm-test/sort.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/slurm-test/toil_workflow.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/toil-ci-prebake/Dockerfile +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/toil-cwl-runner/README.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/toil-cwl-runner/pyproject.toml +0 -0
- {toil-9.0.0 → toil-9.1.1}/contrib/toil-cwl-runner/setup.cfg +0 -0
- {toil-9.0.0 → toil-9.1.1}/dashboard/grafana/Dockerfile +0 -0
- {toil-9.0.0 → toil-9.1.1}/dashboard/grafana/toil_dashboard.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/dashboard/mtail/Dockerfile +0 -0
- {toil-9.0.0 → toil-9.1.1}/dashboard/mtail/toil.mtail +0 -0
- {toil-9.0.0 → toil-9.1.1}/dashboard/prometheus/Dockerfile +0 -0
- {toil-9.0.0 → toil-9.1.1}/dashboard/prometheus/prometheus.yml +0 -0
- {toil-9.0.0 → toil-9.1.1}/dashboard/prometheus/run.sh +0 -0
- {toil-9.0.0 → toil-9.1.1}/docker/customDockerInit.sh +0 -0
- {toil-9.0.0 → toil-9.1.1}/docker/extra-debs.tsv +0 -0
- {toil-9.0.0 → toil-9.1.1}/docker/singularity-wrapper.sh +0 -0
- {toil-9.0.0 → toil-9.1.1}/docker/waitForKey.sh +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/Makefile +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/_static/favicon.ico +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/_static/logo.jpeg +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/_static/shortcut.png +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/appendices/architecture.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/appendices/caching_benefits.png +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/appendices/deploy.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/appendices/environment_vars.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/appendices/toil_architecture.png +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/conf.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/contributing/checklists.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/contributing/contributing.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/cwl/conformance.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/cwl/introduction.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/cwl/running.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/gettingStarted/googleScreenShot.png +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/gettingStarted/googleScreenShot2.png +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/gettingStarted/install.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/gettingStarted/quickStart.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/index.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/developing.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/toilAPI.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/toilAPIBatchsystem.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/toilAPIExceptions.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/toilAPIFilestore.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/toilAPIJobFunctions.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/toilAPIJobstore.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/toilAPIMethods.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/toilAPIRunner.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/python/toilAPIService.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cliOptions.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cloud/amazon.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cloud/amazonaddkeypair.png +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cloud/cloud.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cloud/clusterUtils.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cloud/dashboard_screenshot.png +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cloud/gce.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cloud/googleScreenShot.png +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cloud/googleScreenShot2.png +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/cloud/kubernetes.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/debugging.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/hpcEnvironments.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/introduction.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/server/docker-compose.yml +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/server/wes.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/running/utils.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/vendor/sphinxcontrib/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/vendor/sphinxcontrib/fulltoc.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/wdl/conformance.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/wdl/developing.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/wdl/introduction.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/wdl/running.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/docs/wdl/tutorial.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/pyproject.toml +0 -0
- {toil-9.0.0 → toil-9.1.1}/requirements-aws.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/requirements-encryption.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/requirements-htcondor.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/requirements-mesos.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/requirements-wdl.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/setup.cfg +0 -0
- {toil-9.0.0 → toil-9.1.1}/setup.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/setup_gitlab_docker.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/setup_gitlab_ssh.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/awsBatch.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/cleanup_support.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/contained_executor.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/gridengine.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/htcondor.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/local_support.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/lsf.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/lsfHelper.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/mesos/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/mesos/conftest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/mesos/executor.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/mesos/test/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/options.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/registry.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/singleMachine.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/batchSystems/torque.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/bus.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/common.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/cwl/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/cwl/conftest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/cwl/utils.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/deferred.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/exceptions.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/fileStores/nonCachingFileStore.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/jobStores/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/jobStores/aws/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/jobStores/conftest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/jobStores/fileJobStore.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/accelerators.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/aws/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/aws/ami.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/aws/iam.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/aws/session.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/aws/utils.py.orig +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/bioio.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/compatibility.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/docker.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/dockstore.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/ec2nodes.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/encryption/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/encryption/_dummy.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/encryption/_nacl.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/encryption/conftest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/ftp_utils.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/history.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/history_submission.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/humanize.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/misc.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/objects.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/plugins.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/resources.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/throttle.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/trs.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/lib/url.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/options/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/options/common.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/options/cwl.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/options/runner.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/options/wdl.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/provisioners/abstractProvisioner.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/provisioners/clusterScaler.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/provisioners/gceProvisioner.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/realtimeLogger.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/api_spec/LICENSE +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/api_spec/README.rst +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/api_spec/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/api_spec/workflow_execution_service.swagger.yaml +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/app.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/celery_app.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/cli/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/cli/wes_cwl_runner.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/utils.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/wes/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/wes/abstract_backend.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/wes/amazon_wes_utils.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/wes/tasks.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/wes/toil_backend.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/server/wsgi_app.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/serviceManager.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/statsAndLogging.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/batchSystems/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/batchSystems/batchSystemTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/batchSystems/batch_system_plugin_test.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/batchSystems/test_gridengine.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/batchSystems/test_lsf_helper.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cactus/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cactus/pestis.tar.gz +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cactus/test_cactus_integration.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/conftest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/2.fasta +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/2.fastq +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/alwaysfails.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/colon_test_output.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/colon_test_output_job.yaml +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/conditional_wf.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/conditional_wf.yaml +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/conftest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/cwlTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/directory/directory/file.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/directory_from_directory.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_directory.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_directory_file.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_directory_s3.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_file.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_http.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_https.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_s3.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_subdirectory.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_subdirectory_file.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/download_subdirectory_s3.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/echo-stderr.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/echo-stdout-log-dir.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/echo.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/echo_string.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/echo_string_scatter_capture_stdout.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/empty.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/file_from_directory.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/glob_dir.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/load_contents.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/measure_default_memory.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/mock_mpi/fake_mpi.yml +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/mock_mpi/fake_mpi_run.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/mpi_simple.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/not_run_required_input.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/nvidia_smi.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/optional-file-exists.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/optional-file-missing.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/optional-file.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/preemptible.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/preemptible_expression.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/preemptible_expression.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/revsort-job-missing.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/revsort-job.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/revsort.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/revsort2.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/revtool.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/revtool2.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/s3_secondary_file.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/s3_secondary_file.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/scatter_duplicate_outputs.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/seqtk_seq.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/seqtk_seq_job.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/sorttool.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/stream.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/stream.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_detection.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_detection_at_root.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.dat +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f0 +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f1 +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f1i +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f2 +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f2_TSM0 +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f3 +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f3_TSM0 +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f4 +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f4_TSM0 +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.f5 +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.info +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/test_filename_conflict_resolution.ms/table.lock +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/cwl/whale.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/example_alwaysfail.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/example_alwaysfail_with_files.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/example_cachingbenchmark.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/stagingExampleFiles/out.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_arguments.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_debugging.patch +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_debugging_hangs.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_debugging_works.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_docker.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_dynamic.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_encapsulation.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_encapsulation2.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_helloworld.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_invokeworkflow.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_invokeworkflow2.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_jobfunctions.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_managing.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_managing2.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_multiplejobs.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_multiplejobs2.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_multiplejobs3.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_promises.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_promises2.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_quickstart.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_requirements.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_services.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scripts/tutorial_stats.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/docs/scriptsTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/jobStores/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/aws/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/dockerTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/test_conversions.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/test_ec2.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/test_history.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/test_misc.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/test_trs.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/test_url.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/lib/url_plugin_test.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/mesos/MesosDataStructuresTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/mesos/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/mesos/helloWorld.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/mesos/stress.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/options/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/options/options.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/provisioners/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/provisioners/aws/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/provisioners/clusterScalerTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/provisioners/clusterTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/provisioners/gceProvisionerTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/provisioners/provisionerTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/provisioners/restartScript.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/server/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/server/serverTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/sort/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/sort/restart_sort.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/sort/sort.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/sort/sortTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/busTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/checkpointTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/deferredFunctionTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/dockerCheckTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/environmentTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/helloWorldTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/importExportFileTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/jobDescriptionTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/jobEncapsulationTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/jobFileStoreTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/jobServiceTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/jobTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/miscTests.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/promisedRequirementTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/promisesTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/realtimeLoggerTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/regularLogTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/resourceTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/restartDAGTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/resumabilityTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/retainTempDirTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/systemTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/threadingTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/toilContextManagerTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/userDefinedJobArgTypeTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/src/workerTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/utils/ABCWorkflowDebug/B_file.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/utils/ABCWorkflowDebug/mkFile.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/utils/ABCWorkflowDebug/sleep.cwl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/utils/ABCWorkflowDebug/sleep.yaml +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/utils/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/utils/toilDebugTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/utils/utilsTest.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/lint_error.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/md5sum/empty_file.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/md5sum/md5sum-gs.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/md5sum/md5sum.1.0.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/md5sum/md5sum.input +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/md5sum/md5sum.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/miniwdl_self_test/inputs-namespaced.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/miniwdl_self_test/inputs.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/miniwdl_self_test/self_test.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/as_map.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/as_map_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/as_pairs.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/as_pairs_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/ceil.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/ceil_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/ceil_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/collect_by_key.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/collect_by_key_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/cross.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/cross_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/flatten.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/flatten_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/floor.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/floor_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/floor_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/keys.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/keys_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/length.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/length_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/length_as_input_with_map.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/length_as_input_with_map.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/length_invalid.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/range.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/range_0.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/range_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/range_invalid.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_boolean.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_boolean_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_float.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_float_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_int.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_int_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_json.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_json_as_output.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_lines.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_lines_as_output.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_map.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_map_as_output.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_string.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_string_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_tsv.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/read_tsv_as_output.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/round.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/round_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/round_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/size.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/size_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/size_as_output.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/stderr.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/stderr_as_output.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/stdout.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/stdout_as_output.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/sub.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/sub_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/sub_as_input_with_file.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/transpose.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/transpose_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/write_json.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/write_json_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/write_lines.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/write_lines_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/write_map.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/write_map_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/write_tsv.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/write_tsv_as_command.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/zip.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/standard_library/zip_as_input.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/test.csv +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/test.tsv +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/croo.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/drop_files.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/drop_files_subworkflow.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/empty.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/not_enough_outputs.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/random.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/read_file.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/string_file_coercion.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/string_file_coercion.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/test.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/test_boolean.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/test_float.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/test_int.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/test_lines.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/test_map.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/test_string.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/url_to_file.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/url_to_optional_file.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/vocab.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/vocab.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/testfiles/wait.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/wdl_specification/type_pair.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/wdl_specification/type_pair_basic.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/wdl_specification/type_pair_with_files.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/wdl_specification/v1_spec.json +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/test/wdl/wdl_specification/v1_spec_declaration.wdl +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/toilState.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilClean.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilConfig.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilDebugJob.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilDestroyCluster.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilKill.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilLaunchCluster.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilMain.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilRsyncCluster.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilServer.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilSshCluster.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilStatus.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/utils/toilUpdateEC2Instances.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/wdl/__init__.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil/wdl/utils.py +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil.egg-info/dependency_links.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil.egg-info/entry_points.txt +0 -0
- {toil-9.0.0 → toil-9.1.1}/src/toil.egg-info/top_level.txt +0 -0
|
@@ -164,7 +164,8 @@ quick_test_offline:
|
|
|
164
164
|
make develop extras=[aws,google,wdl]
|
|
165
165
|
echo -e "\e[0Ksection_end:`date +%s`:prepare\r\e[0K"
|
|
166
166
|
echo -e "\e[0Ksection_start:`date +%s`:test\r\e[0KRun the offline tests"
|
|
167
|
-
|
|
167
|
+
# Make sure not to run the doctests here because we didn't install all possible extras
|
|
168
|
+
TOIL_TEST_QUICK=True make test_offline tests=src/toil/test threads="${TEST_THREADS}"
|
|
168
169
|
echo -e "\e[0Ksection_end:`date +%s`:test\r\e[0K"
|
|
169
170
|
|
|
170
171
|
py39_appliance_build:
|
|
@@ -208,6 +209,7 @@ py39_main:
|
|
|
208
209
|
python3.9 -m virtualenv venv && . venv/bin/activate && pip install -U pip wheel && make prepare && make develop extras=[all,htcondor]
|
|
209
210
|
echo -e "\e[0Ksection_end:`date +%s`:prepare\r\e[0K"
|
|
210
211
|
echo -e "\e[0Ksection_start:`date +%s`:test\r\e[0KRun the tests"
|
|
212
|
+
make doctest threads="${TEST_THREADS}"
|
|
211
213
|
make test threads="${TEST_THREADS}" tests="src/toil/test/src src/toil/test/utils src/toil/test/server"
|
|
212
214
|
TOIL_SKIP_DOCKER=true make test threads="${TEST_THREADS}" tests="src/toil/test/lib"
|
|
213
215
|
echo -e "\e[0Ksection_end:`date +%s`:test\r\e[0K"
|
|
@@ -253,6 +255,7 @@ py310_main:
|
|
|
253
255
|
python3.10 -m virtualenv venv && . venv/bin/activate && curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10 && pip install -U pip wheel && make prepare && pip install pycparser && make develop extras=[all,htcondor]
|
|
254
256
|
echo -e "\e[0Ksection_end:`date +%s`:prepare\r\e[0K"
|
|
255
257
|
echo -e "\e[0Ksection_start:`date +%s`:test\r\e[0KRun the tests"
|
|
258
|
+
make doctest threads="${TEST_THREADS}"
|
|
256
259
|
make test threads="${TEST_THREADS}" tests="src/toil/test/src src/toil/test/utils src/toil/test/server"
|
|
257
260
|
TOIL_SKIP_DOCKER=true make test threads="${TEST_THREADS}" tests="src/toil/test/lib"
|
|
258
261
|
echo -e "\e[0Ksection_end:`date +%s`:test\r\e[0K"
|
|
@@ -298,6 +301,7 @@ py311_main:
|
|
|
298
301
|
python3.11 -m virtualenv venv && . venv/bin/activate && curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11 && pip install -U pip wheel && make prepare && make develop extras=[all,htcondor]
|
|
299
302
|
echo -e "\e[0Ksection_end:`date +%s`:prepare\r\e[0K"
|
|
300
303
|
echo -e "\e[0Ksection_start:`date +%s`:test\r\e[0KRun the tests"
|
|
304
|
+
make doctest threads="${TEST_THREADS}"
|
|
301
305
|
make test threads="${TEST_THREADS}" tests="src/toil/test/src src/toil/test/utils src/toil/test/server"
|
|
302
306
|
TOIL_SKIP_DOCKER=true make test threads="${TEST_THREADS}" tests="src/toil/test/lib"
|
|
303
307
|
echo -e "\e[0Ksection_end:`date +%s`:test\r\e[0K"
|
|
@@ -343,6 +347,7 @@ py312_main:
|
|
|
343
347
|
python3.12 -m virtualenv venv && . venv/bin/activate && curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12 && pip install -U pip wheel && make prepare && make develop extras=[all,htcondor]
|
|
344
348
|
echo -e "\e[0Ksection_end:`date +%s`:prepare\r\e[0K"
|
|
345
349
|
echo -e "\e[0Ksection_start:`date +%s`:test\r\e[0KRun the tests"
|
|
350
|
+
make doctest threads="${TEST_THREADS}"
|
|
346
351
|
make test threads="${TEST_THREADS}" tests="src/toil/test/src src/toil/test/utils src/toil/test/server"
|
|
347
352
|
TOIL_SKIP_DOCKER=true make test threads="${TEST_THREADS}" tests="src/toil/test/lib"
|
|
348
353
|
echo -e "\e[0Ksection_end:`date +%s`:test\r\e[0K"
|
|
@@ -379,11 +384,11 @@ py313_main:
|
|
|
379
384
|
python3.13 -m virtualenv venv && . venv/bin/activate && curl -sS https://bootstrap.pypa.io/get-pip.py | python3.13 && pip install -U pip wheel && make prepare && make develop extras=[all]
|
|
380
385
|
echo -e "\e[0Ksection_end:`date +%s`:prepare\r\e[0K"
|
|
381
386
|
echo -e "\e[0Ksection_start:`date +%s`:test\r\e[0KRun the tests"
|
|
387
|
+
make doctest threads="${TEST_THREADS}"
|
|
382
388
|
make test threads="${TEST_THREADS}" tests="src/toil/test/src src/toil/test/utils src/toil/test/server"
|
|
383
389
|
TOIL_SKIP_DOCKER=true make test threads="${TEST_THREADS}" tests="src/toil/test/lib"
|
|
384
390
|
echo -e "\e[0Ksection_end:`date +%s`:test\r\e[0K"
|
|
385
391
|
|
|
386
|
-
|
|
387
392
|
slurm_test:
|
|
388
393
|
rules:
|
|
389
394
|
- if: $CI_PIPELINE_SOURCE == "schedule"
|
|
@@ -458,7 +463,7 @@ cwl_badge:
|
|
|
458
463
|
rm -rf badges1.2
|
|
459
464
|
echo -e "\e[0Ksection_end:`date +%s`:download_tests\r\e[0K"
|
|
460
465
|
echo -e "\e[0Ksection_start:`date +%s`:test\r\e[0KRun the CWL v1.2 conformance tests."
|
|
461
|
-
make test tests="src/toil/test/cwl/spec_v12/conformance_tests.cwltest.yaml" threads="${TEST_THREADS}" pytest_args="--cwl-runner-verbose --cwl-badgedir=badges1.2 --junit-xml=in-place-update-conformance-1.2.junit.xml --cwl-args='--relax-path-checks --clean=always --logDebug --statusWait=10 --retryCount=2 --eval-timeout=600 --bypass-file-store'"
|
|
466
|
+
make test tests="src/toil/test/cwl/spec_v12/conformance_tests.cwltest.yaml" threads="${TEST_THREADS}" pytest_args="--randomly-dont-reorganize --cwl-runner-verbose --cwl-badgedir=badges1.2 --junit-xml=in-place-update-conformance-1.2.junit.xml --cwl-args='--relax-path-checks --clean=always --logDebug --statusWait=10 --retryCount=2 --eval-timeout=600 --bypass-file-store'"
|
|
462
467
|
echo -e "\e[0Ksection_end:`date +%s`:test\r\e[0K"
|
|
463
468
|
allow_failure: true
|
|
464
469
|
artifacts:
|
|
@@ -491,7 +496,7 @@ cwl_badge_release:
|
|
|
491
496
|
rm -rf badges1.2
|
|
492
497
|
echo -e "\e[0Ksection_end:`date +%s`:download_tests\r\e[0K"
|
|
493
498
|
echo -e "\e[0Ksection_start:`date +%s`:test\r\e[0KRun the CWL v1.2 conformance tests."
|
|
494
|
-
make test tests="src/toil/test/cwl/spec_v12/conformance_tests.cwltest.yaml" threads="${TEST_THREADS}" pytest_args="--cwl-runner-verbose --cwl-badgedir=badges1.2 --junit-xml=in-place-update-conformance-1.2.junit.xml --cwl-args='--relax-path-checks --clean=always --logDebug --statusWait=10 --retryCount=2 --eval-timeout=600 --bypass-file-store'"
|
|
499
|
+
make test tests="src/toil/test/cwl/spec_v12/conformance_tests.cwltest.yaml" threads="${TEST_THREADS}" pytest_args="--randomly-dont-reorganize --cwl-runner-verbose --cwl-badgedir=badges1.2 --junit-xml=in-place-update-conformance-1.2.junit.xml --cwl-args='--relax-path-checks --clean=always --logDebug --statusWait=10 --retryCount=2 --eval-timeout=600 --bypass-file-store'"
|
|
495
500
|
echo -e "\e[0Ksection_end:`date +%s`:test\r\e[0K"
|
|
496
501
|
allow_failure: true
|
|
497
502
|
artifacts:
|
|
@@ -685,7 +690,7 @@ provisioner_integration:
|
|
|
685
690
|
- export TOIL_TEST_INTEGRATIVE=True; export TOIL_AWS_KEYNAME=id_rsa; export TOIL_AWS_ZONE=us-west-2a
|
|
686
691
|
# This reads GITLAB_SECRET_FILE_SSH_KEYS
|
|
687
692
|
- python setup_gitlab_ssh.py
|
|
688
|
-
- make test threads="${TEST_THREADS}" tests="src/toil/test/sort/sortTest.py src/toil/test/provisioners/clusterScalerTest.py src/toil/test/utils/utilsTest.py::TestUtils::testAWSProvisionerUtils src/toil/test/provisioners/aws/awsProvisionerTest.py::
|
|
693
|
+
- make test threads="${TEST_THREADS}" tests="src/toil/test/sort/sortTest.py src/toil/test/provisioners/clusterScalerTest.py src/toil/test/utils/utilsTest.py::TestUtils::testAWSProvisionerUtils src/toil/test/provisioners/aws/awsProvisionerTest.py::TestAWSProvisionerBenchTest src/toil/test/provisioners/aws/awsProvisionerTest.py::AWSAutoscaleTest src/toil/test/provisioners/aws/awsProvisionerTest.py::AWSManagedAutoscaleTest src/toil/test/provisioners/aws/awsProvisionerTest.py::AWSStaticAutoscaleTest src/toil/test/wdl/wdltoil_test_kubernetes.py::WDLKubernetesClusterTest"
|
|
689
694
|
# - make test tests=src/toil/test/provisioners/gceProvisionerTest.py # needs env vars set to run
|
|
690
695
|
|
|
691
696
|
google_jobstore:
|
|
@@ -85,7 +85,8 @@ help:
|
|
|
85
85
|
|
|
86
86
|
# This Makefile uses bash features like printf and <()
|
|
87
87
|
SHELL=bash
|
|
88
|
-
tests
|
|
88
|
+
# We need the default tests to include the doctests, but not htcondor which isn't on mac.
|
|
89
|
+
tests=src/toil --ignore src/toil/batchSystems/htcondor.py
|
|
89
90
|
arch=linux/amd64,linux/arm64
|
|
90
91
|
cov=--cov=toil
|
|
91
92
|
logging=--log-format="%(asctime)s %(levelname)s %(message)s" --log-level DEBUG -o log_cli=true --log-cli-level INFO
|
|
@@ -109,7 +110,7 @@ marker=""
|
|
|
109
110
|
threads:="auto"
|
|
110
111
|
|
|
111
112
|
dist:="worksteal"
|
|
112
|
-
pytest_args:=""
|
|
113
|
+
pytest_args:="--randomly-dont-reorganize"
|
|
113
114
|
|
|
114
115
|
# Only pass the threading options if running parallel tests. Otherwise we lose
|
|
115
116
|
# live logging. See <https://stackoverflow.com/q/62533239>
|
|
@@ -169,10 +170,20 @@ test: check_venv check_build_reqs
|
|
|
169
170
|
TOIL_HISTORY=0 \
|
|
170
171
|
python -m pytest $(verbose) $(durations) $(threadopts) -m "$(marker)" $(logging) $(cov) $(tests) $(pytest_args)
|
|
171
172
|
|
|
173
|
+
# When running doctests, we need to not capture output, because on CI we can
|
|
174
|
+
# get failures where doctest saw no output and we report captured output, as in
|
|
175
|
+
# <https://ucsc-ci.com/databiosphere/toil/-/jobs/96131>. doctest and pytest's
|
|
176
|
+
# captures might not work properly together.
|
|
177
|
+
doctest: check_venv check_build_reqs
|
|
178
|
+
TOIL_OWNER_TAG="shared" \
|
|
179
|
+
TOIL_HISTORY=0 \
|
|
180
|
+
python -m pytest --capture=no $(verbose) $(durations) $(threadopts) -m "$(marker)" $(logging) $(cov) $(tests) --ignore src/toil/test $(pytest_args)
|
|
181
|
+
|
|
172
182
|
test_debug: check_venv check_build_reqs
|
|
183
|
+
# Don't include threadopts to make sure we can see our live logging.
|
|
173
184
|
TOIL_OWNER_TAG="$(whoami)" \
|
|
174
185
|
TOIL_HISTORY=0 \
|
|
175
|
-
python -m pytest $(verbose) $(durations)
|
|
186
|
+
python -m pytest $(verbose) $(durations) -m "$(marker)" $(logging) $(tests) $(pytest_args) --maxfail=1
|
|
176
187
|
|
|
177
188
|
|
|
178
189
|
# This target will skip building docker and all docker based tests
|
|
@@ -189,7 +200,7 @@ test_offline: check_venv check_build_reqs
|
|
|
189
200
|
test_1min: check_venv check_build_reqs
|
|
190
201
|
TOIL_SKIP_DOCKER=False \
|
|
191
202
|
TOIL_HISTORY=0 \
|
|
192
|
-
python -m pytest $(verbose) $(durations) $(threadopts) -m "$(marker)" $(logging) --timeout=30
|
|
203
|
+
python -m pytest $(verbose) $(durations) $(threadopts) -m "$(marker)" $(logging) --timeout=30 --maxfail=1 $(pytest_args) src/toil/test/batchSystems/batchSystemTest.py::SingleMachineBatchSystemTest::test_run_jobs src/toil/test/batchSystems/batchSystemTest.py::KubernetesBatchSystemBenchTest src/toil/test/server/serverTest.py::ToilWESServerBenchTest::test_get_service_info src/toil/test/cwl/cwlTest.py::TestCWLWorkflow::test_run_colon_output src/toil/test/jobStores/jobStoreTest.py::FileJobStoreTest::testUpdateBehavior
|
|
193
204
|
|
|
194
205
|
ifdef TOIL_DOCKER_REGISTRY
|
|
195
206
|
|
|
@@ -378,7 +389,7 @@ preflight: mypy touched_pylint
|
|
|
378
389
|
develop clean_develop \
|
|
379
390
|
sdist clean_sdist \
|
|
380
391
|
download_cwl_spec \
|
|
381
|
-
test test_offline test_1min \
|
|
392
|
+
test doctest test_offline test_1min \
|
|
382
393
|
docs clean_docs \
|
|
383
394
|
clean \
|
|
384
395
|
sort_imports remove_unused_imports remove_trailing_whitespace \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: toil
|
|
3
|
-
Version: 9.
|
|
3
|
+
Version: 9.1.1
|
|
4
4
|
Summary: Pipeline management software for clusters.
|
|
5
5
|
Home-page: https://github.com/DataBiosphere/toil
|
|
6
6
|
Author: Benedict Paten and the Toil community
|
|
@@ -33,7 +33,7 @@ Requires-Python: >=3.9
|
|
|
33
33
|
Description-Content-Type: text/x-rst
|
|
34
34
|
License-File: LICENSE
|
|
35
35
|
Requires-Dist: dill<0.4,>=0.3.2
|
|
36
|
-
Requires-Dist: requests<=2.
|
|
36
|
+
Requires-Dist: requests<=2.32.5
|
|
37
37
|
Requires-Dist: docker<8,>=6.1.0
|
|
38
38
|
Requires-Dist: urllib3<3,>=1.26.0
|
|
39
39
|
Requires-Dist: python-dateutil
|
|
@@ -55,10 +55,10 @@ Requires-Dist: mypy-boto3-s3<2,>=1.28.3.post2; extra == "aws"
|
|
|
55
55
|
Requires-Dist: moto<6,>=5.0.3; extra == "aws"
|
|
56
56
|
Requires-Dist: ec2_metadata<3,>=2.14.0; extra == "aws"
|
|
57
57
|
Provides-Extra: cwl
|
|
58
|
-
Requires-Dist: cwltool==3.1.
|
|
58
|
+
Requires-Dist: cwltool==3.1.20250715140722; extra == "cwl"
|
|
59
59
|
Requires-Dist: schema-salad<9,>=8.4.20230128170514; extra == "cwl"
|
|
60
60
|
Requires-Dist: galaxy-tool-util<26; extra == "cwl"
|
|
61
|
-
Requires-Dist: galaxy-util<
|
|
61
|
+
Requires-Dist: galaxy-util<26; extra == "cwl"
|
|
62
62
|
Requires-Dist: ruamel.yaml<=0.19,>=0.15; extra == "cwl"
|
|
63
63
|
Requires-Dist: ruamel.yaml.clib>=0.2.6; extra == "cwl"
|
|
64
64
|
Requires-Dist: networkx!=2.8.1,<4; extra == "cwl"
|
|
@@ -67,11 +67,11 @@ Requires-Dist: cwl-utils>=0.36; extra == "cwl"
|
|
|
67
67
|
Provides-Extra: encryption
|
|
68
68
|
Requires-Dist: pynacl<2,>=1.4.0; extra == "encryption"
|
|
69
69
|
Provides-Extra: google
|
|
70
|
-
Requires-Dist: apache-libcloud<3
|
|
70
|
+
Requires-Dist: apache-libcloud<4,>=3.6.1; extra == "google"
|
|
71
71
|
Requires-Dist: google-cloud-storage<=2.8.0,>=2; extra == "google"
|
|
72
72
|
Requires-Dist: google-auth<3,>=2.18.1; extra == "google"
|
|
73
73
|
Provides-Extra: kubernetes
|
|
74
|
-
Requires-Dist: kubernetes<
|
|
74
|
+
Requires-Dist: kubernetes<34,>=12.0.1; extra == "kubernetes"
|
|
75
75
|
Requires-Dist: kubernetes-stubs==v22.6.0post1; extra == "kubernetes"
|
|
76
76
|
Requires-Dist: types-urllib3; extra == "kubernetes"
|
|
77
77
|
Requires-Dist: types-PyYAML; extra == "kubernetes"
|
|
@@ -84,7 +84,7 @@ Provides-Extra: server
|
|
|
84
84
|
Requires-Dist: connexion[swagger-ui]<4,>=3; extra == "server"
|
|
85
85
|
Requires-Dist: flask<4,>=3; extra == "server"
|
|
86
86
|
Requires-Dist: werkzeug<4,>=3; extra == "server"
|
|
87
|
-
Requires-Dist: flask-cors<
|
|
87
|
+
Requires-Dist: flask-cors<7,>=5.0.1; extra == "server"
|
|
88
88
|
Requires-Dist: gunicorn<24,>=23.0.0; extra == "server"
|
|
89
89
|
Requires-Dist: celery<6,>=5.4.0; extra == "server"
|
|
90
90
|
Requires-Dist: wes-service<6,>=5.0.0; extra == "server"
|
|
@@ -99,20 +99,20 @@ Requires-Dist: mypy-boto3-iam<2,>=1.28.3.post2; extra == "all"
|
|
|
99
99
|
Requires-Dist: mypy-boto3-s3<2,>=1.28.3.post2; extra == "all"
|
|
100
100
|
Requires-Dist: moto<6,>=5.0.3; extra == "all"
|
|
101
101
|
Requires-Dist: ec2_metadata<3,>=2.14.0; extra == "all"
|
|
102
|
-
Requires-Dist: cwltool==3.1.
|
|
102
|
+
Requires-Dist: cwltool==3.1.20250715140722; extra == "all"
|
|
103
103
|
Requires-Dist: schema-salad<9,>=8.4.20230128170514; extra == "all"
|
|
104
104
|
Requires-Dist: galaxy-tool-util<26; extra == "all"
|
|
105
|
-
Requires-Dist: galaxy-util<
|
|
105
|
+
Requires-Dist: galaxy-util<26; extra == "all"
|
|
106
106
|
Requires-Dist: ruamel.yaml<=0.19,>=0.15; extra == "all"
|
|
107
107
|
Requires-Dist: ruamel.yaml.clib>=0.2.6; extra == "all"
|
|
108
108
|
Requires-Dist: networkx!=2.8.1,<4; extra == "all"
|
|
109
109
|
Requires-Dist: CacheControl[filecache]; extra == "all"
|
|
110
110
|
Requires-Dist: cwl-utils>=0.36; extra == "all"
|
|
111
111
|
Requires-Dist: pynacl<2,>=1.4.0; extra == "all"
|
|
112
|
-
Requires-Dist: apache-libcloud<3
|
|
112
|
+
Requires-Dist: apache-libcloud<4,>=3.6.1; extra == "all"
|
|
113
113
|
Requires-Dist: google-cloud-storage<=2.8.0,>=2; extra == "all"
|
|
114
114
|
Requires-Dist: google-auth<3,>=2.18.1; extra == "all"
|
|
115
|
-
Requires-Dist: kubernetes<
|
|
115
|
+
Requires-Dist: kubernetes<34,>=12.0.1; extra == "all"
|
|
116
116
|
Requires-Dist: kubernetes-stubs==v22.6.0post1; extra == "all"
|
|
117
117
|
Requires-Dist: types-urllib3; extra == "all"
|
|
118
118
|
Requires-Dist: types-PyYAML; extra == "all"
|
|
@@ -123,7 +123,7 @@ Requires-Dist: graphlib-backport==1.0; python_version < "3.9" and extra == "all"
|
|
|
123
123
|
Requires-Dist: connexion[swagger-ui]<4,>=3; extra == "all"
|
|
124
124
|
Requires-Dist: flask<4,>=3; extra == "all"
|
|
125
125
|
Requires-Dist: werkzeug<4,>=3; extra == "all"
|
|
126
|
-
Requires-Dist: flask-cors<
|
|
126
|
+
Requires-Dist: flask-cors<7,>=5.0.1; extra == "all"
|
|
127
127
|
Requires-Dist: gunicorn<24,>=23.0.0; extra == "all"
|
|
128
128
|
Requires-Dist: celery<6,>=5.4.0; extra == "all"
|
|
129
129
|
Requires-Dist: wes-service<6,>=5.0.0; extra == "all"
|
|
@@ -70,8 +70,11 @@ def contains_toil_test_patterns(string):
|
|
|
70
70
|
|
|
71
71
|
|
|
72
72
|
def matches(resource_name):
|
|
73
|
-
if (
|
|
74
|
-
|
|
73
|
+
if (
|
|
74
|
+
resource_name.endswith('--files') or resource_name.endswith('--jobs')
|
|
75
|
+
or resource_name.endswith('--toil') or resource_name.endswith('_toil')
|
|
76
|
+
or resource_name.endswith('--internal') or resource_name.startswith('toil-s3test-')
|
|
77
|
+
):
|
|
75
78
|
if contains_toil_test_patterns(resource_name):
|
|
76
79
|
return resource_name
|
|
77
80
|
|
|
@@ -22,7 +22,8 @@ def main():
|
|
|
22
22
|
|
|
23
23
|
# TODO: Remove these paths as typing is added and mypy conflicts are addressed.
|
|
24
24
|
# These are handled as path prefixes.
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
ignore_paths = [os.path.join(pkg_root, f) for f in [
|
|
26
27
|
'docs/_build',
|
|
27
28
|
'docker/Dockerfile.py',
|
|
28
29
|
'docs/conf.py',
|
|
@@ -61,12 +62,8 @@ def main():
|
|
|
61
62
|
'src/toil/jobStores/fileJobStore.py',
|
|
62
63
|
'src/toil/jobStores/__init__.py',
|
|
63
64
|
'src/toil/jobStores/googleJobStore.py',
|
|
64
|
-
'src/toil/jobStores/aws/utils.py',
|
|
65
|
-
'src/toil/jobStores/aws/jobStore.py',
|
|
66
|
-
'src/toil/jobStores/aws/__init__.py',
|
|
67
65
|
'src/toil/utils/__init__.py',
|
|
68
66
|
'src/toil/lib/throttle.py',
|
|
69
|
-
'src/toil/lib/iterables.py',
|
|
70
67
|
'src/toil/lib/bioio.py',
|
|
71
68
|
'src/toil/lib/ec2.py',
|
|
72
69
|
'src/toil/lib/expando.py',
|
|
@@ -87,7 +84,6 @@ def main():
|
|
|
87
84
|
'src/toil/test/cactus',
|
|
88
85
|
'src/toil/test/docs',
|
|
89
86
|
'src/toil/test/jobStores',
|
|
90
|
-
'src/toil/test/lib/aws',
|
|
91
87
|
'src/toil/test/lib/test_conversions.py',
|
|
92
88
|
'src/toil/test/lib/test_ec2.py',
|
|
93
89
|
'src/toil/test/lib/test_misc.py',
|
|
@@ -95,11 +95,10 @@ def heredoc(s):
|
|
|
95
95
|
|
|
96
96
|
motd = heredoc('''
|
|
97
97
|
|
|
98
|
-
This is the Toil appliance. You can run your Toil
|
|
99
|
-
Run toil <workflow>.py --help to see all options for running your workflow.
|
|
98
|
+
This is the Toil appliance. You can run your Toil workflow directly on the appliance.
|
|
100
99
|
For more information see http://toil.readthedocs.io/en/latest/
|
|
101
100
|
|
|
102
|
-
Copyright (C) 2015-
|
|
101
|
+
Copyright (C) 2015-2025 Regents of the University of California
|
|
103
102
|
|
|
104
103
|
Version: {applianceSelf}
|
|
105
104
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
pytest>=6.2.1,<9
|
|
2
|
-
pytest-cov>=2.12.1,<
|
|
2
|
+
pytest-cov>=2.12.1,<8
|
|
3
3
|
pytest-timeout>=1.4.2,<3
|
|
4
4
|
pytest_httpserver>=1.1.3,<2
|
|
5
|
-
pytest-subtests
|
|
5
|
+
pytest-subtests>=0.14.2,<0.15
|
|
6
|
+
pytest-randomly>=3.16.0,<5
|
|
6
7
|
stubserver>=1.1,<2
|
|
7
8
|
setuptools>=65.5.1,<81
|
|
8
9
|
sphinx>=7,<9
|
|
@@ -11,7 +12,7 @@ astroid>=3,<4
|
|
|
11
12
|
sphinx-autodoc-typehints>=1.24.0,<4
|
|
12
13
|
sphinxcontrib-autoprogram==0.1.9
|
|
13
14
|
cwltest>=2.6.20250314152537
|
|
14
|
-
mypy==1.
|
|
15
|
+
mypy==1.18.1
|
|
15
16
|
types-aws-xray-sdk
|
|
16
17
|
types-boto<2.49.18.20241020
|
|
17
18
|
types-Flask-Cors
|
|
@@ -29,7 +30,7 @@ autoflake
|
|
|
29
30
|
isort
|
|
30
31
|
diff_cover
|
|
31
32
|
lxml
|
|
32
|
-
docutils>=0.16,<0.
|
|
33
|
+
docutils>=0.16,<0.23
|
|
33
34
|
pyupgrade
|
|
34
35
|
pytest-xdist
|
|
35
36
|
build
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
|
+
from dataclasses import dataclass
|
|
14
15
|
import enum
|
|
15
16
|
import logging
|
|
16
17
|
import os
|
|
@@ -72,10 +73,13 @@ class BatchJobExitReason(enum.IntEnum):
|
|
|
72
73
|
except ValueError:
|
|
73
74
|
return str(value)
|
|
74
75
|
|
|
75
|
-
|
|
76
|
-
class UpdatedBatchJobInfo
|
|
76
|
+
@dataclass
|
|
77
|
+
class UpdatedBatchJobInfo:
|
|
77
78
|
jobID: int
|
|
78
|
-
|
|
79
|
+
"""
|
|
80
|
+
The Toil batch system ID of the job.
|
|
81
|
+
"""
|
|
82
|
+
exitStatus: int = EXIT_STATUS_UNAVAILABLE_VALUE
|
|
79
83
|
"""
|
|
80
84
|
The exit status (integer value) of the job. 0 implies successful.
|
|
81
85
|
|
|
@@ -83,8 +87,12 @@ class UpdatedBatchJobInfo(NamedTuple):
|
|
|
83
87
|
(e.g. job is lost, or otherwise died but actual exit code was not reported).
|
|
84
88
|
"""
|
|
85
89
|
|
|
86
|
-
exitReason: Optional[BatchJobExitReason]
|
|
87
|
-
wallTime: Union[float, int, None]
|
|
90
|
+
exitReason: Optional[BatchJobExitReason] = None
|
|
91
|
+
wallTime: Union[float, int, None] = None
|
|
92
|
+
backing_id: Optional[str] = None
|
|
93
|
+
"""
|
|
94
|
+
The identifier for the job in the backing scheduler, if available.
|
|
95
|
+
"""
|
|
88
96
|
|
|
89
97
|
|
|
90
98
|
# Information required for worker cleanup on shutdown of the batch system.
|
|
@@ -159,14 +159,21 @@ class AbstractGridEngineBatchSystem(BatchSystemCleanupSupport):
|
|
|
159
159
|
logger.debug("Running %r", subLine)
|
|
160
160
|
batchJobID = self.boss.with_retries(self.submitJob, subLine)
|
|
161
161
|
if self.boss._outbox is not None:
|
|
162
|
-
# JobID corresponds to the toil version of the jobID,
|
|
162
|
+
# JobID corresponds to the toil version of the jobID,
|
|
163
|
+
# different from the jobstore's idea of the id. batchjobid
|
|
164
|
+
# is what we get from e.g. slurm
|
|
163
165
|
self.boss._outbox.publish(
|
|
164
166
|
ExternalBatchIdMessage(
|
|
165
167
|
jobID, batchJobID, self.boss.__class__.__name__
|
|
166
168
|
)
|
|
167
169
|
)
|
|
168
170
|
|
|
169
|
-
logger.
|
|
171
|
+
logger.info(
|
|
172
|
+
"Job %s with batch system ID %s queued as job %s",
|
|
173
|
+
jobName,
|
|
174
|
+
jobID,
|
|
175
|
+
str(batchJobID)
|
|
176
|
+
)
|
|
170
177
|
|
|
171
178
|
# Store dict for mapping Toil job ID to batch job ID
|
|
172
179
|
# TODO: Note that this currently stores a tuple of (batch system
|
|
@@ -251,8 +258,8 @@ class AbstractGridEngineBatchSystem(BatchSystemCleanupSupport):
|
|
|
251
258
|
self.coalesce_job_exit_codes, batch_job_id_list
|
|
252
259
|
)
|
|
253
260
|
# We got the statuses as a batch
|
|
254
|
-
for running_job_id, status in zip(running_job_list, statuses):
|
|
255
|
-
activity = self._handle_job_status(running_job_id, status, activity)
|
|
261
|
+
for running_job_id, status, backing_id in zip(running_job_list, statuses, batch_job_id_list):
|
|
262
|
+
activity = self._handle_job_status(running_job_id, status, activity, backing_id)
|
|
256
263
|
|
|
257
264
|
self._checkOnJobsCache = activity
|
|
258
265
|
self._checkOnJobsTimestamp = datetime.now()
|
|
@@ -263,6 +270,7 @@ class AbstractGridEngineBatchSystem(BatchSystemCleanupSupport):
|
|
|
263
270
|
job_id: int,
|
|
264
271
|
status: Union[int, tuple[int, Optional[BatchJobExitReason]], None],
|
|
265
272
|
activity: bool,
|
|
273
|
+
backing_id: str,
|
|
266
274
|
) -> bool:
|
|
267
275
|
"""
|
|
268
276
|
Helper method for checkOnJobs to handle job statuses
|
|
@@ -275,7 +283,11 @@ class AbstractGridEngineBatchSystem(BatchSystemCleanupSupport):
|
|
|
275
283
|
code, reason = status
|
|
276
284
|
self.updatedJobsQueue.put(
|
|
277
285
|
UpdatedBatchJobInfo(
|
|
278
|
-
jobID=job_id,
|
|
286
|
+
jobID=job_id,
|
|
287
|
+
exitStatus=code,
|
|
288
|
+
exitReason=reason,
|
|
289
|
+
wallTime=None,
|
|
290
|
+
backing_id=backing_id,
|
|
279
291
|
)
|
|
280
292
|
)
|
|
281
293
|
self.forgetJob(job_id)
|
|
@@ -37,6 +37,7 @@ from threading import Condition, Event, RLock, Thread
|
|
|
37
37
|
from typing import Any, Callable, Literal, Optional, TypeVar, Union, cast, overload
|
|
38
38
|
|
|
39
39
|
from toil.lib.conversions import opt_strtobool
|
|
40
|
+
from toil.lib.throttle import LocalThrottle
|
|
40
41
|
|
|
41
42
|
if sys.version_info < (3, 10):
|
|
42
43
|
from typing_extensions import ParamSpec
|
|
@@ -281,6 +282,10 @@ class KubernetesBatchSystem(BatchSystemCleanupSupport):
|
|
|
281
282
|
# in the queue or any resource becomes available.
|
|
282
283
|
self._work_available: Condition = Condition(lock=self._mutex)
|
|
283
284
|
|
|
285
|
+
# To make sure we don't spam the log when the metrics server is down,
|
|
286
|
+
# we use a throttle
|
|
287
|
+
self._metrics_throttle: LocalThrottle = LocalThrottle(600)
|
|
288
|
+
|
|
284
289
|
self.schedulingThread: Thread = Thread(target=self._scheduler, daemon=True)
|
|
285
290
|
self.schedulingThread.start()
|
|
286
291
|
|
|
@@ -1363,7 +1368,8 @@ class KubernetesBatchSystem(BatchSystemCleanupSupport):
|
|
|
1363
1368
|
# This is the sort of error we would expect from an overloaded
|
|
1364
1369
|
# Kubernetes or a dead metrics service.
|
|
1365
1370
|
# We can't tell that the pod is stuck, so say that it isn't.
|
|
1366
|
-
|
|
1371
|
+
if self._metrics_throttle.throttle(False):
|
|
1372
|
+
logger.warning("Kubernetes metrics service is not available: %s", e)
|
|
1367
1373
|
return False
|
|
1368
1374
|
else:
|
|
1369
1375
|
raise
|
|
@@ -1602,6 +1608,7 @@ class KubernetesBatchSystem(BatchSystemCleanupSupport):
|
|
|
1602
1608
|
exitStatus=exitCode,
|
|
1603
1609
|
wallTime=runtime,
|
|
1604
1610
|
exitReason=exitReason,
|
|
1611
|
+
backing_id=jobObject.metadata.name,
|
|
1605
1612
|
)
|
|
1606
1613
|
|
|
1607
1614
|
if (exitReason == BatchJobExitReason.FAILED) or (
|
|
@@ -1855,7 +1862,11 @@ class KubernetesBatchSystem(BatchSystemCleanupSupport):
|
|
|
1855
1862
|
|
|
1856
1863
|
# Return the one finished job we found
|
|
1857
1864
|
return UpdatedBatchJobInfo(
|
|
1858
|
-
jobID=jobID,
|
|
1865
|
+
jobID=jobID,
|
|
1866
|
+
exitStatus=exitCode,
|
|
1867
|
+
wallTime=runtime,
|
|
1868
|
+
exitReason=None,
|
|
1869
|
+
backing_id=jobObject.metadata.name,
|
|
1859
1870
|
)
|
|
1860
1871
|
|
|
1861
1872
|
def _waitForJobDeath(self, jobName: str) -> None:
|
|
@@ -103,6 +103,9 @@ class MesosBatchSystem(BatchSystemLocalSupport, AbstractScalableBatchSystem, Sch
|
|
|
103
103
|
if config.mesos_framework_id is not None:
|
|
104
104
|
self.mesos_framework_id = config.mesos_framework_id
|
|
105
105
|
|
|
106
|
+
# How long in seconds to wait to register before declaring Mesos unreachable.
|
|
107
|
+
self.mesos_timeout = 60
|
|
108
|
+
|
|
106
109
|
# Written to when Mesos kills tasks, as directed by Toil.
|
|
107
110
|
# Jobs must not enter this set until they are removed from runningJobMap.
|
|
108
111
|
self.killedJobIds = set()
|
|
@@ -345,17 +348,38 @@ class MesosBatchSystem(BatchSystemLocalSupport, AbstractScalableBatchSystem, Sch
|
|
|
345
348
|
framework.roles = config.mesos_role
|
|
346
349
|
framework.capabilities = [dict(type="MULTI_ROLE")]
|
|
347
350
|
|
|
351
|
+
endpoint = self._resolveAddress(self.mesos_endpoint)
|
|
352
|
+
log.info("Connecting to Mesos at %s...", self.mesos_endpoint)
|
|
353
|
+
|
|
348
354
|
# Make the driver which implements most of the scheduler logic and calls back to us for the user-defined parts.
|
|
349
355
|
# Make sure it will call us with nice namespace-y addicts
|
|
350
356
|
self.driver = MesosSchedulerDriver(
|
|
351
357
|
self,
|
|
352
358
|
framework,
|
|
353
|
-
|
|
359
|
+
endpoint,
|
|
354
360
|
use_addict=True,
|
|
355
361
|
implicit_acknowledgements=True,
|
|
356
362
|
)
|
|
357
363
|
self.driver.start()
|
|
358
364
|
|
|
365
|
+
wait_count = 0
|
|
366
|
+
while self.frameworkId is None:
|
|
367
|
+
# Wait to register with Mesos, and eventually fail if it just isn't
|
|
368
|
+
# responding.
|
|
369
|
+
|
|
370
|
+
# TODO: Use a condition instead of a spin wait.
|
|
371
|
+
|
|
372
|
+
if wait_count >= self.mesos_timeout:
|
|
373
|
+
error_message = f"Could not connect to Mesos endpoint at {self.mesos_endpoint}"
|
|
374
|
+
log.error(error_message)
|
|
375
|
+
self.shutdown()
|
|
376
|
+
raise RuntimeError(error_message)
|
|
377
|
+
elif wait_count > 1 and wait_count % 10 == 0:
|
|
378
|
+
log.warning("Waiting for Mesos registration (try %s/%s)", wait_count, self.mesos_timeout)
|
|
379
|
+
time.sleep(1)
|
|
380
|
+
wait_count += 1
|
|
381
|
+
|
|
382
|
+
|
|
359
383
|
@staticmethod
|
|
360
384
|
def _resolveAddress(address):
|
|
361
385
|
"""
|
|
@@ -394,10 +418,17 @@ class MesosBatchSystem(BatchSystemLocalSupport, AbstractScalableBatchSystem, Sch
|
|
|
394
418
|
"""
|
|
395
419
|
Invoked when the scheduler successfully registers with a Mesos master
|
|
396
420
|
"""
|
|
397
|
-
log.
|
|
421
|
+
log.info("Registered with Mesos as framework ID %s", frameworkId.value)
|
|
398
422
|
# Save the framework ID
|
|
399
423
|
self.frameworkId = frameworkId.value
|
|
400
424
|
|
|
425
|
+
def error(self, driver, message):
|
|
426
|
+
"""
|
|
427
|
+
Invoked when Mesos reports an unrecoverable error.
|
|
428
|
+
"""
|
|
429
|
+
log.error("Mesos error: %s", message)
|
|
430
|
+
super().error(driver, message)
|
|
431
|
+
|
|
401
432
|
def _declineAllOffers(self, driver, offers):
|
|
402
433
|
for offer in offers:
|
|
403
434
|
driver.declineOffer(offer.id)
|