parsl 2024.8.5__tar.gz → 2024.8.12__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.
Files changed (486) hide show
  1. {parsl-2024.8.5/parsl.egg-info → parsl-2024.8.12}/PKG-INFO +2 -2
  2. parsl-2024.8.12/parsl/channels/__init__.py +4 -0
  3. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/oauth_ssh/oauth_ssh.py +2 -2
  4. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/ssh/ssh.py +1 -1
  5. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/ssh_il/ssh_il.py +2 -2
  6. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/dataflow/dflow.py +1 -1
  7. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/executor.py +2 -1
  8. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/interchange.py +4 -0
  9. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/taskvine/executor.py +2 -0
  10. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/workqueue/executor.py +2 -0
  11. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/db_manager.py +10 -10
  12. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/monitoring.py +1 -2
  13. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/remote.py +4 -4
  14. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/router.py +1 -6
  15. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/__init__.py +0 -4
  16. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/ad_hoc/ad_hoc.py +6 -2
  17. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_adhoc.py +2 -2
  18. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_zmq_binding.py +2 -1
  19. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_providers/test_local_provider.py +6 -5
  20. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/version.py +1 -1
  21. {parsl-2024.8.5 → parsl-2024.8.12/parsl.egg-info}/PKG-INFO +2 -2
  22. {parsl-2024.8.5 → parsl-2024.8.12}/parsl.egg-info/SOURCES.txt +0 -11
  23. parsl-2024.8.5/parsl/channels/__init__.py +0 -7
  24. parsl-2024.8.5/parsl/configs/ad_hoc.py +0 -38
  25. parsl-2024.8.5/parsl/tests/configs/ad_hoc_cluster_htex.py +0 -35
  26. parsl-2024.8.5/parsl/tests/configs/htex_ad_hoc_cluster.py +0 -26
  27. parsl-2024.8.5/parsl/tests/configs/swan_htex.py +0 -43
  28. parsl-2024.8.5/parsl/tests/integration/test_channels/test_scp_1.py +0 -45
  29. parsl-2024.8.5/parsl/tests/integration/test_channels/test_ssh_1.py +0 -40
  30. parsl-2024.8.5/parsl/tests/integration/test_channels/test_ssh_errors.py +0 -46
  31. parsl-2024.8.5/parsl/tests/integration/test_channels/test_ssh_file_transport.py +0 -41
  32. parsl-2024.8.5/parsl/tests/integration/test_channels/test_ssh_interactive.py +0 -24
  33. parsl-2024.8.5/parsl/tests/manual_tests/test_ad_hoc_htex.py +0 -49
  34. parsl-2024.8.5/parsl/tests/manual_tests/test_oauth_ssh.py +0 -13
  35. {parsl-2024.8.5 → parsl-2024.8.12}/LICENSE +0 -0
  36. {parsl-2024.8.5 → parsl-2024.8.12}/MANIFEST.in +0 -0
  37. {parsl-2024.8.5 → parsl-2024.8.12}/README.rst +0 -0
  38. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/__init__.py +0 -0
  39. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/addresses.py +0 -0
  40. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/app/__init__.py +0 -0
  41. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/app/app.py +0 -0
  42. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/app/bash.py +0 -0
  43. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/app/errors.py +0 -0
  44. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/app/futures.py +0 -0
  45. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/app/python.py +0 -0
  46. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/benchmark/__init__.py +0 -0
  47. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/benchmark/perf.py +0 -0
  48. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/base.py +0 -0
  49. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/errors.py +0 -0
  50. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/local/__init__.py +0 -0
  51. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/local/local.py +0 -0
  52. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/oauth_ssh/__init__.py +0 -0
  53. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/ssh/__init__.py +0 -0
  54. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/channels/ssh_il/__init__.py +0 -0
  55. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/concurrent/__init__.py +0 -0
  56. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/config.py +0 -0
  57. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/ASPIRE1.py +0 -0
  58. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/Azure.py +0 -0
  59. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/__init__.py +0 -0
  60. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/bridges.py +0 -0
  61. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/cc_in2p3.py +0 -0
  62. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/ec2.py +0 -0
  63. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/expanse.py +0 -0
  64. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/frontera.py +0 -0
  65. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/htex_local.py +0 -0
  66. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/illinoiscluster.py +0 -0
  67. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/kubernetes.py +0 -0
  68. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/local_threads.py +0 -0
  69. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/midway.py +0 -0
  70. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/osg.py +0 -0
  71. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/polaris.py +0 -0
  72. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/stampede2.py +0 -0
  73. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/summit.py +0 -0
  74. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/toss3_llnl.py +0 -0
  75. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/vineex_local.py +0 -0
  76. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/configs/wqex_local.py +0 -0
  77. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/curvezmq.py +0 -0
  78. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/__init__.py +0 -0
  79. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/data_manager.py +0 -0
  80. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/file_noop.py +0 -0
  81. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/files.py +0 -0
  82. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/ftp.py +0 -0
  83. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/globus.py +0 -0
  84. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/http.py +0 -0
  85. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/rsync.py +0 -0
  86. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/staging.py +0 -0
  87. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/data_provider/zip.py +0 -0
  88. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/dataflow/__init__.py +0 -0
  89. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/dataflow/dependency_resolvers.py +0 -0
  90. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/dataflow/errors.py +0 -0
  91. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/dataflow/futures.py +0 -0
  92. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/dataflow/memoization.py +0 -0
  93. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/dataflow/rundirs.py +0 -0
  94. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/dataflow/states.py +0 -0
  95. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/dataflow/taskrecord.py +0 -0
  96. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/errors.py +0 -0
  97. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/__init__.py +0 -0
  98. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/base.py +0 -0
  99. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/errors.py +0 -0
  100. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/flux/__init__.py +0 -0
  101. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/flux/execute_parsl_task.py +0 -0
  102. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/flux/executor.py +0 -0
  103. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/flux/flux_instance_manager.py +0 -0
  104. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/__init__.py +0 -0
  105. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/errors.py +0 -0
  106. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/manager_record.py +0 -0
  107. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/manager_selector.py +0 -0
  108. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/monitoring_info.py +0 -0
  109. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/mpi_executor.py +0 -0
  110. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/mpi_prefix_composer.py +0 -0
  111. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/mpi_resource_management.py +0 -0
  112. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/probe.py +0 -0
  113. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/process_worker_pool.py +0 -0
  114. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/high_throughput/zmq_pipes.py +0 -0
  115. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/radical/__init__.py +0 -0
  116. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/radical/executor.py +0 -0
  117. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/radical/rpex_resources.py +0 -0
  118. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/radical/rpex_worker.py +0 -0
  119. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/status_handling.py +0 -0
  120. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/taskvine/__init__.py +0 -0
  121. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/taskvine/errors.py +0 -0
  122. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/taskvine/exec_parsl_function.py +0 -0
  123. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/taskvine/factory.py +0 -0
  124. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/taskvine/factory_config.py +0 -0
  125. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/taskvine/manager.py +0 -0
  126. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/taskvine/manager_config.py +0 -0
  127. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/taskvine/utils.py +0 -0
  128. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/threads.py +0 -0
  129. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/workqueue/__init__.py +0 -0
  130. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/workqueue/errors.py +0 -0
  131. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/workqueue/exec_parsl_function.py +0 -0
  132. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/workqueue/parsl_coprocess.py +0 -0
  133. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/executors/workqueue/parsl_coprocess_stub.py +0 -0
  134. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/jobs/__init__.py +0 -0
  135. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/jobs/error_handlers.py +0 -0
  136. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/jobs/errors.py +0 -0
  137. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/jobs/job_status_poller.py +0 -0
  138. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/jobs/states.py +0 -0
  139. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/jobs/strategy.py +0 -0
  140. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/launchers/__init__.py +0 -0
  141. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/launchers/base.py +0 -0
  142. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/launchers/errors.py +0 -0
  143. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/launchers/launchers.py +0 -0
  144. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/log_utils.py +0 -0
  145. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/__init__.py +0 -0
  146. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/errors.py +0 -0
  147. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/message_type.py +0 -0
  148. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/queries/__init__.py +0 -0
  149. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/queries/pandas.py +0 -0
  150. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/radios.py +0 -0
  151. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/types.py +0 -0
  152. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/__init__.py +0 -0
  153. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/app.py +0 -0
  154. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/models.py +0 -0
  155. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/plots/__init__.py +0 -0
  156. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/plots/default/__init__.py +0 -0
  157. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/plots/default/task_plots.py +0 -0
  158. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/plots/default/workflow_plots.py +0 -0
  159. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/plots/default/workflow_resource_plots.py +0 -0
  160. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/static/parsl-logo-white.png +0 -0
  161. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/static/parsl-monitor.css +0 -0
  162. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/templates/app.html +0 -0
  163. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/templates/dag.html +0 -0
  164. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/templates/error.html +0 -0
  165. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/templates/layout.html +0 -0
  166. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/templates/resource_usage.html +0 -0
  167. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/templates/task.html +0 -0
  168. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/templates/workflow.html +0 -0
  169. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/templates/workflows_summary.html +0 -0
  170. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/utils.py +0 -0
  171. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/version.py +0 -0
  172. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/monitoring/visualization/views.py +0 -0
  173. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/multiprocessing.py +0 -0
  174. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/process_loggers.py +0 -0
  175. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/ad_hoc/__init__.py +0 -0
  176. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/aws/__init__.py +0 -0
  177. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/aws/aws.py +0 -0
  178. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/aws/template.py +0 -0
  179. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/azure/__init__.py +0 -0
  180. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/azure/azure.py +0 -0
  181. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/azure/template.py +0 -0
  182. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/base.py +0 -0
  183. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/cluster_provider.py +0 -0
  184. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/cobalt/__init__.py +0 -0
  185. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/cobalt/cobalt.py +0 -0
  186. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/cobalt/template.py +0 -0
  187. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/condor/__init__.py +0 -0
  188. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/condor/condor.py +0 -0
  189. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/condor/template.py +0 -0
  190. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/errors.py +0 -0
  191. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/googlecloud/__init__.py +0 -0
  192. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/googlecloud/googlecloud.py +0 -0
  193. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/grid_engine/__init__.py +0 -0
  194. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/grid_engine/grid_engine.py +0 -0
  195. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/grid_engine/template.py +0 -0
  196. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/kubernetes/__init__.py +0 -0
  197. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/kubernetes/kube.py +0 -0
  198. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/kubernetes/template.py +0 -0
  199. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/local/__init__.py +0 -0
  200. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/local/local.py +0 -0
  201. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/lsf/__init__.py +0 -0
  202. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/lsf/lsf.py +0 -0
  203. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/lsf/template.py +0 -0
  204. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/pbspro/__init__.py +0 -0
  205. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/pbspro/pbspro.py +0 -0
  206. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/pbspro/template.py +0 -0
  207. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/slurm/__init__.py +0 -0
  208. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/slurm/slurm.py +0 -0
  209. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/slurm/template.py +0 -0
  210. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/torque/__init__.py +0 -0
  211. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/torque/template.py +0 -0
  212. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/providers/torque/torque.py +0 -0
  213. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/py.typed +0 -0
  214. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/serialize/__init__.py +0 -0
  215. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/serialize/base.py +0 -0
  216. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/serialize/concretes.py +0 -0
  217. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/serialize/errors.py +0 -0
  218. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/serialize/facade.py +0 -0
  219. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/serialize/proxystore.py +0 -0
  220. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/__init__.py +0 -0
  221. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/callables_helper.py +0 -0
  222. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/__init__.py +0 -0
  223. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/azure_single_node.py +0 -0
  224. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/bluewaters.py +0 -0
  225. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/bridges.py +0 -0
  226. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/cc_in2p3.py +0 -0
  227. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/comet.py +0 -0
  228. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/cooley_htex.py +0 -0
  229. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/ec2_single_node.py +0 -0
  230. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/ec2_spot.py +0 -0
  231. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/flux_local.py +0 -0
  232. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/frontera.py +0 -0
  233. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/htex_local.py +0 -0
  234. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/htex_local_alternate.py +0 -0
  235. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/htex_local_intask_staging.py +0 -0
  236. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/htex_local_rsync_staging.py +0 -0
  237. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_radical.py +0 -0
  238. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_radical_mpi.py +0 -0
  239. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads.py +0 -0
  240. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads_checkpoint.py +0 -0
  241. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads_checkpoint_dfk_exit.py +0 -0
  242. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads_checkpoint_periodic.py +0 -0
  243. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads_checkpoint_task_exit.py +0 -0
  244. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads_ftp_in_task.py +0 -0
  245. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads_globus.py +0 -0
  246. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads_http_in_task.py +0 -0
  247. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads_monitoring.py +0 -0
  248. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/local_threads_no_cache.py +0 -0
  249. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/midway.py +0 -0
  250. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/nscc_singapore.py +0 -0
  251. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/osg_htex.py +0 -0
  252. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/petrelkube.py +0 -0
  253. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/summit.py +0 -0
  254. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/taskvine_ex.py +0 -0
  255. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/theta.py +0 -0
  256. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/user_opts.py +0 -0
  257. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/configs/workqueue_ex.py +0 -0
  258. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/conftest.py +0 -0
  259. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/__init__.py +0 -0
  260. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/latency.py +0 -0
  261. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/test_apps/__init__.py +0 -0
  262. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/test_channels/__init__.py +0 -0
  263. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/test_channels/test_channels.py +0 -0
  264. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/test_channels/test_local_channel.py +0 -0
  265. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/test_parsl_load_default_config.py +0 -0
  266. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/test_stress/__init__.py +0 -0
  267. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/test_stress/test_python_simple.py +0 -0
  268. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/integration/test_stress/test_python_threads.py +0 -0
  269. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/manual_tests/__init__.py +0 -0
  270. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/manual_tests/htex_local.py +0 -0
  271. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/manual_tests/test_basic.py +0 -0
  272. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/manual_tests/test_fan_in_out_htex_remote.py +0 -0
  273. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/manual_tests/test_log_filter.py +0 -0
  274. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/manual_tests/test_memory_limits.py +0 -0
  275. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/manual_tests/test_regression_220.py +0 -0
  276. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/manual_tests/test_udp_simple.py +0 -0
  277. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/manual_tests/test_worker_count.py +0 -0
  278. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/scaling_tests/__init__.py +0 -0
  279. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/scaling_tests/htex_local.py +0 -0
  280. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/scaling_tests/local_threads.py +0 -0
  281. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/scaling_tests/test_scale.py +0 -0
  282. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/scaling_tests/vineex_condor.py +0 -0
  283. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/scaling_tests/vineex_local.py +0 -0
  284. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/scaling_tests/wqex_condor.py +0 -0
  285. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/scaling_tests/wqex_local.py +0 -0
  286. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/site_tests/__init__.py +0 -0
  287. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/site_tests/site_config_selector.py +0 -0
  288. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/site_tests/test_provider.py +0 -0
  289. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/site_tests/test_site.py +0 -0
  290. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/sites/__init__.py +0 -0
  291. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/sites/test_affinity.py +0 -0
  292. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/sites/test_concurrent.py +0 -0
  293. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/sites/test_dynamic_executor.py +0 -0
  294. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/sites/test_ec2.py +0 -0
  295. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/sites/test_launchers.py +0 -0
  296. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/sites/test_local_adhoc.py +0 -0
  297. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/sites/test_mpi/__init__.py +0 -0
  298. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/sites/test_worker_info.py +0 -0
  299. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_aalst_patterns.py +0 -0
  300. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/__init__.py +0 -0
  301. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_apptimeout.py +0 -0
  302. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_basic.py +0 -0
  303. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_error_codes.py +0 -0
  304. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_inputs_default.py +0 -0
  305. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_keyword_overlaps.py +0 -0
  306. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_kwarg_storage.py +0 -0
  307. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_memoize.py +0 -0
  308. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_memoize_ignore_args.py +0 -0
  309. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py +0 -0
  310. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_multiline.py +0 -0
  311. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_pipeline.py +0 -0
  312. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_std_uri.py +0 -0
  313. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_bash_apps/test_stdout.py +0 -0
  314. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_callables.py +0 -0
  315. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_channels/__init__.py +0 -0
  316. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_channels/test_dfk_close.py +0 -0
  317. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_channels/test_large_output.py +0 -0
  318. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_checkpointing/__init__.py +0 -0
  319. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_checkpointing/test_periodic.py +0 -0
  320. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_checkpointing/test_python_checkpoint_1.py +0 -0
  321. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_checkpointing/test_python_checkpoint_2.py +0 -0
  322. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_checkpointing/test_python_checkpoint_3.py +0 -0
  323. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_checkpointing/test_regression_232.py +0 -0
  324. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_checkpointing/test_regression_233.py +0 -0
  325. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_checkpointing/test_regression_239.py +0 -0
  326. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_checkpointing/test_task_exit.py +0 -0
  327. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_curvezmq.py +0 -0
  328. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_docs/__init__.py +0 -0
  329. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_docs/test_from_slides.py +0 -0
  330. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_docs/test_kwargs.py +0 -0
  331. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_docs/test_tutorial_1.py +0 -0
  332. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_docs/test_workflow1.py +0 -0
  333. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_docs/test_workflow2.py +0 -0
  334. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_docs/test_workflow4.py +0 -0
  335. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/__init__.py +0 -0
  336. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/test_fail.py +0 -0
  337. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/test_python_walltime.py +0 -0
  338. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/test_rand_fail.py +0 -0
  339. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/test_resource_spec.py +0 -0
  340. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/test_retries.py +0 -0
  341. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/test_retry_handler.py +0 -0
  342. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/test_retry_handler_failure.py +0 -0
  343. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/test_serialization_fail.py +0 -0
  344. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_error_handling/test_wrap_with_logs.py +0 -0
  345. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_flowcontrol/__init__.py +0 -0
  346. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_flux.py +0 -0
  347. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/__init__.py +0 -0
  348. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_basic.py +0 -0
  349. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_command_client_timeout.py +0 -0
  350. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_connected_blocks.py +0 -0
  351. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_cpu_affinity_explicit.py +0 -0
  352. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_disconnected_blocks.py +0 -0
  353. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_disconnected_blocks_failing_provider.py +0 -0
  354. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_drain.py +0 -0
  355. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_htex.py +0 -0
  356. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_manager_failure.py +0 -0
  357. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_managers_command.py +0 -0
  358. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_missing_worker.py +0 -0
  359. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_multiple_disconnected_blocks.py +0 -0
  360. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_htex/test_worker_failure.py +0 -0
  361. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/__init__.py +0 -0
  362. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/test_app_names.py +0 -0
  363. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/test_basic.py +0 -0
  364. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/test_db_locks.py +0 -0
  365. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/test_fuzz_zmq.py +0 -0
  366. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/test_htex_init_blocks_vs_monitoring.py +0 -0
  367. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/test_incomplete_futures.py +0 -0
  368. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/test_memoization_representation.py +0 -0
  369. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/test_stdouterr.py +0 -0
  370. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_monitoring/test_viz_colouring.py +0 -0
  371. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_mpi_apps/__init__.py +0 -0
  372. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_mpi_apps/test_bad_mpi_config.py +0 -0
  373. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_mpi_apps/test_mpi_mode_disabled.py +0 -0
  374. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_mpi_apps/test_mpi_mode_enabled.py +0 -0
  375. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_mpi_apps/test_mpi_prefix.py +0 -0
  376. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_mpi_apps/test_mpi_scheduler.py +0 -0
  377. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_mpi_apps/test_mpiex.py +0 -0
  378. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_mpi_apps/test_resource_spec.py +0 -0
  379. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_providers/__init__.py +0 -0
  380. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_providers/test_cobalt_deprecation_warning.py +0 -0
  381. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_providers/test_pbspro_template.py +0 -0
  382. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_providers/test_slurm_instantiate.py +0 -0
  383. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_providers/test_slurm_template.py +0 -0
  384. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_providers/test_submiterror_deprecation.py +0 -0
  385. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/__init__.py +0 -0
  386. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_arg_input_types.py +0 -0
  387. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_basic.py +0 -0
  388. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_context_manager.py +0 -0
  389. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_dep_standard_futures.py +0 -0
  390. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_dependencies.py +0 -0
  391. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_dependencies_deep.py +0 -0
  392. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_depfail_propagation.py +0 -0
  393. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_fail.py +0 -0
  394. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_fibonacci_iterative.py +0 -0
  395. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_fibonacci_recursive.py +0 -0
  396. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_futures.py +0 -0
  397. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_garbage_collect.py +0 -0
  398. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_import_fail.py +0 -0
  399. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_inputs_default.py +0 -0
  400. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_join.py +0 -0
  401. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_lifted.py +0 -0
  402. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_mapred.py +0 -0
  403. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_memoize_1.py +0 -0
  404. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_memoize_2.py +0 -0
  405. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_memoize_4.py +0 -0
  406. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_memoize_bad_id_for_memo.py +0 -0
  407. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_memoize_ignore_args.py +0 -0
  408. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_memoize_joinapp.py +0 -0
  409. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_outputs.py +0 -0
  410. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_overview.py +0 -0
  411. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_pipeline.py +0 -0
  412. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_pluggable_future_resolution.py +0 -0
  413. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_simple.py +0 -0
  414. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_timeout.py +0 -0
  415. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_python_apps/test_type5.py +0 -0
  416. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_radical/__init__.py +0 -0
  417. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_radical/test_mpi_funcs.py +0 -0
  418. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/__init__.py +0 -0
  419. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_1480.py +0 -0
  420. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_1606_wait_for_current_tasks.py +0 -0
  421. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_1653.py +0 -0
  422. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_221.py +0 -0
  423. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_226.py +0 -0
  424. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_2652.py +0 -0
  425. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_69a.py +0 -0
  426. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_854.py +0 -0
  427. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_97_parallelism_0.py +0 -0
  428. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_regression/test_98.py +0 -0
  429. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_scaling/__init__.py +0 -0
  430. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_scaling/test_block_error_handler.py +0 -0
  431. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_scaling/test_regression_1621.py +0 -0
  432. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_scaling/test_scale_down.py +0 -0
  433. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_scaling/test_scale_down_htex_auto_scale.py +0 -0
  434. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_scaling/test_scale_down_htex_unregistered.py +0 -0
  435. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_scaling/test_shutdown_scalein.py +0 -0
  436. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_serialization/__init__.py +0 -0
  437. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_serialization/test_2555_caching_deserializer.py +0 -0
  438. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_serialization/test_3495_deserialize_managerlost.py +0 -0
  439. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_serialization/test_basic.py +0 -0
  440. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_serialization/test_htex_code_cache.py +0 -0
  441. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_serialization/test_pack_resource_spec.py +0 -0
  442. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_serialization/test_proxystore_configured.py +0 -0
  443. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_serialization/test_proxystore_impl.py +0 -0
  444. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_shutdown/__init__.py +0 -0
  445. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_shutdown/test_kill_monitoring.py +0 -0
  446. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/__init__.py +0 -0
  447. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/staging_provider.py +0 -0
  448. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_1316.py +0 -0
  449. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_docs_1.py +0 -0
  450. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_docs_2.py +0 -0
  451. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_elaborate_noop_file.py +0 -0
  452. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_file.py +0 -0
  453. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_file_apps.py +0 -0
  454. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_file_staging.py +0 -0
  455. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_output_chain_filenames.py +0 -0
  456. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_staging_ftp.py +0 -0
  457. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_staging_ftp_in_task.py +0 -0
  458. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_staging_globus.py +0 -0
  459. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_staging_https.py +0 -0
  460. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_staging_stdout.py +0 -0
  461. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_zip_in.py +0 -0
  462. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_zip_out.py +0 -0
  463. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_staging/test_zip_to_zip.py +0 -0
  464. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_summary.py +0 -0
  465. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_thread_parallelism.py +0 -0
  466. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_threads/__init__.py +0 -0
  467. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_threads/test_configs.py +0 -0
  468. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_threads/test_lazy_errors.py +0 -0
  469. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_utils/__init__.py +0 -0
  470. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/test_utils/test_representation_mixin.py +0 -0
  471. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/unit/__init__.py +0 -0
  472. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/unit/test_file.py +0 -0
  473. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/unit/test_usage_tracking.py +0 -0
  474. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/tests/utils.py +0 -0
  475. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/usage_tracking/__init__.py +0 -0
  476. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/usage_tracking/api.py +0 -0
  477. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/usage_tracking/levels.py +0 -0
  478. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/usage_tracking/usage.py +0 -0
  479. {parsl-2024.8.5 → parsl-2024.8.12}/parsl/utils.py +0 -0
  480. {parsl-2024.8.5 → parsl-2024.8.12}/parsl.egg-info/dependency_links.txt +0 -0
  481. {parsl-2024.8.5 → parsl-2024.8.12}/parsl.egg-info/entry_points.txt +0 -0
  482. {parsl-2024.8.5 → parsl-2024.8.12}/parsl.egg-info/requires.txt +0 -0
  483. {parsl-2024.8.5 → parsl-2024.8.12}/parsl.egg-info/top_level.txt +0 -0
  484. {parsl-2024.8.5 → parsl-2024.8.12}/requirements.txt +0 -0
  485. {parsl-2024.8.5 → parsl-2024.8.12}/setup.cfg +0 -0
  486. {parsl-2024.8.5 → parsl-2024.8.12}/setup.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsl
3
- Version: 2024.8.5
3
+ Version: 2024.8.12
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/2024.08.05.tar.gz
6
+ Download-URL: https://github.com/Parsl/parsl/archive/2024.08.12.tar.gz
7
7
  Author: The Parsl Team
8
8
  Author-email: parsl@googlegroups.com
9
9
  License: Apache 2.0
@@ -0,0 +1,4 @@
1
+ from parsl.channels.base import Channel
2
+ from parsl.channels.local.local import LocalChannel
3
+
4
+ __all__ = ['Channel', 'LocalChannel']
@@ -3,7 +3,7 @@ import socket
3
3
 
4
4
  import paramiko
5
5
 
6
- from parsl.channels.ssh.ssh import SSHChannel
6
+ from parsl.channels.ssh.ssh import DeprecatedSSHChannel
7
7
  from parsl.errors import OptionalModuleMissing
8
8
 
9
9
  try:
@@ -17,7 +17,7 @@ except (ImportError, NameError):
17
17
  logger = logging.getLogger(__name__)
18
18
 
19
19
 
20
- class OAuthSSHChannel(SSHChannel):
20
+ class DeprecatedOAuthSSHChannel(DeprecatedSSHChannel):
21
21
  """SSH persistent channel. This enables remote execution on sites
22
22
  accessible via ssh. This channel uses Globus based OAuth tokens for authentication.
23
23
  """
@@ -24,7 +24,7 @@ class NoAuthSSHClient(paramiko.SSHClient):
24
24
  return
25
25
 
26
26
 
27
- class SSHChannel(Channel, RepresentationMixin):
27
+ class DeprecatedSSHChannel(Channel, RepresentationMixin):
28
28
  ''' SSH persistent channel. This enables remote execution on sites
29
29
  accessible via ssh. It is assumed that the user has setup host keys
30
30
  so as to ssh to the remote host. Which goes to say that the following
@@ -3,12 +3,12 @@ import logging
3
3
 
4
4
  import paramiko
5
5
 
6
- from parsl.channels.ssh.ssh import SSHChannel
6
+ from parsl.channels.ssh.ssh import DeprecatedSSHChannel
7
7
 
8
8
  logger = logging.getLogger(__name__)
9
9
 
10
10
 
11
- class SSHInteractiveLoginChannel(SSHChannel):
11
+ class DeprecatedSSHInteractiveLoginChannel(DeprecatedSSHChannel):
12
12
  """SSH persistent channel. This enables remote execution on sites
13
13
  accessible via ssh. This channel supports interactive login and is appropriate when
14
14
  keys are not set up.
@@ -116,7 +116,7 @@ class DataFlowKernel:
116
116
  if self.monitoring:
117
117
  if self.monitoring.logdir is None:
118
118
  self.monitoring.logdir = self.run_dir
119
- self.monitoring.start(self.run_id, self.run_dir, self.config.run_dir)
119
+ self.monitoring.start(self.run_dir, self.config.run_dir)
120
120
 
121
121
  self.time_began = datetime.datetime.now()
122
122
  self.time_completed: Optional[datetime.datetime] = None
@@ -551,6 +551,7 @@ class HighThroughputExecutor(BlockProviderExecutor, RepresentationMixin, UsageIn
551
551
  "logging_level": logging.DEBUG if self.worker_debug else logging.INFO,
552
552
  "cert_dir": self.cert_dir,
553
553
  "manager_selector": self.manager_selector,
554
+ "run_id": self.run_id,
554
555
  }
555
556
 
556
557
  config_pickle = pickle.dumps(interchange_config)
@@ -831,7 +832,7 @@ class HighThroughputExecutor(BlockProviderExecutor, RepresentationMixin, UsageIn
831
832
  try:
832
833
  self.interchange_proc.wait(timeout=timeout)
833
834
  except subprocess.TimeoutExpired:
834
- logger.info("Unable to terminate Interchange process; sending SIGKILL")
835
+ logger.warning("Unable to terminate Interchange process; sending SIGKILL")
835
836
  self.interchange_proc.kill()
836
837
 
837
838
  logger.info("Closing ZMQ pipes")
@@ -55,6 +55,7 @@ class Interchange:
55
55
  poll_period: int,
56
56
  cert_dir: Optional[str],
57
57
  manager_selector: ManagerSelector,
58
+ run_id: str,
58
59
  ) -> None:
59
60
  """
60
61
  Parameters
@@ -125,6 +126,8 @@ class Interchange:
125
126
  self.command_channel.connect("tcp://{}:{}".format(client_address, client_ports[2]))
126
127
  logger.info("Connected to client")
127
128
 
129
+ self.run_id = run_id
130
+
128
131
  self.hub_address = hub_address
129
132
  self.hub_zmq_port = hub_zmq_port
130
133
 
@@ -227,6 +230,7 @@ class Interchange:
227
230
  d: Dict = cast(Dict, manager.copy())
228
231
  d['timestamp'] = datetime.datetime.now()
229
232
  d['last_heartbeat'] = datetime.datetime.fromtimestamp(d['last_heartbeat'])
233
+ d['run_id'] = self.run_id
230
234
 
231
235
  monitoring_radio.send((MessageType.NODE_INFO, d))
232
236
 
@@ -589,11 +589,13 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
589
589
  # Join all processes before exiting
590
590
  logger.debug("Joining on submit process")
591
591
  self._submit_process.join()
592
+ self._submit_process.close()
592
593
  logger.debug("Joining on collector thread")
593
594
  self._collector_thread.join()
594
595
  if self.worker_launch_method == 'factory':
595
596
  logger.debug("Joining on factory process")
596
597
  self._factory_process.join()
598
+ self._factory_process.close()
597
599
 
598
600
  # Shutdown multiprocessing queues
599
601
  self._ready_task_queue.close()
@@ -704,6 +704,8 @@ class WorkQueueExecutor(BlockProviderExecutor, putils.RepresentationMixin):
704
704
 
705
705
  logger.debug("Joining on submit process")
706
706
  self.submit_process.join()
707
+ self.submit_process.close()
708
+
707
709
  logger.debug("Joining on collector thread")
708
710
  self.collector_thread.join()
709
711
 
@@ -283,7 +283,7 @@ class DatabaseManager:
283
283
  ):
284
284
 
285
285
  self.workflow_end = False
286
- self.workflow_start_message = None # type: Optional[MonitoringMessage]
286
+ self.workflow_start_message: Optional[MonitoringMessage] = None
287
287
  self.logdir = logdir
288
288
  os.makedirs(self.logdir, exist_ok=True)
289
289
 
@@ -299,10 +299,10 @@ class DatabaseManager:
299
299
  self.batching_interval = batching_interval
300
300
  self.batching_threshold = batching_threshold
301
301
 
302
- self.pending_priority_queue = queue.Queue() # type: queue.Queue[TaggedMonitoringMessage]
303
- self.pending_node_queue = queue.Queue() # type: queue.Queue[MonitoringMessage]
304
- self.pending_block_queue = queue.Queue() # type: queue.Queue[MonitoringMessage]
305
- self.pending_resource_queue = queue.Queue() # type: queue.Queue[MonitoringMessage]
302
+ self.pending_priority_queue: queue.Queue[TaggedMonitoringMessage] = queue.Queue()
303
+ self.pending_node_queue: queue.Queue[MonitoringMessage] = queue.Queue()
304
+ self.pending_block_queue: queue.Queue[MonitoringMessage] = queue.Queue()
305
+ self.pending_resource_queue: queue.Queue[MonitoringMessage] = queue.Queue()
306
306
 
307
307
  def start(self,
308
308
  priority_queue: "queue.Queue[TaggedMonitoringMessage]",
@@ -351,18 +351,18 @@ class DatabaseManager:
351
351
  If that happens, the message will be added to deferred_resource_messages and processed later.
352
352
 
353
353
  """
354
- inserted_tasks = set() # type: Set[object]
354
+ inserted_tasks: Set[object] = set()
355
355
 
356
356
  """
357
357
  like inserted_tasks but for task,try tuples
358
358
  """
359
- inserted_tries = set() # type: Set[Any]
359
+ inserted_tries: Set[Any] = set()
360
360
 
361
361
  # for any task ID, we can defer exactly one message, which is the
362
362
  # assumed-to-be-unique first message (with first message flag set).
363
363
  # The code prior to this patch will discard previous message in
364
364
  # the case of multiple messages to defer.
365
- deferred_resource_messages = {} # type: MonitoringMessage
365
+ deferred_resource_messages: MonitoringMessage = {}
366
366
 
367
367
  exception_happened = False
368
368
 
@@ -505,7 +505,7 @@ class DatabaseManager:
505
505
  "Got {} messages from block queue".format(len(block_info_messages)))
506
506
  # block_info_messages is possibly a nested list of dict (at different polling times)
507
507
  # Each dict refers to the info of a job/block at one polling time
508
- block_messages_to_insert = [] # type: List[Any]
508
+ block_messages_to_insert: List[Any] = []
509
509
  for block_msg in block_info_messages:
510
510
  block_messages_to_insert.extend(block_msg)
511
511
  self._insert(table=BLOCK, messages=block_messages_to_insert)
@@ -686,7 +686,7 @@ class DatabaseManager:
686
686
  logger.exception("Rollback failed")
687
687
 
688
688
  def _get_messages_in_batch(self, msg_queue: "queue.Queue[X]") -> List[X]:
689
- messages = [] # type: List[X]
689
+ messages: List[X] = []
690
690
  start = time.time()
691
691
  while True:
692
692
  if time.time() - start >= self.batching_interval or len(messages) >= self.batching_threshold:
@@ -106,7 +106,7 @@ class MonitoringHub(RepresentationMixin):
106
106
  self.resource_monitoring_enabled = resource_monitoring_enabled
107
107
  self.resource_monitoring_interval = resource_monitoring_interval
108
108
 
109
- def start(self, run_id: str, dfk_run_dir: str, config_run_dir: Union[str, os.PathLike]) -> None:
109
+ def start(self, dfk_run_dir: str, config_run_dir: Union[str, os.PathLike]) -> None:
110
110
 
111
111
  logger.debug("Starting MonitoringHub")
112
112
 
@@ -161,7 +161,6 @@ class MonitoringHub(RepresentationMixin):
161
161
  "zmq_port_range": self.hub_port_range,
162
162
  "logdir": self.logdir,
163
163
  "logging_level": logging.DEBUG if self.monitoring_debug else logging.INFO,
164
- "run_id": run_id
165
164
  },
166
165
  name="Monitoring-Router-Process",
167
166
  daemon=True,
@@ -199,10 +199,10 @@ def monitor(pid: int,
199
199
 
200
200
  pm = psutil.Process(pid)
201
201
 
202
- children_user_time = {} # type: Dict[int, float]
203
- children_system_time = {} # type: Dict[int, float]
204
- children_num_ctx_switches_voluntary = {} # type: Dict[int, float]
205
- children_num_ctx_switches_involuntary = {} # type: Dict[int, float]
202
+ children_user_time: Dict[int, float] = {}
203
+ children_system_time: Dict[int, float] = {}
204
+ children_num_ctx_switches_voluntary: Dict[int, float] = {}
205
+ children_num_ctx_switches_involuntary: Dict[int, float] = {}
206
206
 
207
207
  def accumulate_and_prepare() -> Dict[str, Any]:
208
208
  d = {"psutil_process_" + str(k): v for k, v in pm.as_dict().items() if k in simple}
@@ -31,7 +31,6 @@ class MonitoringRouter:
31
31
 
32
32
  monitoring_hub_address: str = "127.0.0.1",
33
33
  logdir: str = ".",
34
- run_id: str,
35
34
  logging_level: int = logging.INFO,
36
35
  atexit_timeout: int = 3, # in seconds
37
36
  priority_msgs: "queue.Queue[AddressedMonitoringMessage]",
@@ -71,7 +70,6 @@ class MonitoringRouter:
71
70
 
72
71
  self.hub_address = hub_address
73
72
  self.atexit_timeout = atexit_timeout
74
- self.run_id = run_id
75
73
 
76
74
  self.loop_freq = 10.0 # milliseconds
77
75
 
@@ -172,7 +170,6 @@ class MonitoringRouter:
172
170
  msg_0 = (msg, 0)
173
171
 
174
172
  if msg[0] == MessageType.NODE_INFO:
175
- msg[1]['run_id'] = self.run_id
176
173
  self.node_msgs.put(msg_0)
177
174
  elif msg[0] == MessageType.RESOURCE_INFO:
178
175
  self.resource_msgs.put(msg_0)
@@ -218,8 +215,7 @@ def router_starter(comm_q: "queue.Queue[Union[Tuple[int, int], str]]",
218
215
  zmq_port_range: Tuple[int, int],
219
216
 
220
217
  logdir: str,
221
- logging_level: int,
222
- run_id: str) -> None:
218
+ logging_level: int) -> None:
223
219
  setproctitle("parsl: monitoring router")
224
220
  try:
225
221
  router = MonitoringRouter(hub_address=hub_address,
@@ -227,7 +223,6 @@ def router_starter(comm_q: "queue.Queue[Union[Tuple[int, int], str]]",
227
223
  zmq_port_range=zmq_port_range,
228
224
  logdir=logdir,
229
225
  logging_level=logging_level,
230
- run_id=run_id,
231
226
  priority_msgs=priority_msgs,
232
227
  node_msgs=node_msgs,
233
228
  block_msgs=block_msgs,
@@ -1,6 +1,3 @@
1
- # Workstation Provider
2
- from parsl.providers.ad_hoc.ad_hoc import AdHocProvider
3
-
4
1
  # Cloud Providers
5
2
  from parsl.providers.aws.aws import AWSProvider
6
3
  from parsl.providers.azure.azure import AzureProvider
@@ -24,7 +21,6 @@ __all__ = ['LocalProvider',
24
21
  'SlurmProvider',
25
22
  'TorqueProvider',
26
23
  'LSFProvider',
27
- 'AdHocProvider',
28
24
  'PBSProProvider',
29
25
  'AWSProvider',
30
26
  'GoogleCloudProvider',
@@ -12,8 +12,12 @@ from parsl.utils import RepresentationMixin
12
12
  logger = logging.getLogger(__name__)
13
13
 
14
14
 
15
- class AdHocProvider(ExecutionProvider, RepresentationMixin):
16
- """ Ad-hoc execution provider
15
+ class DeprecatedAdHocProvider(ExecutionProvider, RepresentationMixin):
16
+ """ Deprecated ad-hoc execution provider
17
+
18
+ The (former) AdHocProvider is deprecated. See
19
+ `issue #3515 <https://github.com/Parsl/parsl/issues/3515>`_
20
+ for further discussion.
17
21
 
18
22
  This provider is used to provision execution resources over one or more ad hoc nodes
19
23
  that are each accessible over a Channel (say, ssh) but otherwise lack a cluster scheduler.
@@ -1,7 +1,7 @@
1
1
  from parsl.channels import LocalChannel
2
2
  from parsl.config import Config
3
3
  from parsl.executors import HighThroughputExecutor
4
- from parsl.providers import AdHocProvider
4
+ from parsl.providers.ad_hoc.ad_hoc import DeprecatedAdHocProvider
5
5
 
6
6
 
7
7
  def fresh_config():
@@ -10,7 +10,7 @@ def fresh_config():
10
10
  HighThroughputExecutor(
11
11
  label='AdHoc',
12
12
  encrypted=True,
13
- provider=AdHocProvider(
13
+ provider=DeprecatedAdHocProvider(
14
14
  channels=[LocalChannel(), LocalChannel()]
15
15
  )
16
16
  )
@@ -25,7 +25,8 @@ def make_interchange(*, interchange_address: Optional[str], cert_dir: Optional[s
25
25
  logdir=".",
26
26
  logging_level=logging.INFO,
27
27
  manager_selector=RandomManagerSelector(),
28
- poll_period=10)
28
+ poll_period=10,
29
+ run_id="test_run_id")
29
30
 
30
31
 
31
32
  @pytest.fixture
@@ -11,7 +11,8 @@ import time
11
11
 
12
12
  import pytest
13
13
 
14
- from parsl.channels import LocalChannel, SSHChannel
14
+ from parsl.channels import LocalChannel
15
+ from parsl.channels.ssh.ssh import DeprecatedSSHChannel
15
16
  from parsl.jobs.states import JobState
16
17
  from parsl.launchers import SingleNodeLauncher
17
18
  from parsl.providers import LocalProvider
@@ -92,10 +93,10 @@ def test_ssh_channel():
92
93
  # already exist, so create it here.
93
94
  pathlib.Path('{}/known.hosts'.format(config_dir)).touch(mode=0o600)
94
95
  script_dir = tempfile.mkdtemp()
95
- channel = SSHChannel('127.0.0.1', port=server_port,
96
- script_dir=remote_script_dir,
97
- host_keys_filename='{}/known.hosts'.format(config_dir),
98
- key_filename=priv_key)
96
+ channel = DeprecatedSSHChannel('127.0.0.1', port=server_port,
97
+ script_dir=remote_script_dir,
98
+ host_keys_filename='{}/known.hosts'.format(config_dir),
99
+ key_filename=priv_key)
99
100
  try:
100
101
  p = LocalProvider(channel=channel,
101
102
  launcher=SingleNodeLauncher(debug=False))
@@ -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 = '2024.08.05'
6
+ VERSION = '2024.08.12'
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsl
3
- Version: 2024.8.5
3
+ Version: 2024.8.12
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/2024.08.05.tar.gz
6
+ Download-URL: https://github.com/Parsl/parsl/archive/2024.08.12.tar.gz
7
7
  Author: The Parsl Team
8
8
  Author-email: parsl@googlegroups.com
9
9
  License: Apache 2.0
@@ -43,7 +43,6 @@ parsl/concurrent/__init__.py
43
43
  parsl/configs/ASPIRE1.py
44
44
  parsl/configs/Azure.py
45
45
  parsl/configs/__init__.py
46
- parsl/configs/ad_hoc.py
47
46
  parsl/configs/bridges.py
48
47
  parsl/configs/cc_in2p3.py
49
48
  parsl/configs/ec2.py
@@ -220,7 +219,6 @@ parsl/tests/test_summary.py
220
219
  parsl/tests/test_thread_parallelism.py
221
220
  parsl/tests/utils.py
222
221
  parsl/tests/configs/__init__.py
223
- parsl/tests/configs/ad_hoc_cluster_htex.py
224
222
  parsl/tests/configs/azure_single_node.py
225
223
  parsl/tests/configs/bluewaters.py
226
224
  parsl/tests/configs/bridges.py
@@ -231,7 +229,6 @@ parsl/tests/configs/ec2_single_node.py
231
229
  parsl/tests/configs/ec2_spot.py
232
230
  parsl/tests/configs/flux_local.py
233
231
  parsl/tests/configs/frontera.py
234
- parsl/tests/configs/htex_ad_hoc_cluster.py
235
232
  parsl/tests/configs/htex_local.py
236
233
  parsl/tests/configs/htex_local_alternate.py
237
234
  parsl/tests/configs/htex_local_intask_staging.py
@@ -254,7 +251,6 @@ parsl/tests/configs/nscc_singapore.py
254
251
  parsl/tests/configs/osg_htex.py
255
252
  parsl/tests/configs/petrelkube.py
256
253
  parsl/tests/configs/summit.py
257
- parsl/tests/configs/swan_htex.py
258
254
  parsl/tests/configs/taskvine_ex.py
259
255
  parsl/tests/configs/theta.py
260
256
  parsl/tests/configs/user_opts.py
@@ -266,22 +262,15 @@ parsl/tests/integration/test_apps/__init__.py
266
262
  parsl/tests/integration/test_channels/__init__.py
267
263
  parsl/tests/integration/test_channels/test_channels.py
268
264
  parsl/tests/integration/test_channels/test_local_channel.py
269
- parsl/tests/integration/test_channels/test_scp_1.py
270
- parsl/tests/integration/test_channels/test_ssh_1.py
271
- parsl/tests/integration/test_channels/test_ssh_errors.py
272
- parsl/tests/integration/test_channels/test_ssh_file_transport.py
273
- parsl/tests/integration/test_channels/test_ssh_interactive.py
274
265
  parsl/tests/integration/test_stress/__init__.py
275
266
  parsl/tests/integration/test_stress/test_python_simple.py
276
267
  parsl/tests/integration/test_stress/test_python_threads.py
277
268
  parsl/tests/manual_tests/__init__.py
278
269
  parsl/tests/manual_tests/htex_local.py
279
- parsl/tests/manual_tests/test_ad_hoc_htex.py
280
270
  parsl/tests/manual_tests/test_basic.py
281
271
  parsl/tests/manual_tests/test_fan_in_out_htex_remote.py
282
272
  parsl/tests/manual_tests/test_log_filter.py
283
273
  parsl/tests/manual_tests/test_memory_limits.py
284
- parsl/tests/manual_tests/test_oauth_ssh.py
285
274
  parsl/tests/manual_tests/test_regression_220.py
286
275
  parsl/tests/manual_tests/test_udp_simple.py
287
276
  parsl/tests/manual_tests/test_worker_count.py
@@ -1,7 +0,0 @@
1
- from parsl.channels.base import Channel
2
- from parsl.channels.local.local import LocalChannel
3
- from parsl.channels.oauth_ssh.oauth_ssh import OAuthSSHChannel
4
- from parsl.channels.ssh.ssh import SSHChannel
5
- from parsl.channels.ssh_il.ssh_il import SSHInteractiveLoginChannel
6
-
7
- __all__ = ['Channel', 'SSHChannel', 'LocalChannel', 'SSHInteractiveLoginChannel', 'OAuthSSHChannel']
@@ -1,38 +0,0 @@
1
- from typing import Any, Dict
2
-
3
- from parsl.channels import SSHChannel
4
- from parsl.config import Config
5
- from parsl.executors import HighThroughputExecutor
6
- from parsl.providers import AdHocProvider
7
- from parsl.usage_tracking.levels import LEVEL_1
8
-
9
- user_opts: Dict[str, Dict[str, Any]]
10
- user_opts = {'adhoc':
11
- {'username': 'YOUR_USERNAME',
12
- 'script_dir': 'YOUR_SCRIPT_DIR',
13
- 'remote_hostnames': ['REMOTE_HOST_URL_1', 'REMOTE_HOST_URL_2']
14
- }
15
- }
16
-
17
-
18
- config = Config(
19
- executors=[
20
- HighThroughputExecutor(
21
- label='remote_htex',
22
- max_workers_per_node=2,
23
- worker_logdir_root=user_opts['adhoc']['script_dir'],
24
- provider=AdHocProvider(
25
- # Command to be run before starting a worker, such as:
26
- # 'module load Anaconda; source activate parsl_env'.
27
- worker_init='',
28
- channels=[SSHChannel(hostname=m,
29
- username=user_opts['adhoc']['username'],
30
- script_dir=user_opts['adhoc']['script_dir'],
31
- ) for m in user_opts['adhoc']['remote_hostnames']]
32
- )
33
- )
34
- ],
35
- # AdHoc Clusters should not be setup with scaling strategy.
36
- strategy='none',
37
- usage_tracking=LEVEL_1,
38
- )
@@ -1,35 +0,0 @@
1
- from typing import Any, Dict
2
-
3
- from parsl.channels import SSHChannel
4
- from parsl.config import Config
5
- from parsl.executors import HighThroughputExecutor
6
- from parsl.providers import AdHocProvider
7
-
8
- user_opts = {'adhoc':
9
- {'username': 'YOUR_USERNAME',
10
- 'script_dir': 'YOUR_SCRIPT_DIR',
11
- 'remote_hostnames': ['REMOTE_HOST_URL_1', 'REMOTE_HOST_URL_2']
12
- }
13
- } # type: Dict[str, Dict[str, Any]]
14
-
15
- config = Config(
16
- executors=[
17
- HighThroughputExecutor(
18
- label='remote_htex',
19
- max_workers_per_node=2,
20
- worker_logdir_root=user_opts['adhoc']['script_dir'],
21
- encrypted=True,
22
- provider=AdHocProvider(
23
- # Command to be run before starting a worker, such as:
24
- # 'module load Anaconda; source activate parsl_env'.
25
- worker_init='',
26
- channels=[SSHChannel(hostname=m,
27
- username=user_opts['adhoc']['username'],
28
- script_dir=user_opts['adhoc']['script_dir'],
29
- ) for m in user_opts['adhoc']['remote_hostnames']]
30
- )
31
- )
32
- ],
33
- # AdHoc Clusters should not be setup with scaling strategy.
34
- strategy='none',
35
- )
@@ -1,26 +0,0 @@
1
- from parsl.channels import SSHChannel
2
- from parsl.config import Config
3
- from parsl.executors import HighThroughputExecutor
4
- from parsl.providers import AdHocProvider
5
- from parsl.tests.configs.user_opts import user_opts
6
-
7
- config = Config(
8
- executors=[
9
- HighThroughputExecutor(
10
- label='remote_htex',
11
- cores_per_worker=1,
12
- worker_debug=False,
13
- address=user_opts['public_ip'],
14
- encrypted=True,
15
- provider=AdHocProvider(
16
- move_files=False,
17
- parallelism=1,
18
- worker_init=user_opts['adhoc']['worker_init'],
19
- channels=[SSHChannel(hostname=m,
20
- username=user_opts['adhoc']['username'],
21
- script_dir=user_opts['adhoc']['script_dir'],
22
- ) for m in user_opts['adhoc']['remote_hostnames']]
23
- )
24
- )
25
- ],
26
- )
@@ -1,43 +0,0 @@
1
- """
2
- ================== Block
3
- | ++++++++++++++ | Node
4
- | | | |
5
- | | Task | | . . .
6
- | | | |
7
- | ++++++++++++++ |
8
- ==================
9
- """
10
- from parsl.channels import SSHChannel
11
- from parsl.config import Config
12
- from parsl.executors import HighThroughputExecutor
13
- from parsl.launchers import AprunLauncher
14
- from parsl.providers import TorqueProvider
15
-
16
- # If you are a developer running tests, make sure to update parsl/tests/configs/user_opts.py
17
- # If you are a user copying-and-pasting this as an example, make sure to either
18
- # 1) create a local `user_opts.py`, or
19
- # 2) delete the user_opts import below and replace all appearances of `user_opts` with the literal value
20
- # (i.e., user_opts['swan']['username'] -> 'your_username')
21
- from .user_opts import user_opts
22
-
23
- config = Config(
24
- executors=[
25
- HighThroughputExecutor(
26
- label='swan_htex',
27
- encrypted=True,
28
- provider=TorqueProvider(
29
- channel=SSHChannel(
30
- hostname='swan.cray.com',
31
- username=user_opts['swan']['username'],
32
- script_dir=user_opts['swan']['script_dir'],
33
- ),
34
- nodes_per_block=1,
35
- init_blocks=1,
36
- max_blocks=1,
37
- launcher=AprunLauncher(),
38
- scheduler_options=user_opts['swan']['scheduler_options'],
39
- worker_init=user_opts['swan']['worker_init'],
40
- ),
41
- )
42
- ]
43
- )
@@ -1,45 +0,0 @@
1
- import os
2
-
3
- from parsl.channels.ssh.ssh import SSHChannel as SSH
4
-
5
-
6
- def connect_and_list(hostname, username):
7
- out = ''
8
- conn = SSH(hostname, username=username)
9
- conn.push_file(os.path.abspath('remote_run.sh'), '/home/davidk/')
10
- # ec, out, err = conn.execute_wait("ls /tmp/remote_run.sh; bash /tmp/remote_run.sh")
11
- conn.close()
12
- return out
13
-
14
-
15
- script = '''#!/bin/bash
16
- echo "Hostname: $HOSTNAME"
17
- echo "Cpu info -----"
18
- cat /proc/cpuinfo
19
- echo "Done----------"
20
- '''
21
-
22
-
23
- def test_connect_1():
24
- with open('remote_run.sh', 'w') as f:
25
- f.write(script)
26
-
27
- sites = {
28
- 'midway': {
29
- 'url': 'midway.rcc.uchicago.edu',
30
- 'uname': 'yadunand'
31
- },
32
- 'swift': {
33
- 'url': 'swift.rcc.uchicago.edu',
34
- 'uname': 'yadunand'
35
- }
36
- }
37
-
38
- for site in sites.values():
39
- out = connect_and_list(site['url'], site['uname'])
40
- print("Sitename :{0} hostname:{1}".format(site['url'], out))
41
-
42
-
43
- if __name__ == "__main__":
44
-
45
- test_connect_1()