hpc-beeflow 0.1.11.dev1__tar.gz → 0.1.11.dev3__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.
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/PKG-INFO +7 -5
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/README.rst +2 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/client/bee_client.py +25 -24
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/client/core.py +3 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/container_drivers.py +47 -41
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/cwl.py +24 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/workflow.py +11 -1
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/neo4j_manager.py +32 -14
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/graphml_key_updater.py +23 -8
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/neo4j_driver.py +16 -8
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/parser/parser.py +44 -12
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/wf_data.py +42 -20
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/wf_interface.py +3 -3
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/worker.py +16 -6
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/background.py +5 -3
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/clamr.cwl +1 -0
- hpc_beeflow-0.1.11.dev3/beeflow/tests/cwl_files/task-req.cwl +57 -0
- hpc_beeflow-0.1.11.dev3/beeflow/tests/cwl_files/task-req.yml +3 -0
- hpc_beeflow-0.1.11.dev3/beeflow/tests/test_bee_client.py +971 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_cwl.py +14 -1
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_cwl_workflow.py +46 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_parser.py +95 -11
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_wf_interface.py +2 -2
- hpc_beeflow-0.1.11.dev3/beeflow/tests/test_wf_utils.py +61 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/wf_utils.py +20 -21
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/pyproject.toml +3 -3
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/LICENSE +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/client/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/client/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/client/remote_client.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/cloud_launcher.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/api.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/build_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/utils.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build_interfaces.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cli.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cli_connection.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/chameleoncloud.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/cloud.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/constants.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/google.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/openstack.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cloud/provider.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/config_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/config_utils.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/config_validator.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/connection.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/container_path.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/charliecloud_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/crt_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt/singularity_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/crt_interface.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/Dockerfile.comd-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/README.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/cat_grep_tar.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/comd.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/comd_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/comd_pre.sh +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/cwl/examples/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/bdb.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/client_db.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/sched_db.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/tm_db.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/db/wfm_db.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/celery_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/container_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/deps/redis_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/expr.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/DESIGN.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/gdb_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/generate_graph.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/neo4j_cypher.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/integration/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/integration/generated_workflows.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/integration/utils.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/integration_test.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/log.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/parser/.gitignore +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/parser/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/parser/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/paths.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/states.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/tab_completion.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/validation.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/wf_profiler.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/flux_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/lsf_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/simple_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/slurm_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker/utils.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/worker_interface.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cloud_templates/dora.jinja +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cloud_templates/dora.yaml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_output.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_output_err.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_split.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_worker001.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/blast_worker002.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/blast/input/small.fasta +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/cat.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/grep0.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/grep1.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/input.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/tar.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cat-grep-fail/workflow.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/README.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/cat.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/cat2.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/grep0.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/grep1.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/grep2.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/grep3.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/input.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/tar.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/tar2.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/cgt-2branches/workflow.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ci/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/Dockerfile.clamr-ffmpeg +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/post_run.sh +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-build_script/pre_run.sh +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/Dockerfile.clamr-ffmpeg +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/post_run.sh +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-ffmpeg-validate_script/pre_run.sh +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-chicoma/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/lsf-charliecloud/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/lsf-charliecloud/cf-summit.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/Dockerfile.clamr-lanl-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/cf-darwin.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/cf-no-owrite.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/cf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/copyContainer_containerName.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/dockerFile_containerName.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-charliecloud/dockerPull.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-singularity/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-noyaml/slurm-singularity/cf-singularity.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-singularity/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-summit/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/clamr-wf-use-container/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi/lulesh.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi/lulesh.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi-multi-file/lulesh.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi-multi-file/lulesh_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/lulesh-mpi-multi-file/lulesh_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/nwchem-mpi/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/nwchem-mpi/nwchem.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/nwchem-mpi/nwchem.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/nwchem-mpi/nwchem_bin.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/graph.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant_1_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant_2_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant_4_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant/pennant_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/Dockerfile.pennant-flux-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/Dockerfile.pennant-graph-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/graph.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/graph_pennant.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/graph_pennant.sh +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_1_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_2_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_4_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_8_node.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pennant-build/pennant_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/pytest.ini +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/cancel.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/grep-wordcount/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/grep-wordcount/gc-nc.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/grep-wordcount/gc.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/bee_workflows/simple-workflows/grep-wordcount/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/builder/dockerFile.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/builder/dockerPull.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/grep-wordcount/gc.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/grep-wordcount/lorem.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/helloworld.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/helloworld_input.yaml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/DAG_example-1.png +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/add.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/add_multiply_example_workflow.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/add_step1.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/isolated test.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/job.yaml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/multiply.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/multiply_step2.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/example-1/workflow_generater_python.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/decision_tree.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/decision_tree_output.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/decision_tree_tool.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/expectedValue.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/hiring1.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/linear_regress_output.txt +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/linear_regression.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/machinelearning_pipeline.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/out.PNG +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/predict_code.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/predict_tool.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/read_dataset.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/read_dataset_tool.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/cwl/cwl_validation/ml-workflow/machine_learning/regress_tool.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.builder_demo +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.clamr-ffmpeg +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.clamr-lanl-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.clamr-ppc64le +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.comd-flux-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.deb9ompi-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.lulesh-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.neo4j +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.nwchem-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.pennant-flux-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/Dockerfile.vaspompi-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/Dockerfile.comd-x86_64-wpmix +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/Dockerfile.debian +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/Dockerfile.openmpi-3.1.5 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/comd-pmix-support/dont-init-ucx-on-intel-cray.patch +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/pennant-graph/Dockerfile.pennant-graph-x86_64 +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/pennant-graph/graph_pennant.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/data/dockerfiles/pennant-graph/graph_pennant.sh +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/remote/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/remote/remote.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/algorithms.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/resource_allocation.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/scheduler.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/scheduler.yaml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/serializable.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/scheduler/task.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/task_actions.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/task_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/task_submit.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/task_manager/utils.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/42.tgz +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/README.md +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/clamr.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/clamr_job.json +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/clamr_job.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/clamr_wf.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/ffmpeg.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/mv_script.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf/mv_script.sh +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/clamr-wf.tgz +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/cat-grep-tar.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/cat-grep-tar.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/clamr.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/comd.cwl +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/cwl_files/comd.yml +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/gdb.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/mocks.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_charliecloud_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_cloud.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_config_driver.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_config_utils.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_config_validator.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_container_path.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_db_client.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_db_sched.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_db_tm.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_neo4j_cypher.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_remote.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_remote_client.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_scheduler.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_scheduler_resource_allocation.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_scheduler_rest.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_slurm_worker.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_tm.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_wf_manager.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/tests/test_wf_update.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/__init__.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/wf_actions.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/wf_list.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/resources/wf_update.py +0 -0
- {hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/wf_manager/wf_manager.py +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: hpc-beeflow
|
|
3
|
-
Version: 0.1.11.
|
|
3
|
+
Version: 0.1.11.dev3
|
|
4
4
|
Summary: A software package for containerizing HPC applications and managing job workflows
|
|
5
|
-
Home-page: https://github.com/lanl/BEE
|
|
6
5
|
Keywords: bee,hpc,workflow,cluster,computing
|
|
7
6
|
Author: BEE-LANL Dev Team
|
|
8
7
|
Author-email: bee-dev@lanl.gov
|
|
@@ -19,7 +18,8 @@ Classifier: Programming Language :: Python :: 3
|
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.9
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
Classifier: Programming Language :: Python :: 3
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
23
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
24
24
|
Classifier: Topic :: Scientific/Engineering
|
|
25
25
|
Classifier: Topic :: System :: Clustering
|
|
@@ -43,7 +43,7 @@ Requires-Dist: jsonpickle (>=2.2.0,<3.0.0)
|
|
|
43
43
|
Requires-Dist: neo4j (>=5,<6)
|
|
44
44
|
Requires-Dist: networkx (==3.1)
|
|
45
45
|
Requires-Dist: pre-commit (==3.5.0)
|
|
46
|
-
Requires-Dist: pylint (
|
|
46
|
+
Requires-Dist: pylint (>=3.2.7,<4.0.0)
|
|
47
47
|
Requires-Dist: python-daemon (>=2.3.1,<3.0.0)
|
|
48
48
|
Requires-Dist: python-heatclient (>=3.1.0,<4.0.0) ; extra == "cloud-extras"
|
|
49
49
|
Requires-Dist: python-openstackclient (>=6.0.0,<7.0.0) ; extra == "cloud-extras"
|
|
@@ -119,10 +119,12 @@ Contributors:
|
|
|
119
119
|
* Tim Randles - `trandles-lanl <https://github.com/trandles-lanl>`_
|
|
120
120
|
* Jacob Tronge - `jtronge <https://github.com/jtronge>`_
|
|
121
121
|
* Kabir Vats - `kabir-vats <https://github.com/kabir-vats>`_
|
|
122
|
+
* Sare Beste Zeytun - `sbzeytun <https://github.com/sbzeytun>`_
|
|
122
123
|
|
|
123
124
|
Concept and Design Contributors
|
|
124
125
|
|
|
125
126
|
* James Ahrens
|
|
127
|
+
* Curt Canada
|
|
126
128
|
* Allen McPherson
|
|
127
129
|
* Li-Ta Lo
|
|
128
130
|
* Louis Vernon
|
|
@@ -63,10 +63,12 @@ Contributors:
|
|
|
63
63
|
* Tim Randles - `trandles-lanl <https://github.com/trandles-lanl>`_
|
|
64
64
|
* Jacob Tronge - `jtronge <https://github.com/jtronge>`_
|
|
65
65
|
* Kabir Vats - `kabir-vats <https://github.com/kabir-vats>`_
|
|
66
|
+
* Sare Beste Zeytun - `sbzeytun <https://github.com/sbzeytun>`_
|
|
66
67
|
|
|
67
68
|
Concept and Design Contributors
|
|
68
69
|
|
|
69
70
|
* James Ahrens
|
|
71
|
+
* Curt Canada
|
|
70
72
|
* Allen McPherson
|
|
71
73
|
* Li-Ta Lo
|
|
72
74
|
* Louis Vernon
|
|
@@ -231,7 +231,6 @@ def get_wf_list():
|
|
|
231
231
|
if resp.status_code != requests.codes.okay: # pylint: disable=no-member
|
|
232
232
|
error_exit('WF Manager did not return workflow list')
|
|
233
233
|
|
|
234
|
-
logging.info('List Jobs: {resp.text}')
|
|
235
234
|
return jsonpickle.decode(resp.json()['workflow_list'])
|
|
236
235
|
|
|
237
236
|
|
|
@@ -275,10 +274,7 @@ def match_short_id(wf_id):
|
|
|
275
274
|
"workflow ID {matched_ids[0]}")
|
|
276
275
|
long_wf_id = matched_ids[0]
|
|
277
276
|
return long_wf_id
|
|
278
|
-
|
|
279
|
-
sys.exit("There are currently no workflows.")
|
|
280
|
-
|
|
281
|
-
return None
|
|
277
|
+
sys.exit("There are currently no workflows.")
|
|
282
278
|
|
|
283
279
|
|
|
284
280
|
def get_wf_status(wf_id):
|
|
@@ -324,6 +320,18 @@ def submit(wf_name: str = typer.Argument(..., help='the workflow name'), # pyli
|
|
|
324
320
|
wf_path = wf_path.resolve()
|
|
325
321
|
workdir = workdir.resolve()
|
|
326
322
|
|
|
323
|
+
# Make sure the workdir is an absolute path and exists
|
|
324
|
+
workdir = os.path.expanduser(workdir)
|
|
325
|
+
workdir = os.path.abspath(workdir)
|
|
326
|
+
if not os.path.exists(workdir):
|
|
327
|
+
error_exit(f"Workflow working directory \"{workdir}\" doesn't exist")
|
|
328
|
+
|
|
329
|
+
# Make sure the workdir is not in /var or /var/tmp
|
|
330
|
+
if os.path.commonpath([os.path.realpath('/tmp'), workdir]) == os.path.realpath('/tmp'):
|
|
331
|
+
error_exit("Workflow working directory cannot be in \"/tmp\"")
|
|
332
|
+
if os.path.commonpath([os.path.realpath('/var/tmp'), workdir]) == os.path.realpath('/var/tmp'):
|
|
333
|
+
error_exit("Workflow working directory cannot be in \"/var/tmp\"")
|
|
334
|
+
|
|
327
335
|
tarball_path = ""
|
|
328
336
|
workflow = None
|
|
329
337
|
wf_tarball = None
|
|
@@ -363,7 +371,7 @@ def submit(wf_name: str = typer.Argument(..., help='the workflow name'), # pyli
|
|
|
363
371
|
parser = CwlParser()
|
|
364
372
|
workflow_id = generate_workflow_id()
|
|
365
373
|
workflow, tasks = parser.parse_workflow(workflow_id, str(main_cwl_path),
|
|
366
|
-
job=str(yaml_path))
|
|
374
|
+
job=str(yaml_path), workdir=workdir)
|
|
367
375
|
tasks = [jsonpickle.encode(task) for task in tasks]
|
|
368
376
|
|
|
369
377
|
wf_tarball = open(package_path, 'rb')
|
|
@@ -373,18 +381,6 @@ def submit(wf_name: str = typer.Argument(..., help='the workflow name'), # pyli
|
|
|
373
381
|
else:
|
|
374
382
|
error_exit(f'Workflow tarball {wf_path} cannot be found')
|
|
375
383
|
|
|
376
|
-
# Make sure the workdir is an absolute path and exists
|
|
377
|
-
workdir = os.path.expanduser(workdir)
|
|
378
|
-
workdir = os.path.abspath(workdir)
|
|
379
|
-
if not os.path.exists(workdir):
|
|
380
|
-
error_exit(f"Workflow working directory \"{workdir}\" doesn't exist")
|
|
381
|
-
|
|
382
|
-
# Make sure the workdir is not in /var or /var/tmp
|
|
383
|
-
if os.path.commonpath([os.path.realpath('/tmp'), workdir]) == os.path.realpath('/tmp'):
|
|
384
|
-
error_exit("Workflow working directory cannot be in \"/tmp\"")
|
|
385
|
-
if os.path.commonpath([os.path.realpath('/var/tmp'), workdir]) == os.path.realpath('/var/tmp'):
|
|
386
|
-
error_exit("Workflow working directory cannot be in \"/var/tmp\"")
|
|
387
|
-
|
|
388
384
|
# TODO: Can all of this information be sent as a file?
|
|
389
385
|
data = {
|
|
390
386
|
'wf_name': wf_name.encode(),
|
|
@@ -558,8 +554,6 @@ def list_workflows():
|
|
|
558
554
|
else:
|
|
559
555
|
typer.echo("There are currently no workflows.")
|
|
560
556
|
|
|
561
|
-
logging.info('List workflows: {resp.text}')
|
|
562
|
-
|
|
563
557
|
|
|
564
558
|
@app.command()
|
|
565
559
|
def query(wf_id: str = typer.Argument(..., callback=match_short_id)):
|
|
@@ -745,14 +739,21 @@ def dag(wf_id: str = typer.Argument(..., callback=match_short_id),
|
|
|
745
739
|
typer.secho("Workflow has been archived. All new DAGs will look the same as the one "
|
|
746
740
|
"in the archive directory.",
|
|
747
741
|
fg=typer.colors.MAGENTA)
|
|
748
|
-
wf_utils.export_dag(wf_id, output_dir, graphmls_dir, no_dag_dir)
|
|
742
|
+
dot_avail = wf_utils.export_dag(wf_id, output_dir, graphmls_dir, no_dag_dir)
|
|
749
743
|
else:
|
|
750
744
|
wf_dir = wf_utils.get_workflow_dir(wf_id)
|
|
751
745
|
graphmls_dir = wf_dir + '/graphmls'
|
|
752
746
|
os.makedirs(graphmls_dir, exist_ok=True)
|
|
753
|
-
wf_utils.export_dag(wf_id, output_dir, graphmls_dir, no_dag_dir, wf_dir)
|
|
754
|
-
|
|
755
|
-
|
|
747
|
+
dot_avail = wf_utils.export_dag(wf_id, output_dir, graphmls_dir, no_dag_dir, wf_dir)
|
|
748
|
+
if dot_avail:
|
|
749
|
+
typer.secho(f"DAG for workflow {_short_id(wf_id)} has been exported successfully.",
|
|
750
|
+
fg=typer.colors.GREEN)
|
|
751
|
+
else:
|
|
752
|
+
typer.secho(
|
|
753
|
+
f"GraphML for workflow {_short_id(wf_id)} has been exported successfully."
|
|
754
|
+
"(Graphviz not found, so no rendered DAG was produced.)",
|
|
755
|
+
fg=typer.colors.GREEN
|
|
756
|
+
)
|
|
756
757
|
|
|
757
758
|
|
|
758
759
|
@app.callback(invoke_without_command=True)
|
|
@@ -344,6 +344,9 @@ class Beeflow:
|
|
|
344
344
|
def loop(self):
|
|
345
345
|
"""Run the main loop."""
|
|
346
346
|
print(f'Running on {socket.gethostname()}')
|
|
347
|
+
# Check for Graphviz:
|
|
348
|
+
if not shutil.which("dot"):
|
|
349
|
+
print('Graphviz was not found on PATH.')
|
|
347
350
|
self.mgr.run(self.base_components)
|
|
348
351
|
with cli_connection.server(paths.beeflow_socket()) as server:
|
|
349
352
|
while not self.quit:
|
{hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/build/container_drivers.py
RENAMED
|
@@ -45,47 +45,53 @@ class CharliecloudBuildDriver(ContainerBuildDriver):
|
|
|
45
45
|
:param task: the task to build for
|
|
46
46
|
:type task: Task
|
|
47
47
|
"""
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
docker_requirements =
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
48
|
+
has_container = task.get_full_requirement('DockerRequirement')
|
|
49
|
+
if has_container: # only try to build if task has a container
|
|
50
|
+
# Store build container archive pased on config file or relative to bee_workdir
|
|
51
|
+
# if not set.
|
|
52
|
+
container_archive = bc.get('builder', 'container_archive')
|
|
53
|
+
self.container_archive = bc.resolve_path(container_archive)
|
|
54
|
+
os.makedirs(self.container_archive, exist_ok=True)
|
|
55
|
+
# Deploy build tarballs relative to /var/tmp/username/beeflow by default
|
|
56
|
+
deployed_image_root = bc.get('builder', 'deployed_image_root')
|
|
57
|
+
# Make sure conf_file path exists
|
|
58
|
+
os.makedirs(deployed_image_root, exist_ok=True)
|
|
59
|
+
# Make sure path is absolute
|
|
60
|
+
deployed_image_root = bc.resolve_path(deployed_image_root)
|
|
61
|
+
self.deployed_image_root = deployed_image_root
|
|
62
|
+
os.makedirs(self.deployed_image_root, exist_ok=True)
|
|
63
|
+
# Set container-relative output directory based on BeeConfig, or use '/'
|
|
64
|
+
container_output_path = bc.get('builder', 'container_output_path')
|
|
65
|
+
self.container_output_path = container_output_path
|
|
66
|
+
# record that a Charliecloud builder was used
|
|
67
|
+
# bc.modify_section('user', 'builder', {'container_type': 'charliecloud'})
|
|
68
|
+
self.task = task
|
|
69
|
+
self.docker_image_id = None
|
|
70
|
+
self.container_name = None
|
|
71
|
+
docker_requirements = set()
|
|
72
|
+
try:
|
|
73
|
+
req_docker_requirements = self.task.requirements['DockerRequirement'].keys()
|
|
74
|
+
docker_requirements = docker_requirements.union(req_docker_requirements)
|
|
75
|
+
req_string = f'{set(req_docker_requirements)}'
|
|
76
|
+
log.info(f'task {self.task.id} requirement DockerRequirements: {req_string}')
|
|
77
|
+
except (TypeError, KeyError):
|
|
78
|
+
log.info(f'task {self.task.name} {self.task.id} '
|
|
79
|
+
'no DockerRequirements in requirement')
|
|
80
|
+
try:
|
|
81
|
+
hint_docker_requirements = self.task.hints['DockerRequirement'].keys()
|
|
82
|
+
docker_requirements = docker_requirements.union(hint_docker_requirements)
|
|
83
|
+
hint_str = f'{set(hint_docker_requirements)}'
|
|
84
|
+
log.info(f'task {self.task.name} {self.task.id} hint '
|
|
85
|
+
f'DockerRequirements: {hint_str}')
|
|
86
|
+
except (TypeError, KeyError):
|
|
87
|
+
log.info(f'task {self.task.name} {self.task.id} hints has no DockerRequirements')
|
|
88
|
+
log.info(f'task {self.task.id} union DockerRequirements : {docker_requirements}')
|
|
89
|
+
exec_superset = self.resolve_priority()
|
|
90
|
+
self.exec_list = [i for i in exec_superset if i[1] in docker_requirements]
|
|
91
|
+
log_exec_list = [i[1] for i in self.exec_list]
|
|
92
|
+
log.info(f'task {self.task.id} DockerRequirement execution order '
|
|
93
|
+
f'will be: {log_exec_list}')
|
|
94
|
+
log.info('Execution order pre-empts hint/requirement status.')
|
|
89
95
|
|
|
90
96
|
def get_docker_req(self, docker_req_param):
|
|
91
97
|
"""Get dockerRequirement, prioritizing requirements over hints.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Create and manage CWL files."""
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
from io import StringIO
|
|
4
|
+
from typing import Optional
|
|
4
5
|
import ruamel.yaml
|
|
5
6
|
|
|
6
7
|
# Create the global object for ruamel.ymal
|
|
@@ -399,6 +400,7 @@ class CheckpointRequirement:
|
|
|
399
400
|
restart_parameters: str
|
|
400
401
|
num_tries: int
|
|
401
402
|
enabled: bool = True
|
|
403
|
+
add_parameters: Optional[str] = None
|
|
402
404
|
|
|
403
405
|
def dump(self):
|
|
404
406
|
"""Dump beeflow requirement to a dictionary."""
|
|
@@ -409,6 +411,7 @@ class CheckpointRequirement:
|
|
|
409
411
|
checkpoint_dump[req_name]['container_path'] = self.container_path
|
|
410
412
|
checkpoint_dump[req_name]['file_regex'] = self.file_regex
|
|
411
413
|
checkpoint_dump[req_name]['restart_parameters'] = self.restart_parameters
|
|
414
|
+
checkpoint_dump[req_name]['add_parameters'] = self.add_parameters
|
|
412
415
|
checkpoint_dump[req_name]['num_tries'] = self.num_tries
|
|
413
416
|
return checkpoint_dump
|
|
414
417
|
|
|
@@ -450,6 +453,27 @@ class ScriptRequirement:
|
|
|
450
453
|
return stream.getvalue()
|
|
451
454
|
|
|
452
455
|
|
|
456
|
+
@dataclass
|
|
457
|
+
class TaskRequirement:
|
|
458
|
+
"""Defines task requirement."""
|
|
459
|
+
|
|
460
|
+
workdir: str
|
|
461
|
+
|
|
462
|
+
def dump(self):
|
|
463
|
+
"""Dump task requirement to a dictionary."""
|
|
464
|
+
key = 'beeflow:TaskRequirement'
|
|
465
|
+
this_dump = {key: {}}
|
|
466
|
+
if self.workdir:
|
|
467
|
+
this_dump[key]['workdir'] = self.workdir
|
|
468
|
+
return this_dump
|
|
469
|
+
|
|
470
|
+
def __repr__(self):
|
|
471
|
+
"""Return TaskRequirement as a yaml string."""
|
|
472
|
+
stream = StringIO()
|
|
473
|
+
yaml.dump(self.dump(), stream)
|
|
474
|
+
return stream.getvalue()
|
|
475
|
+
|
|
476
|
+
|
|
453
477
|
@dataclass
|
|
454
478
|
class Hints:
|
|
455
479
|
"""Holds all the hints for a CWL workflow."""
|
|
@@ -6,7 +6,7 @@ from beeflow.common.cwl.cwl import (CWL, CWLInput, CWLInputs, RunInput, Inputs,
|
|
|
6
6
|
Outputs, Run, RunOutput, Step, Steps, Hints,
|
|
7
7
|
InputBinding, MPIRequirement, DockerRequirement,
|
|
8
8
|
ScriptRequirement, SlurmRequirement,
|
|
9
|
-
CheckpointRequirement)
|
|
9
|
+
CheckpointRequirement, TaskRequirement)
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
@dataclass
|
|
@@ -133,10 +133,20 @@ class Checkpoint(CheckpointRequirement):
|
|
|
133
133
|
container_path=self.container_path,
|
|
134
134
|
file_regex=self.file_regex,
|
|
135
135
|
restart_parameters=self.restart_parameters,
|
|
136
|
+
add_parameters=self.add_parameters,
|
|
136
137
|
num_tries=self.num_tries,
|
|
137
138
|
enabled=self.enabled)
|
|
138
139
|
|
|
139
140
|
|
|
141
|
+
@dataclass
|
|
142
|
+
class TaskReq(TaskRequirement):
|
|
143
|
+
"""Get Task Requirements."""
|
|
144
|
+
|
|
145
|
+
def requirement(self):
|
|
146
|
+
"""Return a task requirement object."""
|
|
147
|
+
return TaskRequirement(workdir=self.workdir)
|
|
148
|
+
|
|
149
|
+
|
|
140
150
|
@dataclass
|
|
141
151
|
class Task:
|
|
142
152
|
"""Represents a task."""
|
|
@@ -5,8 +5,13 @@ import shutil
|
|
|
5
5
|
import re
|
|
6
6
|
import subprocess
|
|
7
7
|
import time
|
|
8
|
+
import logging
|
|
9
|
+
|
|
10
|
+
from beeflow.common.gdb import neo4j_driver
|
|
11
|
+
from beeflow.common.gdb.neo4j_driver import (DEFAULT_BOLT_PORT)
|
|
12
|
+
|
|
13
|
+
from beeflow.common.db.bdb import connect_db
|
|
8
14
|
|
|
9
|
-
from beeflow.wf_manager.resources import wf_utils
|
|
10
15
|
from beeflow.common.db import wfm_db
|
|
11
16
|
|
|
12
17
|
from beeflow.common import paths
|
|
@@ -15,6 +20,7 @@ from beeflow.common.deps import container_manager
|
|
|
15
20
|
from beeflow.common.config_driver import BeeConfig as bc
|
|
16
21
|
from beeflow.common import log as bee_logging
|
|
17
22
|
|
|
23
|
+
|
|
18
24
|
BEE_WORKDIR = None
|
|
19
25
|
MOUNT_DIR = None
|
|
20
26
|
DATA_DIR = None
|
|
@@ -23,9 +29,9 @@ RUN_DIR = None
|
|
|
23
29
|
CERTS_DIR = None
|
|
24
30
|
CONFS_DIR = None
|
|
25
31
|
GRAPHMLS_DIR = None
|
|
26
|
-
CONTAINER_PATH =
|
|
27
|
-
log = bee_logging.setup('neo4j')
|
|
32
|
+
CONTAINER_PATH = None
|
|
28
33
|
|
|
34
|
+
log = None # pylint: disable=C0103
|
|
29
35
|
|
|
30
36
|
def get_open_port():
|
|
31
37
|
"""Return an open ephemeral port."""
|
|
@@ -44,7 +50,7 @@ def setup_ports():
|
|
|
44
50
|
http_port = get_open_port()
|
|
45
51
|
https_port = get_open_port()
|
|
46
52
|
|
|
47
|
-
db =
|
|
53
|
+
db = connect_db(wfm_db, bc.get('DEFAULT', 'bee_workdir') + "/wfm.db")
|
|
48
54
|
|
|
49
55
|
db.info.set_port('bolt', bolt_port)
|
|
50
56
|
db.info.set_port('http', http_port)
|
|
@@ -141,7 +147,7 @@ def create_credentials():
|
|
|
141
147
|
log.error("neo4j-admin set-initial-password failed")
|
|
142
148
|
|
|
143
149
|
|
|
144
|
-
def create_database():
|
|
150
|
+
def create_database(bolt_port):
|
|
145
151
|
"""Create the neo4j database and return the process."""
|
|
146
152
|
try:
|
|
147
153
|
command = ['neo4j', 'console']
|
|
@@ -157,7 +163,7 @@ def create_database():
|
|
|
157
163
|
"-W", "-b", GRAPHMLS_DIR + ":/var/lib/neo4j/import",
|
|
158
164
|
CONTAINER_PATH, "--", *command
|
|
159
165
|
], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
160
|
-
wait_gdb()
|
|
166
|
+
wait_gdb(bolt_port=bolt_port)
|
|
161
167
|
return proc
|
|
162
168
|
|
|
163
169
|
except FileNotFoundError:
|
|
@@ -167,6 +173,12 @@ def create_database():
|
|
|
167
173
|
|
|
168
174
|
def start():
|
|
169
175
|
"""Start the graph database."""
|
|
176
|
+
|
|
177
|
+
global log
|
|
178
|
+
log = bee_logging.setup("neo4j")
|
|
179
|
+
log.setLevel(logging.INFO)
|
|
180
|
+
log.propagate = False
|
|
181
|
+
|
|
170
182
|
log.info('Starting Neo4j Database')
|
|
171
183
|
|
|
172
184
|
bolt_port, http_port, https_port = setup_ports()
|
|
@@ -179,17 +191,23 @@ def start():
|
|
|
179
191
|
|
|
180
192
|
create_credentials()
|
|
181
193
|
|
|
182
|
-
return create_database()
|
|
194
|
+
return create_database(bolt_port=bolt_port)
|
|
183
195
|
|
|
184
196
|
|
|
185
|
-
def wait_gdb():
|
|
186
|
-
"""
|
|
187
|
-
|
|
188
|
-
We'd like to remove that in the future.
|
|
197
|
+
def wait_gdb(bolt_port=DEFAULT_BOLT_PORT):
|
|
198
|
+
"""
|
|
199
|
+
Block until the Neo4j instance answers a Bolt handshake.
|
|
189
200
|
"""
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
201
|
+
connect_neo4j_driver(bolt_port)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def connect_neo4j_driver(bolt_port):
|
|
205
|
+
"""Create a neo4j driver to a gdb through bolt port."""
|
|
206
|
+
driver = neo4j_driver.Neo4jDriver()
|
|
207
|
+
driver.connect(user="neo4j", bolt_port=bolt_port,
|
|
208
|
+
db_hostname=bc.get("graphdb", "hostname"),
|
|
209
|
+
password=bc.get("graphdb", "dbpass"))
|
|
210
|
+
driver.create_bee_node()
|
|
193
211
|
|
|
194
212
|
|
|
195
213
|
def remove_gdb():
|
{hpc_beeflow-0.1.11.dev1 → hpc_beeflow-0.1.11.dev3}/beeflow/common/gdb/graphml_key_updater.py
RENAMED
|
@@ -31,7 +31,18 @@ default_key_definitions = {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
def
|
|
34
|
+
def backup_graphml(path, graphmls_dir, short_id):
|
|
35
|
+
"""Backup graphmls."""
|
|
36
|
+
if os.path.exists(path):
|
|
37
|
+
i = 1
|
|
38
|
+
backup_path = f'{graphmls_dir}/{short_id}_v{i}.graphml'
|
|
39
|
+
while os.path.exists(backup_path):
|
|
40
|
+
i += 1
|
|
41
|
+
backup_path = f'{graphmls_dir}/{short_id}_v{i}.graphml'
|
|
42
|
+
shutil.copy(path, backup_path)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def update_graphml(wf_id, graphmls_dir, extra_output_dir=None, no_dag_dir=False):
|
|
35
46
|
"""Update GraphML file by ensuring required keys are present and updating its structure."""
|
|
36
47
|
short_id = wf_id[:6]
|
|
37
48
|
# Define paths
|
|
@@ -41,13 +52,7 @@ def update_graphml(wf_id, graphmls_dir):
|
|
|
41
52
|
gdb_graphml_path = gdb_graphmls_dir + "/" + short_id + ".graphml"
|
|
42
53
|
output_graphml_path = graphmls_dir + "/" + short_id + ".graphml"
|
|
43
54
|
# Handle making multiple versions of the graphmls without overriding old ones
|
|
44
|
-
|
|
45
|
-
i = 1
|
|
46
|
-
backup_path = f'{graphmls_dir}/{short_id}_v{i}.graphml'
|
|
47
|
-
while os.path.exists(backup_path):
|
|
48
|
-
i += 1
|
|
49
|
-
backup_path = f'{graphmls_dir}/{short_id}_v{i}.graphml'
|
|
50
|
-
shutil.copy(output_graphml_path, backup_path)
|
|
55
|
+
backup_graphml(output_graphml_path, graphmls_dir, short_id)
|
|
51
56
|
# Parse the GraphML file and preserve namespaces
|
|
52
57
|
tree = ET.parse(gdb_graphml_path)
|
|
53
58
|
root = tree.getroot()
|
|
@@ -69,3 +74,13 @@ def update_graphml(wf_id, graphmls_dir):
|
|
|
69
74
|
|
|
70
75
|
# Save the updated GraphML file
|
|
71
76
|
tree.write(output_graphml_path, encoding='UTF-8', xml_declaration=True)
|
|
77
|
+
|
|
78
|
+
# Saving the GraphML file to an extra user specified location
|
|
79
|
+
if extra_output_dir:
|
|
80
|
+
if not no_dag_dir:
|
|
81
|
+
extra_output_dir += "/" + short_id + "-graphmls"
|
|
82
|
+
extra_graphml_path = extra_output_dir + "/" + short_id + ".graphml"
|
|
83
|
+
os.makedirs(extra_output_dir, exist_ok=True)
|
|
84
|
+
if extra_graphml_path != output_graphml_path:
|
|
85
|
+
backup_graphml(extra_graphml_path, extra_output_dir, short_id)
|
|
86
|
+
tree.write(extra_graphml_path, encoding='UTF-8', xml_declaration=True)
|
|
@@ -10,6 +10,7 @@ either standardized or read from a config file.
|
|
|
10
10
|
# Disable E1129: External module is missing proper resource context manager methods.
|
|
11
11
|
# pylint:disable=E1129
|
|
12
12
|
|
|
13
|
+
import time
|
|
13
14
|
from neo4j import GraphDatabase as Neo4jDatabase
|
|
14
15
|
from neo4j.exceptions import ServiceUnavailable
|
|
15
16
|
|
|
@@ -27,6 +28,8 @@ DEFAULT_HOSTNAME = "localhost"
|
|
|
27
28
|
DEFAULT_BOLT_PORT = "7687"
|
|
28
29
|
DEFAULT_USER = "neo4j"
|
|
29
30
|
DEFAULT_PASSWORD = "password"
|
|
31
|
+
MAX_WAIT_SECS = 60
|
|
32
|
+
RETRY_DELAY_SECS = 5
|
|
30
33
|
|
|
31
34
|
|
|
32
35
|
class Neo4jNotRunning(Exception):
|
|
@@ -61,14 +64,19 @@ class Neo4jDriver(GraphDatabaseDriver):
|
|
|
61
64
|
bolt_port = kwargs.get("bolt_port", DEFAULT_BOLT_PORT)
|
|
62
65
|
password = kwargs.get("db_pass", DEFAULT_PASSWORD)
|
|
63
66
|
uri = f"bolt://{db_hostname}:{bolt_port}"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
start_time = time.monotonic()
|
|
68
|
+
self._driver = Neo4jDatabase.driver(uri, auth=(user, password)) # pylint: disable=W0201
|
|
69
|
+
while True:
|
|
70
|
+
try:
|
|
71
|
+
self._driver.verify_connectivity()
|
|
72
|
+
return
|
|
73
|
+
except ServiceUnavailable as sue:
|
|
74
|
+
elapsed = time.monotonic() - start_time
|
|
75
|
+
if elapsed >= MAX_WAIT_SECS:
|
|
76
|
+
log.error("Neo4j database is unavailable")
|
|
77
|
+
raise Neo4jNotRunning("Neo4j database is unavailable") from sue
|
|
78
|
+
log.info(f"Waiting {RETRY_DELAY_SECS} seconds for Neo4j to become ready...")
|
|
79
|
+
time.sleep(RETRY_DELAY_SECS)
|
|
72
80
|
|
|
73
81
|
def create_bee_node(self):
|
|
74
82
|
"""Create the "BEE" node for all workflows to connect to."""
|