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.

Files changed (465) hide show
  1. {parsl-2025.10.6/parsl.egg-info → parsl-2025.10.13}/PKG-INFO +2 -2
  2. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/benchmark/perf.py +24 -8
  3. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/base.py +2 -2
  4. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/globus_compute.py +0 -4
  5. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/process_worker_pool.py +1 -1
  6. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/filesystem.py +2 -1
  7. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/htex.py +2 -1
  8. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/multiprocessing.py +2 -1
  9. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/udp.py +2 -1
  10. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/base.py +24 -37
  11. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/version.py +1 -1
  12. {parsl-2025.10.6 → parsl-2025.10.13/parsl.egg-info}/PKG-INFO +2 -2
  13. {parsl-2025.10.6 → parsl-2025.10.13}/LICENSE +0 -0
  14. {parsl-2025.10.6 → parsl-2025.10.13}/MANIFEST.in +0 -0
  15. {parsl-2025.10.6 → parsl-2025.10.13}/README.rst +0 -0
  16. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/__init__.py +0 -0
  17. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/addresses.py +0 -0
  18. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/__init__.py +0 -0
  19. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/app.py +0 -0
  20. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/bash.py +0 -0
  21. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/errors.py +0 -0
  22. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/futures.py +0 -0
  23. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/app/python.py +0 -0
  24. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/benchmark/__init__.py +0 -0
  25. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/concurrent/__init__.py +0 -0
  26. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/config.py +0 -0
  27. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/ASPIRE1.py +0 -0
  28. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/Azure.py +0 -0
  29. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/__init__.py +0 -0
  30. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/anvil.py +0 -0
  31. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/bridges.py +0 -0
  32. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/cc_in2p3.py +0 -0
  33. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/delta.py +0 -0
  34. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/ec2.py +0 -0
  35. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/expanse.py +0 -0
  36. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/frontera.py +0 -0
  37. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/gc_multisite.py +0 -0
  38. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/gc_tutorial.py +0 -0
  39. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/htex_local.py +0 -0
  40. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/illinoiscluster.py +0 -0
  41. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/improv.py +0 -0
  42. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/kubernetes.py +0 -0
  43. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/local_threads.py +0 -0
  44. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/midway.py +0 -0
  45. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/osg.py +0 -0
  46. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/polaris.py +0 -0
  47. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/stampede2.py +0 -0
  48. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/summit.py +0 -0
  49. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/toss3_llnl.py +0 -0
  50. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/vineex_local.py +0 -0
  51. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/configs/wqex_local.py +0 -0
  52. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/curvezmq.py +0 -0
  53. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/__init__.py +0 -0
  54. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/data_manager.py +0 -0
  55. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/file_noop.py +0 -0
  56. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/files.py +0 -0
  57. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/ftp.py +0 -0
  58. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/globus.py +0 -0
  59. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/http.py +0 -0
  60. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/rsync.py +0 -0
  61. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/staging.py +0 -0
  62. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/data_provider/zip.py +0 -0
  63. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/__init__.py +0 -0
  64. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/dependency_resolvers.py +0 -0
  65. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/dflow.py +0 -0
  66. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/errors.py +0 -0
  67. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/futures.py +0 -0
  68. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/memoization.py +0 -0
  69. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/rundirs.py +0 -0
  70. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/states.py +0 -0
  71. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/dataflow/taskrecord.py +0 -0
  72. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/errors.py +0 -0
  73. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/__init__.py +0 -0
  74. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/errors.py +0 -0
  75. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/execute_task.py +0 -0
  76. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/flux/__init__.py +0 -0
  77. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/flux/execute_parsl_task.py +0 -0
  78. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/flux/executor.py +0 -0
  79. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/flux/flux_instance_manager.py +0 -0
  80. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/__init__.py +0 -0
  81. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/errors.py +0 -0
  82. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/executor.py +0 -0
  83. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/interchange.py +0 -0
  84. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/manager_record.py +0 -0
  85. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/manager_selector.py +0 -0
  86. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/monitoring_info.py +0 -0
  87. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/mpi_executor.py +0 -0
  88. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/mpi_prefix_composer.py +0 -0
  89. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/mpi_resource_management.py +0 -0
  90. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/probe.py +0 -0
  91. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/high_throughput/zmq_pipes.py +0 -0
  92. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/radical/__init__.py +0 -0
  93. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/radical/executor.py +0 -0
  94. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/radical/rpex_resources.py +0 -0
  95. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/radical/rpex_worker.py +0 -0
  96. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/status_handling.py +0 -0
  97. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/__init__.py +0 -0
  98. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/errors.py +0 -0
  99. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/exec_parsl_function.py +0 -0
  100. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/executor.py +0 -0
  101. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/factory.py +0 -0
  102. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/factory_config.py +0 -0
  103. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/manager.py +0 -0
  104. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/manager_config.py +0 -0
  105. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/taskvine/utils.py +0 -0
  106. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/threads.py +0 -0
  107. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/__init__.py +0 -0
  108. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/errors.py +0 -0
  109. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/exec_parsl_function.py +0 -0
  110. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/executor.py +0 -0
  111. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/parsl_coprocess.py +0 -0
  112. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/executors/workqueue/parsl_coprocess_stub.py +0 -0
  113. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/__init__.py +0 -0
  114. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/error_handlers.py +0 -0
  115. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/errors.py +0 -0
  116. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/job_status_poller.py +0 -0
  117. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/states.py +0 -0
  118. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/jobs/strategy.py +0 -0
  119. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/launchers/__init__.py +0 -0
  120. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/launchers/base.py +0 -0
  121. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/launchers/errors.py +0 -0
  122. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/launchers/launchers.py +0 -0
  123. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/log_utils.py +0 -0
  124. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/__init__.py +0 -0
  125. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/db_manager.py +0 -0
  126. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/errors.py +0 -0
  127. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/message_type.py +0 -0
  128. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/monitoring.py +0 -0
  129. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/queries/__init__.py +0 -0
  130. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/queries/pandas.py +0 -0
  131. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/__init__.py +0 -0
  132. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/base.py +0 -0
  133. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/filesystem_router.py +0 -0
  134. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/udp_router.py +0 -0
  135. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/zmq.py +0 -0
  136. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/radios/zmq_router.py +0 -0
  137. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/remote.py +0 -0
  138. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/types.py +0 -0
  139. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/__init__.py +0 -0
  140. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/app.py +0 -0
  141. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/models.py +0 -0
  142. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/__init__.py +0 -0
  143. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/default/__init__.py +0 -0
  144. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/default/task_plots.py +0 -0
  145. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/default/workflow_plots.py +0 -0
  146. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/plots/default/workflow_resource_plots.py +0 -0
  147. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/static/parsl-logo-white.png +0 -0
  148. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/static/parsl-monitor.css +0 -0
  149. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/app.html +0 -0
  150. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/dag.html +0 -0
  151. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/error.html +0 -0
  152. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/layout.html +0 -0
  153. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/resource_usage.html +0 -0
  154. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/task.html +0 -0
  155. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/workflow.html +0 -0
  156. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/templates/workflows_summary.html +0 -0
  157. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/utils.py +0 -0
  158. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/version.py +0 -0
  159. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/monitoring/visualization/views.py +0 -0
  160. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/multiprocessing.py +0 -0
  161. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/process_loggers.py +0 -0
  162. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/__init__.py +0 -0
  163. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/aws/__init__.py +0 -0
  164. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/aws/aws.py +0 -0
  165. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/aws/template.py +0 -0
  166. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/azure/__init__.py +0 -0
  167. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/azure/azure.py +0 -0
  168. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/azure/template.py +0 -0
  169. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/cluster_provider.py +0 -0
  170. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/condor/__init__.py +0 -0
  171. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/condor/condor.py +0 -0
  172. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/condor/template.py +0 -0
  173. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/errors.py +0 -0
  174. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/googlecloud/__init__.py +0 -0
  175. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/googlecloud/googlecloud.py +0 -0
  176. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/grid_engine/__init__.py +0 -0
  177. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/grid_engine/grid_engine.py +0 -0
  178. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/grid_engine/template.py +0 -0
  179. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/kubernetes/__init__.py +0 -0
  180. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/kubernetes/kube.py +0 -0
  181. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/kubernetes/template.py +0 -0
  182. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/local/__init__.py +0 -0
  183. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/local/local.py +0 -0
  184. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/lsf/__init__.py +0 -0
  185. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/lsf/lsf.py +0 -0
  186. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/lsf/template.py +0 -0
  187. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/pbspro/__init__.py +0 -0
  188. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/pbspro/pbspro.py +0 -0
  189. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/pbspro/template.py +0 -0
  190. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/slurm/__init__.py +0 -0
  191. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/slurm/slurm.py +0 -0
  192. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/slurm/template.py +0 -0
  193. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/torque/__init__.py +0 -0
  194. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/torque/template.py +0 -0
  195. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/providers/torque/torque.py +0 -0
  196. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/py.typed +0 -0
  197. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/__init__.py +0 -0
  198. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/base.py +0 -0
  199. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/concretes.py +0 -0
  200. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/errors.py +0 -0
  201. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/facade.py +0 -0
  202. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/serialize/proxystore.py +0 -0
  203. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/__init__.py +0 -0
  204. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/callables_helper.py +0 -0
  205. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/__init__.py +0 -0
  206. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/azure_single_node.py +0 -0
  207. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/bluewaters.py +0 -0
  208. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/bridges.py +0 -0
  209. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/cc_in2p3.py +0 -0
  210. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/comet.py +0 -0
  211. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/ec2_single_node.py +0 -0
  212. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/ec2_spot.py +0 -0
  213. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/flux_local.py +0 -0
  214. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/frontera.py +0 -0
  215. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/globus_compute.py +0 -0
  216. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/htex_local.py +0 -0
  217. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/htex_local_alternate.py +0 -0
  218. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/htex_local_intask_staging.py +0 -0
  219. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/htex_local_rsync_staging.py +0 -0
  220. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_radical.py +0 -0
  221. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_radical_mpi.py +0 -0
  222. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads.py +0 -0
  223. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_checkpoint.py +0 -0
  224. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_checkpoint_dfk_exit.py +0 -0
  225. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_checkpoint_task_exit.py +0 -0
  226. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_ftp_in_task.py +0 -0
  227. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_globus.py +0 -0
  228. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/local_threads_http_in_task.py +0 -0
  229. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/midway.py +0 -0
  230. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/nscc_singapore.py +0 -0
  231. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/osg_htex.py +0 -0
  232. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/petrelkube.py +0 -0
  233. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/slurm_local.py +0 -0
  234. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/summit.py +0 -0
  235. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/taskvine_ex.py +0 -0
  236. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/user_opts.py +0 -0
  237. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/configs/workqueue_ex.py +0 -0
  238. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/conftest.py +0 -0
  239. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/__init__.py +0 -0
  240. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/latency.py +0 -0
  241. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_apps/__init__.py +0 -0
  242. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_parsl_load_default_config.py +0 -0
  243. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_stress/__init__.py +0 -0
  244. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_stress/test_python_simple.py +0 -0
  245. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/integration/test_stress/test_python_threads.py +0 -0
  246. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/__init__.py +0 -0
  247. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/htex_local.py +0 -0
  248. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_basic.py +0 -0
  249. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_log_filter.py +0 -0
  250. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_memory_limits.py +0 -0
  251. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_regression_220.py +0 -0
  252. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/manual_tests/test_worker_count.py +0 -0
  253. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/site_tests/__init__.py +0 -0
  254. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/site_tests/site_config_selector.py +0 -0
  255. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/__init__.py +0 -0
  256. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_affinity.py +0 -0
  257. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_concurrent.py +0 -0
  258. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_dynamic_executor.py +0 -0
  259. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_ec2.py +0 -0
  260. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_launchers.py +0 -0
  261. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_mpi/__init__.py +0 -0
  262. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/sites/test_worker_info.py +0 -0
  263. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/__init__.py +0 -0
  264. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_apptimeout.py +0 -0
  265. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_basic.py +0 -0
  266. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_error_codes.py +0 -0
  267. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_inputs_default.py +0 -0
  268. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_keyword_overlaps.py +0 -0
  269. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_kwarg_storage.py +0 -0
  270. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_memoize.py +0 -0
  271. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_memoize_ignore_args.py +0 -0
  272. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py +0 -0
  273. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_multiline.py +0 -0
  274. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_pipeline.py +0 -0
  275. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_std_uri.py +0 -0
  276. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_bash_apps/test_stdout.py +0 -0
  277. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_callables.py +0 -0
  278. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/__init__.py +0 -0
  279. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_periodic.py +0 -0
  280. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_python_checkpoint_1.py +0 -0
  281. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_python_checkpoint_2.py +0 -0
  282. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_regression_232.py +0 -0
  283. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_regression_233.py +0 -0
  284. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_regression_239.py +0 -0
  285. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_checkpointing/test_task_exit.py +0 -0
  286. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_curvezmq.py +0 -0
  287. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/__init__.py +0 -0
  288. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_from_slides.py +0 -0
  289. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_kwargs.py +0 -0
  290. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_tutorial_1.py +0 -0
  291. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_workflow1.py +0 -0
  292. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_docs/test_workflow4.py +0 -0
  293. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/__init__.py +0 -0
  294. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_fail.py +0 -0
  295. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_python_walltime.py +0 -0
  296. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_resource_spec.py +0 -0
  297. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_retries.py +0 -0
  298. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_retry_handler.py +0 -0
  299. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_retry_handler_failure.py +0 -0
  300. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_serialization_fail.py +0 -0
  301. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_error_handling/test_wrap_with_logs.py +0 -0
  302. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_execute_task.py +0 -0
  303. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_flowcontrol/__init__.py +0 -0
  304. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_flux.py +0 -0
  305. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/__init__.py +0 -0
  306. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_basic.py +0 -0
  307. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_block_manager_selector_unit.py +0 -0
  308. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_command_client_timeout.py +0 -0
  309. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_command_concurrency_regression_1321.py +0 -0
  310. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_connected_blocks.py +0 -0
  311. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_cpu_affinity_explicit.py +0 -0
  312. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_disconnected_blocks.py +0 -0
  313. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_disconnected_blocks_failing_provider.py +0 -0
  314. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_drain.py +0 -0
  315. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_htex.py +0 -0
  316. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_interchange_exit_bad_registration.py +0 -0
  317. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_manager_failure.py +0 -0
  318. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_manager_selector_by_block.py +0 -0
  319. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_managers_command.py +0 -0
  320. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_missing_worker.py +0 -0
  321. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_multiple_disconnected_blocks.py +0 -0
  322. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_priority_queue.py +0 -0
  323. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_resource_spec_validation.py +0 -0
  324. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_worker_failure.py +0 -0
  325. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_htex/test_zmq_binding.py +0 -0
  326. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/__init__.py +0 -0
  327. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_app_names.py +0 -0
  328. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_basic.py +0 -0
  329. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_db_locks.py +0 -0
  330. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_exit_helper.py +0 -0
  331. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_htex_fuzz_zmq.py +0 -0
  332. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_htex_init_blocks_vs_monitoring.py +0 -0
  333. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_incomplete_futures.py +0 -0
  334. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_memoization_representation.py +0 -0
  335. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_radio_filesystem.py +0 -0
  336. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_radio_multiprocessing.py +0 -0
  337. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_radio_udp.py +0 -0
  338. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_radio_zmq.py +0 -0
  339. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_stdouterr.py +0 -0
  340. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_monitoring/test_viz_colouring.py +0 -0
  341. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/__init__.py +0 -0
  342. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_bad_mpi_config.py +0 -0
  343. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_mpi_mode_enabled.py +0 -0
  344. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_mpi_prefix.py +0 -0
  345. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_mpi_scheduler.py +0 -0
  346. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_mpiex.py +0 -0
  347. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_mpi_apps/test_resource_spec.py +0 -0
  348. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/__init__.py +0 -0
  349. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_kubernetes_provider.py +0 -0
  350. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_local_provider.py +0 -0
  351. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_pbspro_template.py +0 -0
  352. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_slurm_instantiate.py +0 -0
  353. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_slurm_template.py +0 -0
  354. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_providers/test_submiterror_deprecation.py +0 -0
  355. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/__init__.py +0 -0
  356. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_arg_input_types.py +0 -0
  357. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_basic.py +0 -0
  358. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_context_manager.py +0 -0
  359. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_dep_standard_futures.py +0 -0
  360. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_dependencies.py +0 -0
  361. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_dependencies_deep.py +0 -0
  362. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_depfail_propagation.py +0 -0
  363. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_fail.py +0 -0
  364. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_fibonacci_iterative.py +0 -0
  365. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_fibonacci_recursive.py +0 -0
  366. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_futures.py +0 -0
  367. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_garbage_collect.py +0 -0
  368. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_import_fail.py +0 -0
  369. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_inputs_default.py +0 -0
  370. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_join.py +0 -0
  371. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_lifted.py +0 -0
  372. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_mapred.py +0 -0
  373. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_1.py +0 -0
  374. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_2.py +0 -0
  375. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_4.py +0 -0
  376. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_bad_id_for_memo.py +0 -0
  377. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_exception.py +0 -0
  378. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_ignore_args.py +0 -0
  379. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_memoize_joinapp.py +0 -0
  380. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_outputs.py +0 -0
  381. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_overview.py +0 -0
  382. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_pipeline.py +0 -0
  383. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_pluggable_future_resolution.py +0 -0
  384. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_simple.py +0 -0
  385. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_timeout.py +0 -0
  386. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_python_apps/test_type5.py +0 -0
  387. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_radical/__init__.py +0 -0
  388. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_radical/test_mpi_funcs.py +0 -0
  389. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/__init__.py +0 -0
  390. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_1480.py +0 -0
  391. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_1606_wait_for_current_tasks.py +0 -0
  392. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_1653.py +0 -0
  393. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_221.py +0 -0
  394. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_226.py +0 -0
  395. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_2652.py +0 -0
  396. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_3874.py +0 -0
  397. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_69a.py +0 -0
  398. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_97_parallelism_0.py +0 -0
  399. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_regression/test_98.py +0 -0
  400. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/__init__.py +0 -0
  401. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_block_error_handler.py +0 -0
  402. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_regression_1621.py +0 -0
  403. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_regression_3568_scaledown_vs_MISSING.py +0 -0
  404. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_regression_3696_oscillation.py +0 -0
  405. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_scale_down.py +0 -0
  406. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_scale_down_htex_auto_scale.py +0 -0
  407. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_scale_down_htex_unregistered.py +0 -0
  408. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_shutdown_scalein.py +0 -0
  409. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_scaling/test_worker_interchange_bad_messages_3262.py +0 -0
  410. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/__init__.py +0 -0
  411. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_2555_caching_deserializer.py +0 -0
  412. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_3495_deserialize_managerlost.py +0 -0
  413. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_basic.py +0 -0
  414. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_htex_code_cache.py +0 -0
  415. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_proxystore_configured.py +0 -0
  416. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_serialization/test_proxystore_impl.py +0 -0
  417. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_shutdown/__init__.py +0 -0
  418. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_shutdown/test_kill_monitoring.py +0 -0
  419. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/__init__.py +0 -0
  420. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/staging_provider.py +0 -0
  421. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_1316.py +0 -0
  422. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_docs_1.py +0 -0
  423. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_docs_2.py +0 -0
  424. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_elaborate_noop_file.py +0 -0
  425. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_file.py +0 -0
  426. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_file_apps.py +0 -0
  427. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_file_staging.py +0 -0
  428. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_output_chain_filenames.py +0 -0
  429. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_ftp.py +0 -0
  430. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_ftp_in_task.py +0 -0
  431. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_globus.py +0 -0
  432. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_https.py +0 -0
  433. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_staging_stdout.py +0 -0
  434. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_zip_in.py +0 -0
  435. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_zip_out.py +0 -0
  436. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_staging/test_zip_to_zip.py +0 -0
  437. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_summary.py +0 -0
  438. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_thread_parallelism.py +0 -0
  439. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_threads/__init__.py +0 -0
  440. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_threads/test_configs.py +0 -0
  441. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_threads/test_lazy_errors.py +0 -0
  442. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/__init__.py +0 -0
  443. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/test_execute_wait.py +0 -0
  444. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/test_logutils.py +0 -0
  445. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/test_representation_mixin.py +0 -0
  446. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/test_utils/test_sanitize_dns.py +0 -0
  447. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/__init__.py +0 -0
  448. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/test_address.py +0 -0
  449. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/test_file.py +0 -0
  450. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/test_globus_compute_executor.py +0 -0
  451. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/unit/test_usage_tracking.py +0 -0
  452. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/tests/utils.py +0 -0
  453. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/usage_tracking/__init__.py +0 -0
  454. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/usage_tracking/api.py +0 -0
  455. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/usage_tracking/levels.py +0 -0
  456. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/usage_tracking/usage.py +0 -0
  457. {parsl-2025.10.6 → parsl-2025.10.13}/parsl/utils.py +0 -0
  458. {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/SOURCES.txt +0 -0
  459. {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/dependency_links.txt +0 -0
  460. {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/entry_points.txt +0 -0
  461. {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/requires.txt +0 -0
  462. {parsl-2025.10.6 → parsl-2025.10.13}/parsl.egg-info/top_level.txt +0 -0
  463. {parsl-2025.10.6 → parsl-2025.10.13}/requirements.txt +0 -0
  464. {parsl-2025.10.6 → parsl-2025.10.13}/setup.cfg +0 -0
  465. {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.6
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.06.tar.gz
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
- while delta_t < threshold_t or iteration <= min_iterations:
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
- Any spin-up operations (for example: starting thread pools) should be performed here.
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._cores_per_node: Optional[int] = None
48
- self._mem_per_node: Optional[float] = None
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:
@@ -3,4 +3,4 @@
3
3
  Year.Month.Day[alpha/beta/..]
4
4
  Alphas will be numbered like this -> 2024.12.10a0
5
5
  """
6
- VERSION = '2025.10.06'
6
+ VERSION = '2025.10.13'
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsl
3
- Version: 2025.10.6
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.06.tar.gz
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