parsl 2025.6.2__py3-none-any.whl → 2025.6.9__py3-none-any.whl

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.
@@ -4,8 +4,9 @@ import time
4
4
  import pytest
5
5
 
6
6
  import parsl
7
- from parsl import HighThroughputExecutor
7
+ from parsl import HighThroughputExecutor, ThreadPoolExecutor
8
8
  from parsl.config import Config
9
+ from parsl.executors.status_handling import BlockProviderExecutor
9
10
  from parsl.monitoring import MonitoringHub
10
11
 
11
12
 
@@ -23,6 +24,13 @@ def this_app():
23
24
  # The below fresh configs are for use in parametrization, and should return
24
25
  # a configuration that is suitably configured for monitoring.
25
26
 
27
+ def thread_config():
28
+ c = Config(executors=[ThreadPoolExecutor()],
29
+ monitoring=MonitoringHub(hub_address="localhost",
30
+ resource_monitoring_interval=0))
31
+ return c
32
+
33
+
26
34
  def htex_config():
27
35
  """This config will use htex's default htex-specific monitoring radio mode"""
28
36
  from parsl.tests.configs.htex_local_alternate import fresh_config
@@ -121,19 +129,28 @@ def row_counts_parametrized(tmpd_cwd, fresh_config):
121
129
  (c, ) = result.first()
122
130
  assert c == 4
123
131
 
124
- # There should be one block polling status
125
- # local provider has a status_polling_interval of 5s
126
- result = connection.execute(text("SELECT COUNT(*) FROM block"))
127
- (c, ) = result.first()
128
- assert c >= 2
132
+ if isinstance(config.executors[0], BlockProviderExecutor):
133
+ # This case assumes that a BlockProviderExecutor is actually being
134
+ # used with blocks. It might not be (for example, Work Queue and
135
+ # Task Vine can be configured to launch their own workers; and it
136
+ # is a valid (although occasional) use of htex to launch executors
137
+ # manually.
138
+ # If you just added test cases like that and are wondering why this
139
+ # assert is failing, that might be why.
140
+ result = connection.execute(text("SELECT COUNT(*) FROM block"))
141
+ (c, ) = result.first()
142
+ assert c >= 2, "There should be at least two block statuses from a BlockProviderExecutor"
129
143
 
130
144
  result = connection.execute(text("SELECT COUNT(*) FROM resource"))
131
145
  (c, ) = result.first()
132
- assert c >= 1
146
+ if isinstance(config.executors[0], ThreadPoolExecutor):
147
+ assert c == 0, "Thread pool executors should not be recording resources"
148
+ else:
149
+ assert c >= 1, "Task execution should have created some resource records"
133
150
 
134
151
 
135
152
  @pytest.mark.local
136
- @pytest.mark.parametrize("fresh_config", [htex_config, htex_filesystem_config, htex_udp_config])
153
+ @pytest.mark.parametrize("fresh_config", [thread_config, htex_config, htex_filesystem_config, htex_udp_config])
137
154
  def test_row_counts_base(tmpd_cwd, fresh_config):
138
155
  row_counts_parametrized(tmpd_cwd, fresh_config)
139
156
 
parsl/version.py CHANGED
@@ -3,4 +3,4 @@
3
3
  Year.Month.Day[alpha/beta/..]
4
4
  Alphas will be numbered like this -> 2024.12.10a0
5
5
  """
6
- VERSION = '2025.06.02'
6
+ VERSION = '2025.06.09'
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsl
3
- Version: 2025.6.2
3
+ Version: 2025.6.9
4
4
  Summary: Simple data dependent workflows in Python
5
5
  Home-page: https://github.com/Parsl/parsl
6
- Download-URL: https://github.com/Parsl/parsl/archive/2025.06.02.tar.gz
6
+ Download-URL: https://github.com/Parsl/parsl/archive/2025.06.09.tar.gz
7
7
  Author: The Parsl Team
8
8
  Author-email: parsl@googlegroups.com
9
9
  License: Apache 2.0
@@ -8,7 +8,7 @@ parsl/multiprocessing.py,sha256=JNAfgdZvQSsxVyUp229OOUqWwf_ZUhpmw8X9CdF3i6k,3614
8
8
  parsl/process_loggers.py,sha256=uQ7Gd0W72Jz7rrcYlOMfLsAEhkRltxXJL2MgdduJjEw,1136
9
9
  parsl/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  parsl/utils.py,sha256=codTX6_KLhgeTwNkRzc1lo4bgc1M93eJ-lkqOO98fvk,14331
11
- parsl/version.py,sha256=iOGq8naBMZwM3-DVQabgtw9WK1TvA8x_qTWhiLs8kd4,131
11
+ parsl/version.py,sha256=V1z-I8PIxtzsopTNaicGQyPvTgxgd_XObWB24hDcXS4,131
12
12
  parsl/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  parsl/app/app.py,sha256=0gbM4AH2OtFOLsv07I5nglpElcwMSOi-FzdZZfrk7So,8532
14
14
  parsl/app/bash.py,sha256=jm2AvePlCT9DZR7H_4ANDWxatp5dN_22FUlT_gWhZ-g,5528
@@ -338,7 +338,7 @@ parsl/tests/test_htex/test_worker_failure.py,sha256=Uz-RHI-LK78FMjXUvrUFmo4iYfmp
338
338
  parsl/tests/test_htex/test_zmq_binding.py,sha256=G7D2_p9vOekgpB50MBiPRwtIz98DEkUpMqA3rdwzYTQ,4397
339
339
  parsl/tests/test_monitoring/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
340
340
  parsl/tests/test_monitoring/test_app_names.py,sha256=A-mOMCVhZDnUyJp32fsTUkHdcyval8o7WPEWacDkbD4,2208
341
- parsl/tests/test_monitoring/test_basic.py,sha256=eAGHX1s7RweqZLSRmh7sY_l_zLGHQaHOXVuIN7R5SrI,5117
341
+ parsl/tests/test_monitoring/test_basic.py,sha256=QJS0SJkf1KV6A4UvikBu-wAIcBJZVoVe-BSVWgyFonI,6180
342
342
  parsl/tests/test_monitoring/test_db_locks.py,sha256=3s3c1xhKo230ZZIJ3f1Ca4U7LcEdXnanOGVXQyNlk2U,2895
343
343
  parsl/tests/test_monitoring/test_exit_helper.py,sha256=ob8Qd1hlkq_mowygfPetTnYN9LfuqeXHRpPilSfDSog,1232
344
344
  parsl/tests/test_monitoring/test_fuzz_zmq.py,sha256=SQNNHhXxHB_LwW4Ujqkgut3lbG0XVW-hliPagQQpiTc,3449
@@ -460,13 +460,13 @@ parsl/usage_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
460
460
  parsl/usage_tracking/api.py,sha256=iaCY58Dc5J4UM7_dJzEEs871P1p1HdxBMtNGyVdzc9g,1821
461
461
  parsl/usage_tracking/levels.py,sha256=xbfzYEsd55KiZJ-mzNgPebvOH4rRHum04hROzEf41tU,291
462
462
  parsl/usage_tracking/usage.py,sha256=hbMo5BYgIWqMcFWqN-HYP1TbwNrTonpv-usfwnCFJKY,9212
463
- parsl-2025.6.2.data/scripts/exec_parsl_function.py,sha256=YXKVVIa4zXmOtz-0Ca4E_5nQfN_3S2bh2tB75uZZB4w,7774
464
- parsl-2025.6.2.data/scripts/interchange.py,sha256=_FRB1LxkL9vnT3y24NTXHOzotMlDJEXwF5ZZCjGmcww,28909
465
- parsl-2025.6.2.data/scripts/parsl_coprocess.py,sha256=zrVjEqQvFOHxsLufPi00xzMONagjVwLZbavPM7bbjK4,5722
466
- parsl-2025.6.2.data/scripts/process_worker_pool.py,sha256=__gFeFQJpV5moRofj3WKQCnKp6gmzieXjzkmzVuTmX4,41123
467
- parsl-2025.6.2.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
468
- parsl-2025.6.2.dist-info/METADATA,sha256=6TKNQwxwu5QiBBEZaDWkTNGu0o2f2baDSnd_3BkDqsA,4054
469
- parsl-2025.6.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
470
- parsl-2025.6.2.dist-info/entry_points.txt,sha256=XqnsWDYoEcLbsMcpnYGKLEnSBmaIe1YoM5YsBdJG2tI,176
471
- parsl-2025.6.2.dist-info/top_level.txt,sha256=PIheYoUFQtF2icLsgOykgU-Cjuwr2Oi6On2jo5RYgRM,6
472
- parsl-2025.6.2.dist-info/RECORD,,
463
+ parsl-2025.6.9.data/scripts/exec_parsl_function.py,sha256=YXKVVIa4zXmOtz-0Ca4E_5nQfN_3S2bh2tB75uZZB4w,7774
464
+ parsl-2025.6.9.data/scripts/interchange.py,sha256=_FRB1LxkL9vnT3y24NTXHOzotMlDJEXwF5ZZCjGmcww,28909
465
+ parsl-2025.6.9.data/scripts/parsl_coprocess.py,sha256=zrVjEqQvFOHxsLufPi00xzMONagjVwLZbavPM7bbjK4,5722
466
+ parsl-2025.6.9.data/scripts/process_worker_pool.py,sha256=__gFeFQJpV5moRofj3WKQCnKp6gmzieXjzkmzVuTmX4,41123
467
+ parsl-2025.6.9.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
468
+ parsl-2025.6.9.dist-info/METADATA,sha256=yAjU-1rMVRSwg9zcdOsAHwW9IOAEkzyILXM2AbEgRhM,4054
469
+ parsl-2025.6.9.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
470
+ parsl-2025.6.9.dist-info/entry_points.txt,sha256=XqnsWDYoEcLbsMcpnYGKLEnSBmaIe1YoM5YsBdJG2tI,176
471
+ parsl-2025.6.9.dist-info/top_level.txt,sha256=PIheYoUFQtF2icLsgOykgU-Cjuwr2Oi6On2jo5RYgRM,6
472
+ parsl-2025.6.9.dist-info/RECORD,,