hpcflow-new2 0.2.0a214__py3-none-any.whl → 0.2.0a216__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.
- hpcflow/_version.py +1 -1
- hpcflow/sdk/core/utils.py +3 -3
- hpcflow/sdk/helper/watcher.py +11 -6
- {hpcflow_new2-0.2.0a214.dist-info → hpcflow_new2-0.2.0a216.dist-info}/METADATA +6 -6
- {hpcflow_new2-0.2.0a214.dist-info → hpcflow_new2-0.2.0a216.dist-info}/RECORD +8 -8
- {hpcflow_new2-0.2.0a214.dist-info → hpcflow_new2-0.2.0a216.dist-info}/LICENSE +0 -0
- {hpcflow_new2-0.2.0a214.dist-info → hpcflow_new2-0.2.0a216.dist-info}/WHEEL +0 -0
- {hpcflow_new2-0.2.0a214.dist-info → hpcflow_new2-0.2.0a216.dist-info}/entry_points.txt +0 -0
hpcflow/_version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.2.
|
1
|
+
__version__ = "0.2.0a216"
|
hpcflow/sdk/core/utils.py
CHANGED
@@ -832,8 +832,8 @@ class JSONLikeDirSnapShot(DirectorySnapshot):
|
|
832
832
|
|
833
833
|
#: Where to take the snapshot based at.
|
834
834
|
self.root_path = root_path
|
835
|
-
self._stat_info: dict[str, os.stat_result] = {}
|
836
|
-
self._inode_to_path: dict[tuple, str] = {}
|
835
|
+
self._stat_info: dict[bytes | str, os.stat_result] = {}
|
836
|
+
self._inode_to_path: dict[tuple[int, int], bytes | str] = {}
|
837
837
|
|
838
838
|
if data:
|
839
839
|
assert root_path
|
@@ -862,7 +862,7 @@ class JSONLikeDirSnapShot(DirectorySnapshot):
|
|
862
862
|
# store efficiently:
|
863
863
|
inode_invert = {v: k for k, v in self._inode_to_path.items()}
|
864
864
|
data: dict[str, list] = {
|
865
|
-
str(PurePath(k).relative_to(root_path)): [
|
865
|
+
str(PurePath(cast("str", k)).relative_to(cast("str", root_path))): [
|
866
866
|
str(i) if use_strings else i for i in [*v, *inode_invert[k]]
|
867
867
|
]
|
868
868
|
for k, v in self._stat_info.items()
|
hpcflow/sdk/helper/watcher.py
CHANGED
@@ -7,6 +7,7 @@ from collections.abc import Callable
|
|
7
7
|
from datetime import timedelta
|
8
8
|
from logging import Logger
|
9
9
|
from pathlib import Path
|
10
|
+
from typing import cast
|
10
11
|
from watchdog.observers.polling import PollingObserver
|
11
12
|
from watchdog.events import (
|
12
13
|
FileSystemEvent,
|
@@ -17,7 +18,7 @@ from watchdog.events import (
|
|
17
18
|
|
18
19
|
class _PMEHDelegate(PatternMatchingEventHandler):
|
19
20
|
def __init__(self, pattern: str, on_modified: Callable[[FileSystemEvent], None]):
|
20
|
-
super().__init__([pattern])
|
21
|
+
super().__init__(patterns=[pattern])
|
21
22
|
self.__on_modified = on_modified
|
22
23
|
|
23
24
|
def on_modified(self, event: FileSystemEvent) -> None:
|
@@ -64,7 +65,7 @@ class MonitorController:
|
|
64
65
|
self.observer = PollingObserver(timeout=self.watch_interval)
|
65
66
|
self.observer.schedule(
|
66
67
|
self.event_handler,
|
67
|
-
path=self.workflow_dirs_file_path.parent,
|
68
|
+
path=cast("str", self.workflow_dirs_file_path.parent),
|
68
69
|
recursive=False,
|
69
70
|
)
|
70
71
|
|
@@ -112,8 +113,10 @@ class MonitorController:
|
|
112
113
|
"""
|
113
114
|
Callback when files are modified.
|
114
115
|
"""
|
115
|
-
self.logger.info(f"Watch file modified: {event.src_path}")
|
116
|
-
wks = self.parse_watch_workflows_file(
|
116
|
+
self.logger.info(f"Watch file modified: {event.src_path!r}")
|
117
|
+
wks = self.parse_watch_workflows_file(
|
118
|
+
cast("str", event.src_path), logger=self.logger
|
119
|
+
)
|
117
120
|
self.workflow_monitor.update_workflow_paths(wks)
|
118
121
|
|
119
122
|
def join(self) -> None:
|
@@ -157,7 +160,9 @@ class WorkflowMonitor:
|
|
157
160
|
observer = PollingObserver(timeout=self.watch_interval)
|
158
161
|
self.observer: PollingObserver | None = observer
|
159
162
|
for i in self.workflow_paths:
|
160
|
-
observer.schedule(
|
163
|
+
observer.schedule(
|
164
|
+
self.event_handler, path=cast("str", i["path"]), recursive=False
|
165
|
+
)
|
161
166
|
self.logger.info(f"Watching workflow: {i['path'].name}")
|
162
167
|
|
163
168
|
observer.start()
|
@@ -166,7 +171,7 @@ class WorkflowMonitor:
|
|
166
171
|
"""
|
167
172
|
Triggered on a workflow being modified.
|
168
173
|
"""
|
169
|
-
self.logger.info(f"Workflow modified: {event.src_path}")
|
174
|
+
self.logger.info(f"Workflow modified: {event.src_path!r}")
|
170
175
|
|
171
176
|
def update_workflow_paths(self, new_paths: list[dict[str, Path]]):
|
172
177
|
"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: hpcflow-new2
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.0a216
|
4
4
|
Summary: Computational workflow management
|
5
5
|
License: MPL-2.0
|
6
6
|
Author: aplowman
|
@@ -24,19 +24,19 @@ Requires-Dist: numpy (>=1.26.4,<2.0.0) ; python_version < "3.13"
|
|
24
24
|
Requires-Dist: numpy (>=2.2.4,<3.0.0) ; python_version >= "3.13"
|
25
25
|
Requires-Dist: paramiko (>=3.2.0,<4.0.0)
|
26
26
|
Requires-Dist: platformdirs (>=4.2.1,<5.0.0)
|
27
|
-
Requires-Dist: psutil (>=5.9.4,<
|
28
|
-
Requires-Dist: pytest (>=7.2
|
27
|
+
Requires-Dist: psutil (>=5.9.4,<8.0.0)
|
28
|
+
Requires-Dist: pytest (>=7.2,<9.0) ; extra == "test"
|
29
29
|
Requires-Dist: pyzmq (>=26.0.3,<27.0.0)
|
30
30
|
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
31
31
|
Requires-Dist: reretry (>=0.11.8,<0.12.0)
|
32
|
-
Requires-Dist: rich (>=13.4.2,<
|
32
|
+
Requires-Dist: rich (>=13.4.2,<15.0.0)
|
33
33
|
Requires-Dist: ruamel-yaml (>=0.18.6,<0.19.0)
|
34
34
|
Requires-Dist: scipy (>=1.13.1,<2.0.0) ; python_version < "3.10"
|
35
35
|
Requires-Dist: scipy (>=1.15.2,<2.0.0) ; python_version >= "3.10"
|
36
|
-
Requires-Dist: termcolor (>=1.1
|
36
|
+
Requires-Dist: termcolor (>=1.1,<3.0)
|
37
37
|
Requires-Dist: typing-extensions (>=4.12.2,<5.0.0)
|
38
38
|
Requires-Dist: valida (>=0.7.5,<0.8.0)
|
39
|
-
Requires-Dist: watchdog (>=
|
39
|
+
Requires-Dist: watchdog (>=6.0.0,<7.0.0)
|
40
40
|
Requires-Dist: zarr (==2.17.2)
|
41
41
|
Description-Content-Type: text/markdown
|
42
42
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
hpcflow/__init__.py,sha256=WIETuRHeOp2SqUqHUzpjQ-lk9acbYv-6aWOhZPRdlhs,64
|
2
2
|
hpcflow/__pyinstaller/__init__.py,sha256=YOzBlPSck6slucv6lJM9K80JtsJWxXRL00cv6tRj3oc,98
|
3
3
|
hpcflow/__pyinstaller/hook-hpcflow.py,sha256=P2b-8QdQqkSS7cJB6CB3CudUuJ9iZzTh2fQF4hNdCa4,1118
|
4
|
-
hpcflow/_version.py,sha256=
|
4
|
+
hpcflow/_version.py,sha256=NB3HeQJrZyqOMo1JD0MaZh58Efxwqu0LtOYBJpIuMaM,26
|
5
5
|
hpcflow/app.py,sha256=gl2viVS65PbpDhUp2DARaYHFDqDWQjuoyB3ikrCNRW4,1367
|
6
6
|
hpcflow/cli.py,sha256=G2J3D9v6MnMWOWMMWK6UEKLn_6wnV9lT_qygEBBxg-I,66
|
7
7
|
hpcflow/data/demo_data_manifest/__init__.py,sha256=Hsq0jT8EXM13wu1MpGy5FQgyuz56ygep4VWOnulFn50,41
|
@@ -96,7 +96,7 @@ hpcflow/sdk/core/task.py,sha256=7jXQUDU0mVS33b3tVimkHAnC6k1QMofwu45qt7xvuKc,1424
|
|
96
96
|
hpcflow/sdk/core/task_schema.py,sha256=LjHnpS8ccEWGDQFzGhhAzpMvWGeoUlPDY2XTY2_gqMQ,38844
|
97
97
|
hpcflow/sdk/core/test_utils.py,sha256=UXe8P-1b_6Pn6vdgJfMVsTGJdVI65TZ2mSUgWHlVnnc,13766
|
98
98
|
hpcflow/sdk/core/types.py,sha256=kqVXpiH8qwOVVBAw6GFvUQVdNYLEv7qIbgEkgfK0DO8,13021
|
99
|
-
hpcflow/sdk/core/utils.py,sha256=
|
99
|
+
hpcflow/sdk/core/utils.py,sha256=NTbXX2tkfb2Wp0hpGuisnfpBNAo9j-4EXh-KVqJygqA,36342
|
100
100
|
hpcflow/sdk/core/validation.py,sha256=4-0g5z3CgjFLQ2FCM0p0mjvNqHYuLhIqvQR_kpM0tsU,1838
|
101
101
|
hpcflow/sdk/core/workflow.py,sha256=Id5CSPvjP_dJUCTWuCGU4bNFmRA-ESW05miVoB44yT4,183535
|
102
102
|
hpcflow/sdk/core/zarr_io.py,sha256=i6WqkFXe-q1sJGTCYAbsNRXRrdkxZy6NRahTcuZPuX4,5906
|
@@ -113,7 +113,7 @@ hpcflow/sdk/demo/cli.py,sha256=kwPVmCQk5OILrQNOvE0Tz220IFROEZ7YTk2KgKJ_Lc0,6570
|
|
113
113
|
hpcflow/sdk/helper/__init__.py,sha256=HPbnZlvgC9xJKpXyjrBuEXGMIfkLfblD_RBefBLJOFc,29
|
114
114
|
hpcflow/sdk/helper/cli.py,sha256=s26xfwzmgjh778nIfjEozqbvs2XvKPoNaHSi_2vr01U,4026
|
115
115
|
hpcflow/sdk/helper/helper.py,sha256=T45BEwhPgTlwvqDNbT4Us4UVmdRKRoszIMt8a9B69kE,9475
|
116
|
-
hpcflow/sdk/helper/watcher.py,sha256=
|
116
|
+
hpcflow/sdk/helper/watcher.py,sha256=aQyuSnBiPhsp1ijBylwR5mxjIqlwD4rT_zH9DYc83no,5744
|
117
117
|
hpcflow/sdk/log.py,sha256=_wqB0qt65nt4oNNV6eyD39bNZyciyH6biyyOgU_MViQ,8285
|
118
118
|
hpcflow/sdk/persistence/__init__.py,sha256=1e6nVADj6xEsE7XGXHaIsHZur4IkUJAxLuxBlvHi0CE,408
|
119
119
|
hpcflow/sdk/persistence/base.py,sha256=y7L7FFyuTJvy9K_CRFZZH8Cost2seiNz_KKaKZ2XREo,92727
|
@@ -216,8 +216,8 @@ hpcflow/tests/workflows/test_submission.py,sha256=SUbBUbD8C8LSulrI7aETkzP9RqED48
|
|
216
216
|
hpcflow/tests/workflows/test_workflows.py,sha256=9z3rtXjA5iMOp4C0q4TkD_9kLzwourCY-obpeOtnNt0,18927
|
217
217
|
hpcflow/tests/workflows/test_zip.py,sha256=MzEwsIAYV_1A3bD0XRo23zUwUKVzkkmNd8_cil6YdWQ,578
|
218
218
|
hpcflow/viz_demo.ipynb,sha256=6D9uBbWK3oMfbaf93Tnv5riFPtW-2miUTWNr9kGcnd4,228913
|
219
|
-
hpcflow_new2-0.2.
|
220
|
-
hpcflow_new2-0.2.
|
221
|
-
hpcflow_new2-0.2.
|
222
|
-
hpcflow_new2-0.2.
|
223
|
-
hpcflow_new2-0.2.
|
219
|
+
hpcflow_new2-0.2.0a216.dist-info/LICENSE,sha256=Xhxf_KsrJNJFGMogumZhXSTPhUOVHCWf7nU-TDzqg0E,16763
|
220
|
+
hpcflow_new2-0.2.0a216.dist-info/METADATA,sha256=0GsaUQi5IKWD7BKJmyteMYWj8yWMViCU_P8wJMOKGDM,2663
|
221
|
+
hpcflow_new2-0.2.0a216.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
|
222
|
+
hpcflow_new2-0.2.0a216.dist-info/entry_points.txt,sha256=aoGtCnFdfPcXfBdu2zZyMOJoz6fPgdR0elqsgrE-USU,106
|
223
|
+
hpcflow_new2-0.2.0a216.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|