parsl 2023.10.2__tar.gz → 2023.10.16__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 (418) hide show
  1. {parsl-2023.10.2/parsl.egg-info → parsl-2023.10.16}/PKG-INFO +2 -2
  2. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/benchmark/perf.py +2 -2
  3. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/taskvine/exec_parsl_function.py +20 -25
  4. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/taskvine/executor.py +25 -21
  5. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/taskvine/factory.py +12 -7
  6. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/taskvine/manager.py +7 -5
  7. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/taskvine/manager_config.py +6 -1
  8. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/threads.py +2 -2
  9. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_error_codes.py +0 -1
  10. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/version.py +1 -1
  11. {parsl-2023.10.2 → parsl-2023.10.16/parsl.egg-info}/PKG-INFO +2 -2
  12. {parsl-2023.10.2 → parsl-2023.10.16}/parsl.egg-info/SOURCES.txt +0 -1
  13. parsl-2023.10.2/parsl/tests/test_docs/test_workflow3.py +0 -23
  14. {parsl-2023.10.2 → parsl-2023.10.16}/LICENSE +0 -0
  15. {parsl-2023.10.2 → parsl-2023.10.16}/MANIFEST.in +0 -0
  16. {parsl-2023.10.2 → parsl-2023.10.16}/README.rst +0 -0
  17. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/__init__.py +0 -0
  18. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/addresses.py +0 -0
  19. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/app/__init__.py +0 -0
  20. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/app/app.py +0 -0
  21. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/app/bash.py +0 -0
  22. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/app/errors.py +0 -0
  23. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/app/futures.py +0 -0
  24. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/app/python.py +0 -0
  25. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/benchmark/__init__.py +0 -0
  26. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/__init__.py +0 -0
  27. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/base.py +0 -0
  28. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/errors.py +0 -0
  29. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/local/__init__.py +0 -0
  30. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/local/local.py +0 -0
  31. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/oauth_ssh/__init__.py +0 -0
  32. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/oauth_ssh/oauth_ssh.py +0 -0
  33. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/ssh/__init__.py +0 -0
  34. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/ssh/ssh.py +0 -0
  35. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/ssh_il/__init__.py +0 -0
  36. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/channels/ssh_il/ssh_il.py +0 -0
  37. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/concurrent/__init__.py +0 -0
  38. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/config.py +0 -0
  39. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/ASPIRE1.py +0 -0
  40. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/Azure.py +0 -0
  41. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/__init__.py +0 -0
  42. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/ad_hoc.py +0 -0
  43. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/bluewaters.py +0 -0
  44. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/bridges.py +0 -0
  45. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/cc_in2p3.py +0 -0
  46. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/comet.py +0 -0
  47. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/cooley.py +0 -0
  48. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/ec2.py +0 -0
  49. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/frontera.py +0 -0
  50. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/htex_local.py +0 -0
  51. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/illinoiscluster.py +0 -0
  52. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/kubernetes.py +0 -0
  53. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/local_threads.py +0 -0
  54. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/midway.py +0 -0
  55. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/osg.py +0 -0
  56. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/polaris.py +0 -0
  57. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/stampede2.py +0 -0
  58. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/summit.py +0 -0
  59. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/theta.py +0 -0
  60. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/toss3_llnl.py +0 -0
  61. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/vineex_local.py +0 -0
  62. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/configs/wqex_local.py +0 -0
  63. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/data_provider/__init__.py +0 -0
  64. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/data_provider/data_manager.py +0 -0
  65. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/data_provider/file_noop.py +0 -0
  66. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/data_provider/files.py +0 -0
  67. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/data_provider/ftp.py +0 -0
  68. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/data_provider/globus.py +0 -0
  69. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/data_provider/http.py +0 -0
  70. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/data_provider/rsync.py +0 -0
  71. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/data_provider/staging.py +0 -0
  72. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/dataflow/__init__.py +0 -0
  73. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/dataflow/dflow.py +0 -0
  74. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/dataflow/errors.py +0 -0
  75. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/dataflow/futures.py +0 -0
  76. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/dataflow/memoization.py +0 -0
  77. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/dataflow/rundirs.py +0 -0
  78. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/dataflow/states.py +0 -0
  79. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/dataflow/taskrecord.py +0 -0
  80. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/errors.py +0 -0
  81. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/__init__.py +0 -0
  82. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/base.py +0 -0
  83. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/errors.py +0 -0
  84. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/flux/__init__.py +0 -0
  85. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/flux/execute_parsl_task.py +0 -0
  86. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/flux/executor.py +0 -0
  87. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/flux/flux_instance_manager.py +0 -0
  88. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/high_throughput/__init__.py +0 -0
  89. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/high_throughput/errors.py +0 -0
  90. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/high_throughput/executor.py +0 -0
  91. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/high_throughput/interchange.py +0 -0
  92. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/high_throughput/manager_record.py +0 -0
  93. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/high_throughput/monitoring_info.py +0 -0
  94. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/high_throughput/probe.py +0 -0
  95. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/high_throughput/process_worker_pool.py +0 -0
  96. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/high_throughput/zmq_pipes.py +0 -0
  97. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/status_handling.py +0 -0
  98. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/taskvine/__init__.py +0 -0
  99. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/taskvine/errors.py +0 -0
  100. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/taskvine/factory_config.py +0 -0
  101. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/taskvine/utils.py +0 -0
  102. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/workqueue/__init__.py +0 -0
  103. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/workqueue/errors.py +0 -0
  104. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/workqueue/exec_parsl_function.py +0 -0
  105. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/workqueue/executor.py +0 -0
  106. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/workqueue/parsl_coprocess.py +0 -0
  107. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/executors/workqueue/parsl_coprocess_stub.py +0 -0
  108. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/jobs/__init__.py +0 -0
  109. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/jobs/error_handlers.py +0 -0
  110. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/jobs/errors.py +0 -0
  111. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/jobs/job_status_poller.py +0 -0
  112. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/jobs/states.py +0 -0
  113. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/jobs/strategy.py +0 -0
  114. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/launchers/__init__.py +0 -0
  115. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/launchers/base.py +0 -0
  116. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/launchers/errors.py +0 -0
  117. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/launchers/launchers.py +0 -0
  118. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/log_utils.py +0 -0
  119. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/__init__.py +0 -0
  120. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/db_manager.py +0 -0
  121. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/message_type.py +0 -0
  122. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/monitoring.py +0 -0
  123. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/queries/__init__.py +0 -0
  124. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/queries/pandas.py +0 -0
  125. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/radios.py +0 -0
  126. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/remote.py +0 -0
  127. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/types.py +0 -0
  128. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/__init__.py +0 -0
  129. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/app.py +0 -0
  130. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/models.py +0 -0
  131. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/plots/__init__.py +0 -0
  132. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/plots/default/__init__.py +0 -0
  133. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/plots/default/task_plots.py +0 -0
  134. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/plots/default/workflow_plots.py +0 -0
  135. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/plots/default/workflow_resource_plots.py +0 -0
  136. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/static/parsl-logo-white.png +0 -0
  137. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/static/parsl-monitor.css +0 -0
  138. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/templates/app.html +0 -0
  139. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/templates/dag.html +0 -0
  140. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/templates/error.html +0 -0
  141. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/templates/layout.html +0 -0
  142. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/templates/resource_usage.html +0 -0
  143. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/templates/task.html +0 -0
  144. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/templates/workflow.html +0 -0
  145. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/templates/workflows_summary.html +0 -0
  146. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/utils.py +0 -0
  147. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/version.py +0 -0
  148. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/monitoring/visualization/views.py +0 -0
  149. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/multiprocessing.py +0 -0
  150. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/process_loggers.py +0 -0
  151. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/__init__.py +0 -0
  152. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/ad_hoc/__init__.py +0 -0
  153. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/ad_hoc/ad_hoc.py +0 -0
  154. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/aws/__init__.py +0 -0
  155. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/aws/aws.py +0 -0
  156. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/aws/template.py +0 -0
  157. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/azure/__init__.py +0 -0
  158. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/azure/azure.py +0 -0
  159. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/azure/template.py +0 -0
  160. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/base.py +0 -0
  161. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/cluster_provider.py +0 -0
  162. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/cobalt/__init__.py +0 -0
  163. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/cobalt/cobalt.py +0 -0
  164. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/cobalt/template.py +0 -0
  165. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/condor/__init__.py +0 -0
  166. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/condor/condor.py +0 -0
  167. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/condor/template.py +0 -0
  168. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/errors.py +0 -0
  169. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/googlecloud/__init__.py +0 -0
  170. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/googlecloud/googlecloud.py +0 -0
  171. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/grid_engine/__init__.py +0 -0
  172. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/grid_engine/grid_engine.py +0 -0
  173. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/grid_engine/template.py +0 -0
  174. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/kubernetes/__init__.py +0 -0
  175. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/kubernetes/kube.py +0 -0
  176. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/kubernetes/template.py +0 -0
  177. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/local/__init__.py +0 -0
  178. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/local/local.py +0 -0
  179. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/lsf/__init__.py +0 -0
  180. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/lsf/lsf.py +0 -0
  181. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/lsf/template.py +0 -0
  182. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/pbspro/__init__.py +0 -0
  183. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/pbspro/pbspro.py +0 -0
  184. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/pbspro/template.py +0 -0
  185. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/slurm/__init__.py +0 -0
  186. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/slurm/slurm.py +0 -0
  187. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/slurm/template.py +0 -0
  188. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/torque/__init__.py +0 -0
  189. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/torque/template.py +0 -0
  190. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/providers/torque/torque.py +0 -0
  191. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/py.typed +0 -0
  192. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/serialize/__init__.py +0 -0
  193. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/serialize/base.py +0 -0
  194. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/serialize/concretes.py +0 -0
  195. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/serialize/errors.py +0 -0
  196. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/serialize/facade.py +0 -0
  197. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/serialize/proxystore.py +0 -0
  198. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/__init__.py +0 -0
  199. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/callables_helper.py +0 -0
  200. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/__init__.py +0 -0
  201. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/ad_hoc_cluster_htex.py +0 -0
  202. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/azure_single_node.py +0 -0
  203. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/bluewaters.py +0 -0
  204. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/bridges.py +0 -0
  205. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/cc_in2p3.py +0 -0
  206. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/comet.py +0 -0
  207. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/cooley_htex.py +0 -0
  208. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/ec2_single_node.py +0 -0
  209. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/ec2_spot.py +0 -0
  210. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/frontera.py +0 -0
  211. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/htex_ad_hoc_cluster.py +0 -0
  212. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/htex_local.py +0 -0
  213. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/htex_local_alternate.py +0 -0
  214. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/htex_local_intask_staging.py +0 -0
  215. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/htex_local_rsync_staging.py +0 -0
  216. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_adhoc.py +0 -0
  217. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads.py +0 -0
  218. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads_checkpoint.py +0 -0
  219. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads_checkpoint_dfk_exit.py +0 -0
  220. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads_checkpoint_periodic.py +0 -0
  221. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads_checkpoint_task_exit.py +0 -0
  222. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads_ftp_in_task.py +0 -0
  223. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads_globus.py +0 -0
  224. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads_http_in_task.py +0 -0
  225. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads_monitoring.py +0 -0
  226. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/local_threads_no_cache.py +0 -0
  227. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/midway.py +0 -0
  228. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/nscc_singapore.py +0 -0
  229. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/osg_htex.py +0 -0
  230. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/petrelkube.py +0 -0
  231. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/summit.py +0 -0
  232. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/swan_htex.py +0 -0
  233. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/taskvine_ex.py +0 -0
  234. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/theta.py +0 -0
  235. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/user_opts.py +0 -0
  236. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/configs/workqueue_ex.py +0 -0
  237. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/conftest.py +0 -0
  238. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/__init__.py +0 -0
  239. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/latency.py +0 -0
  240. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_apps/__init__.py +0 -0
  241. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_channels/__init__.py +0 -0
  242. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_channels/test_channels.py +0 -0
  243. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_channels/test_local_channel.py +0 -0
  244. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_channels/test_scp_1.py +0 -0
  245. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_channels/test_ssh_1.py +0 -0
  246. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_channels/test_ssh_errors.py +0 -0
  247. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_channels/test_ssh_file_transport.py +0 -0
  248. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_channels/test_ssh_interactive.py +0 -0
  249. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_parsl_load_default_config.py +0 -0
  250. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_stress/__init__.py +0 -0
  251. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_stress/test_python_simple.py +0 -0
  252. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/integration/test_stress/test_python_threads.py +0 -0
  253. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/__init__.py +0 -0
  254. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/htex_local.py +0 -0
  255. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/test_ad_hoc_htex.py +0 -0
  256. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/test_basic.py +0 -0
  257. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/test_fan_in_out_htex_remote.py +0 -0
  258. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/test_log_filter.py +0 -0
  259. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/test_memory_limits.py +0 -0
  260. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/test_oauth_ssh.py +0 -0
  261. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/test_regression_220.py +0 -0
  262. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/test_udp_simple.py +0 -0
  263. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/manual_tests/test_worker_count.py +0 -0
  264. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/scaling_tests/__init__.py +0 -0
  265. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/scaling_tests/htex_local.py +0 -0
  266. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/scaling_tests/local_threads.py +0 -0
  267. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/scaling_tests/test_scale.py +0 -0
  268. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/scaling_tests/vineex_condor.py +0 -0
  269. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/scaling_tests/vineex_local.py +0 -0
  270. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/scaling_tests/wqex_condor.py +0 -0
  271. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/scaling_tests/wqex_local.py +0 -0
  272. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/site_tests/__init__.py +0 -0
  273. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/site_tests/site_config_selector.py +0 -0
  274. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/site_tests/test_provider.py +0 -0
  275. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/site_tests/test_site.py +0 -0
  276. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/__init__.py +0 -0
  277. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/test_affinity.py +0 -0
  278. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/test_concurrent.py +0 -0
  279. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/test_dynamic_executor.py +0 -0
  280. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/test_ec2.py +0 -0
  281. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/test_launchers.py +0 -0
  282. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/test_local_adhoc.py +0 -0
  283. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/test_mpi/__init__.py +0 -0
  284. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/test_start_method.py +0 -0
  285. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/sites/test_worker_info.py +0 -0
  286. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_aalst_patterns.py +0 -0
  287. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/__init__.py +0 -0
  288. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_apptimeout.py +0 -0
  289. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_basic.py +0 -0
  290. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_keyword_overlaps.py +0 -0
  291. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_kwarg_storage.py +0 -0
  292. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_memoize.py +0 -0
  293. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_memoize_ignore_args.py +0 -0
  294. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py +0 -0
  295. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_multiline.py +0 -0
  296. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_pipeline.py +0 -0
  297. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_bash_apps/test_stdout.py +0 -0
  298. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_callables.py +0 -0
  299. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_channels/__init__.py +0 -0
  300. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_channels/test_large_output.py +0 -0
  301. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_checkpointing/__init__.py +0 -0
  302. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_checkpointing/test_periodic.py +0 -0
  303. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_checkpointing/test_python_checkpoint_1.py +0 -0
  304. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_checkpointing/test_python_checkpoint_2.py +0 -0
  305. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_checkpointing/test_python_checkpoint_3.py +0 -0
  306. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_checkpointing/test_regression_232.py +0 -0
  307. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_checkpointing/test_regression_233.py +0 -0
  308. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_checkpointing/test_regression_239.py +0 -0
  309. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_checkpointing/test_task_exit.py +0 -0
  310. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_data/__init__.py +0 -0
  311. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_data/test_file.py +0 -0
  312. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_data/test_file_apps.py +0 -0
  313. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_data/test_file_staging.py +0 -0
  314. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_data/test_output_chain_filenames.py +0 -0
  315. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_docs/__init__.py +0 -0
  316. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_docs/test_from_slides.py +0 -0
  317. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_docs/test_tutorial_1.py +0 -0
  318. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_docs/test_workflow1.py +0 -0
  319. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_docs/test_workflow2.py +0 -0
  320. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_docs/test_workflow4.py +0 -0
  321. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/__init__.py +0 -0
  322. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_fail.py +0 -0
  323. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_htex_basic.py +0 -0
  324. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_htex_missing_worker.py +0 -0
  325. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_htex_worker_failure.py +0 -0
  326. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_python_walltime.py +0 -0
  327. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_rand_fail.py +0 -0
  328. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_resource_spec.py +0 -0
  329. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_retries.py +0 -0
  330. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_retry_handler.py +0 -0
  331. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_retry_handler_failure.py +0 -0
  332. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_serialization_fail.py +0 -0
  333. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_error_handling/test_wrap_with_logs.py +0 -0
  334. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_flowcontrol/__init__.py +0 -0
  335. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_flux.py +0 -0
  336. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_htex/__init__.py +0 -0
  337. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_htex/test_htex_zmq_binding.py +0 -0
  338. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_monitoring/__init__.py +0 -0
  339. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_monitoring/test_basic.py +0 -0
  340. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_monitoring/test_db_locks.py +0 -0
  341. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_monitoring/test_fuzz_zmq.py +0 -0
  342. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_monitoring/test_memoization_representation.py +0 -0
  343. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_monitoring/test_viz_colouring.py +0 -0
  344. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_providers/__init__.py +0 -0
  345. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_providers/test_local_provider.py +0 -0
  346. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/__init__.py +0 -0
  347. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_arg_input_types.py +0 -0
  348. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_basic.py +0 -0
  349. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_dep_standard_futures.py +0 -0
  350. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_dependencies.py +0 -0
  351. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_depfail_propagation.py +0 -0
  352. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_fail.py +0 -0
  353. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_fibonacci_iterative.py +0 -0
  354. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_fibonacci_recursive.py +0 -0
  355. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_futures.py +0 -0
  356. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_garbage_collect.py +0 -0
  357. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_import_fail.py +0 -0
  358. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_join.py +0 -0
  359. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_mapred.py +0 -0
  360. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_memoize_1.py +0 -0
  361. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_memoize_2.py +0 -0
  362. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_memoize_4.py +0 -0
  363. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_memoize_bad_id_for_memo.py +0 -0
  364. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_memoize_ignore_args.py +0 -0
  365. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_memoize_joinapp.py +0 -0
  366. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_outputs.py +0 -0
  367. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_overview.py +0 -0
  368. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_pipeline.py +0 -0
  369. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_simple.py +0 -0
  370. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_timeout.py +0 -0
  371. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_python_apps/test_type5.py +0 -0
  372. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/__init__.py +0 -0
  373. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_1480.py +0 -0
  374. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_1606_wait_for_current_tasks.py +0 -0
  375. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_1653.py +0 -0
  376. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_221.py +0 -0
  377. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_226.py +0 -0
  378. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_2652.py +0 -0
  379. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_69a.py +0 -0
  380. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_854.py +0 -0
  381. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_97_parallelism_0.py +0 -0
  382. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_regression/test_98.py +0 -0
  383. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_scaling/__init__.py +0 -0
  384. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_scaling/test_block_error_handler.py +0 -0
  385. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_scaling/test_regression_1621.py +0 -0
  386. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_scaling/test_scale_down.py +0 -0
  387. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_serialization/__init__.py +0 -0
  388. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_serialization/test_2555_caching_deserializer.py +0 -0
  389. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_serialization/test_basic.py +0 -0
  390. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_serialization/test_proxystore_configured.py +0 -0
  391. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_serialization/test_proxystore_impl.py +0 -0
  392. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/__init__.py +0 -0
  393. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/staging_provider.py +0 -0
  394. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/test_1316.py +0 -0
  395. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/test_docs_1.py +0 -0
  396. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/test_docs_2.py +0 -0
  397. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/test_elaborate_noop_file.py +0 -0
  398. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/test_staging_ftp.py +0 -0
  399. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/test_staging_ftp_in_task.py +0 -0
  400. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/test_staging_globus.py +0 -0
  401. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/test_staging_https.py +0 -0
  402. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_staging/test_staging_https_in_task.py +0 -0
  403. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_summary.py +0 -0
  404. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_thread_parallelism.py +0 -0
  405. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_threads/__init__.py +0 -0
  406. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_threads/test_configs.py +0 -0
  407. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/test_threads/test_lazy_errors.py +0 -0
  408. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/tests/utils.py +0 -0
  409. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/usage_tracking/__init__.py +0 -0
  410. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/usage_tracking/usage.py +0 -0
  411. {parsl-2023.10.2 → parsl-2023.10.16}/parsl/utils.py +0 -0
  412. {parsl-2023.10.2 → parsl-2023.10.16}/parsl.egg-info/dependency_links.txt +0 -0
  413. {parsl-2023.10.2 → parsl-2023.10.16}/parsl.egg-info/entry_points.txt +0 -0
  414. {parsl-2023.10.2 → parsl-2023.10.16}/parsl.egg-info/requires.txt +0 -0
  415. {parsl-2023.10.2 → parsl-2023.10.16}/parsl.egg-info/top_level.txt +0 -0
  416. {parsl-2023.10.2 → parsl-2023.10.16}/requirements.txt +0 -0
  417. {parsl-2023.10.2 → parsl-2023.10.16}/setup.cfg +0 -0
  418. {parsl-2023.10.2 → parsl-2023.10.16}/setup.py +0 -0
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsl
3
- Version: 2023.10.2
3
+ Version: 2023.10.16
4
4
  Summary: Simple data dependent workflows in Python
5
5
  Home-page: https://github.com/Parsl/parsl
6
- Download-URL: https://github.com/Parsl/parsl/archive/2023.10.02.tar.gz
6
+ Download-URL: https://github.com/Parsl/parsl/archive/2023.10.16.tar.gz
7
7
  Author: The Parsl Team
8
8
  Author-email: parsl@googlegroups.com
9
9
  License: Apache 2.0
@@ -48,7 +48,7 @@ def performance(*, resources: dict, target_t: float):
48
48
 
49
49
  submitted_t = time.time()
50
50
  print(f"All {n} tasks submitted ... waiting for completion")
51
- print(f"Submission took {submitted_t - start_t:.3f} seconds = {n/(submitted_t - start_t):.3f} tasks/second")
51
+ print(f"Submission took {submitted_t - start_t:.3f} seconds = {n / (submitted_t - start_t):.3f} tasks/second")
52
52
 
53
53
  for f in concurrent.futures.as_completed(fs):
54
54
  assert f.result() == 7
@@ -62,7 +62,7 @@ def performance(*, resources: dict, target_t: float):
62
62
  print(f"Runtime: actual {delta_t:.3f}s vs target {target_t}s")
63
63
  print(f"Tasks per second: {rate:.3f}")
64
64
 
65
- n = int(target_t * rate)
65
+ n = max(1, int(target_t * rate))
66
66
 
67
67
  iteration += 1
68
68
 
@@ -1,13 +1,15 @@
1
- from parsl.app.errors import RemoteExceptionWrapper
2
- from parsl.data_provider.files import File
3
- from parsl.utils import get_std_fname_mode
4
1
  import traceback
5
2
  import sys
3
+
6
4
  import pickle
5
+ from parsl.app.errors import RemoteExceptionWrapper
6
+ from parsl.data_provider.files import File
7
+ from parsl.utils import get_std_fname_mode
8
+ from parsl.serialize import deserialize
7
9
 
8
- # This scripts executes a parsl function which is pickled in 3 files:
10
+ # This scripts executes a parsl function which is pickled in 4 files:
9
11
  #
10
- # exec_parsl_function.py map_file function_file result_file
12
+ # exec_parsl_function.py map_file function_file argument_file result_file
11
13
  #
12
14
  # map_file: Contains a pickled dictionary that indicates which local_paths the
13
15
  # parsl Files should take.
@@ -15,6 +17,8 @@ import pickle
15
17
  # function_file: Contains a pickle parsl function. Function might be serialized in advance.
16
18
  # See @parsl.serialize.concretes.py
17
19
  #
20
+ # argument_file: Contains the serialized arguments to the function call.
21
+ #
18
22
  # result_file: A file path, whose content will contain the result of the function, including any
19
23
  # exception generated. Exceptions will be wrapped with RemoteExceptionWrapper.
20
24
  #
@@ -26,12 +30,6 @@ import pickle
26
30
  #
27
31
 
28
32
 
29
- def load_pickled_file(filename: str):
30
- """ Load a pickled file and return its pickled object."""
31
- with open(filename, "rb") as f_in:
32
- return pickle.load(f_in)
33
-
34
-
35
33
  def dump_result_to_file(result_file: str, result_package):
36
34
  """ Dump a result to the given result file."""
37
35
  with open(result_file, "wb") as f_out:
@@ -78,9 +76,9 @@ def remap_all_files(mapping, fn_args, fn_kwargs):
78
76
  remap_location(mapping, maybe_file)
79
77
 
80
78
 
81
- def unpack_object(serialized_obj, user_namespace):
82
- from parsl.serialize import deserialize
83
- obj = deserialize(serialized_obj)
79
+ def unpack_object_from_file(path):
80
+ with open(path, 'rb') as f:
81
+ obj = deserialize(f.read())
84
82
  return obj
85
83
 
86
84
 
@@ -115,26 +113,23 @@ def encode_byte_code_function(user_namespace, fn, fn_name, args_name, kwargs_nam
115
113
  def load_function(map_file, function_file, argument_file):
116
114
  # Decodes the function and its file arguments to be executed into
117
115
  # function_code, and updates a user namespace with the function name and
118
- # the variable named result_name. When the function is executed, its result
116
+ # the variable named `result_name`. When the function is executed, its result
119
117
  # will be stored in this variable in the user namespace.
120
118
  # Returns (namespace, function_code, result_name)
121
119
 
122
- # Create the namespace to isolate the function execution.
123
- user_ns = locals()
124
- user_ns.update({'__builtins__': __builtins__})
125
-
126
- packed_function = load_pickled_file(function_file)
127
- packed_argument = load_pickled_file(argument_file)
128
-
129
- fn = unpack_object(packed_function, user_ns)
130
- args_dict = unpack_object(packed_argument, user_ns)
120
+ fn = unpack_object_from_file(function_file)
121
+ args_dict = unpack_object_from_file(argument_file)
131
122
  fn_args = args_dict['args']
132
123
  fn_kwargs = args_dict['kwargs']
133
124
  fn_name = 'parsl_tmp_func_name'
134
125
 
135
- mapping = load_pickled_file(map_file)
126
+ mapping = unpack_object_from_file(map_file)
136
127
  remap_all_files(mapping, fn_args, fn_kwargs)
137
128
 
129
+ # Create the namespace to isolate the function execution.
130
+ user_ns = locals()
131
+ user_ns.update({'__builtins__': __builtins__})
132
+
138
133
  (code, result_name) = encode_function(user_ns, fn, fn_name, fn_args, fn_kwargs)
139
134
 
140
135
  return (user_ns, code, result_name)
@@ -11,15 +11,13 @@ import tempfile
11
11
  import hashlib
12
12
  import subprocess
13
13
  import os
14
- import pickle
15
14
  import queue
16
15
  import inspect
17
16
  import shutil
18
17
  import itertools
19
18
  import uuid
20
- from ctypes import c_bool
21
19
  from concurrent.futures import Future
22
- from typing import List, Optional, Union
20
+ from typing import List, Optional, Union, Literal
23
21
 
24
22
  # Import Parsl constructs
25
23
  import parsl.utils as putils
@@ -71,12 +69,17 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
71
69
  with respect to other executors.
72
70
  Default is "TaskVineExecutor".
73
71
 
74
- worker_launch_method: str
72
+ worker_launch_method: Union[Literal['provider'], Literal['factory'], Literal['manual']]
75
73
  Choose to use Parsl provider, TaskVine factory, or
76
74
  manual user-provided workers to scale workers.
77
75
  Options are among {'provider', 'factory', 'manual'}.
78
76
  Default is 'factory'.
79
77
 
78
+ function_exec_mode: Union[Literal['regular'], Literal['serverless']]
79
+ Choose to execute functions with a regular fresh python process or a
80
+ pre-warmed forked python process.
81
+ Default is 'regular'.
82
+
80
83
  manager_config: TaskVineManagerConfig
81
84
  Configuration for the TaskVine manager. Default
82
85
 
@@ -98,7 +101,8 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
98
101
  @typeguard.typechecked
99
102
  def __init__(self,
100
103
  label: str = "TaskVineExecutor",
101
- worker_launch_method: str = 'factory',
104
+ worker_launch_method: Union[Literal['provider'], Literal['factory'], Literal['manual']] = 'factory',
105
+ function_exec_mode: Union[Literal['regular'], Literal['serverless']] = 'regular',
102
106
  manager_config: TaskVineManagerConfig = TaskVineManagerConfig(),
103
107
  factory_config: TaskVineFactoryConfig = TaskVineFactoryConfig(),
104
108
  provider: Optional[ExecutionProvider] = LocalProvider(init_blocks=1),
@@ -107,9 +111,6 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
107
111
  # Set worker launch option for this executor
108
112
  if worker_launch_method == 'factory' or worker_launch_method == 'manual':
109
113
  provider = None
110
- elif worker_launch_method != 'provider':
111
- raise ExecutorError(self, "Worker launch option '{worker_launch_method}' \
112
- is not supported.")
113
114
 
114
115
  # Initialize the parent class with the execution provider and block error handling enabled.
115
116
  # If provider is None, then no worker is launched via the provider method.
@@ -126,6 +127,7 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
126
127
  # Executor configurations
127
128
  self.label = label
128
129
  self.worker_launch_method = worker_launch_method
130
+ self.function_exec_mode = function_exec_mode
129
131
  self.manager_config = manager_config
130
132
  self.factory_config = factory_config
131
133
  self.storage_access = storage_access
@@ -136,8 +138,8 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
136
138
  # Queue to send finished tasks from TaskVine manager process to TaskVine executor process
137
139
  self._finished_task_queue: multiprocessing.Queue = multiprocessing.Queue()
138
140
 
139
- # Value to signal whether the manager and factory processes should stop running
140
- self._should_stop = multiprocessing.Value(c_bool, False)
141
+ # Event to signal whether the manager and factory processes should stop running
142
+ self._should_stop = multiprocessing.Event()
141
143
 
142
144
  # TaskVine manager process
143
145
  self._submit_process = None
@@ -267,10 +269,11 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
267
269
  # Begin work
268
270
  self._submit_process.start()
269
271
 
270
- # Run worker scaler either with Parsl provider or TaskVine factory
272
+ # Run worker scaler either with Parsl provider or TaskVine factory.
273
+ # Skip if workers are launched manually.
271
274
  if self.worker_launch_method == 'factory':
272
275
  self._factory_process.start()
273
- else:
276
+ elif self.worker_launch_method == 'provider':
274
277
  self.initialize_scaling()
275
278
 
276
279
  self._collector_thread.start()
@@ -314,7 +317,7 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
314
317
  logger.debug(f'Got resource specification: {resource_specification}')
315
318
 
316
319
  # Default execution mode of apps is regular
317
- exec_mode = resource_specification.get('exec_mode', 'regular')
320
+ exec_mode = resource_specification.get('exec_mode', self.function_exec_mode)
318
321
 
319
322
  # Detect resources and features of a submitted Parsl app
320
323
  cores = None
@@ -391,9 +394,9 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
391
394
  and result to be found at: {}".format(executor_task_id, function_file, argument_file, result_file))
392
395
 
393
396
  # Serialize function object and arguments, separately
394
- self._serialize_object(function_file, func)
397
+ self._serialize_object_to_file(function_file, func)
395
398
  args_dict = {'args': args, 'kwargs': kwargs}
396
- self._serialize_object(argument_file, args_dict)
399
+ self._serialize_object_to_file(argument_file, args_dict)
397
400
 
398
401
  # Construct the map file of local filenames at worker
399
402
  self._construct_map_file(map_file, input_files, output_files)
@@ -466,11 +469,13 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
466
469
  if self.project_password_file:
467
470
  self.provider.transfer_input_files.append(self.project_password_file)
468
471
 
469
- def _serialize_object(self, path, obj):
472
+ def _serialize_object_to_file(self, path, obj):
470
473
  """Takes any object and serializes it to the file path."""
471
474
  serialized_obj = serialize(obj, buffer_threshold=1024 * 1024)
472
475
  with open(path, 'wb') as f_out:
473
- pickle.dump(serialized_obj, f_out)
476
+ written = 0
477
+ while written < len(serialized_obj):
478
+ written += f_out.write(serialized_obj[written:])
474
479
 
475
480
  def _construct_map_file(self, map_file, input_files, output_files):
476
481
  """ Map local filepath of parsl files to the filenames at the execution worker.
@@ -485,8 +490,7 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
485
490
  else:
486
491
  remote_name = local_name
487
492
  file_translation_map[local_name] = remote_name
488
- with open(map_file, "wb") as f_out:
489
- pickle.dump(file_translation_map, f_out)
493
+ self._serialize_object_to_file(map_file, file_translation_map)
490
494
 
491
495
  def _register_file(self, parsl_file):
492
496
  """Generates a tuple (parsl_file.filepath, stage, cache) to give to
@@ -592,7 +596,7 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
592
596
  collector thread, which shuts down the TaskVine system submission.
593
597
  """
594
598
  logger.debug("TaskVine shutdown started")
595
- self._should_stop.value = True
599
+ self._should_stop.set()
596
600
 
597
601
  # Remove the workers that are still going
598
602
  kill_ids = [self.blocks[block] for block in self.blocks.keys()]
@@ -618,7 +622,7 @@ class TaskVineExecutor(BlockProviderExecutor, putils.RepresentationMixin):
618
622
  """
619
623
  logger.debug("Starting Collector Thread")
620
624
  try:
621
- while not self._should_stop.value:
625
+ while not self._should_stop.is_set():
622
626
  if not self._submit_process.is_alive():
623
627
  raise ExecutorError(self, "taskvine Submit Process is not alive")
624
628
 
@@ -1,16 +1,24 @@
1
1
  import logging
2
- import time
3
2
 
4
3
  from parsl.process_loggers import wrap_with_logs
5
4
  from parsl.executors.taskvine.errors import TaskVineFactoryFailure
6
5
 
7
- from ndcctools.taskvine import Factory
6
+ # This try except clause prevents import errors
7
+ # when TaskVine is not used in Parsl.
8
+ try:
9
+ from ndcctools.taskvine import Factory
10
+ taskvine_available = True
11
+ except ImportError:
12
+ taskvine_available = False
8
13
 
9
14
  logger = logging.getLogger(__name__)
10
15
 
11
16
 
12
17
  @wrap_with_logs
13
18
  def _taskvine_factory(should_stop, factory_config):
19
+ if not taskvine_available:
20
+ logger.debug("TaskVine package cannot be found. Please install the ndcctools package.")
21
+ return
14
22
  logger.debug("Starting TaskVine factory process")
15
23
 
16
24
  try:
@@ -54,11 +62,8 @@ def _taskvine_factory(should_stop, factory_config):
54
62
  if factory_config.batch_options:
55
63
  factory.batch_options = factory_config.batch_options
56
64
 
57
- # setup factory context and sleep for a second in every loop to
58
- # avoid wasting CPU
65
+ # run factory through Python context and wait for signal to stop.
59
66
  with factory:
60
- while not should_stop.value:
61
- time.sleep(1)
67
+ should_stop.wait()
62
68
 
63
69
  logger.debug("Exiting TaskVine factory process")
64
- return 0
@@ -106,6 +106,8 @@ def _prepare_environment_regular(m, manager_config, t, task, poncho_env_to_file,
106
106
  env_tarball = str(uuid.uuid4()) + '.tar.gz'
107
107
  logger.debug(f'Creating a poncho environment at {env_tarball} from conda environment {manager_config.env_pack}')
108
108
  subprocess.run([poncho_create_script, manager_config.env_pack, env_tarball], stdout=subprocess.DEVNULL, check=True)
109
+ else:
110
+ env_tarball = manager_config.env_pack
109
111
  poncho_env_file = m.declare_poncho(env_tarball, cache=True, peer_transfer=True)
110
112
  poncho_env_to_file[manager_config.env_pack] = poncho_env_file
111
113
  else:
@@ -194,15 +196,15 @@ def _taskvine_submit_wait(ready_task_queue=None,
194
196
 
195
197
  logger.debug("Entering main loop of TaskVine manager")
196
198
 
197
- while not should_stop.value:
198
- # Monitor the task queue
199
+ while not should_stop.is_set():
200
+ # Check if executor process is still running
199
201
  ppid = os.getppid()
200
202
  if ppid != orig_ppid:
201
- logger.debug("new Process")
203
+ logger.debug("Executor process is detected to have exited. Exiting..")
202
204
  break
203
205
 
204
206
  # Submit tasks
205
- while ready_task_queue.qsize() > 0 and not should_stop.value:
207
+ while ready_task_queue.qsize() > 0 and not should_stop.is_set():
206
208
  # Obtain task from ready_task_queue
207
209
  try:
208
210
  task = ready_task_queue.get(timeout=1)
@@ -377,7 +379,7 @@ def _taskvine_submit_wait(ready_task_queue=None,
377
379
  # If the queue is not empty wait on the TaskVine queue for a task
378
380
  task_found = True
379
381
  if not m.empty():
380
- while task_found and not should_stop.value:
382
+ while task_found and not should_stop.is_set():
381
383
  # Obtain the task from the queue
382
384
  t = m.wait(1)
383
385
  if t is None:
@@ -2,7 +2,12 @@ import socket
2
2
  from dataclasses import dataclass
3
3
  from typing import Optional
4
4
 
5
- from ndcctools.taskvine.cvine import VINE_DEFAULT_PORT
5
+ # This try except clause prevents import errors
6
+ # when TaskVine is not used in Parsl.
7
+ try:
8
+ from ndcctools.taskvine.cvine import VINE_DEFAULT_PORT
9
+ except ImportError:
10
+ VINE_DEFAULT_PORT = 0 # use any available port.
6
11
 
7
12
 
8
13
  @dataclass
@@ -18,7 +18,7 @@ class ThreadPoolExecutor(ParslExecutor, RepresentationMixin):
18
18
 
19
19
  Parameters
20
20
  ----------
21
- max_threads : int
21
+ max_threads : Optional[int]
22
22
  Number of threads. Default is 2.
23
23
  thread_name_prefix : string
24
24
  Thread name prefix
@@ -27,7 +27,7 @@ class ThreadPoolExecutor(ParslExecutor, RepresentationMixin):
27
27
  """
28
28
 
29
29
  @typeguard.typechecked
30
- def __init__(self, label: str = 'threads', max_threads: int = 2,
30
+ def __init__(self, label: str = 'threads', max_threads: Optional[int] = 2,
31
31
  thread_name_prefix: str = '', storage_access: Optional[List[Staging]] = None,
32
32
  working_dir: Optional[str] = None):
33
33
  ParslExecutor.__init__(self)
@@ -74,7 +74,6 @@ def test_div_0(test_fn=div_0):
74
74
  print(os.listdir('.'))
75
75
  os.remove('std.err')
76
76
  os.remove('std.out')
77
- return True
78
77
 
79
78
 
80
79
  @pytest.mark.issue363
@@ -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 = '2023.10.02'
6
+ VERSION = '2023.10.16'
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsl
3
- Version: 2023.10.2
3
+ Version: 2023.10.16
4
4
  Summary: Simple data dependent workflows in Python
5
5
  Home-page: https://github.com/Parsl/parsl
6
- Download-URL: https://github.com/Parsl/parsl/archive/2023.10.02.tar.gz
6
+ Download-URL: https://github.com/Parsl/parsl/archive/2023.10.16.tar.gz
7
7
  Author: The Parsl Team
8
8
  Author-email: parsl@googlegroups.com
9
9
  License: Apache 2.0
@@ -326,7 +326,6 @@ parsl/tests/test_docs/test_from_slides.py
326
326
  parsl/tests/test_docs/test_tutorial_1.py
327
327
  parsl/tests/test_docs/test_workflow1.py
328
328
  parsl/tests/test_docs/test_workflow2.py
329
- parsl/tests/test_docs/test_workflow3.py
330
329
  parsl/tests/test_docs/test_workflow4.py
331
330
  parsl/tests/test_error_handling/__init__.py
332
331
  parsl/tests/test_error_handling/test_fail.py
@@ -1,23 +0,0 @@
1
- import parsl
2
-
3
- from parsl.app.app import python_app
4
- from parsl.tests.configs.local_threads import config
5
-
6
-
7
- @python_app
8
- def generate(limit):
9
- from random import randint
10
- """Generate a random integer and return it"""
11
- return randint(1, limit)
12
-
13
-
14
- def test_parallel_for(N=2):
15
- """Test parallel workflows from docs on Composing workflows
16
- """
17
- rand_nums = []
18
- for i in range(1, 5):
19
- rand_nums.append(generate(i))
20
-
21
- # wait for all apps to finish and collect the results
22
- outputs = [i.result() for i in rand_nums]
23
- return outputs
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