parsl 2025.8.4__py3-none-any.whl → 2025.8.11__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.

Potentially problematic release.


This version of parsl might be problematic. Click here for more details.

parsl/dataflow/dflow.py CHANGED
@@ -1142,7 +1142,7 @@ class DataFlowKernel:
1142
1142
  executor.monitoring_messages = self.monitoring.resource_msgs
1143
1143
  logger.debug("Starting monitoring receiver for executor %s "
1144
1144
  "with remote monitoring radio config %s",
1145
- executor, executor.remote_monitoring_radio)
1145
+ executor.label, executor.remote_monitoring_radio)
1146
1146
 
1147
1147
  executor.monitoring_receiver = executor.remote_monitoring_radio.create_receiver(resource_msgs=executor.monitoring_messages,
1148
1148
  run_dir=executor.run_dir)
@@ -626,7 +626,6 @@ class HighThroughputExecutor(BlockProviderExecutor, RepresentationMixin, UsageIn
626
626
  and managers"""
627
627
  return len(self.tasks)
628
628
 
629
- @property
630
629
  def connected_workers(self) -> int:
631
630
  """Returns the count of workers across all connected managers"""
632
631
  return self.command_client.run("WORKERS")
parsl/jobs/strategy.py CHANGED
@@ -215,7 +215,7 @@ class Strategy:
215
215
 
216
216
  if hasattr(executor, 'connected_workers'):
217
217
  logger.debug('Executor {} has {} active tasks, {}/{} running/pending blocks, and {} connected workers'.format(
218
- label, active_tasks, running, pending, executor.connected_workers))
218
+ label, active_tasks, running, pending, executor.connected_workers()))
219
219
  else:
220
220
  logger.debug('Executor {} has {} active tasks and {}/{} running/pending blocks'.format(
221
221
  label, active_tasks, running, pending))
@@ -18,7 +18,7 @@ from parsl.monitoring.types import MonitoringMessage, TaggedMonitoringMessage
18
18
  from parsl.process_loggers import wrap_with_logs
19
19
  from parsl.utils import setproctitle
20
20
 
21
- logger = logging.getLogger("database_manager")
21
+ logger = logging.getLogger(__name__)
22
22
 
23
23
  X = TypeVar('X')
24
24
 
@@ -293,11 +293,8 @@ class DatabaseManager:
293
293
  self.run_dir = run_dir
294
294
  os.makedirs(self.run_dir, exist_ok=True)
295
295
 
296
- logger.propagate = False
297
-
298
296
  set_file_logger(f"{self.run_dir}/database_manager.log", level=logging_level,
299
- format_string="%(asctime)s.%(msecs)03d %(name)s:%(lineno)d [%(levelname)s] [%(threadName)s %(thread)d] %(message)s",
300
- name="database_manager")
297
+ format_string="%(asctime)s.%(msecs)03d %(name)s:%(lineno)d [%(levelname)s] [%(threadName)s %(thread)d] %(message)s")
301
298
 
302
299
  logger.debug("Initializing Database Manager process")
303
300
 
@@ -550,20 +547,21 @@ class DatabaseManager:
550
547
  "or some other error. monitoring data may have been lost"
551
548
  )
552
549
  exception_happened = True
550
+
551
+ if self.external_exit_event.is_set():
552
+ self.close()
553
+
553
554
  if exception_happened:
554
555
  raise RuntimeError("An exception happened sometime during database processing and should have been logged in database_manager.log")
555
556
 
556
- @wrap_with_logs(target="database_manager")
557
- def _migrate_logs_to_internal(self, logs_queue: queue.Queue, kill_event: threading.Event) -> None:
557
+ @wrap_with_logs
558
+ def _migrate_logs_to_internal(self, logs_queue: mpq.Queue, kill_event: threading.Event) -> None:
558
559
  logger.info("Starting _migrate_logs_to_internal")
559
560
 
560
561
  while not kill_event.is_set() or logs_queue.qsize() != 0:
561
562
  logger.debug("Checking STOP conditions: kill event: %s, queue has entries: %s",
562
563
  kill_event.is_set(), logs_queue.qsize() != 0)
563
564
 
564
- if self.external_exit_event.is_set():
565
- self.close()
566
-
567
565
  try:
568
566
  x = logs_queue.get(timeout=0.1)
569
567
  except queue.Empty:
@@ -682,7 +680,7 @@ class DatabaseManager:
682
680
  self._kill_event.set()
683
681
 
684
682
 
685
- @wrap_with_logs(target="database_manager")
683
+ @wrap_with_logs
686
684
  @typeguard.typechecked
687
685
  def dbm_starter(resource_msgs: mpq.Queue,
688
686
  db_url: str,
@@ -53,7 +53,7 @@ def test_simple(mem_per_worker):
53
53
  # Prime a worker
54
54
  double(5).result()
55
55
  dfk = parsl.dfk()
56
- connected = dfk.executors['htex_local'].connected_workers
56
+ connected = dfk.executors['htex_local'].connected_workers()
57
57
  print("Connected : ", connected)
58
58
  assert expected_workers == connected, "Expected {} workers, instead got {} workers".format(expected_workers,
59
59
  connected)
@@ -35,7 +35,7 @@ def test_platform(n=2, sleep_dur=10):
35
35
  print([i.result() for i in x])
36
36
 
37
37
  print("Executor : ", dfk.executors[name])
38
- print("Connected : ", dfk.executors[name].connected_workers)
38
+ print("Connected : ", dfk.executors[name].connected_workers())
39
39
  print("Outstanding : ", dfk.executors[name].outstanding())
40
40
 
41
41
  d = []
@@ -9,6 +9,12 @@ class GoodRepr(RepresentationMixin):
9
9
  self.y = y
10
10
 
11
11
 
12
+ class GoodReprDefaults(RepresentationMixin):
13
+ def __init__(self, x, y="default 2"):
14
+ self.x = x
15
+ self.y = y
16
+
17
+
12
18
  class BadRepr(RepresentationMixin):
13
19
  """This class incorrectly subclasses RepresentationMixin.
14
20
  It does not store the parameter x on self.
@@ -31,6 +37,33 @@ def test_repr_good():
31
37
  assert p2 in r
32
38
 
33
39
 
40
+ @pytest.mark.local
41
+ def test_repr_good_defaults_overridden():
42
+ p1 = "parameter 1"
43
+ p2 = "the second parameter"
44
+
45
+ # repr should not raise an exception
46
+ r = repr(GoodReprDefaults(p1, p2))
47
+
48
+ # representation should contain both values supplied
49
+ # at object creation.
50
+ assert p1 in r
51
+ assert p2 in r
52
+
53
+
54
+ @pytest.mark.local
55
+ def test_repr_good_defaults_defaulted():
56
+ p1 = "parameter 1"
57
+
58
+ # repr should not raise an exception
59
+ r = repr(GoodReprDefaults(p1))
60
+
61
+ # representation should contain one value supplied
62
+ # at object creation, and the other defaulted.
63
+ assert p1 in r
64
+ assert "default 2" in r
65
+
66
+
34
67
  @pytest.mark.local
35
68
  def test_repr_bad():
36
69
  p1 = "parameter 1"
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.08.04'
6
+ VERSION = '2025.08.11'
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsl
3
- Version: 2025.8.4
3
+ Version: 2025.8.11
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.08.04.tar.gz
6
+ Download-URL: https://github.com/Parsl/parsl/archive/2025.08.11.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=5pN0o1LQOFq0nJT9CXG5Zs6Ui_R2YoLH5yNXtovCNAg,131
11
+ parsl/version.py,sha256=Sj86K9vmmqykcO7LIlJTAPLTBk827QRiP_ry4rVvJBM,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
@@ -55,7 +55,7 @@ parsl/data_provider/staging.py,sha256=ZDZuuFg38pjUStegKPcvPsfGp3iMeReMzfU6DSwtJj
55
55
  parsl/data_provider/zip.py,sha256=S4kVuH9lxAegRURYbvIUR7EYYBOccyslaqyCrVWUBhw,4497
56
56
  parsl/dataflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
57
  parsl/dataflow/dependency_resolvers.py,sha256=Om8Dgh7a0ZwgXAc6TlhxLSzvxXHDlNNV1aBNiD3JTNY,3325
58
- parsl/dataflow/dflow.py,sha256=q0nh_GP_4j4zWTOp-q-MbHlfAkgB-2VvpJwEhVL0V4c,62968
58
+ parsl/dataflow/dflow.py,sha256=uAUD7psp39Je7Mcv70o9_B1fWm27H2Wa5nQhJAoS38c,62974
59
59
  parsl/dataflow/errors.py,sha256=daVfr2BWs1zRsGD6JtosEMttWHvK1df1Npiu_MUvFKg,3998
60
60
  parsl/dataflow/futures.py,sha256=08LuP-HFiHBIZmeKCjlsazw_WpQ5fwevrU2_WbidkYw,6080
61
61
  parsl/dataflow/memoization.py,sha256=QUkTduZ_gdr8i08VWNWrqhfEvoMGsPDZegWUE2_7sGQ,12579
@@ -75,7 +75,7 @@ parsl/executors/flux/executor.py,sha256=NLdjOli5VjrSdEfyWbfqKN_8APvFkp_qFCouS_9N
75
75
  parsl/executors/flux/flux_instance_manager.py,sha256=5T3Rp7ZM-mlT0Pf0Gxgs5_YmnaPrSF9ec7zvRfLfYJw,2129
76
76
  parsl/executors/high_throughput/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  parsl/executors/high_throughput/errors.py,sha256=k2XuvvFdUfNs2foHFnxmS-BToRMfdXpYEa4EF3ELKq4,1554
78
- parsl/executors/high_throughput/executor.py,sha256=Olg0NMmg8UCj65zSk51I65c9NTerggLGba8T59aqidM,39925
78
+ parsl/executors/high_throughput/executor.py,sha256=oZGqdbtDy-lDOvV4CgdoFrtukmphRh5tVt31esJdh10,39911
79
79
  parsl/executors/high_throughput/interchange.py,sha256=R6zcY7yh1daMJR8Ke8o9QCj8AtkH7lwzECS0MAWugvA,25964
80
80
  parsl/executors/high_throughput/manager_record.py,sha256=ZMsqFxvreGLRXAw3N-JnODDa9Qfizw2tMmcBhm4lco4,490
81
81
  parsl/executors/high_throughput/manager_selector.py,sha256=UKcUE6v0tO7PDMTThpKSKxVpOpOUilxDL7UbNgpZCxo,2116
@@ -110,13 +110,13 @@ parsl/jobs/error_handlers.py,sha256=BBXwUAMJpBm0HxV1P-I6jv7ZF9wcrhnCfzSTlsd2g4w,
110
110
  parsl/jobs/errors.py,sha256=cpSQXCrlKtuHsQf7usjF-lX8XsDkFnE5kWpmFjiN6OU,178
111
111
  parsl/jobs/job_status_poller.py,sha256=b37JOqDpSesqeSreEh1HzfVTFnD5Aoy6k8JDXkkPDmk,2192
112
112
  parsl/jobs/states.py,sha256=dUM8gC4YVpUjLMARJJ_tDERs6oHsoNheAtG6JWPIJt4,5058
113
- parsl/jobs/strategy.py,sha256=m5iKxp3KWWYuo4SMyi1vjxOi-En5KU6bJEIcn1UVoQc,13803
113
+ parsl/jobs/strategy.py,sha256=VxFicpEq6l4bkoFQItHCpQGv9-8jPuP_rMLV1yYZ26Q,13805
114
114
  parsl/launchers/__init__.py,sha256=jJeDOWGKJjvpmWTLsj1zSqce_UAhWRc_IO-TzaOAlII,579
115
115
  parsl/launchers/base.py,sha256=CblcvPTJiu-MNLWaRtFe29SZQ0BpTOlaY8CGcHdlHIE,538
116
116
  parsl/launchers/errors.py,sha256=8YMV_CHpBNVa4eXkGE4x5DaFQlZkDCRCHmBktYcY6TA,467
117
117
  parsl/launchers/launchers.py,sha256=cQsNsHuCOL_nQTjPXf0--YsgsDoMoJ77bO1Wt4ncLjs,15134
118
118
  parsl/monitoring/__init__.py,sha256=0ywNz6i0lM1xo_7_BIxhETDGeVd2C_0wwD7qgeaMR4c,83
119
- parsl/monitoring/db_manager.py,sha256=L0c5S9ockq0UIchT2bjmkSAWXS-t0G-Q_neOIBfLbm0,33444
119
+ parsl/monitoring/db_manager.py,sha256=fw71f0l3WTgvSgjSo8NvikI2fWHMFHr3JEnbEFdpGtA,33296
120
120
  parsl/monitoring/errors.py,sha256=VQNIMoo5Ro8GlJ-Ad-6q-YA0y6sTc-IibSdNXZC-GuU,306
121
121
  parsl/monitoring/message_type.py,sha256=Khn88afNxcOIciKiCK4GLnn90I5BlRTiOL3zK-P07yQ,401
122
122
  parsl/monitoring/monitoring.py,sha256=oIXwI_oxan-b1XdTneoza--4uTqYF6ar2X4zWgarGVQ,6602
@@ -253,13 +253,13 @@ parsl/tests/manual_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
253
253
  parsl/tests/manual_tests/htex_local.py,sha256=i3yOiizR1bkEzBfpIBeq-oA3HCTB0KcVUWPJx4XSjpQ,740
254
254
  parsl/tests/manual_tests/test_basic.py,sha256=3uCS9BqaZmKTNtNfJSsJIg2exlTAdC0Sdc1w9hY9Tvc,4023
255
255
  parsl/tests/manual_tests/test_log_filter.py,sha256=jwKclAVuESdlGK_giBuHDkY6ryX6rZB7q01lXT5K0XU,1872
256
- parsl/tests/manual_tests/test_memory_limits.py,sha256=fjQhGsZu1PUl2Z4v75mssqve51QmtVrK94q9zJWQefU,2593
256
+ parsl/tests/manual_tests/test_memory_limits.py,sha256=LWiVs2bjT5SRc6ti5d9QoPzeA7Q5DjiQJ87weSCqzAQ,2595
257
257
  parsl/tests/manual_tests/test_regression_220.py,sha256=Jo2puWt1W0r1rJfaJFgd2ZPgR3i6uOXzrLRcfYDZWDo,931
258
258
  parsl/tests/manual_tests/test_worker_count.py,sha256=Cv8nAWMXAREiiGEBUr_8JyI87ffp8JGAyDqVXzcjX_0,2072
259
259
  parsl/tests/site_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
260
260
  parsl/tests/site_tests/site_config_selector.py,sha256=cpToBNdvHZPOxYfiFpGVuydSMlmxfeo27N3VEjRFLgw,1815
261
261
  parsl/tests/site_tests/test_provider.py,sha256=o9pUn_qzQnUSnuh-OQGBec_dNrmOVTD79-i27p_K-N8,2696
262
- parsl/tests/site_tests/test_site.py,sha256=9_CKR8gVoIq0v3g-XJmSLuFhi53K56Ufqjb8XC0WM1c,1944
262
+ parsl/tests/site_tests/test_site.py,sha256=kykFelM7Z78EF0rmS2NRaN-qhXBE9vaSflUGtps-h60,1946
263
263
  parsl/tests/sites/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
264
264
  parsl/tests/sites/test_affinity.py,sha256=CCfYxSkpoznREGV2-K2As4YbsMY7bCiYqRMZkUp-zO0,1500
265
265
  parsl/tests/sites/test_concurrent.py,sha256=ybHOnIsRyYs2tFPggv2ivRVoqH8Ts4PTEvb4IN3Obv8,1219
@@ -445,7 +445,7 @@ parsl/tests/test_threads/test_lazy_errors.py,sha256=6dJ65py5vUZkc0aRLL-LHuxBBp87
445
445
  parsl/tests/test_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
446
446
  parsl/tests/test_utils/test_execute_wait.py,sha256=J796rGuv2qi2spChgAPFB1oPETdnvdLOplpErDlOwL8,880
447
447
  parsl/tests/test_utils/test_logutils.py,sha256=D4ELQ6xmoju7rxPwom3eB6N8JdTwNhUuAuNOfd-lRQE,1470
448
- parsl/tests/test_utils/test_representation_mixin.py,sha256=kUZeIDwA2rlbJ3-beGzLLwf3dOplTMCrWJN87etHcyY,1633
448
+ parsl/tests/test_utils/test_representation_mixin.py,sha256=8ghhWimkBGzuKExF2Rj5bkILxDCmJmCmRiXiWOEuFxM,2397
449
449
  parsl/tests/test_utils/test_sanitize_dns.py,sha256=8P_v5a5JLGU76OYf0LtclAwqJxGU0fMh_OZMVkMke3I,2954
450
450
  parsl/tests/unit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
451
451
  parsl/tests/unit/test_address.py,sha256=0JxaEyvEiLIr5aKvaNnSv0Z9ta3kNllsLS_aby23QPs,716
@@ -456,13 +456,13 @@ parsl/usage_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
456
456
  parsl/usage_tracking/api.py,sha256=iaCY58Dc5J4UM7_dJzEEs871P1p1HdxBMtNGyVdzc9g,1821
457
457
  parsl/usage_tracking/levels.py,sha256=xbfzYEsd55KiZJ-mzNgPebvOH4rRHum04hROzEf41tU,291
458
458
  parsl/usage_tracking/usage.py,sha256=hbMo5BYgIWqMcFWqN-HYP1TbwNrTonpv-usfwnCFJKY,9212
459
- parsl-2025.8.4.data/scripts/exec_parsl_function.py,sha256=YXKVVIa4zXmOtz-0Ca4E_5nQfN_3S2bh2tB75uZZB4w,7774
460
- parsl-2025.8.4.data/scripts/interchange.py,sha256=dh9_Q5bLvgHLhSRAXrFIlOd5Yo-ZkudDGFWz0N3hQBg,25951
461
- parsl-2025.8.4.data/scripts/parsl_coprocess.py,sha256=zrVjEqQvFOHxsLufPi00xzMONagjVwLZbavPM7bbjK4,5722
462
- parsl-2025.8.4.data/scripts/process_worker_pool.py,sha256=-5VLVjeab6oROulx7OwI9tdNNHd6uap45I1jltm-UDc,40524
463
- parsl-2025.8.4.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
464
- parsl-2025.8.4.dist-info/METADATA,sha256=Z-Ljcajho6y34ACO7zbu2YtbMlMyc4pZ8YCE2us203A,4054
465
- parsl-2025.8.4.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
466
- parsl-2025.8.4.dist-info/entry_points.txt,sha256=XqnsWDYoEcLbsMcpnYGKLEnSBmaIe1YoM5YsBdJG2tI,176
467
- parsl-2025.8.4.dist-info/top_level.txt,sha256=PIheYoUFQtF2icLsgOykgU-Cjuwr2Oi6On2jo5RYgRM,6
468
- parsl-2025.8.4.dist-info/RECORD,,
459
+ parsl-2025.8.11.data/scripts/exec_parsl_function.py,sha256=YXKVVIa4zXmOtz-0Ca4E_5nQfN_3S2bh2tB75uZZB4w,7774
460
+ parsl-2025.8.11.data/scripts/interchange.py,sha256=dh9_Q5bLvgHLhSRAXrFIlOd5Yo-ZkudDGFWz0N3hQBg,25951
461
+ parsl-2025.8.11.data/scripts/parsl_coprocess.py,sha256=zrVjEqQvFOHxsLufPi00xzMONagjVwLZbavPM7bbjK4,5722
462
+ parsl-2025.8.11.data/scripts/process_worker_pool.py,sha256=-5VLVjeab6oROulx7OwI9tdNNHd6uap45I1jltm-UDc,40524
463
+ parsl-2025.8.11.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
464
+ parsl-2025.8.11.dist-info/METADATA,sha256=oPuf8fgmwnIPvWIV1jDJBvQmcy755wCC-CGa6-emZOo,4055
465
+ parsl-2025.8.11.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
466
+ parsl-2025.8.11.dist-info/entry_points.txt,sha256=XqnsWDYoEcLbsMcpnYGKLEnSBmaIe1YoM5YsBdJG2tI,176
467
+ parsl-2025.8.11.dist-info/top_level.txt,sha256=PIheYoUFQtF2icLsgOykgU-Cjuwr2Oi6On2jo5RYgRM,6
468
+ parsl-2025.8.11.dist-info/RECORD,,