parsl 2025.10.6__tar.gz → 2025.10.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.
Potentially problematic release.
This version of parsl might be problematic. Click here for more details.
- {parsl-2025.10.6/parsl.egg-info → parsl-2025.10.13}/PKG-INFO +2 -2
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/benchmark/perf.py +24 -8
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/base.py +2 -2
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/globus_compute.py +0 -4
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/process_worker_pool.py +1 -1
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/filesystem.py +2 -1
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/htex.py +2 -1
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/multiprocessing.py +2 -1
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/udp.py +2 -1
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/base.py +24 -37
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/version.py +1 -1
- {parsl-2025.10.6 → parsl-2025.10.13/parsl.egg-info}/PKG-INFO +2 -2
- {parsl-2025.10.6 → parsl-2025.10.13}/LICENSE +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/MANIFEST.in +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/README.rst +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/addresses.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/app.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/bash.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/futures.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/python.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/benchmark/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/concurrent/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/config.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/ASPIRE1.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/Azure.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/anvil.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/bridges.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/cc_in2p3.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/delta.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/ec2.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/expanse.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/frontera.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/gc_multisite.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/gc_tutorial.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/htex_local.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/illinoiscluster.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/improv.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/kubernetes.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/local_threads.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/midway.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/osg.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/polaris.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/stampede2.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/summit.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/toss3_llnl.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/vineex_local.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/wqex_local.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/curvezmq.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/data_manager.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/file_noop.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/files.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/ftp.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/globus.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/http.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/rsync.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/staging.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/zip.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/dependency_resolvers.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/dflow.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/futures.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/memoization.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/rundirs.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/states.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/taskrecord.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/execute_task.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/flux/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/flux/execute_parsl_task.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/flux/executor.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/flux/flux_instance_manager.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/executor.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/interchange.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/manager_record.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/manager_selector.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/monitoring_info.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/mpi_executor.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/mpi_prefix_composer.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/mpi_resource_management.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/probe.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/zmq_pipes.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/radical/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/radical/executor.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/radical/rpex_resources.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/radical/rpex_worker.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/status_handling.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/exec_parsl_function.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/executor.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/factory.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/factory_config.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/manager.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/manager_config.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/utils.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/threads.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/exec_parsl_function.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/executor.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/parsl_coprocess.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/parsl_coprocess_stub.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/error_handlers.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/job_status_poller.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/states.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/strategy.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/launchers/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/launchers/base.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/launchers/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/launchers/launchers.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/log_utils.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/db_manager.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/message_type.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/monitoring.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/queries/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/queries/pandas.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/base.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/filesystem_router.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/udp_router.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/zmq.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/zmq_router.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/remote.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/types.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/app.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/models.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/default/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/default/task_plots.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/default/workflow_plots.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/default/workflow_resource_plots.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/static/parsl-logo-white.png +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/static/parsl-monitor.css +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/app.html +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/dag.html +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/error.html +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/layout.html +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/resource_usage.html +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/task.html +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/workflow.html +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/workflows_summary.html +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/utils.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/version.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/views.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/multiprocessing.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/process_loggers.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/aws/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/aws/aws.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/aws/template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/azure/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/azure/azure.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/azure/template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/cluster_provider.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/condor/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/condor/condor.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/condor/template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/googlecloud/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/googlecloud/googlecloud.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/grid_engine/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/grid_engine/grid_engine.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/grid_engine/template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/kubernetes/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/kubernetes/kube.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/kubernetes/template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/local/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/local/local.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/lsf/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/lsf/lsf.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/lsf/template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/pbspro/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/pbspro/pbspro.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/pbspro/template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/slurm/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/slurm/slurm.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/slurm/template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/torque/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/torque/template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/torque/torque.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/py.typed +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/base.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/concretes.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/facade.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/proxystore.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/callables_helper.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/azure_single_node.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/bluewaters.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/bridges.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/cc_in2p3.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/comet.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/ec2_single_node.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/ec2_spot.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/flux_local.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/frontera.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/globus_compute.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/htex_local.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/htex_local_alternate.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/htex_local_intask_staging.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/htex_local_rsync_staging.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_radical.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_radical_mpi.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_checkpoint.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_checkpoint_dfk_exit.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_checkpoint_task_exit.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_ftp_in_task.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_globus.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_http_in_task.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/midway.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/nscc_singapore.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/osg_htex.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/petrelkube.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/slurm_local.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/summit.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/taskvine_ex.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/user_opts.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/workqueue_ex.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/conftest.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/latency.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_apps/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_parsl_load_default_config.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_stress/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_stress/test_python_simple.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_stress/test_python_threads.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/htex_local.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_basic.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_log_filter.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_memory_limits.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_regression_220.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_worker_count.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/site_tests/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/site_tests/site_config_selector.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_affinity.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_concurrent.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_dynamic_executor.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_ec2.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_launchers.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_mpi/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_worker_info.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_apptimeout.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_basic.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_error_codes.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_inputs_default.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_keyword_overlaps.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_kwarg_storage.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_memoize.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_memoize_ignore_args.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_multiline.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_pipeline.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_std_uri.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_stdout.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_callables.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_periodic.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_python_checkpoint_1.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_python_checkpoint_2.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_regression_232.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_regression_233.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_regression_239.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_task_exit.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_curvezmq.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_from_slides.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_kwargs.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_tutorial_1.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_workflow1.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_workflow4.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_fail.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_python_walltime.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_resource_spec.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_retries.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_retry_handler.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_retry_handler_failure.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_serialization_fail.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_wrap_with_logs.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_execute_task.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_flowcontrol/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_flux.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_basic.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_block_manager_selector_unit.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_command_client_timeout.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_command_concurrency_regression_1321.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_connected_blocks.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_cpu_affinity_explicit.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_disconnected_blocks.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_disconnected_blocks_failing_provider.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_drain.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_htex.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_interchange_exit_bad_registration.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_manager_failure.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_manager_selector_by_block.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_managers_command.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_missing_worker.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_multiple_disconnected_blocks.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_priority_queue.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_resource_spec_validation.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_worker_failure.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_zmq_binding.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_app_names.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_basic.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_db_locks.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_exit_helper.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_htex_fuzz_zmq.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_htex_init_blocks_vs_monitoring.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_incomplete_futures.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_memoization_representation.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_radio_filesystem.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_radio_multiprocessing.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_radio_udp.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_radio_zmq.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_stdouterr.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_viz_colouring.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_bad_mpi_config.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_mpi_mode_enabled.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_mpi_prefix.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_mpi_scheduler.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_mpiex.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_resource_spec.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_kubernetes_provider.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_local_provider.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_pbspro_template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_slurm_instantiate.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_slurm_template.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_submiterror_deprecation.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_arg_input_types.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_basic.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_context_manager.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_dep_standard_futures.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_dependencies.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_dependencies_deep.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_depfail_propagation.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_fail.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_fibonacci_iterative.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_fibonacci_recursive.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_futures.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_garbage_collect.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_import_fail.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_inputs_default.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_join.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_lifted.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_mapred.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_1.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_2.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_4.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_bad_id_for_memo.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_exception.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_ignore_args.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_joinapp.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_outputs.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_overview.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_pipeline.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_pluggable_future_resolution.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_simple.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_timeout.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_type5.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_radical/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_radical/test_mpi_funcs.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_1480.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_1606_wait_for_current_tasks.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_1653.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_221.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_226.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_2652.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_3874.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_69a.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_97_parallelism_0.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_98.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_block_error_handler.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_regression_1621.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_regression_3568_scaledown_vs_MISSING.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_regression_3696_oscillation.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_scale_down.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_scale_down_htex_auto_scale.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_scale_down_htex_unregistered.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_shutdown_scalein.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_worker_interchange_bad_messages_3262.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_2555_caching_deserializer.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_3495_deserialize_managerlost.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_basic.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_htex_code_cache.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_proxystore_configured.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_proxystore_impl.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_shutdown/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_shutdown/test_kill_monitoring.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/staging_provider.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_1316.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_docs_1.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_docs_2.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_elaborate_noop_file.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_file.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_file_apps.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_file_staging.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_output_chain_filenames.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_ftp.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_ftp_in_task.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_globus.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_https.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_stdout.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_zip_in.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_zip_out.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_zip_to_zip.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_summary.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_thread_parallelism.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_threads/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_threads/test_configs.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_threads/test_lazy_errors.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/test_execute_wait.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/test_logutils.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/test_representation_mixin.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/test_sanitize_dns.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/test_address.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/test_file.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/test_globus_compute_executor.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/test_usage_tracking.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/utils.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/usage_tracking/__init__.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/usage_tracking/api.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/usage_tracking/levels.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/usage_tracking/usage.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl/utils.py +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/SOURCES.txt +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/dependency_links.txt +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/entry_points.txt +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/requires.txt +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/top_level.txt +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/requirements.txt +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/setup.cfg +0 -0
- {parsl-2025.10.6 → parsl-2025.10.13}/setup.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: parsl
|
|
3
|
-
Version: 2025.10.
|
|
3
|
+
Version: 2025.10.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/2025.10.
|
|
6
|
+
Download-URL: https://github.com/Parsl/parsl/archive/2025.10.13.tar.gz
|
|
7
7
|
Author: The Parsl Team
|
|
8
8
|
Author-email: parsl@googlegroups.com
|
|
9
9
|
License: Apache 2.0
|
|
@@ -6,6 +6,7 @@ from typing import Any, Dict
|
|
|
6
6
|
|
|
7
7
|
import parsl
|
|
8
8
|
from parsl.dataflow.dflow import DataFlowKernel
|
|
9
|
+
from parsl.errors import InternalConsistencyError
|
|
9
10
|
|
|
10
11
|
min_iterations = 2
|
|
11
12
|
|
|
@@ -40,19 +41,18 @@ def app(extra_payload: Any, parsl_resource_specification: Dict = {}) -> int:
|
|
|
40
41
|
return 7
|
|
41
42
|
|
|
42
43
|
|
|
43
|
-
def performance(*, resources: dict, target_t: float, args_extra_size: int) -> None:
|
|
44
|
+
def performance(*, resources: dict, target_t: float, args_extra_size: int, iterate_mode: str) -> None:
|
|
44
45
|
n = 10
|
|
45
46
|
|
|
46
47
|
delta_t: float
|
|
47
|
-
delta_t = 0
|
|
48
|
-
|
|
49
|
-
threshold_t = int(0.75 * target_t)
|
|
50
48
|
|
|
51
49
|
iteration = 1
|
|
52
50
|
|
|
53
51
|
args_extra_payload = "x" * args_extra_size
|
|
54
52
|
|
|
55
|
-
|
|
53
|
+
iterate = True
|
|
54
|
+
|
|
55
|
+
while iterate:
|
|
56
56
|
print(f"==== Iteration {iteration} ====")
|
|
57
57
|
print(f"Will run {n} tasks to target {target_t} seconds runtime")
|
|
58
58
|
start_t = time.time()
|
|
@@ -78,10 +78,20 @@ def performance(*, resources: dict, target_t: float, args_extra_size: int) -> No
|
|
|
78
78
|
print(f"Runtime: actual {delta_t:.3f}s vs target {target_t}s")
|
|
79
79
|
print(f"Tasks per second: {rate:.3f}")
|
|
80
80
|
|
|
81
|
-
n = max(1, int(target_t * rate))
|
|
82
|
-
|
|
83
81
|
iteration += 1
|
|
84
82
|
|
|
83
|
+
# decide upon next iteration
|
|
84
|
+
|
|
85
|
+
match iterate_mode:
|
|
86
|
+
case "estimate":
|
|
87
|
+
n = max(1, int(target_t * rate))
|
|
88
|
+
iterate = delta_t < (0.75 * target_t) or iteration <= min_iterations
|
|
89
|
+
case "exponential":
|
|
90
|
+
n = int(n * 2)
|
|
91
|
+
iterate = delta_t < target_t or iteration <= min_iterations
|
|
92
|
+
case _:
|
|
93
|
+
raise InternalConsistencyError(f"Bad iterate mode {iterate_mode} - should have been validated at arg parse time")
|
|
94
|
+
|
|
85
95
|
|
|
86
96
|
def cli_run() -> None:
|
|
87
97
|
parser = argparse.ArgumentParser(
|
|
@@ -96,6 +106,12 @@ Example usage: python -m parsl.benchmark.perf --config parsl/tests/configs/workq
|
|
|
96
106
|
parser.add_argument("--time", metavar="SECONDS", help="target number of seconds for an iteration", default=120, type=float)
|
|
97
107
|
parser.add_argument("--argsize", metavar="BYTES", help="extra bytes to add into app invocation arguments", default=0, type=int)
|
|
98
108
|
parser.add_argument("--version", action="version", version=f"parsl-perf from Parsl {parsl.__version__}")
|
|
109
|
+
parser.add_argument("--iterate",
|
|
110
|
+
metavar="MODE",
|
|
111
|
+
help="Iteration mode: estimate, exponential",
|
|
112
|
+
type=str,
|
|
113
|
+
default="estimate",
|
|
114
|
+
choices=("estimate", "exponential"))
|
|
99
115
|
|
|
100
116
|
args = parser.parse_args()
|
|
101
117
|
|
|
@@ -105,7 +121,7 @@ Example usage: python -m parsl.benchmark.perf --config parsl/tests/configs/workq
|
|
|
105
121
|
resources = {}
|
|
106
122
|
|
|
107
123
|
with load_dfk_from_config(args.config):
|
|
108
|
-
performance(resources=resources, target_t=args.time, args_extra_size=args.argsize)
|
|
124
|
+
performance(resources=resources, target_t=args.time, args_extra_size=args.argsize, iterate_mode=args.iterate)
|
|
109
125
|
print("Tests complete - leaving DFK block")
|
|
110
126
|
print("The end")
|
|
111
127
|
|
|
@@ -80,11 +80,11 @@ class ParslExecutor(metaclass=ABCMeta):
|
|
|
80
80
|
self.shutdown()
|
|
81
81
|
return False
|
|
82
82
|
|
|
83
|
-
@abstractmethod
|
|
84
83
|
def start(self) -> None:
|
|
85
84
|
"""Start the executor.
|
|
86
85
|
|
|
87
|
-
|
|
86
|
+
By default, this does nothing, but this method should be overridden to
|
|
87
|
+
perform any spin-up operations (for example: starting thread pools).
|
|
88
88
|
"""
|
|
89
89
|
pass
|
|
90
90
|
|
|
@@ -76,10 +76,6 @@ class GlobusComputeExecutor(ParslExecutor, RepresentationMixin):
|
|
|
76
76
|
self.storage_access = storage_access
|
|
77
77
|
self.working_dir = working_dir
|
|
78
78
|
|
|
79
|
-
def start(self) -> None:
|
|
80
|
-
""" Start the Globus Compute Executor """
|
|
81
|
-
super().start()
|
|
82
|
-
|
|
83
79
|
def submit(self, func: Callable, resource_specification: Dict[str, Any], *args: Any, **kwargs: Any) -> Future:
|
|
84
80
|
""" Submit func to globus-compute
|
|
85
81
|
|
|
@@ -379,7 +379,7 @@ class Manager:
|
|
|
379
379
|
last_interchange_contact = time.time()
|
|
380
380
|
|
|
381
381
|
if tasks == HEARTBEAT_CODE:
|
|
382
|
-
logger.debug("Got heartbeat from interchange")
|
|
382
|
+
logger.debug("Got heartbeat response from interchange")
|
|
383
383
|
elif tasks == DRAINED_CODE:
|
|
384
384
|
logger.info("Got fully drained message from interchange - setting kill flag")
|
|
385
385
|
self._stop_event.set()
|
|
@@ -10,11 +10,12 @@ from parsl.monitoring.radios.base import (
|
|
|
10
10
|
RadioConfig,
|
|
11
11
|
)
|
|
12
12
|
from parsl.monitoring.radios.filesystem_router import FilesystemRadioReceiver
|
|
13
|
+
from parsl.utils import RepresentationMixin
|
|
13
14
|
|
|
14
15
|
logger = logging.getLogger(__name__)
|
|
15
16
|
|
|
16
17
|
|
|
17
|
-
class FilesystemRadio(RadioConfig):
|
|
18
|
+
class FilesystemRadio(RadioConfig, RepresentationMixin):
|
|
18
19
|
"""A MonitoringRadioSender that sends messages over a shared filesystem.
|
|
19
20
|
|
|
20
21
|
The messsage directory structure is based on maildir,
|
|
@@ -7,11 +7,12 @@ from parsl.monitoring.radios.base import (
|
|
|
7
7
|
MonitoringRadioSender,
|
|
8
8
|
RadioConfig,
|
|
9
9
|
)
|
|
10
|
+
from parsl.utils import RepresentationMixin
|
|
10
11
|
|
|
11
12
|
logger = logging.getLogger(__name__)
|
|
12
13
|
|
|
13
14
|
|
|
14
|
-
class HTEXRadio(RadioConfig):
|
|
15
|
+
class HTEXRadio(RadioConfig, RepresentationMixin):
|
|
15
16
|
def create_sender(self) -> MonitoringRadioSender:
|
|
16
17
|
return HTEXRadioSender()
|
|
17
18
|
|
|
@@ -5,9 +5,10 @@ from parsl.monitoring.radios.base import (
|
|
|
5
5
|
MonitoringRadioSender,
|
|
6
6
|
RadioConfig,
|
|
7
7
|
)
|
|
8
|
+
from parsl.utils import RepresentationMixin
|
|
8
9
|
|
|
9
10
|
|
|
10
|
-
class MultiprocessingQueueRadioSender(MonitoringRadioSender):
|
|
11
|
+
class MultiprocessingQueueRadioSender(MonitoringRadioSender, RepresentationMixin):
|
|
11
12
|
"""A monitoring radio which connects over a multiprocessing Queue.
|
|
12
13
|
This radio is intended to be used on the submit side, where components
|
|
13
14
|
in the submit process, or processes launched by multiprocessing, will have
|
|
@@ -13,11 +13,12 @@ from parsl.monitoring.radios.base import (
|
|
|
13
13
|
RadioConfig,
|
|
14
14
|
)
|
|
15
15
|
from parsl.monitoring.radios.udp_router import start_udp_receiver
|
|
16
|
+
from parsl.utils import RepresentationMixin
|
|
16
17
|
|
|
17
18
|
logger = logging.getLogger(__name__)
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
class UDPRadio(RadioConfig):
|
|
21
|
+
class UDPRadio(RadioConfig, RepresentationMixin):
|
|
21
22
|
def __init__(self, *, port: Optional[int] = None, atexit_timeout: int = 3, address: str, debug: bool = False, hmac_digest: str = 'sha512'):
|
|
22
23
|
self.port = port
|
|
23
24
|
self.atexit_timeout = atexit_timeout
|
|
@@ -33,7 +33,28 @@ class ExecutionProvider(metaclass=ABCMeta):
|
|
|
33
33
|
[cancel] <--------|----+
|
|
34
34
|
|
|
|
35
35
|
+-------------------
|
|
36
|
-
|
|
36
|
+
|
|
37
|
+
In addition to the listed methods, an ExecutionProvider instance must always
|
|
38
|
+
have these attributes, which both default to `None`:
|
|
39
|
+
|
|
40
|
+
mem_per_node: Real memory to provision per node in GB.
|
|
41
|
+
|
|
42
|
+
Providers which set this attribute should ask for mem_per_node of memory
|
|
43
|
+
when provisioning resources, and set the corresponding environment
|
|
44
|
+
variable PARSL_MEMORY_GB before executing submitted commands.
|
|
45
|
+
|
|
46
|
+
If this attribute is set, executors may use it to calculate how many tasks can
|
|
47
|
+
run concurrently per node.
|
|
48
|
+
|
|
49
|
+
cores_per_node: Number of cores to provision per node.
|
|
50
|
+
|
|
51
|
+
Providers which set this attribute should ask for cores_per_node cores
|
|
52
|
+
when provisioning resources, and set the corresponding environment
|
|
53
|
+
variable PARSL_CORES before executing submitted commands.
|
|
54
|
+
|
|
55
|
+
If this attribute is set, executors may use it to calculate how many tasks can
|
|
56
|
+
run concurrently per node.
|
|
57
|
+
"""
|
|
37
58
|
|
|
38
59
|
@abstractmethod
|
|
39
60
|
def __init__(self) -> None:
|
|
@@ -44,8 +65,8 @@ class ExecutionProvider(metaclass=ABCMeta):
|
|
|
44
65
|
self.script_dir: Optional[str]
|
|
45
66
|
self.parallelism: float
|
|
46
67
|
self.resources: Dict[object, Any]
|
|
47
|
-
self.
|
|
48
|
-
self.
|
|
68
|
+
self.cores_per_node: Optional[int] = None
|
|
69
|
+
self.mem_per_node: Optional[float] = None
|
|
49
70
|
pass
|
|
50
71
|
|
|
51
72
|
@abstractmethod
|
|
@@ -111,40 +132,6 @@ class ExecutionProvider(metaclass=ABCMeta):
|
|
|
111
132
|
''' Provides the label for this provider '''
|
|
112
133
|
pass
|
|
113
134
|
|
|
114
|
-
@property
|
|
115
|
-
def mem_per_node(self) -> Optional[float]:
|
|
116
|
-
"""Real memory to provision per node in GB.
|
|
117
|
-
|
|
118
|
-
Providers which set this property should ask for mem_per_node of memory
|
|
119
|
-
when provisioning resources, and set the corresponding environment
|
|
120
|
-
variable PARSL_MEMORY_GB before executing submitted commands.
|
|
121
|
-
|
|
122
|
-
If this property is set, executors may use it to calculate how many tasks can
|
|
123
|
-
run concurrently per node.
|
|
124
|
-
"""
|
|
125
|
-
return self._mem_per_node
|
|
126
|
-
|
|
127
|
-
@mem_per_node.setter
|
|
128
|
-
def mem_per_node(self, value: float) -> None:
|
|
129
|
-
self._mem_per_node = value
|
|
130
|
-
|
|
131
|
-
@property
|
|
132
|
-
def cores_per_node(self) -> Optional[int]:
|
|
133
|
-
"""Number of cores to provision per node.
|
|
134
|
-
|
|
135
|
-
Providers which set this property should ask for cores_per_node cores
|
|
136
|
-
when provisioning resources, and set the corresponding environment
|
|
137
|
-
variable PARSL_CORES before executing submitted commands.
|
|
138
|
-
|
|
139
|
-
If this property is set, executors may use it to calculate how many tasks can
|
|
140
|
-
run concurrently per node.
|
|
141
|
-
"""
|
|
142
|
-
return self._cores_per_node
|
|
143
|
-
|
|
144
|
-
@cores_per_node.setter
|
|
145
|
-
def cores_per_node(self, value: int) -> None:
|
|
146
|
-
self._cores_per_node = value
|
|
147
|
-
|
|
148
135
|
@property
|
|
149
136
|
@abstractmethod
|
|
150
137
|
def status_polling_interval(self) -> int:
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: parsl
|
|
3
|
-
Version: 2025.10.
|
|
3
|
+
Version: 2025.10.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/2025.10.
|
|
6
|
+
Download-URL: https://github.com/Parsl/parsl/archive/2025.10.13.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
|
{parsl-2025.10.6 → parsl-2025.10.13}/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
|