parsl 2023.10.23__tar.gz → 2023.11.13__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.
- {parsl-2023.10.23/parsl.egg-info → parsl-2023.11.13}/PKG-INFO +2 -2
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/app/app.py +29 -21
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/base.py +12 -24
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/config.py +19 -12
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/ad_hoc.py +2 -2
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/dataflow/dflow.py +10 -4
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/base.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/high_throughput/executor.py +2 -2
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/high_throughput/interchange.py +59 -53
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/high_throughput/process_worker_pool.py +2 -2
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/high_throughput/zmq_pipes.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/status_handling.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/taskvine/exec_parsl_function.py +3 -4
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/taskvine/executor.py +18 -4
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/taskvine/factory.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/taskvine/manager.py +12 -16
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/taskvine/utils.py +5 -5
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/threads.py +1 -2
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/workqueue/exec_parsl_function.py +2 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/workqueue/executor.py +34 -24
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/monitoring.py +6 -6
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/remote.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/plots/default/workflow_plots.py +4 -4
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/plots/default/workflow_resource_plots.py +2 -2
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/slurm/slurm.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/ad_hoc_cluster_htex.py +3 -3
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/htex_ad_hoc_cluster.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads_monitoring.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/conftest.py +6 -2
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/scaling_tests/vineex_condor.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/scaling_tests/vineex_local.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/scaling_tests/wqex_condor.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/scaling_tests/wqex_local.py +1 -1
- parsl-2023.11.13/parsl/tests/test_docs/test_kwargs.py +37 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_lifted.py +3 -2
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/utils.py +4 -4
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/version.py +1 -1
- {parsl-2023.10.23 → parsl-2023.11.13/parsl.egg-info}/PKG-INFO +2 -2
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl.egg-info/SOURCES.txt +1 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/LICENSE +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/MANIFEST.in +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/README.rst +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/addresses.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/app/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/app/bash.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/app/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/app/futures.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/app/python.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/benchmark/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/benchmark/perf.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/local/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/local/local.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/oauth_ssh/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/oauth_ssh/oauth_ssh.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/ssh/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/ssh/ssh.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/ssh_il/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/channels/ssh_il/ssh_il.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/concurrent/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/ASPIRE1.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/Azure.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/bluewaters.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/bridges.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/cc_in2p3.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/comet.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/cooley.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/ec2.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/frontera.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/htex_local.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/illinoiscluster.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/kubernetes.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/local_threads.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/midway.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/osg.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/polaris.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/stampede2.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/summit.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/theta.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/toss3_llnl.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/vineex_local.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/configs/wqex_local.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/data_provider/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/data_provider/data_manager.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/data_provider/file_noop.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/data_provider/files.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/data_provider/ftp.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/data_provider/globus.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/data_provider/http.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/data_provider/rsync.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/data_provider/staging.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/dataflow/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/dataflow/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/dataflow/futures.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/dataflow/memoization.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/dataflow/rundirs.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/dataflow/states.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/dataflow/taskrecord.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/flux/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/flux/execute_parsl_task.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/flux/executor.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/flux/flux_instance_manager.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/high_throughput/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/high_throughput/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/high_throughput/manager_record.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/high_throughput/monitoring_info.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/high_throughput/probe.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/taskvine/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/taskvine/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/taskvine/factory_config.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/taskvine/manager_config.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/workqueue/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/workqueue/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/workqueue/parsl_coprocess.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/executors/workqueue/parsl_coprocess_stub.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/jobs/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/jobs/error_handlers.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/jobs/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/jobs/job_status_poller.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/jobs/states.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/jobs/strategy.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/launchers/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/launchers/base.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/launchers/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/launchers/launchers.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/log_utils.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/db_manager.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/message_type.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/queries/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/queries/pandas.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/radios.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/types.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/app.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/models.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/plots/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/plots/default/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/plots/default/task_plots.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/static/parsl-logo-white.png +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/static/parsl-monitor.css +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/templates/app.html +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/templates/dag.html +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/templates/error.html +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/templates/layout.html +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/templates/resource_usage.html +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/templates/task.html +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/templates/workflow.html +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/templates/workflows_summary.html +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/utils.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/version.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/monitoring/visualization/views.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/multiprocessing.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/process_loggers.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/ad_hoc/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/ad_hoc/ad_hoc.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/aws/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/aws/aws.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/aws/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/azure/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/azure/azure.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/azure/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/base.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/cluster_provider.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/cobalt/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/cobalt/cobalt.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/cobalt/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/condor/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/condor/condor.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/condor/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/googlecloud/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/googlecloud/googlecloud.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/grid_engine/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/grid_engine/grid_engine.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/grid_engine/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/kubernetes/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/kubernetes/kube.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/kubernetes/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/local/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/local/local.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/lsf/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/lsf/lsf.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/lsf/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/pbspro/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/pbspro/pbspro.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/pbspro/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/slurm/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/slurm/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/torque/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/torque/template.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/providers/torque/torque.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/py.typed +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/serialize/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/serialize/base.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/serialize/concretes.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/serialize/errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/serialize/facade.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/serialize/proxystore.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/callables_helper.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/azure_single_node.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/bluewaters.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/bridges.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/cc_in2p3.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/comet.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/cooley_htex.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/ec2_single_node.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/ec2_spot.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/frontera.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/htex_local.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/htex_local_alternate.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/htex_local_intask_staging.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/htex_local_rsync_staging.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_adhoc.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads_checkpoint.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads_checkpoint_dfk_exit.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads_checkpoint_periodic.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads_checkpoint_task_exit.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads_ftp_in_task.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads_globus.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads_http_in_task.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/local_threads_no_cache.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/midway.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/nscc_singapore.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/osg_htex.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/petrelkube.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/summit.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/swan_htex.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/taskvine_ex.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/theta.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/user_opts.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/configs/workqueue_ex.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/latency.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_apps/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_channels/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_channels/test_channels.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_channels/test_local_channel.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_channels/test_scp_1.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_channels/test_ssh_1.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_channels/test_ssh_errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_channels/test_ssh_file_transport.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_channels/test_ssh_interactive.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_parsl_load_default_config.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_stress/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_stress/test_python_simple.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/integration/test_stress/test_python_threads.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/htex_local.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/test_ad_hoc_htex.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/test_basic.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/test_fan_in_out_htex_remote.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/test_log_filter.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/test_memory_limits.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/test_oauth_ssh.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/test_regression_220.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/test_udp_simple.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/manual_tests/test_worker_count.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/scaling_tests/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/scaling_tests/htex_local.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/scaling_tests/local_threads.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/scaling_tests/test_scale.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/site_tests/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/site_tests/site_config_selector.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/site_tests/test_provider.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/site_tests/test_site.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/test_affinity.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/test_concurrent.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/test_dynamic_executor.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/test_ec2.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/test_launchers.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/test_local_adhoc.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/test_mpi/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/test_start_method.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/sites/test_worker_info.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_aalst_patterns.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_apptimeout.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_basic.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_error_codes.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_keyword_overlaps.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_kwarg_storage.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_memoize.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_memoize_ignore_args.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_multiline.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_pipeline.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_bash_apps/test_stdout.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_callables.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_channels/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_channels/test_large_output.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_checkpointing/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_checkpointing/test_periodic.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_checkpointing/test_python_checkpoint_1.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_checkpointing/test_python_checkpoint_2.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_checkpointing/test_python_checkpoint_3.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_checkpointing/test_regression_232.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_checkpointing/test_regression_233.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_checkpointing/test_regression_239.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_checkpointing/test_task_exit.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_data/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_data/test_file.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_data/test_file_apps.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_data/test_file_staging.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_data/test_output_chain_filenames.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_docs/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_docs/test_from_slides.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_docs/test_tutorial_1.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_docs/test_workflow1.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_docs/test_workflow2.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_docs/test_workflow4.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_fail.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_htex_basic.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_htex_missing_worker.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_htex_worker_failure.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_python_walltime.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_rand_fail.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_resource_spec.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_retries.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_retry_handler.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_retry_handler_failure.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_serialization_fail.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_error_handling/test_wrap_with_logs.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_flowcontrol/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_flux.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_htex/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_htex/test_htex_zmq_binding.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_monitoring/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_monitoring/test_basic.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_monitoring/test_db_locks.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_monitoring/test_fuzz_zmq.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_monitoring/test_memoization_representation.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_monitoring/test_viz_colouring.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_providers/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_providers/test_local_provider.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_arg_input_types.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_basic.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_dep_standard_futures.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_dependencies.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_depfail_propagation.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_fail.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_fibonacci_iterative.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_fibonacci_recursive.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_futures.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_garbage_collect.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_import_fail.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_join.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_mapred.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_memoize_1.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_memoize_2.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_memoize_4.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_memoize_bad_id_for_memo.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_memoize_ignore_args.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_memoize_joinapp.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_outputs.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_overview.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_pipeline.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_simple.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_timeout.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_python_apps/test_type5.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_1480.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_1606_wait_for_current_tasks.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_1653.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_221.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_226.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_2652.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_69a.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_854.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_97_parallelism_0.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_regression/test_98.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_scaling/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_scaling/test_block_error_handler.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_scaling/test_regression_1621.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_scaling/test_scale_down.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_serialization/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_serialization/test_2555_caching_deserializer.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_serialization/test_basic.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_serialization/test_proxystore_configured.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_serialization/test_proxystore_impl.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/staging_provider.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/test_1316.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/test_docs_1.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/test_docs_2.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/test_elaborate_noop_file.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/test_staging_ftp.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/test_staging_ftp_in_task.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/test_staging_globus.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/test_staging_https.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_staging/test_staging_https_in_task.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_summary.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_thread_parallelism.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_threads/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_threads/test_configs.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/test_threads/test_lazy_errors.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/tests/utils.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/usage_tracking/__init__.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl/usage_tracking/usage.py +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl.egg-info/dependency_links.txt +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl.egg-info/entry_points.txt +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl.egg-info/requires.txt +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/parsl.egg-info/top_level.txt +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/requirements.txt +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/setup.cfg +0 -0
- {parsl-2023.10.23 → parsl-2023.11.13}/setup.py +0 -0
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: parsl
|
3
|
-
Version: 2023.
|
3
|
+
Version: 2023.11.13
|
4
4
|
Summary: Simple data dependent workflows in Python
|
5
5
|
Home-page: https://github.com/Parsl/parsl
|
6
|
-
Download-URL: https://github.com/Parsl/parsl/archive/2023.
|
6
|
+
Download-URL: https://github.com/Parsl/parsl/archive/2023.11.13.tar.gz
|
7
7
|
Author: The Parsl Team
|
8
8
|
Author-email: parsl@googlegroups.com
|
9
9
|
License: Apache 2.0
|
@@ -6,11 +6,16 @@ import logging
|
|
6
6
|
import typeguard
|
7
7
|
from abc import ABCMeta, abstractmethod
|
8
8
|
from inspect import signature
|
9
|
-
from typing import List, Optional, Union
|
9
|
+
from typing import List, Optional, Sequence, Union
|
10
10
|
from typing_extensions import Literal
|
11
11
|
|
12
12
|
from parsl.dataflow.dflow import DataFlowKernel
|
13
13
|
|
14
|
+
from typing import Any, Callable, Dict
|
15
|
+
|
16
|
+
from parsl.dataflow.futures import AppFuture
|
17
|
+
|
18
|
+
|
14
19
|
logger = logging.getLogger(__name__)
|
15
20
|
|
16
21
|
|
@@ -22,7 +27,12 @@ class AppBase(metaclass=ABCMeta):
|
|
22
27
|
|
23
28
|
"""
|
24
29
|
|
25
|
-
|
30
|
+
@typeguard.typechecked
|
31
|
+
def __init__(self, func: Callable,
|
32
|
+
data_flow_kernel: Optional[DataFlowKernel] = None,
|
33
|
+
executors: Union[List[str], Literal['all']] = 'all',
|
34
|
+
cache: bool = False,
|
35
|
+
ignore_for_cache: Optional[Sequence[str]] = None) -> None:
|
26
36
|
"""Construct the App object.
|
27
37
|
|
28
38
|
Args:
|
@@ -34,7 +44,7 @@ class AppBase(metaclass=ABCMeta):
|
|
34
44
|
after calling :meth:`parsl.dataflow.dflow.DataFlowKernelLoader.load`.
|
35
45
|
- executors (str|list) : Labels of the executors that this app can execute over. Default is 'all'.
|
36
46
|
- cache (Bool) : Enable caching of this app ?
|
37
|
-
- ignore_for_cache (
|
47
|
+
- ignore_for_cache (sequence|None): Names of arguments which will be ignored by the caching mechanism.
|
38
48
|
|
39
49
|
Returns:
|
40
50
|
- App object.
|
@@ -46,12 +56,10 @@ class AppBase(metaclass=ABCMeta):
|
|
46
56
|
self.executors = executors
|
47
57
|
self.cache = cache
|
48
58
|
self.ignore_for_cache = ignore_for_cache
|
49
|
-
if not (isinstance(executors, list) or isinstance(executors, str)):
|
50
|
-
logger.error("App {} specifies invalid executor option, expects string or list".format(
|
51
|
-
func.__name__))
|
52
59
|
|
53
60
|
params = signature(func).parameters
|
54
61
|
|
62
|
+
self.kwargs: Dict[str, Any]
|
55
63
|
self.kwargs = {}
|
56
64
|
if 'stdout' in params:
|
57
65
|
self.kwargs['stdout'] = params['stdout'].default
|
@@ -65,16 +73,16 @@ class AppBase(metaclass=ABCMeta):
|
|
65
73
|
self.inputs = params['inputs'].default if 'inputs' in params else []
|
66
74
|
|
67
75
|
@abstractmethod
|
68
|
-
def __call__(self, *args, **kwargs):
|
76
|
+
def __call__(self, *args: Any, **kwargs: Any) -> AppFuture:
|
69
77
|
pass
|
70
78
|
|
71
79
|
|
72
80
|
@typeguard.typechecked
|
73
|
-
def python_app(function=None,
|
81
|
+
def python_app(function: Optional[Callable] = None,
|
74
82
|
data_flow_kernel: Optional[DataFlowKernel] = None,
|
75
83
|
cache: bool = False,
|
76
84
|
executors: Union[List[str], Literal['all']] = 'all',
|
77
|
-
ignore_for_cache: Optional[
|
85
|
+
ignore_for_cache: Optional[Sequence[str]] = None) -> Callable:
|
78
86
|
"""Decorator function for making python apps.
|
79
87
|
|
80
88
|
Parameters
|
@@ -91,13 +99,13 @@ def python_app(function=None,
|
|
91
99
|
Labels of the executors that this app can execute over. Default is 'all'.
|
92
100
|
cache : bool
|
93
101
|
Enable caching of the app call. Default is False.
|
94
|
-
ignore_for_cache : (
|
102
|
+
ignore_for_cache : (sequence|None)
|
95
103
|
Names of arguments which will be ignored by the caching mechanism.
|
96
104
|
"""
|
97
105
|
from parsl.app.python import PythonApp
|
98
106
|
|
99
|
-
def decorator(func):
|
100
|
-
def wrapper(f):
|
107
|
+
def decorator(func: Callable) -> Callable:
|
108
|
+
def wrapper(f: Callable) -> PythonApp:
|
101
109
|
return PythonApp(f,
|
102
110
|
data_flow_kernel=data_flow_kernel,
|
103
111
|
cache=cache,
|
@@ -111,10 +119,10 @@ def python_app(function=None,
|
|
111
119
|
|
112
120
|
|
113
121
|
@typeguard.typechecked
|
114
|
-
def join_app(function=None,
|
122
|
+
def join_app(function: Optional[Callable] = None,
|
115
123
|
data_flow_kernel: Optional[DataFlowKernel] = None,
|
116
124
|
cache: bool = False,
|
117
|
-
ignore_for_cache: Optional[
|
125
|
+
ignore_for_cache: Optional[Sequence[str]] = None) -> Callable:
|
118
126
|
"""Decorator function for making join apps
|
119
127
|
|
120
128
|
Parameters
|
@@ -129,13 +137,13 @@ def join_app(function=None,
|
|
129
137
|
be omitted only after calling :meth:`parsl.dataflow.dflow.DataFlowKernelLoader.load`. Default is None.
|
130
138
|
cache : bool
|
131
139
|
Enable caching of the app call. Default is False.
|
132
|
-
ignore_for_cache : (
|
140
|
+
ignore_for_cache : (sequence|None)
|
133
141
|
Names of arguments which will be ignored by the caching mechanism.
|
134
142
|
"""
|
135
143
|
from parsl.app.python import PythonApp
|
136
144
|
|
137
|
-
def decorator(func):
|
138
|
-
def wrapper(f):
|
145
|
+
def decorator(func: Callable) -> Callable:
|
146
|
+
def wrapper(f: Callable) -> PythonApp:
|
139
147
|
return PythonApp(f,
|
140
148
|
data_flow_kernel=data_flow_kernel,
|
141
149
|
cache=cache,
|
@@ -149,11 +157,11 @@ def join_app(function=None,
|
|
149
157
|
|
150
158
|
|
151
159
|
@typeguard.typechecked
|
152
|
-
def bash_app(function=None,
|
160
|
+
def bash_app(function: Optional[Callable] = None,
|
153
161
|
data_flow_kernel: Optional[DataFlowKernel] = None,
|
154
162
|
cache: bool = False,
|
155
163
|
executors: Union[List[str], Literal['all']] = 'all',
|
156
|
-
ignore_for_cache: Optional[
|
164
|
+
ignore_for_cache: Optional[Sequence[str]] = None) -> Callable:
|
157
165
|
"""Decorator function for making bash apps.
|
158
166
|
|
159
167
|
Parameters
|
@@ -177,8 +185,8 @@ def bash_app(function=None,
|
|
177
185
|
"""
|
178
186
|
from parsl.app.bash import BashApp
|
179
187
|
|
180
|
-
def decorator(func):
|
181
|
-
def wrapper(f):
|
188
|
+
def decorator(func: Callable) -> Callable:
|
189
|
+
def wrapper(f: Callable) -> BashApp:
|
182
190
|
return BashApp(f,
|
183
191
|
data_flow_kernel=data_flow_kernel,
|
184
192
|
cache=cache,
|
@@ -4,33 +4,21 @@ from typing import Dict, Tuple
|
|
4
4
|
|
5
5
|
|
6
6
|
class Channel(metaclass=ABCMeta):
|
7
|
-
"""
|
7
|
+
"""Channels are abstractions that enable ExecutionProviders to talk to
|
8
|
+
resource managers of remote compute facilities.
|
9
|
+
|
10
|
+
For certain resources such as campus clusters or supercomputers at
|
8
11
|
research laboratories, resource requirements may require authentication.
|
9
12
|
For instance some resources may allow access to their job schedulers from
|
10
|
-
only their login-nodes which require you to authenticate
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
*SshChannel* authenticates you to remote systems.
|
16
|
-
|
17
|
-
Channels are usually called via the execute_wait function.
|
18
|
-
For channels that execute remotely, a push_file function allows you to copy over files.
|
19
|
-
|
20
|
-
.. code:: python
|
21
|
-
|
22
|
-
+------------------
|
23
|
-
|
|
24
|
-
cmd, wtime ------->| execute_wait
|
25
|
-
(ec, stdout, stderr)<-|---+
|
26
|
-
|
|
27
|
-
src, dst_dir ------->| push_file
|
28
|
-
dst_path <--------|----+
|
29
|
-
|
|
30
|
-
dst_script_dir <------| script_dir
|
31
|
-
|
|
32
|
-
+-------------------
|
13
|
+
only their login-nodes which require you to authenticate through SSH, or
|
14
|
+
require two factor authentication.
|
15
|
+
|
16
|
+
The simplest Channel, *LocalChannel*, executes commands locally in a
|
17
|
+
shell, while the *SSHChannel* authenticates you to remote systems.
|
33
18
|
|
19
|
+
Channels provide the ability to execute commands remotely, using the
|
20
|
+
execute_wait method, and manipulate the remote file system using methods
|
21
|
+
such as push_file, pull_file and makedirs.
|
34
22
|
|
35
23
|
Channels should ensure that each launched command runs in a new process
|
36
24
|
group, so that providers (such as AdHocProvider and LocalProvider) which
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import logging
|
2
2
|
import typeguard
|
3
3
|
|
4
|
-
from typing import Callable,
|
4
|
+
from typing import Callable, Iterable, Optional, Sequence, Union
|
5
5
|
from typing_extensions import Literal
|
6
6
|
|
7
7
|
from parsl.utils import RepresentationMixin
|
@@ -20,9 +20,9 @@ class Config(RepresentationMixin):
|
|
20
20
|
|
21
21
|
Parameters
|
22
22
|
----------
|
23
|
-
executors :
|
24
|
-
List of `ParslExecutor` instances to use for executing tasks.
|
25
|
-
Default is
|
23
|
+
executors : sequence of ParslExecutor, optional
|
24
|
+
List (or other iterable) of `ParslExecutor` instances to use for executing tasks.
|
25
|
+
Default is (:class:`~parsl.executors.threads.ThreadPoolExecutor()`,).
|
26
26
|
app_cache : bool, optional
|
27
27
|
Enable app caching. Default is True.
|
28
28
|
checkpoint_files : sequence of str, optional
|
@@ -73,7 +73,7 @@ class Config(RepresentationMixin):
|
|
73
73
|
|
74
74
|
@typeguard.typechecked
|
75
75
|
def __init__(self,
|
76
|
-
executors: Optional[
|
76
|
+
executors: Optional[Iterable[ParslExecutor]] = None,
|
77
77
|
app_cache: bool = True,
|
78
78
|
checkpoint_files: Optional[Sequence[str]] = None,
|
79
79
|
checkpoint_mode: Union[None,
|
@@ -92,9 +92,14 @@ class Config(RepresentationMixin):
|
|
92
92
|
monitoring: Optional[MonitoringHub] = None,
|
93
93
|
usage_tracking: bool = False,
|
94
94
|
initialize_logging: bool = True) -> None:
|
95
|
-
|
96
|
-
|
97
|
-
|
95
|
+
|
96
|
+
executors = tuple(executors or [])
|
97
|
+
if not executors:
|
98
|
+
executors = (ThreadPoolExecutor(),)
|
99
|
+
|
100
|
+
self._executors: Sequence[ParslExecutor] = executors
|
101
|
+
self._validate_executors()
|
102
|
+
|
98
103
|
self.app_cache = app_cache
|
99
104
|
self.checkpoint_files = checkpoint_files
|
100
105
|
self.checkpoint_mode = checkpoint_mode
|
@@ -125,11 +130,13 @@ class Config(RepresentationMixin):
|
|
125
130
|
def executors(self) -> Sequence[ParslExecutor]:
|
126
131
|
return self._executors
|
127
132
|
|
128
|
-
|
129
|
-
|
130
|
-
|
133
|
+
def _validate_executors(self) -> None:
|
134
|
+
|
135
|
+
if len(self.executors) == 0:
|
136
|
+
raise ConfigurationError('At least one executor must be specified')
|
137
|
+
|
138
|
+
labels = [e.label for e in self.executors]
|
131
139
|
duplicates = [e for n, e in enumerate(labels) if e in labels[:n]]
|
132
140
|
if len(duplicates) > 0:
|
133
141
|
raise ConfigurationError('Executors must have unique labels ({})'.format(
|
134
142
|
', '.join(['label={}'.format(repr(d)) for d in duplicates])))
|
135
|
-
self._executors = executors
|
@@ -9,8 +9,8 @@ user_opts = {'adhoc':
|
|
9
9
|
{'username': 'YOUR_USERNAME',
|
10
10
|
'script_dir': 'YOUR_SCRIPT_DIR',
|
11
11
|
'remote_hostnames': ['REMOTE_HOST_URL_1', 'REMOTE_HOST_URL_2']
|
12
|
+
}
|
12
13
|
}
|
13
|
-
}
|
14
14
|
|
15
15
|
|
16
16
|
config = Config(
|
@@ -26,7 +26,7 @@ config = Config(
|
|
26
26
|
channels=[SSHChannel(hostname=m,
|
27
27
|
username=user_opts['adhoc']['username'],
|
28
28
|
script_dir=user_opts['adhoc']['script_dir'],
|
29
|
-
|
29
|
+
) for m in user_opts['adhoc']['remote_hostnames']]
|
30
30
|
)
|
31
31
|
)
|
32
32
|
],
|
@@ -918,7 +918,7 @@ class DataFlowKernel:
|
|
918
918
|
- executors (list or string) : List of executors this call could go to.
|
919
919
|
Default='all'
|
920
920
|
- cache (Bool) : To enable memoization or not
|
921
|
-
- ignore_for_cache (
|
921
|
+
- ignore_for_cache (sequence) : List of kwargs to be ignored for memoization/checkpointing
|
922
922
|
- app_kwargs (dict) : Rest of the kwargs to the fn passed as dict.
|
923
923
|
|
924
924
|
Returns:
|
@@ -984,6 +984,7 @@ class DataFlowKernel:
|
|
984
984
|
'joins': None,
|
985
985
|
'try_id': 0,
|
986
986
|
'id': task_id,
|
987
|
+
'task_launch_lock': threading.Lock(),
|
987
988
|
'time_invoked': datetime.datetime.now(),
|
988
989
|
'time_returned': None,
|
989
990
|
'try_time_launched': None,
|
@@ -1029,8 +1030,6 @@ class DataFlowKernel:
|
|
1029
1030
|
task_record['func_name'],
|
1030
1031
|
waiting_message))
|
1031
1032
|
|
1032
|
-
task_record['task_launch_lock'] = threading.Lock()
|
1033
|
-
|
1034
1033
|
app_fu.add_done_callback(partial(self.handle_app_update, task_record))
|
1035
1034
|
self.update_task_state(task_record, States.pending)
|
1036
1035
|
logger.debug("Task {} set to pending state with AppFuture: {}".format(task_id, task_record['app_fu']))
|
@@ -1091,7 +1090,14 @@ class DataFlowKernel:
|
|
1091
1090
|
"""
|
1092
1091
|
run_dir = self.run_dir
|
1093
1092
|
if channel.script_dir is None:
|
1094
|
-
|
1093
|
+
|
1094
|
+
# This case will be detected as unreachable by mypy, because of
|
1095
|
+
# the type of script_dir, which is str, not Optional[str].
|
1096
|
+
# The type system doesn't represent the initialized/uninitialized
|
1097
|
+
# state of a channel so cannot represent that a channel needs
|
1098
|
+
# its script directory set or not.
|
1099
|
+
|
1100
|
+
channel.script_dir = os.path.join(run_dir, 'submit_scripts') # type: ignore[unreachable]
|
1095
1101
|
|
1096
1102
|
# Only create dirs if we aren't on a shared-fs
|
1097
1103
|
if not channel.isdir(run_dir):
|
@@ -479,10 +479,10 @@ class HighThroughputExecutor(BlockProviderExecutor, RepresentationMixin):
|
|
479
479
|
"heartbeat_threshold": self.heartbeat_threshold,
|
480
480
|
"poll_period": self.poll_period,
|
481
481
|
"logging_level": logging.DEBUG if self.worker_debug else logging.INFO
|
482
|
-
|
482
|
+
},
|
483
483
|
daemon=True,
|
484
484
|
name="HTEX-Interchange"
|
485
|
-
|
485
|
+
)
|
486
486
|
self.interchange_proc.start()
|
487
487
|
try:
|
488
488
|
(self.worker_task_port, self.worker_result_port) = comm_q.get(block=True, timeout=120)
|