parsl 2024.5.6__py3-none-any.whl → 2024.5.13__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.
parsl/dataflow/dflow.py CHANGED
@@ -1177,12 +1177,9 @@ class DataFlowKernel:
1177
1177
  self.job_status_poller.add_executors(block_executors)
1178
1178
 
1179
1179
  def atexit_cleanup(self) -> None:
1180
- if not self.cleanup_called:
1181
- logger.warning("Python is exiting with a DFK still running. "
1182
- "You should call parsl.dfk().cleanup() before "
1183
- "exiting to release any resources")
1184
- else:
1185
- logger.info("python process is exiting, but DFK has already been cleaned up")
1180
+ logger.warning("Python is exiting with a DFK still running. "
1181
+ "You should call parsl.dfk().cleanup() before "
1182
+ "exiting to release any resources")
1186
1183
 
1187
1184
  def wait_for_current_tasks(self) -> None:
1188
1185
  """Waits for all tasks in the task list to be completed, by waiting for their
@@ -1270,6 +1267,10 @@ class DataFlowKernel:
1270
1267
  self.monitoring.close()
1271
1268
  logger.info("Terminated monitoring")
1272
1269
 
1270
+ logger.info("Unregistering atexit hook")
1271
+ atexit.unregister(self.atexit_cleanup)
1272
+ logger.info("Unregistered atexit hook")
1273
+
1273
1274
  logger.info("DFK cleanup complete")
1274
1275
 
1275
1276
  def checkpoint(self, tasks: Optional[Sequence[TaskRecord]] = None) -> str:
@@ -310,6 +310,8 @@ class Interchange:
310
310
  'tasks': len(m['tasks']),
311
311
  'idle_duration': idle_duration,
312
312
  'active': m['active'],
313
+ 'parsl_version': m['parsl_version'],
314
+ 'python_version': m['python_version'],
313
315
  'draining': m['draining']}
314
316
  reply.append(resp)
315
317
 
@@ -435,6 +437,8 @@ class Interchange:
435
437
  'worker_count': 0,
436
438
  'active': True,
437
439
  'draining': False,
440
+ 'parsl_version': msg['parsl_v'],
441
+ 'python_version': msg['python_v'],
438
442
  'tasks': []}
439
443
  self.connected_block_history.append(msg['block_id'])
440
444
 
@@ -14,3 +14,5 @@ class ManagerRecord(TypedDict, total=False):
14
14
  last_heartbeat: float
15
15
  idle_since: Optional[float]
16
16
  timestamp: datetime
17
+ parsl_version: str
18
+ python_version: str
@@ -7,9 +7,7 @@ from parsl.channels import LocalChannel
7
7
  from parsl.jobs.states import JobState, JobStatus
8
8
  from parsl.launchers import SingleNodeLauncher
9
9
  from parsl.providers.pbspro.template import template_string
10
- from parsl.providers import TorqueProvider
11
-
12
- from parsl.providers.torque.torque import translate_table
10
+ from parsl.providers.torque.torque import TorqueProvider, translate_table
13
11
 
14
12
  logger = logging.getLogger(__name__)
15
13
 
@@ -0,0 +1,40 @@
1
+ import pytest
2
+ import logging
3
+
4
+ import sys
5
+ import parsl
6
+ from parsl.app.app import python_app
7
+ from parsl.tests.configs.htex_local import fresh_config
8
+
9
+
10
+ def local_setup():
11
+ config = fresh_config()
12
+ config.executors[0].poll_period = 1
13
+ config.executors[0].max_workers_per_node = 1
14
+ parsl.load(config)
15
+
16
+
17
+ def local_teardown():
18
+ parsl.dfk().cleanup()
19
+ parsl.clear()
20
+
21
+
22
+ @python_app
23
+ def dummy():
24
+ pass
25
+
26
+
27
+ @pytest.mark.local
28
+ def test_connected_managers():
29
+
30
+ # Run dummy function to ensure a manager is online
31
+ x = dummy()
32
+ assert x.result() is None
33
+ executor = parsl.dfk().executors['htex_local']
34
+ manager_info_list = executor.connected_managers()
35
+ assert len(manager_info_list) == 1
36
+ manager_info = manager_info_list[0]
37
+ assert 'python_version' in manager_info
38
+ assert 'parsl_version' in manager_info
39
+ assert manager_info['parsl_version'] == parsl.__version__
40
+ assert manager_info['python_version'] == f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
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 = '2024.05.06'
6
+ VERSION = '2024.05.13'
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: parsl
3
- Version: 2024.5.6
3
+ Version: 2024.5.13
4
4
  Summary: Simple data dependent workflows in Python
5
5
  Home-page: https://github.com/Parsl/parsl
6
- Download-URL: https://github.com/Parsl/parsl/archive/2024.05.06.tar.gz
6
+ Download-URL: https://github.com/Parsl/parsl/archive/2024.05.13.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=hakfdg-sgxEjwloZeDrt6EhzwdzecvjJhkPHHxh8lII,1938
8
8
  parsl/process_loggers.py,sha256=1G3Rfrh5wuZNo2X03grG4kTYPGOxz7hHCyG6L_A3b0A,1137
9
9
  parsl/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  parsl/utils.py,sha256=DUPrl9ZdzwJzz2rmlRws77OMs43iQo_CT-Kr3uJs-fo,11202
11
- parsl/version.py,sha256=bJdzwOBtwKkqXQbUZbrpe15MqhA7uorJspq9eobj2sE,131
11
+ parsl/version.py,sha256=GPg3uad5Hzzr8oht4bIZGZh6q3lGRIOc-tORHF3ATgs,131
12
12
  parsl/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  parsl/app/app.py,sha256=wAHchJetgnicT1pn0NJKDeDX0lV3vDFlG8cQd_Ciax4,8522
14
14
  parsl/app/bash.py,sha256=VufxGROrlJB3dP03syNutU0x8rLzfI-gooWwBZ4FFQ8,5676
@@ -61,7 +61,7 @@ parsl/data_provider/rsync.py,sha256=2-ZxqrT-hBj39x082NusJaBqsGW4Jd2qCW6JkVPpEl0,
61
61
  parsl/data_provider/staging.py,sha256=l-mAXFburs3BWPjkSmiQKuAgJpsxCG62yATPDbrafYI,4523
62
62
  parsl/data_provider/zip.py,sha256=50xvXms3UoEFc4v_w6joLAcCrcdKuOjIPoPLgUz1Jio,4498
63
63
  parsl/dataflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
- parsl/dataflow/dflow.py,sha256=iwbmCCeSKI07jmd9xa83dNpYqFG1k7nRCSscn7r1D30,65903
64
+ parsl/dataflow/dflow.py,sha256=lyZLOzlAOWYt8OvINM9Vv4Id3KpqM_zkNz6R9ZynjiA,65896
65
65
  parsl/dataflow/errors.py,sha256=w2vOt_ymzG2dOqJUO4IDcmTlrCIHlMZL8nBVyVq0O_8,2176
66
66
  parsl/dataflow/futures.py,sha256=XGgaoaT3N2U3vvZ7DEoLkGBrZscq_VzffZ9goLB87ko,6081
67
67
  parsl/dataflow/memoization.py,sha256=AsJO6c6cRp2ac6H8uGn2USlEi78_nX3QWvpxYt4XdYE,9583
@@ -80,8 +80,8 @@ parsl/executors/flux/flux_instance_manager.py,sha256=tTEOATClm9SwdgLeBRWPC6D55iN
80
80
  parsl/executors/high_throughput/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
81
  parsl/executors/high_throughput/errors.py,sha256=vl69wLuVOplbKxHI9WphEGBExHWkTn5n8T9QhBXuNH0,380
82
82
  parsl/executors/high_throughput/executor.py,sha256=Er0QUG-HNatDPVBsLYZbbEStyNJsu4oE9UQ7LtQYH7w,37318
83
- parsl/executors/high_throughput/interchange.py,sha256=Rt6HyFvQYFuqUJ1ytXmUFTDIK9wOBm4l96IHoL6OFRc,31491
84
- parsl/executors/high_throughput/manager_record.py,sha256=w5EwzVqPtsLOyOW8jP44U3uaogt8H--tkwp7FNyKN_o,385
83
+ parsl/executors/high_throughput/interchange.py,sha256=ovs_boredW4X0R7oNCGnf8scgtA0ow6fmdCKliWOyBk,31803
84
+ parsl/executors/high_throughput/manager_record.py,sha256=W1K_rxU1c76qX-uxw62uGzgsDuxnZwdpYTTH5VwKRFg,432
85
85
  parsl/executors/high_throughput/monitoring_info.py,sha256=3gQpwQjjNDEBz0cQqJZB6hRiwLiWwXs83zkQDmbOwxY,297
86
86
  parsl/executors/high_throughput/mpi_prefix_composer.py,sha256=GPSejuNL407gvzw9f7dTWArTLn6heTi-erJjgcM-_8Y,4273
87
87
  parsl/executors/high_throughput/mpi_resource_management.py,sha256=geLYmp2teKYgTnzATAR_JPtjAa0ysu6pHpXs90vwkds,7975
@@ -181,7 +181,7 @@ parsl/providers/lsf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
181
181
  parsl/providers/lsf/lsf.py,sha256=AECVpjl_CTreE-APFQSjMVVIb3HheG6zculJn-zYtdM,11502
182
182
  parsl/providers/lsf/template.py,sha256=leQ_TpXv7ePMzbHfLaWvqMR0VORxlp-hjX5JxtkcwwU,269
183
183
  parsl/providers/pbspro/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
- parsl/providers/pbspro/pbspro.py,sha256=Uo6XvXZ3HwotfvrzFtaE1Wf4pta1LoqM4GgkQUTXv4A,8822
184
+ parsl/providers/pbspro/pbspro.py,sha256=lTRCUXGBpZHbEDLTvJRS6MKDkmQII9wXYAEif6rNirc,8794
185
185
  parsl/providers/pbspro/template.py,sha256=y-Dher--t5Eury-c7cAuSZs9FEUXWiruFUI07v81558,315
186
186
  parsl/providers/slurm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
187
187
  parsl/providers/slurm/slurm.py,sha256=HnDZk2owmNz_r6Spwlu233HbQLo9dWePy3KD4CXXRRs,13916
@@ -341,6 +341,7 @@ parsl/tests/test_htex/test_disconnected_blocks.py,sha256=iga7wmhGACwUN6gkEFPw1dL
341
341
  parsl/tests/test_htex/test_drain.py,sha256=BvPQIo0xx-z191eVR2rG51x22yzqD-6dLSH7bCAUhOg,2288
342
342
  parsl/tests/test_htex/test_htex.py,sha256=4dXtcthZQvgEDtMc00g6Pw7FnqNWB_0j8fuJqHKO-IE,3896
343
343
  parsl/tests/test_htex/test_manager_failure.py,sha256=gemQopZoDEoZLOvep5JZkY6tQlZoko8Z0Kmpj1-Gbws,1161
344
+ parsl/tests/test_htex/test_managers_command.py,sha256=aOXRaOXna9cnFmFinujv7ohSYDbX6esk1JtHfsUkAlk,1022
344
345
  parsl/tests/test_htex/test_missing_worker.py,sha256=R8FaUNnpmXY9E_ZCC797La4jWsJvp136xBhLY9yIgyU,818
345
346
  parsl/tests/test_htex/test_multiple_disconnected_blocks.py,sha256=L4vw_Mo-upp2p9-TyPDfluNJJQ2BxHHNXgS3xhhuE28,1993
346
347
  parsl/tests/test_htex/test_worker_failure.py,sha256=Uz-RHI-LK78FMjXUvrUFmo4iYfmpDVBUcBxxRb3UG9M,603
@@ -454,12 +455,12 @@ parsl/tests/unit/test_file.py,sha256=vLycnYcv3bvSzL-FV8WdoibqTyb41BrH1LUYBavobsg
454
455
  parsl/usage_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
455
456
  parsl/usage_tracking/api.py,sha256=V_IMgpxUloP--MtlZGY5Uf6SfHVQSPP8poa3PedOs_I,1822
456
457
  parsl/usage_tracking/usage.py,sha256=IGNPVEo3YJ3SI48WGESrip7PiCqEAheQ0Kgu8dRgQag,7616
457
- parsl-2024.5.6.data/scripts/exec_parsl_function.py,sha256=NtWNeBvRqksej38eRPw8zPBJ1CeW6vgaitve0tfz_qc,7801
458
- parsl-2024.5.6.data/scripts/parsl_coprocess.py,sha256=Y7Tc-h9WGui-YDe3w_h91w2Sm1JNL1gJ9kAV4PE_gw8,5722
459
- parsl-2024.5.6.data/scripts/process_worker_pool.py,sha256=31tyTtU7hrrsatGReuCbLM-3GWkaYK1bvlFE1MhKYQg,41253
460
- parsl-2024.5.6.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
461
- parsl-2024.5.6.dist-info/METADATA,sha256=7Xy-TQqFY_PKgO5lipie1lHoX-JwQMUK_Xl0e-nLolo,4011
462
- parsl-2024.5.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
463
- parsl-2024.5.6.dist-info/entry_points.txt,sha256=XqnsWDYoEcLbsMcpnYGKLEnSBmaIe1YoM5YsBdJG2tI,176
464
- parsl-2024.5.6.dist-info/top_level.txt,sha256=PIheYoUFQtF2icLsgOykgU-Cjuwr2Oi6On2jo5RYgRM,6
465
- parsl-2024.5.6.dist-info/RECORD,,
458
+ parsl-2024.5.13.data/scripts/exec_parsl_function.py,sha256=NtWNeBvRqksej38eRPw8zPBJ1CeW6vgaitve0tfz_qc,7801
459
+ parsl-2024.5.13.data/scripts/parsl_coprocess.py,sha256=Y7Tc-h9WGui-YDe3w_h91w2Sm1JNL1gJ9kAV4PE_gw8,5722
460
+ parsl-2024.5.13.data/scripts/process_worker_pool.py,sha256=31tyTtU7hrrsatGReuCbLM-3GWkaYK1bvlFE1MhKYQg,41253
461
+ parsl-2024.5.13.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
462
+ parsl-2024.5.13.dist-info/METADATA,sha256=NGWrcVMikzUIXBsaxN1mKa8ItjN_LdgNE3bfu_eKN8g,4012
463
+ parsl-2024.5.13.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
464
+ parsl-2024.5.13.dist-info/entry_points.txt,sha256=XqnsWDYoEcLbsMcpnYGKLEnSBmaIe1YoM5YsBdJG2tI,176
465
+ parsl-2024.5.13.dist-info/top_level.txt,sha256=PIheYoUFQtF2icLsgOykgU-Cjuwr2Oi6On2jo5RYgRM,6
466
+ parsl-2024.5.13.dist-info/RECORD,,