parsl 2025.8.4__tar.gz → 2025.8.18__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-2025.8.4/parsl.egg-info → parsl-2025.8.18}/PKG-INFO +2 -2
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/dataflow/dflow.py +1 -1
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/executor.py +0 -1
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/jobs/strategy.py +1 -1
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/db_manager.py +12 -14
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/manual_tests/test_memory_limits.py +1 -1
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/site_tests/test_site.py +1 -1
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_utils/test_representation_mixin.py +53 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/utils.py +3 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/version.py +1 -1
- {parsl-2025.8.4 → parsl-2025.8.18/parsl.egg-info}/PKG-INFO +2 -2
- {parsl-2025.8.4 → parsl-2025.8.18}/LICENSE +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/MANIFEST.in +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/README.rst +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/addresses.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/app/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/app/app.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/app/bash.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/app/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/app/futures.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/app/python.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/benchmark/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/benchmark/perf.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/concurrent/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/config.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/ASPIRE1.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/Azure.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/anvil.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/bridges.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/cc_in2p3.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/delta.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/ec2.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/expanse.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/frontera.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/gc_multisite.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/gc_tutorial.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/htex_local.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/illinoiscluster.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/improv.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/kubernetes.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/local_threads.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/midway.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/osg.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/polaris.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/stampede2.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/summit.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/toss3_llnl.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/vineex_local.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/configs/wqex_local.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/curvezmq.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/data_manager.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/file_noop.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/files.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/ftp.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/globus.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/http.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/rsync.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/staging.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/data_provider/zip.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/dataflow/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/dataflow/dependency_resolvers.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/dataflow/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/dataflow/futures.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/dataflow/memoization.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/dataflow/rundirs.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/dataflow/states.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/dataflow/taskrecord.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/base.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/execute_task.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/flux/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/flux/execute_parsl_task.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/flux/executor.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/flux/flux_instance_manager.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/globus_compute.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/interchange.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/manager_record.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/manager_selector.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/monitoring_info.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/mpi_executor.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/mpi_prefix_composer.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/mpi_resource_management.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/probe.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/process_worker_pool.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/zmq_pipes.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/radical/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/radical/executor.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/radical/rpex_resources.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/radical/rpex_worker.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/status_handling.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/taskvine/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/taskvine/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/taskvine/exec_parsl_function.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/taskvine/executor.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/taskvine/factory.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/taskvine/factory_config.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/taskvine/manager.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/taskvine/manager_config.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/taskvine/utils.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/threads.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/workqueue/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/workqueue/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/workqueue/exec_parsl_function.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/workqueue/executor.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/workqueue/parsl_coprocess.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/workqueue/parsl_coprocess_stub.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/jobs/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/jobs/error_handlers.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/jobs/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/jobs/job_status_poller.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/jobs/states.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/launchers/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/launchers/base.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/launchers/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/launchers/launchers.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/log_utils.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/message_type.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/monitoring.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/queries/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/queries/pandas.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/base.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/filesystem.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/filesystem_router.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/htex.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/multiprocessing.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/udp.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/udp_router.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/zmq.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/radios/zmq_router.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/remote.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/types.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/app.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/models.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/plots/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/plots/default/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/plots/default/task_plots.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/plots/default/workflow_plots.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/plots/default/workflow_resource_plots.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/static/parsl-logo-white.png +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/static/parsl-monitor.css +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/templates/app.html +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/templates/dag.html +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/templates/error.html +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/templates/layout.html +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/templates/resource_usage.html +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/templates/task.html +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/templates/workflow.html +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/templates/workflows_summary.html +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/utils.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/version.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/views.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/multiprocessing.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/process_loggers.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/aws/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/aws/aws.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/aws/template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/azure/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/azure/azure.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/azure/template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/base.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/cluster_provider.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/condor/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/condor/condor.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/condor/template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/googlecloud/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/googlecloud/googlecloud.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/grid_engine/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/grid_engine/grid_engine.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/grid_engine/template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/kubernetes/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/kubernetes/kube.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/kubernetes/template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/local/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/local/local.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/lsf/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/lsf/lsf.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/lsf/template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/pbspro/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/pbspro/pbspro.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/pbspro/template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/slurm/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/slurm/slurm.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/slurm/template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/torque/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/torque/template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/providers/torque/torque.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/py.typed +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/serialize/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/serialize/base.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/serialize/concretes.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/serialize/errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/serialize/facade.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/serialize/proxystore.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/callables_helper.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/azure_single_node.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/bluewaters.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/bridges.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/cc_in2p3.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/comet.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/ec2_single_node.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/ec2_spot.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/flux_local.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/frontera.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/globus_compute.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/htex_local.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/htex_local_alternate.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/htex_local_intask_staging.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/htex_local_rsync_staging.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_radical.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_radical_mpi.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_threads.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_threads_checkpoint.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_threads_checkpoint_dfk_exit.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_threads_checkpoint_periodic.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_threads_checkpoint_task_exit.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_threads_ftp_in_task.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_threads_globus.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_threads_http_in_task.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/local_threads_no_cache.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/midway.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/nscc_singapore.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/osg_htex.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/petrelkube.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/slurm_local.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/summit.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/taskvine_ex.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/user_opts.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/configs/workqueue_ex.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/conftest.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/integration/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/integration/latency.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/integration/test_apps/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/integration/test_parsl_load_default_config.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/integration/test_stress/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/integration/test_stress/test_python_simple.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/integration/test_stress/test_python_threads.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/manual_tests/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/manual_tests/htex_local.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/manual_tests/test_basic.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/manual_tests/test_log_filter.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/manual_tests/test_regression_220.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/manual_tests/test_worker_count.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/site_tests/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/site_tests/site_config_selector.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/site_tests/test_provider.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/sites/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/sites/test_affinity.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/sites/test_concurrent.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/sites/test_dynamic_executor.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/sites/test_ec2.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/sites/test_launchers.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/sites/test_mpi/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/sites/test_worker_info.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_aalst_patterns.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_apptimeout.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_basic.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_error_codes.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_inputs_default.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_keyword_overlaps.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_kwarg_storage.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_memoize.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_memoize_ignore_args.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_multiline.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_pipeline.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_std_uri.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_bash_apps/test_stdout.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_callables.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_checkpointing/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_checkpointing/test_periodic.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_checkpointing/test_python_checkpoint_1.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_checkpointing/test_python_checkpoint_2.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_checkpointing/test_regression_232.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_checkpointing/test_regression_233.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_checkpointing/test_regression_239.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_checkpointing/test_task_exit.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_curvezmq.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_docs/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_docs/test_from_slides.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_docs/test_kwargs.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_docs/test_tutorial_1.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_docs/test_workflow1.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_docs/test_workflow2.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_docs/test_workflow4.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/test_fail.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/test_python_walltime.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/test_rand_fail.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/test_resource_spec.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/test_retries.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/test_retry_handler.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/test_retry_handler_failure.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/test_serialization_fail.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_error_handling/test_wrap_with_logs.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_execute_task.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_flowcontrol/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_flux.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_basic.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_block_manager_selector_unit.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_command_client_timeout.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_connected_blocks.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_cpu_affinity_explicit.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_disconnected_blocks.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_disconnected_blocks_failing_provider.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_drain.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_htex.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_interchange_exit_bad_registration.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_manager_failure.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_manager_selector_by_block.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_managers_command.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_missing_worker.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_multiple_disconnected_blocks.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_priority_queue.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_resource_spec_validation.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_worker_failure.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_htex/test_zmq_binding.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_app_names.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_basic.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_db_locks.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_exit_helper.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_htex_fuzz_zmq.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_htex_init_blocks_vs_monitoring.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_incomplete_futures.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_memoization_representation.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_radio_filesystem.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_radio_multiprocessing.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_radio_udp.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_radio_zmq.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_stdouterr.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_monitoring/test_viz_colouring.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_mpi_apps/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_mpi_apps/test_bad_mpi_config.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_mpi_apps/test_mpi_mode_enabled.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_mpi_apps/test_mpi_prefix.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_mpi_apps/test_mpi_scheduler.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_mpi_apps/test_mpiex.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_mpi_apps/test_resource_spec.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_providers/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_providers/test_kubernetes_provider.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_providers/test_local_provider.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_providers/test_pbspro_template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_providers/test_slurm_instantiate.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_providers/test_slurm_template.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_providers/test_submiterror_deprecation.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_arg_input_types.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_basic.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_context_manager.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_dep_standard_futures.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_dependencies.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_dependencies_deep.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_depfail_propagation.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_fail.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_fibonacci_iterative.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_fibonacci_recursive.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_futures.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_garbage_collect.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_import_fail.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_inputs_default.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_join.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_lifted.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_mapred.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_memoize_1.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_memoize_2.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_memoize_4.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_memoize_bad_id_for_memo.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_memoize_ignore_args.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_memoize_joinapp.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_outputs.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_overview.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_pipeline.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_pluggable_future_resolution.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_simple.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_timeout.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_python_apps/test_type5.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_radical/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_radical/test_mpi_funcs.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_1480.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_1606_wait_for_current_tasks.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_1653.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_221.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_226.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_2652.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_69a.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_854.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_97_parallelism_0.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_regression/test_98.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/test_block_error_handler.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/test_regression_1621.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/test_regression_3568_scaledown_vs_MISSING.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/test_regression_3696_oscillation.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/test_scale_down.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/test_scale_down_htex_auto_scale.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/test_scale_down_htex_unregistered.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/test_shutdown_scalein.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_scaling/test_worker_interchange_bad_messages_3262.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_serialization/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_serialization/test_2555_caching_deserializer.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_serialization/test_3495_deserialize_managerlost.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_serialization/test_basic.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_serialization/test_htex_code_cache.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_serialization/test_pack_resource_spec.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_serialization/test_proxystore_configured.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_serialization/test_proxystore_impl.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_shutdown/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_shutdown/test_kill_monitoring.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/staging_provider.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_1316.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_docs_1.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_docs_2.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_elaborate_noop_file.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_file.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_file_apps.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_file_staging.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_output_chain_filenames.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_staging_ftp.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_staging_ftp_in_task.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_staging_globus.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_staging_https.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_staging_stdout.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_zip_in.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_zip_out.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_staging/test_zip_to_zip.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_summary.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_thread_parallelism.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_threads/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_threads/test_configs.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_threads/test_lazy_errors.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_utils/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_utils/test_execute_wait.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_utils/test_logutils.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/test_utils/test_sanitize_dns.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/unit/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/unit/test_address.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/unit/test_file.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/unit/test_globus_compute_executor.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/unit/test_usage_tracking.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/tests/utils.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/usage_tracking/__init__.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/usage_tracking/api.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/usage_tracking/levels.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl/usage_tracking/usage.py +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl.egg-info/SOURCES.txt +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl.egg-info/dependency_links.txt +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl.egg-info/entry_points.txt +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl.egg-info/requires.txt +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/parsl.egg-info/top_level.txt +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/requirements.txt +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/setup.cfg +0 -0
- {parsl-2025.8.4 → parsl-2025.8.18}/setup.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: parsl
|
|
3
|
-
Version: 2025.8.
|
|
3
|
+
Version: 2025.8.18
|
|
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/2025.08.
|
|
6
|
+
Download-URL: https://github.com/Parsl/parsl/archive/2025.08.18.tar.gz
|
|
7
7
|
Author: The Parsl Team
|
|
8
8
|
Author-email: parsl@googlegroups.com
|
|
9
9
|
License: Apache 2.0
|
|
@@ -1142,7 +1142,7 @@ class DataFlowKernel:
|
|
|
1142
1142
|
executor.monitoring_messages = self.monitoring.resource_msgs
|
|
1143
1143
|
logger.debug("Starting monitoring receiver for executor %s "
|
|
1144
1144
|
"with remote monitoring radio config %s",
|
|
1145
|
-
executor, executor.remote_monitoring_radio)
|
|
1145
|
+
executor.label, executor.remote_monitoring_radio)
|
|
1146
1146
|
|
|
1147
1147
|
executor.monitoring_receiver = executor.remote_monitoring_radio.create_receiver(resource_msgs=executor.monitoring_messages,
|
|
1148
1148
|
run_dir=executor.run_dir)
|
|
@@ -626,7 +626,6 @@ class HighThroughputExecutor(BlockProviderExecutor, RepresentationMixin, UsageIn
|
|
|
626
626
|
and managers"""
|
|
627
627
|
return len(self.tasks)
|
|
628
628
|
|
|
629
|
-
@property
|
|
630
629
|
def connected_workers(self) -> int:
|
|
631
630
|
"""Returns the count of workers across all connected managers"""
|
|
632
631
|
return self.command_client.run("WORKERS")
|
|
@@ -215,7 +215,7 @@ class Strategy:
|
|
|
215
215
|
|
|
216
216
|
if hasattr(executor, 'connected_workers'):
|
|
217
217
|
logger.debug('Executor {} has {} active tasks, {}/{} running/pending blocks, and {} connected workers'.format(
|
|
218
|
-
label, active_tasks, running, pending, executor.connected_workers))
|
|
218
|
+
label, active_tasks, running, pending, executor.connected_workers()))
|
|
219
219
|
else:
|
|
220
220
|
logger.debug('Executor {} has {} active tasks and {}/{} running/pending blocks'.format(
|
|
221
221
|
label, active_tasks, running, pending))
|
|
@@ -18,7 +18,7 @@ from parsl.monitoring.types import MonitoringMessage, TaggedMonitoringMessage
|
|
|
18
18
|
from parsl.process_loggers import wrap_with_logs
|
|
19
19
|
from parsl.utils import setproctitle
|
|
20
20
|
|
|
21
|
-
logger = logging.getLogger(
|
|
21
|
+
logger = logging.getLogger(__name__)
|
|
22
22
|
|
|
23
23
|
X = TypeVar('X')
|
|
24
24
|
|
|
@@ -293,13 +293,10 @@ class DatabaseManager:
|
|
|
293
293
|
self.run_dir = run_dir
|
|
294
294
|
os.makedirs(self.run_dir, exist_ok=True)
|
|
295
295
|
|
|
296
|
-
logger.propagate = False
|
|
297
|
-
|
|
298
296
|
set_file_logger(f"{self.run_dir}/database_manager.log", level=logging_level,
|
|
299
|
-
format_string="%(asctime)s.%(msecs)03d %(name)s:%(lineno)d [%(levelname)s] [%(threadName)s %(thread)d] %(message)s"
|
|
300
|
-
name="database_manager")
|
|
297
|
+
format_string="%(asctime)s.%(msecs)03d %(name)s:%(lineno)d [%(levelname)s] [%(threadName)s %(thread)d] %(message)s")
|
|
301
298
|
|
|
302
|
-
logger.
|
|
299
|
+
logger.info("Initializing Database Manager process")
|
|
303
300
|
|
|
304
301
|
self.db = Database(db_url)
|
|
305
302
|
self.batching_interval = batching_interval
|
|
@@ -550,20 +547,21 @@ class DatabaseManager:
|
|
|
550
547
|
"or some other error. monitoring data may have been lost"
|
|
551
548
|
)
|
|
552
549
|
exception_happened = True
|
|
550
|
+
|
|
551
|
+
if self.external_exit_event.is_set():
|
|
552
|
+
self.close()
|
|
553
|
+
|
|
553
554
|
if exception_happened:
|
|
554
555
|
raise RuntimeError("An exception happened sometime during database processing and should have been logged in database_manager.log")
|
|
555
556
|
|
|
556
|
-
@wrap_with_logs
|
|
557
|
-
def _migrate_logs_to_internal(self, logs_queue:
|
|
557
|
+
@wrap_with_logs
|
|
558
|
+
def _migrate_logs_to_internal(self, logs_queue: mpq.Queue, kill_event: threading.Event) -> None:
|
|
558
559
|
logger.info("Starting _migrate_logs_to_internal")
|
|
559
560
|
|
|
560
561
|
while not kill_event.is_set() or logs_queue.qsize() != 0:
|
|
561
562
|
logger.debug("Checking STOP conditions: kill event: %s, queue has entries: %s",
|
|
562
563
|
kill_event.is_set(), logs_queue.qsize() != 0)
|
|
563
564
|
|
|
564
|
-
if self.external_exit_event.is_set():
|
|
565
|
-
self.close()
|
|
566
|
-
|
|
567
565
|
try:
|
|
568
566
|
x = logs_queue.get(timeout=0.1)
|
|
569
567
|
except queue.Empty:
|
|
@@ -583,10 +581,10 @@ class DatabaseManager:
|
|
|
583
581
|
elif x[0] == MessageType.NODE_INFO:
|
|
584
582
|
assert len(x) == 2, "expected NODE_INFO tuple to have exactly two elements"
|
|
585
583
|
|
|
586
|
-
logger.
|
|
584
|
+
logger.debug("Will put {} to pending node queue".format(x[1]))
|
|
587
585
|
self.pending_node_queue.put(x[1])
|
|
588
586
|
elif x[0] == MessageType.BLOCK_INFO:
|
|
589
|
-
logger.
|
|
587
|
+
logger.debug("Will put {} to pending block queue".format(x[1]))
|
|
590
588
|
self.pending_block_queue.put(x[-1])
|
|
591
589
|
else:
|
|
592
590
|
logger.error("Discarding message of unknown type {}".format(x[0]))
|
|
@@ -682,7 +680,7 @@ class DatabaseManager:
|
|
|
682
680
|
self._kill_event.set()
|
|
683
681
|
|
|
684
682
|
|
|
685
|
-
@wrap_with_logs
|
|
683
|
+
@wrap_with_logs
|
|
686
684
|
@typeguard.typechecked
|
|
687
685
|
def dbm_starter(resource_msgs: mpq.Queue,
|
|
688
686
|
db_url: str,
|
|
@@ -53,7 +53,7 @@ def test_simple(mem_per_worker):
|
|
|
53
53
|
# Prime a worker
|
|
54
54
|
double(5).result()
|
|
55
55
|
dfk = parsl.dfk()
|
|
56
|
-
connected = dfk.executors['htex_local'].connected_workers
|
|
56
|
+
connected = dfk.executors['htex_local'].connected_workers()
|
|
57
57
|
print("Connected : ", connected)
|
|
58
58
|
assert expected_workers == connected, "Expected {} workers, instead got {} workers".format(expected_workers,
|
|
59
59
|
connected)
|
|
@@ -35,7 +35,7 @@ def test_platform(n=2, sleep_dur=10):
|
|
|
35
35
|
print([i.result() for i in x])
|
|
36
36
|
|
|
37
37
|
print("Executor : ", dfk.executors[name])
|
|
38
|
-
print("Connected : ", dfk.executors[name].connected_workers)
|
|
38
|
+
print("Connected : ", dfk.executors[name].connected_workers())
|
|
39
39
|
print("Outstanding : ", dfk.executors[name].outstanding())
|
|
40
40
|
|
|
41
41
|
d = []
|
|
@@ -9,6 +9,18 @@ class GoodRepr(RepresentationMixin):
|
|
|
9
9
|
self.y = y
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
class GoodReprDefaults(RepresentationMixin):
|
|
13
|
+
def __init__(self, x, y="default 2"):
|
|
14
|
+
self.x = x
|
|
15
|
+
self.y = y
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GoodReprKeywordOnly(RepresentationMixin):
|
|
19
|
+
def __init__(self, *, x, y):
|
|
20
|
+
self.x = x
|
|
21
|
+
self.y = y
|
|
22
|
+
|
|
23
|
+
|
|
12
24
|
class BadRepr(RepresentationMixin):
|
|
13
25
|
"""This class incorrectly subclasses RepresentationMixin.
|
|
14
26
|
It does not store the parameter x on self.
|
|
@@ -31,6 +43,47 @@ def test_repr_good():
|
|
|
31
43
|
assert p2 in r
|
|
32
44
|
|
|
33
45
|
|
|
46
|
+
@pytest.mark.local
|
|
47
|
+
def test_repr_good_defaults_overridden():
|
|
48
|
+
p1 = "parameter 1"
|
|
49
|
+
p2 = "the second parameter"
|
|
50
|
+
|
|
51
|
+
# repr should not raise an exception
|
|
52
|
+
r = repr(GoodReprDefaults(p1, p2))
|
|
53
|
+
|
|
54
|
+
# representation should contain both values supplied
|
|
55
|
+
# at object creation.
|
|
56
|
+
assert p1 in r
|
|
57
|
+
assert p2 in r
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
@pytest.mark.local
|
|
61
|
+
def test_repr_good_defaults_defaulted():
|
|
62
|
+
p1 = "parameter 1"
|
|
63
|
+
|
|
64
|
+
# repr should not raise an exception
|
|
65
|
+
r = repr(GoodReprDefaults(p1))
|
|
66
|
+
|
|
67
|
+
# representation should contain one value supplied
|
|
68
|
+
# at object creation, and the other defaulted.
|
|
69
|
+
assert p1 in r
|
|
70
|
+
assert "default 2" in r
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
@pytest.mark.local
|
|
74
|
+
def test_repr_good_keyword_only():
|
|
75
|
+
p1 = "parameter 1"
|
|
76
|
+
p2 = "the second parameter"
|
|
77
|
+
|
|
78
|
+
# repr should not raise an exception
|
|
79
|
+
r = repr(GoodReprKeywordOnly(x=p1, y=p2))
|
|
80
|
+
|
|
81
|
+
# representation should contain both values supplied
|
|
82
|
+
# at object creation.
|
|
83
|
+
assert p1 in r
|
|
84
|
+
assert p2 in r
|
|
85
|
+
|
|
86
|
+
|
|
34
87
|
@pytest.mark.local
|
|
35
88
|
def test_repr_bad():
|
|
36
89
|
p1 = "parameter 1"
|
|
@@ -250,6 +250,9 @@ class RepresentationMixin:
|
|
|
250
250
|
args = [getattr(self, a, default) for a in argspec.args[1:]]
|
|
251
251
|
kwargs = {key: getattr(self, key, default) for key in defaults}
|
|
252
252
|
|
|
253
|
+
kwonlyargs = {key: getattr(self, key, default) for key in argspec.kwonlyargs}
|
|
254
|
+
kwargs.update(kwonlyargs)
|
|
255
|
+
|
|
253
256
|
def assemble_multiline(args: List[str], kwargs: Dict[str, object]) -> str:
|
|
254
257
|
def indent(text: str) -> str:
|
|
255
258
|
lines = text.splitlines()
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: parsl
|
|
3
|
-
Version: 2025.8.
|
|
3
|
+
Version: 2025.8.18
|
|
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/2025.08.
|
|
6
|
+
Download-URL: https://github.com/Parsl/parsl/archive/2025.08.18.tar.gz
|
|
7
7
|
Author: The Parsl Team
|
|
8
8
|
Author-email: parsl@googlegroups.com
|
|
9
9
|
License: Apache 2.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parsl-2025.8.4 → parsl-2025.8.18}/parsl/executors/high_throughput/mpi_resource_management.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/plots/default/task_plots.py
RENAMED
|
File without changes
|
{parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/plots/default/workflow_plots.py
RENAMED
|
File without changes
|
|
File without changes
|
{parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/static/parsl-logo-white.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parsl-2025.8.4 → parsl-2025.8.18}/parsl/monitoring/visualization/templates/resource_usage.html
RENAMED
|
File without changes
|